#pragma once #include "AecDbEntityBase.h" #include "AecDbObjXDataMap.h" #ifdef EARTHWORM_EXPORT #define DLLIMPEXP __declspec(dllexport) #else #define DLLIMPEXP __declspec(dllimport) #endif struct AecGripData; class DLLIMPEXP AecDbLandForm : public AecDbEntityBase { public: ACRX_DECLARE_MEMBERS(AecDbLandForm); protected: static Adesk::UInt32 kCurrentVersionNumber; public: AecDbLandForm(void); virtual ~AecDbLandForm(void); void SetPoints(const AcGePoint3dArray& arPts); bool GetPoints(AcGePoint3dArray& arPts) const; bool IsPointInSide(const AcGePoint3d& ptHit,AcGePoint3d& ptOn); //AcDbEntity 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 copyFrom(const AcRxObject* pSrc); virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbVoidPtrArray& appData,const AcGeVector3d& offset,const int bitflags); virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); virtual Acad::ErrorStatus subGetOsnapPoints( AcDb::OsnapMode osnapMode, INT_PTR gsSelectionMark, const AcGePoint3d& pickPoint, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus subGetGeomExtents(AcDbExtents& extents) const; virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler*); virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const; virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler*); virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const; //draw virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const; virtual const AecDbObjXDataMap* GetSpecialtyData() const; virtual AecDbObjXDataMap* GetSpecialtyData(AcDb::OpenMode bMode = AcDb::kForWrite); protected: AecGripData* m_pGripAppData; //夹点 //专业数据 AcGePoint3dArray m_arPts; AecDbObjXDataMap m_mapSpecXData; };