#pragma once #include "aecdbewpipebase.h" #include "define_class_xdata_key.h" #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif class DLLIMPEXP AecDbXBG : public AecDbEwPipeBase { public: ACRX_DECLARE_MEMBERS(AecDbXBG); protected: static Adesk::UInt32 kCurrentVersionNumber; public: AecDbXBG(void); virtual ~AecDbXBG(void); #pragma region inherit interface 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 subExplode(AcDbVoidPtrArray& entitySet) const; virtual void subList() const; virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d &mat); virtual Acad::ErrorStatus subGetGripPoints(AcDbGripDataPtrArray& grips, const double curViewUnitSize, const int gripSize, const AcGeVector3d& curViewDir, const int bitflags) const; virtual Acad::ErrorStatus subGetGripPoints(AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbVoidPtrArray& appData, const AcGeVector3d& offset, const int bitflags); virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices,const AcGeVector3d& offset); virtual void GetGripText(int nPos, CString& sText); virtual Acad::ErrorStatus subIntersectWith( const AcDbEntity* pEnt, AcDb::Intersect intType, AcGePoint3dArray& points, INT_PTR thisGsMarker, INT_PTR otherGsMarker) const; virtual Acad::ErrorStatus subIntersectWith( const AcDbEntity* pEnt, AcDb::Intersect intType, const AcGePlane& projPlane, AcGePoint3dArray& points, INT_PTR thisGsMarker, INT_PTR otherGsMarker) const; //AEC 派生 virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const; virtual bool TransformAssocInf(int nInf,const AcGeMatrix3d& xform); virtual LPCTSTR GetGripCmd() const; virtual SHJson::WValue& ToJson(bool bExprotGeo = true) const; virtual bool ByJson(const SHJson::WValue &v); bool GetSrcString(CString &src); void SetSrcString(LPCTSTR src); void setElevation(const double &dElev); double getElevation(); virtual void ProcessHlrResult(const AcArray &ar , const std::map> &preAr , AcArray &output) const; #pragma endregion #pragma region key and set/get function // 材质 DEF_XDATA_KEY_FUN(Material, CString, _MATERIAL_); // 类型 DEF_XDATA_KEY_FUN(Type, int, _TYPE_); // 斜管内切圆直径 DEF_XDATA_KEY_FUN(R, double, _R_); // 间距 DEF_XDATA_KEY_FUN(S, double, _S_); // 壁厚 DEF_XDATA_KEY_FUN(T, double, _T_); // 与水平面夹角 DEF_XDATA_KEY_FUN(A, double, _A_); // 沉淀器高 DEF_XDATA_KEY_FUN(H, double, _H_); // 轮廓线 DEF_XDATA_KEY_FUN(Profile, CString, _PROFILE_); #pragma endregion };