#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 AecDbRiverGroove : public AecDbEwPipeBase { public: ACRX_DECLARE_MEMBERS(AecDbRiverGroove); protected: static Adesk::UInt32 kCurrentVersionNumber; public: AecDbRiverGroove(void); virtual ~AecDbRiverGroove(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 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 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); void SetDashLayer(AcDbObjectId& idLayer); AcDbObjectId GetDashLayer() const; void SetCenterLayer(AcDbObjectId& idLayer); AcDbObjectId GetCenterLayer() const; bool GetSrcString(CString &src); void SetSrcString(LPCTSTR src); 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(D, double, _D_); DEF_XDATA_KEY_FUN(N, double, _N_); DEF_XDATA_KEY_FUN(K, double, _K_); DEF_XDATA_KEY_FUN(L1, double, _L1_); DEF_XDATA_KEY_FUN(L, double, _L_); DEF_XDATA_KEY_FUN(L2, double, _L2_); DEF_XDATA_KEY_FUN(T, double, _T_); DEF_XDATA_KEY_FUN(j, double, _j_); DEF_XDATA_KEY_FUN(b, double, _b_); DEF_XDATA_KEY_FUN(B1, double, _B1_); DEF_XDATA_KEY_FUN(B2, double, _B2_); DEF_XDATA_KEY_FUN(La, double, _La_); // 观察探头纵向进深 DEF_XDATA_KEY_FUN(h, double, _h_); // 观察探头高 DEF_XDATA_KEY_FUN(D1, double, _D1_); // 观察探头口宽 DEF_XDATA_KEY_FUN(D2, double, _D2_); // 观察探头外宽 DEF_XDATA_KEY_FUN(X, double, _X_); // 安装下沿长度 #pragma endregion public: AecGripData* m_pGripAppData; AcDbObjectId m_idDashLayer; AcDbObjectId m_idCenterLayer; };