#pragma once #include "GePoly2D.h" #include "ADSGePoint3d.h" #include "superlist.h" #include "GeDbCurveEntity.h" class GiClipBoundary { public: enum ClipType { kClipIn = 0x0000, //去除内部 kClipOut = 0x0001, //去除外部 kNoClipEdge = 0x0002, //保留边界 kAcGiClip = 0x0004 }; GiClipBoundary(const GePoly2D& poly,int flag = 0); virtual ~GiClipBoundary(); virtual int GetClipType() const; virtual bool IsClip(const ADSGePoint3d&pt) const; virtual bool DoClip(PtrList& lstCurve) const; virtual bool DoClip(PtrList &lstRegion) const; virtual bool DoClip(PtrList&lstObj) const; virtual bool DoClip(PtrList &lstEnt) const; virtual GePoly2D GetClipPoly() const; virtual AcGiClipBoundary* GetAcGiClip() const; virtual bool IsExtentsClip(AcDbExtents& ext); protected: int m_clipType; bool m_bExtExtracted; ads_point m_ptLow; ads_point m_ptUpp; GePoly2D m_poly; AcGiClipBoundary *m_pAcGiClip; };