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
/////////////////////////////////////////////////////////////////////////////// 
// 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 _ODDBPOINTCLOUDDEF_INCLUDED_
#define _ODDBPOINTCLOUDDEF_INLUDED_ /* { Secret} */
 
#include "DbPointCloudObjExports.h"
#include "TD_PackPush.h"
 
#include "DbObject.h"
 
/** \details
    This class defines Point Cloud Definition objects in an OdDbDatabase instance.
 
    \sa
    AcDbPointCloudObj
 
    \remarks
    Point Cloud Definitions (OdDbPointCloudDef objects) work with Point Cloud (OdDbPointCloud) entities
    in much the same way that Raster Image Definitions (OdDbRasterImageDef objects) work with Image References
    (OdDbRasterImage entities).
 
    <group OdDbPointCloud_Classes>
*/
class DBPOINTCLOUDOBJ_EXPORT OdDbPointCloudDef : public OdDbObject
{
public:
  ODDB_DECLARE_MEMBERS(OdDbPointCloudDef);
 
  /** \details
    Default constructor. Constructs an empty OdDbPointCloudDef object.
  */
  OdDbPointCloudDef();
 
  // Properties
  /** \details
    Returns the name of the external file containing the point cloud data (.pcg or .isd) for this PointCloud Definition object (as it is stored in file).
    
    \remarks
    This PointCloudDef object must be open for reading.
  */
  OdString sourceFileName() const;
 
  /** \details
    Sets the name of the external file containing the point cloud data (.pcg or .isd) for this PointCloud 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 type of the source file containing the point cloud data for this PointCloud Definition object (as it is stored in file).
 
    \remarks
    This PointCloudDef object must be open for reading.
  */
  OdString  fileType(void) const;
 
 
  /** \details
    Returns the path name of the actual point cloud file being currently used for this PointCloud Definition object.
 
    \remarks
    This PointCloudDef object must be open for reading.
  */
  OdString activeFileName() const;
 
 
  /** \details
    Returns the path name of the actual point cloud file being currently used for this PointCloud Definition object.
 
    \note
    Returns eOk if the file is accessible or eInvalidInput otherwise.
  */
  OdResult setActiveFileName(const OdString&);
 
  
  /** \details
    Returns true if and only if the point cloud file for this PointCloud definition object is loaded.
  */
  bool  isLoaded() const;
 
 
  /** \details
    Currently not implemented.
  */
  OdResult load(bool bModifyDatabase);
 
  /** \details
    Currently not implemented.
  */
  void unload(bool bModifyDatabase);
 
  /** \details
    Returns the number of OdDbPointCloud 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 *) const;
 
  /** \details
    Returns the total number of points of this OdDbPointCloudDef object.
  */
  OdUInt64 totalPointsCount() const;
 
  /** \details
    Returns the default height of this OdDbPointCloudDef object.
  */
  double defaultHeight() const;
 
  /** \details
    Returns the default length of this OdDbPointCloudDef object.
  */
  double defaultLength() const;
 
  /** \details
    Returns the default width of this OdDbPointCloudDef object.
  */
  double defaultWidth() const;
 
 
  /** \details
    Calculates the extents of this OdDbPointCloudDef object.
 
    \note
    Returns eOk if the extents are valid or eInvalidExtents otherwise.
  */
  OdResult  getNativeCloudExtent(OdGeExtents3d &) const;
 
  /** \details
    Sets the extents for this OdDbPointCloudDef object.
 
    \param exts [in]  Extents to be set.
  */
  void setExtents(const OdGeExtents3d &);
 
  // File IO
 
  virtual OdResult  dwgInFields(OdDbDwgFiler *);
  virtual void  dwgOutFields(OdDbDwgFiler *) const;
  virtual OdResult  dxfInFields(OdDbDxfFiler *);
  virtual void  dxfOutFields(OdDbDxfFiler *) const;
 
  static int classVersion();
 
  // Helper functions to access Point Cloud Definition dictionary
  /** \details
    Returns Pointcloud Dictionary ID. Creates the dictionary, if one is not already present, in the specified OdDbDatabase instance.
 
    \param Db [in]  The database.
  */
  static OdDbObjectId createPointCloudDictionary(OdDbDatabase&);
 
  /** \details
    Returns the Object ID of the point cloud dictionary in the specified OdDbDatabase instance.
    \param Db [in]  The database.  
  */
  static OdDbObjectId pointCloudDictionary(const OdDbDatabase&);
 
#if 0
  OdResult  createThumbnailBitmap(struct tagBITMAPINFO * &,int,int) const;
  bool  getPointCloudFileVersion(int &,int &) const;
  bool  hasProperty(const OdString&,bool &) const;
  bool  saveToVersion(const OdString&,int);
#endif
 
// OdDbObject overridden methods
  virtual OdResult subErase(bool erasing) ODRX_OVERRIDE;
  virtual void subClose() ODRX_OVERRIDE;
  virtual void subHandOverTo(OdDbObject* pNewObj) ODRX_OVERRIDE;
  virtual OdDbObjectPtr subWblockClone(OdDbIdMapping& idMap, OdDbObject* owner, bool bPrimary) const ODRX_OVERRIDE;
};
 
/** \details
  This template class is a specialization of the OdSmartPtr class for OdDbPointCloudDef object pointers.
*/
typedef OdSmartPtr<OdDbPointCloudDef> OdDbPointCloudDefPtr;
 
 
/** \details
  This class represents the point cloud definition reactor.
 
  Library: AcDbPointCloudObj
 
  <group OdDbPointCloud_Classes>
*/
class  DBPOINTCLOUDOBJ_EXPORT OdDbPointCloudDefReactor : public OdDbObject
{
public:
  ODDB_DECLARE_MEMBERS(OdDbPointCloudDefReactor);
    OdDbPointCloudDefReactor();
 
    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<OdDbPointCloudDefReactor> OdDbPointCloudDefReactorPtr;
 
 
#include "TD_PackPop.h"
 
#endif