#pragma once #include "aecdbewpipebase.h" class AcDbX3dSolid; #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif //圆爬梯 class DLLIMPEXP AecDbClimbStair :public AecDbEwPipeBase { public: ACRX_DECLARE_MEMBERS(AecDbClimbStair); protected: static Adesk::UInt32 kCurrentVersionNumber; public: AecDbClimbStair(void); virtual ~AecDbClimbStair(void); void SetClimbStairData(const ClimbStair& data); void GetClimbStairData(ClimbStair& data) 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 subList() const; //AEC 派生 virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const; virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); virtual Acad::ErrorStatus subGetGripPoints(AcDbGripDataPtrArray& grips, const double curViewUnitSize, const int gripSize, const AcGeVector3d& curViewDir, const int bitflags) const; virtual int GetSectionDraw(const AcGePoint3d& ptFr,const AcGePoint3d& ptTo,const AcGeVector3d& vtViewDir,const AcGeVector3d& vtTo, AcDbVoidPtrArray& arRegPtrs) const; virtual CString getUniqueName() const; virtual void ProcessHlrResult(const AcArray &ar , const std::map> &preAr , AcArray &output) const; protected: Acad::ErrorStatus SubAddDimPoints(AcDbGripDataPtrArray& grips,const AcGeVector3d& curViewDir) const; AcDbArc* GetGuardArc(const ClimbStair& data) const; Acad::ErrorStatus DrawLadderH3d(AcGiDraw &dc,const AcGeVector3d& vtW,const AcGePoint3d& pt1,const AcGePoint3d& pt2,const ClimbStair& data) const; Acad::ErrorStatus DrawGuardBar3d(AcGiDraw &dc,const AcGeVector3d& vtW,const AcGePoint3d& pt1,const AcGePoint3d& pt2,const AcGePoint3d& ptSta,const AcGePoint3d& ptEnd,const ClimbStair& data) const; virtual SHJson::WValue& ToJson(bool bExprotGeo = true) const; virtual bool ByJson(const SHJson::WValue &v); virtual bool GetBimInfoTip(CString& sInfoTip) const; Acad::ErrorStatus DrawClimbStair2d1(AcGiDraw &dc,ClimbStair& data) const; Acad::ErrorStatus DrawClimbStair2d2(AcGiDraw &dc,ClimbStair& data) const; Acad::ErrorStatus DrawClimbStair3d1(AcGiDraw &dc,ClimbStair& data) const; Acad::ErrorStatus DrawClimbStair3d2(AcGiDraw &dc,ClimbStair& data) const; public: // 缓存3D绘制,为toJson使用 mutable std::vector m_solids; mutable std::vector m_pipes; };