49 lines
1015 B
C++
49 lines
1015 B
C++
#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<GeCurveSegment>& lstCurve) const;
|
|
|
|
virtual bool DoClip(PtrList<GePoly2D> &lstRegion) const;
|
|
|
|
virtual bool DoClip(PtrList<GeDbCurveEntity>&lstObj) const;
|
|
|
|
virtual bool DoClip(PtrList<AcDbEntity> &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;
|
|
}; |