#pragma once #include "AecDbEntityBase.h" #include "AecDbObjXDataMap.h" #include "AecComplexCurveDraw.h" #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif class DLLIMPEXP AecDbInsulation : public AecDbEntityBase { public: ACRX_DECLARE_MEMBERS(AecDbInsulation); protected: static Adesk::UInt32 kCurrentVersionNumber; public: AecDbInsulation(void); ~AecDbInsulation(void); //保温层 0 左 1 右 void SetInsulation(const InsulData &data); bool GetInsulation(InsulData &data) const; //保温层面积 折算为平方 double GetInsulArea() const; void SetInsulRegion(AcDbEntity *pRegnOrSurface); AcDbRegion *GetInsulRegion() const; AcDbSurface *GetInsulSurface() const; //2D工艺视图 void GetDraw2dables(AecComplexCurve &draw2d) const; void SetDraw2dables(const AecComplexCurve &draw2d); bool GetStartPoint(AcGePoint3d& pt) const; void SetStartPointO(const AcGePoint3d &pt); bool GetEndPoint(AcGePoint3d &pt) const; void SetEndPoint(const AcGePoint3d &pt); public: virtual Acad::ErrorStatus subGetGripPoints(AcDbGripDataPtrArray &grips, const double curViewUnitSize, const int gripSize, const AcGeVector3d &curViewDir, const int bitflags) const; virtual Acad::ErrorStatus copyFrom(const AcRxObject *pSrc); virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbVoidPtrArray &appData, const AcGeVector3d &offset, const int bitflags); virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d &xform); 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 subList() const; virtual bool GetBimInfoTip(CString &sInfoTip) const; virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const; virtual const AecDbObjXDataMap *GetSpecialtyData() const; virtual AecDbObjXDataMap *GetSpecialtyData(AcDb::OpenMode bMode = AcDb::kForWrite); protected: AcDb3dSolid* GetInsulThickSolid(double dThick, AcDbRegion * pReg, bool bIsLineWall) const; AcDb3dSolid* GetDraw3dSolid() const; protected: AecGripData *m_pGripAppData;//夹点 //AcDbRegion sat Adesk::UIntPtr m_dwFileLength; char* m_pszTxt; //2D 序列化 AecComplexCurveDraw m_drawable2d; //专业数据 --> InsulData AecDbObjXDataMap m_mapSpecXData; };