/////////////////////////////////////////////////////////////////////////////// // 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). */ 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 OdDbPointCloudDefPtr; /** \details This class represents the point cloud definition reactor. Library: AcDbPointCloudObj */ 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 OdDbPointCloudDefReactorPtr; #include "TD_PackPop.h" #endif