#pragma once #include "AecDbEntityBaseEx.h" #include "ObjInfoUnit.h" class AecXDbSymbSymmetry : public AecXDbEntityBaseEx { public: ACRX_DECLARE_MEMBERS(AecXDbSymbSymmetry); private: const static Adesk::UInt8 g_nVersion; protected: ADSGePoint3d m_ptStart, m_ptEnd; // 端点 double m_nDist1, m_nDist2; // 第一端线距离端点, 第二端线距离第一端线 double m_nTermLen; // 端线长度 // TArch6 data // AcDbHardPointerId m_idLayerCenter; public: AecXDbSymbSymmetry(); ~AecXDbSymbSymmetry(); virtual BOOL IsValid() const; virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag); // virtual Acad::ErrorStatus getClassID(CLSID* pClsid) const; virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler*); virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const; virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler*); virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const; virtual Acad::ErrorStatus subGetGripPoints(AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus subGetGripPoints(AcDbGripDataPtrArray& grips, const double curViewUnitSize, const int gripSize, const AcGeVector3d& curViewDir, const int bitflags) const { return Acad::eNotImplementedYet; } virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray & stretchPoints) const; virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); // drived from AecXDbEntityBaseEx virtual DrawModeType GetDrawType() const; virtual void GetTips(PtrList &) const; // 取动态属性显示数据 virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const; virtual const TCHAR *GetDefaultLayer() const; virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; // sg add 110301,支持统一标高 virtual bool UnifyElevation(double dElevation = 0.0); // Properties double GetDist1(BOOL bAsPaperUnit = TRUE) const; double GetDist2(BOOL bAsPaperUnit = TRUE) const; double GetTermLen(BOOL bAsPaperUnit = TRUE) const; ADSGePoint3d GetStartPoint() const; ADSGePoint3d GetEndPoint()const; // AcDbObjectId GetCenterLayerId() const { // return m_idLayerCenter; // } // void SetCenterLayerId(AcDbObjectId id) { // assertWriteEnabled(); // m_idLayerCenter=id; // } void SetDist1(double nDist1, BOOL bAsPaperUnit = TRUE); void SetDist2(double nDist2, BOOL bAsPaperUnit = TRUE); void SetTermLen(double nLen, BOOL bAsPaperUnit = TRUE); void SetStartPoint(ADSGePoint3d pt); void SetEndPoint(ADSGePoint3d pt); };