#pragma once /*---------------------------------------------------------------------------------- //剖切隐藏 实体 // //注意: 内部使用,不对外开放!!!! //---------------------------------------------------------------------------------*/ #include "AecDbEntityBase.h" #include "AecComplexCurveDraw.h" #include "define_class_xdata_key.h" #include "AecDbObjXDataMap.h" #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif class AcDbX3dSolid; class AecDbX3dPart; class DLLIMPEXP AecDbBlackHoleEntity :public AecDbEntityBase { public: ACRX_DECLARE_MEMBERS(AecDbBlackHoleEntity); protected: static Adesk::UInt32 kCurrentVersionNumber; public: AecDbBlackHoleEntity(void); ~AecDbBlackHoleEntity(void); bool Set(AcDbPolyline* pPl,double dH,const AcDbObjectIdArray& arIds); virtual AcDb3dSolid* GetBlackHole() const; virtual Acad::ErrorStatus copyFrom(const AcRxObject* pSrc); virtual Acad::ErrorStatus subGetGripPoints(AcDbGripDataPtrArray &grips, const double curViewUnitSize, const int gripSize, const AcGeVector3d &curViewDir, const int bitflags) const; virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbVoidPtrArray& appData , const AcGeVector3d& offset , const int bitflags); #if ARX>16 virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); virtual Acad::ErrorStatus subErase(Adesk::Boolean erasing); #endif virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const; virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler* pFiler); virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const; virtual Acad::ErrorStatus dxfInFields (AcDbDxfFiler* pFiler); virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler* pFiler) const; virtual void AssertWriteEnabled(Adesk::Boolean autoUndo = true, Adesk::Boolean recordModified = true ); virtual AecDbObjXDataMap* GetSpecialtyData(AcDb::OpenMode bMode = AcDb::kForWrite){return &m_mapSpecXData;} virtual const AecDbObjXDataMap* GetSpecialtyData() const {return &m_mapSpecXData;} protected: //创建显示3dSolid AcDb3dSolid* CreateDraw3dSolid() const; public: void Refresh(); double GetHeight() const; void SetHeight(const double dH); void SetElev(const double dH); double GetElev()const; protected: double m_dH; //上下各个高度 CString m_sPolyline; AcDbObjectIdArray m_arAssocIds; //关联的对象 //BIM数据 AcGePoint3d m_ptOrg; //2D AecComplexCurveDraw m_drawable2d; //2D private: AecDbObjXDataMap m_mapSpecXData; public: DEF_XDATA_KEY_FUN(_IS_CUT_WALL, BOOL, _IS_CUT_WALL_); DEF_XDATA_KEY_FUN(_IS_CUT_BEAM, BOOL, _IS_CUT_BEAM_); DEF_XDATA_KEY_FUN(_IS_CUT_COLUMN, BOOL, _IS_CUT_COLUMN_); DEF_XDATA_KEY_FUN(_IS_CUT_SLAB, BOOL, _IS_CUT_SLAB_); DEF_XDATA_KEY_FUN(_IS_CUT_WINDOOR, BOOL, _IS_CUT_WINDOOR_); DEF_XDATA_KEY_FUN(_IS_CUT_YXGZ, BOOL, _IS_CUT_YXGZ_); DEF_XDATA_KEY_FUN(_IS_CUT_STAIR, BOOL, _IS_CUT_STAIR_); DEF_XDATA_KEY_FUN(_IS_CUT_WEIR, BOOL, _IS_CUT_WEIR_); DEF_XDATA_KEY_FUN(_IS_CUT_GUARDBAR, BOOL, _IS_CUT_GUARDBAR_); DEF_XDATA_KEY_FUN(_IS_CUT_ROOF, BOOL, _IS_CUT_ROOF_); DEF_XDATA_KEY_FUN(_IS_USE_DBCLICK, BOOL, _IS_USE_DBCLICK_); DEF_XDATA_KEY_FUN(_IS_CUT_PIPE,BOOL, _IS_CUT_PIPE_); DEF_XDATA_KEY_FUN(_IS_CUT_EQU, BOOL, _IS_CUT_EQU_); DEF_XDATA_KEY_FUN(_IS_CUT_DUCT, BOOL, _IS_CUT_DUCT_); DEF_XDATA_KEY_FUN(_IS_CUT_CABTRY, BOOL, _IS_CUT_CABTRY_); DEF_XDATA_KEY_FUN(_IS_CUT_HOLDER, BOOL, _IS_CUT_HOLDER_); };