#pragma once #include "AecDbBDPipeBase.h" #include "AecComplexCurveDraw.h" #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif //标准柱子,其他截面柱子调用底层 class DLLIMPEXP AecDbColumn : public AecDbBDPipeBase { public: ACRX_DECLARE_MEMBERS(AecDbColumn); protected: static Adesk::UInt32 kCurrentVersionNumber; public: static const CString KEY_COL_MODEL; static const CString _JZ_PT_INNER; static const CString _JZ_PT_A; static const CString _JZ_PT_B; public: AecDbColumn(void); ~AecDbColumn(void); //矩形柱子 void SetColumnData(const AcGePoint3d& ptBom,double dL,double dW,double dH,double dRotate); // 通用设置 void GetColumnData(ColumnParam& data) const; void SetPosition(const AcGePoint3d& ptPos); AcGePoint3d GetPosition() const; void SetHeight(double dH); double GetHeight() const; void SetRotation(double dRot); double GetRotation() const; void SetRect(double dL,double dW); AcGePoint2d GetRect() const; //2D的提取和融合处理设置 void GetDraw2dables(AecComplexCurve& draw2d) const; AcDbPolyline *GetDraw2dables() const; //获取柱子的截面闭合曲线真实位置集2D,圆柱折算为pl AcDbPolyline* GetConvexhull2d() const; // 设置标高 void SetElev(const double &dElev); public: 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); virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray& stretchPoints) const; virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices,const AcGeVector3d& offset); 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 Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const; virtual void subList() const; virtual int ComparedTo(AecDbCurveBase* pCurOther) const; virtual SHJson::WValue& ToJson(bool bExprotGeo = true) const; virtual bool ByJson(const SHJson::WValue &v); virtual bool GetBimInfoTip(CString& sInfoTip) const; virtual void ProcessHlrResult(const AcArray &ar , const std::map> &preAr , AcArray &output) const; virtual void PreprocessForHlr(const AcGePoint3d &ptPlnO , const AcGeVector3d &vtPlnN , AcArray &ar) const; virtual bool GetProperties(SimpleProperty::PropertySetByIndex &porpertys) const; virtual bool SetProperties(SimpleProperty::PropertySetByName &porpertys); protected: EPosition ExplainGripIndex(int nIndex,CString& sTip) const; Acad::ErrorStatus ImpGetGripPoints(AcGePoint3dArray& gripPoints,const int bitflags) const; Acad::ErrorStatus SubAddDimPoints(AcDbGripDataPtrArray& grips,const AcGeVector3d& curViewDir) const; public: AcDbRegion *makeJZRegion(); };