#pragma once #include "ADSGePoint3d.h" class GeEntity { public: enum TEntityId { eEntity, e3DFace, ePlane, eHatch, eCurve, eShape, eCircle, eArc, eLinearEnt, eLine, eCurveSegment, eAFace3D, eDbCurveSegEntity, eRegionSide, eDirectionCurve, eCurveSegSeg, eCurveSegunique, ePoly, ePolygonEx, ePoly2D, ePoly3D, eRegion2D }; virtual bool IsKindOf(TEntityId entType) const; virtual TEntityId Type() const; virtual void CopyFrom(const GeEntity* pImpSrc); virtual void TransformBy(ads_matrix mat); virtual int GetExtend(ADSGePoint3d &ptlow, ADSGePoint3d &ptup) const; //图形长度,周长 virtual double GetLength() const; virtual int Make(const TCHAR *szlay = NULL) const; virtual int MakeEntity(const EntitySet* pEntity) const; virtual int HitTest2d(const ADSGePoint3d &ptTest) const; virtual int OSnap(int nMode, ADSGePoint3d &ptPick) const; protected: GeEntity(); virtual ~GeEntity(); };