#pragma once #include "aecdbentitybase.h" #include "AecDbCurveBase.h" #include "AecDbObjXDataMap.h" #include "define_class_xdata_key.h" #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif class DLLIMPEXP AecDbPingFaDim : public AecDbEntityBase { public: ACRX_DECLARE_MEMBERS(AecDbPingFaDim); protected: static Adesk::UInt32 kCurrentVersionNumber; public: AecDbPingFaDim(void); ~AecDbPingFaDim(void); public: virtual Acad::ErrorStatus subErase(Adesk::Boolean erasing); virtual Acad::ErrorStatus copyFrom(const AcRxObject *pSrc); virtual void subList() const; virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d &xform); 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 AcDbIntArray& indices ,const AcGeVector3d& offset); virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbVoidPtrArray &appData , const AcGeVector3d &offset , const int bitflags); virtual void GetGripText(int nPos, CString &sText); virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler *pFiler); virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler *pFiler) const; virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler *pFiler) { return Acad::eNotImplementedYet; } virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler *pFiler) const { return Acad::eNotImplementedYet; } Acad::ErrorStatus subGetOsnapPoints(AcDb::OsnapMode osnapMode, INT_PTR gsSelectionMark, const AcGePoint3d &pickPoint, const AcGePoint3d &lastPoint, const AcGeMatrix3d &viewXform, AcGePoint3dArray &snapPoints, AcDbIntArray &geomIds) const; public: virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const; virtual AecDbObjXDataMap *GetSpecialtyData(AcDb::OpenMode bMode = AcDb::kForWrite); virtual const AecDbObjXDataMap *GetSpecialtyData() const; public: DEF_XDATA_KEY_FUN(AllText, CString, _AllText_); DEF_XDATA_KEY_FUN(TextHeight, double, _TextHeight_); DEF_XDATA_KEY_FUN(TextStyle, AcDbObjectId, _TextStyle_); DEF_XDATA_KEY_FUN(StartPoint, AcGePoint3d, _StartPoint_); DEF_XDATA_KEY_FUN(LineDir, AcGeVector3d, _LineDir_); private: AecDbObjXDataMap m_mapSpecXData; }; class DLLIMPEXP CPingFaDimJig: public AcEdJig { public: CPingFaDimJig(void); virtual ~CPingFaDimJig(void); AcEdJig::DragStatus DoIt(); public: virtual AcEdJig::DragStatus sampler(); virtual AcDbEntity *entity() const; virtual Adesk::Boolean update(); public: AcGePoint3d m_pt1, m_pt2; int m_nStep; AecDbPingFaDim *m_pEnt; AecDbCurveBase *m_pBeamCurve; };