zjf
2023-03-06 392b76515f40376b6d36f40a114850ef63650384
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
/////////////////////////////////////////////////////////////////////////////// 
// Copyright (C) 2002-2016, Open Design Alliance (the "Alliance"). 
// All rights reserved. 
// 
// This software and its documentation and related materials are owned by 
// the Alliance. The software may only be incorporated into application 
// programs owned by members of the Alliance, subject to a signed 
// Membership Agreement and Supplemental Software License Agreement with the
// Alliance. The structure and organization of this software are the valuable  
// trade secrets of the Alliance and its suppliers. The software is also 
// protected by copyright law and international treaty provisions. Application  
// programs incorporating this software must include the following statement 
// with their copyright notices:
//   
//   This application incorporates Teigha(R) software pursuant to a license 
//   agreement with Open Design Alliance.
//   Teigha(R) Copyright (C) 2002-2016 by Open Design Alliance. 
//   All rights reserved.
//
// By use of this software, its documentation or related materials, you 
// acknowledge and accept the above terms.
///////////////////////////////////////////////////////////////////////////////
 
#ifndef _ODDBPOINTCLOUDDEFEX_INCLUDED_
#define _ODDBPOINTCLOUDDEFEX_INCLUDED_
 
 
#include "DbPointCloudObjExports.h"
#include "StringArray.h"
#include "TD_PackPush.h"
 
#include "DbObject.h"
 
/** <group OdDbPointCloud_Classes>
*/
class DBPOINTCLOUDOBJ_EXPORT OdDbPointCloudDefEx : public OdDbObject
{
public:
  ODDB_DECLARE_MEMBERS( OdDbPointCloudDefEx );
 
  enum PropState
  {
    kNone = -1,
    kSome = 0,
    kAll = 1
  };
 
  enum Property
  {
    kColor = 1,
    kIntensity = 2,
    kClassification = 3,
    kNormal = 4,
    kSegmentation = 5,
    kGeoGraphic = 6
  };
 
  /** \details
  Default constructor. Constructs an empty OdDbPointCloudDefEx object.
  */
  OdDbPointCloudDefEx();
 
  /** \details
    Returns the name of the external file containing the point cloud ex data (.pcg or .isd) for this PointCloudEx Definition object (as it is stored in file).
    
    \remarks
    This PointCloudDefEx object must be open for reading.
  */
  OdString sourceFileName() const;
 
  /** \details
    Sets the name of the external file containing the point cloud ex data (.pcg or .isd) for this PointCloudEx Definition object (as it is stored in file).
    
    \note
    Returns eOk if the file is accessible or eInvalidInput otherwise.
  */
  OdResult setSourceFileName(const OdString&);
 
  /** \details
  Returns the path name of the actual point cloud file being currently used for this PointCloudEx Definition object.
 
  \remarks
  This PointCloudDef object must be open for reading.
  */
  const OdChar * activeFileName() const;
 
 
  /** \details
  Returns the path name of the actual point cloud file being currently used for this PointCloudEx Definition object.
 
  \note
  Returns eOk if the file is accessible or eInvalidInput otherwise.
  */
  OdResult setActiveFileName( const OdChar * pPathName );
 
  /** \details
    Returns the type of the source file containing the point cloud data for this PointCloudEx Definition object (as it is stored in file).
 
    \remarks
    This PointCloudDefEx object must be open for reading.
  */
  const OdChar * fileType() const;
 
  // Helper functions to access Point Cloud Ex Definition dictionary
  /** \details
    Returns PointCloudEx Dictionary ID. Creates the dictionary, if one is not already present, in the specified OdDbDatabase instance.
 
    \param Db [in]  The database.
  */
  static OdDbObjectId createPointCloudExDictionary(OdDbDatabase *pDb);
 
  /** \details
    Returns the Object ID of the point cloud dictionary in the specified OdDbDatabase instance.
    \param Db [in]  The database.  
  */
  static OdDbObjectId pointCloudExDictionary(const OdDbDatabase *pDb);
 
  /** \details
    
  */
  static OdDbDictionary* getPointCloudExDictionary( OdDbPointCloudDefEx *pDefEx );
 
  /** \details
    Returns true if and only if the point cloud file for this PointCloudEx definition object is loaded.
  */
  bool  isLoaded() const;
 
  /** \details
 
  */
  OdResult load();
 
  /** \details
 
  */
  void unload();
 
  /** \details
    Returns the number of OdDbPointCloudEx entities in the current drawing that are dependent upon this object.
    
    \param pbLocked [in]  If it's non-zero, then this function will set the true value at that pointer if any dependent entities reside on locked layers, or set false otherwise.
  */
  int entityCount(bool *pbLocked) const;
 
  /** \details
    Returns the total number of points of this OdDbPointCloudDefEx object.
  */
  OdUInt64 totalPointsCount() const;
 
  /** \details
    Returns the default height of this OdDbPointCloudDefEx object.
  */
  double defaultHeight() const;
 
  /** \details
    Returns the default length of this OdDbPointCloudDefEx object.
  */
  double defaultLength() const;
 
  /** \details
    Returns the default width of this OdDbPointCloudDefEx object.
  */
  double defaultWidth() const;
 
  /** \details
    Calculates the extents of this OdDbPointCloudDefEx object.
 
    \note
    Returns eOk if the extents are valid or eInvalidExtents otherwise.
  */
  OdResult extents( OdGeExtents3d &exts ) const;
 
  /** \details
  NOT INPLEMENTED
  */
  int totalRegionsCount() const;
 
  /** \details
  NOT INPLEMENTED
  */
  int totalScansCount() const;
 
  /** \details
  NOT INPLEMENTED
  */
  const OdChar * coordinateSystemName() const;
 
  /** \details
  NOT INPLEMENTED
  */
  const OdChar * getRcsFilePath( const OdString &guid) const;
 
  /** \details
  NOT INPLEMENTED
  */
  void getAllRcsFilePaths( OdStringArray &list ) const;
 
  /** \details
  NOT INPLEMENTED
  */
  PropState hasProperty( Property prop ) const;
 
  /** \details
  NOT INPLEMENTED
  */
  OdResult createThumbnailBitmap( BITMAPINFO*& pBmpInfo, int width, int height ) const;
 
 
 
  // File IO
  virtual OdResult  dwgInFields( OdDbDwgFiler * );
  virtual void  dwgOutFields( OdDbDwgFiler * ) const;
  virtual OdResult  dxfInFields( OdDbDxfFiler * );
  virtual void  dxfOutFields( OdDbDxfFiler * ) const;
 
  static int classVersion();
 
};
 
typedef OdSmartPtr<OdDbPointCloudDefEx> OdDbPointCloudDefExPtr;
 
/** <group OdDbPointCloud_Classes>
*/
class  DBPOINTCLOUDOBJ_EXPORT OdDbPointCloudDefReactorEx : public OdDbObject
{
public:
  ODDB_DECLARE_MEMBERS( OdDbPointCloudDefReactorEx );
  OdDbPointCloudDefReactorEx( );
 
  static int classVersion();
 
  // File IO
  virtual OdResult  dwgInFields( OdDbDwgFiler * );
  virtual void  dwgOutFields( OdDbDwgFiler * ) const;
  virtual OdResult  dxfInFields( OdDbDxfFiler * );
  virtual void  dxfOutFields( OdDbDxfFiler * ) const;
 
  // Notifications
  virtual void erased( OdDbObject const *, bool );   // not implemented
  virtual void modified( OdDbObject const * );
 
  static bool isEnabled();
  static void setEnable( bool );
private:
  static bool m_bEnabled;
};
 
typedef OdSmartPtr<OdDbPointCloudDefReactorEx> OdDbPointCloudDefReactorExPtr;
 
#include "TD_PackPop.h"
 
#endif //_ODDBPOINTCLOUDDEFEX_INCLUDED_