#pragma once #include "aecdbewpipebase.h" #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif class AcDbX3dSolid; //楼梯基类钢筋混凝土 class DLLIMPEXP AecDbBaseStair : public AecDbEwPipeBase { public: ACRX_DECLARE_MEMBERS(AecDbBaseStair); public: static const CString KEY_REST_PTL; static const CString KEY_REST_PTW; static const CString KEY_REST_PTML; static const CString KEY_REST_PTMW; static const CString KEY_STEEPMS; static const CString KEY_STEEP2S; static const CString KEY_SYMMETRY; static const CString KEY_1STEPS; static const CString KEY_1STEPW; static const CString KEY_2STEPW; static const CString KEY_STEP3S; static const CString KEY_STEP3W; static const CString KEY_STEP4S; static const CString KEY_STEP4W; public: AecDbBaseStair(void); virtual ~AecDbBaseStair(void); //直线型楼梯 void SetLineStairData(const LineStair& data); void GetLineStairData(LineStair& data) const; //非直线型楼梯 void SetSFPXStair(const SFPXStair &data); void GetSFPXStair(SFPXStair &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; 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 Acad::ErrorStatus subMoveGripPointsAt(const AcDbVoidPtrArray &appData, const AcGeVector3d &offset, const int bitflags); //AEC 派生 virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const; virtual int GetSectionDraw(const AcGePoint3d& ptFr,const AcGePoint3d& ptTo,const AcGeVector3d& vtViewDir,const AcGeVector3d& vtTo, AcDbVoidPtrArray& arRegPtrs) const; SHJson::WValue& ToJson(bool bExprotGeo) const; bool ByJson(const SHJson::WValue &v); virtual void ProcessHlrResult(const AcArray &ar , const std::map> &preAr , AcArray &output) const; public: CString getUniqueNameBySFPXData() const; CString getUniqueNameByLineStairData() const; public: mutable std::vector m_solids; mutable std::vector m_pipes; };