#pragma once #include "aecdbewpipebase.h" class AcDbX3dSolid; #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif //Z折线楼梯 class DLLIMPEXP AecDbZLineStair : public AecDbEwPipeBase { public: ACRX_DECLARE_MEMBERS(AecDbZLineStair); protected: static Adesk::UInt32 kCurrentVersionNumber; public: AecDbZLineStair(void); virtual ~AecDbZLineStair(void); void SetZLineStairData(const ZLineStair& data); void GetZLineStairData(ZLineStair& 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 int GetSectionDraw(const AcGePoint3d& ptFr,const AcGePoint3d& ptTo,const AcGeVector3d& vtViewDir,const AcGeVector3d& vtTo, AcDbVoidPtrArray& arRegPtrs) const; virtual SHJson::WValue& ToJson(bool bExprotGeo = true) const; virtual CString getUniqueName() const; virtual void ProcessHlrResult(const AcArray &ar , const std::map> &preAr , AcArray &output) const; protected: Acad::ErrorStatus DrawZLine(const AcGePoint3d& ptZCen,const AcGeVector3d& vtDir,double dSteepW,double dStairSW,AcDbVoidPtrArray& arEntDrawPtrs) const; Acad::ErrorStatus DrawLeader(AcGiDraw &dc,AcGePoint3d& pt0,AcGePoint3d& pt1,int nColor = 256) const; Acad::ErrorStatus DrawUporDown(AcGiDraw &dc,const AcGePoint3d& ptFr,const AcGeVector3d& vtOff,int nUporDown) const; //3d Acad::ErrorStatus DrawSteep3d(AcGiDraw &dc,const AcGePoint3d& ptFr,const AcGePoint3d& ptTo,ZLineStair& data) const; Acad::ErrorStatus DrawGuarBar3d(AcGiDraw &dc,AcGePoint3dArray& arGBarPts,const AcGeVector3d& vtLR,ZLineStair& data) const; public: // 缓存3D绘制,为toJson使用 mutable std::vector m_solids; mutable std::vector m_pipes; };