72 lines
1.6 KiB
C++
72 lines
1.6 KiB
C++
//-----------------------------------------------------------------------------+
|
|
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
|
|
// = FileName : TGGiClipBoundary 类
|
|
// = Version : ver2.0
|
|
// = Author : wlw
|
|
// = CreateDate : 2002-09-09
|
|
// = Description: TGGiClipBoundary 声明
|
|
// = Maintainers:
|
|
//
|
|
//-----------------------------------------------------------------------------+
|
|
#ifndef _TGGICLIPBOUNDARY_H_
|
|
#define _TGGICLIPBOUNDARY_H_
|
|
|
|
#ifndef _TGGEPOLY2D_H_
|
|
#include "TGGePoly2D.h"
|
|
#endif
|
|
|
|
#ifndef _TADSGEPOINT3D_H_
|
|
#include "TADSGePoint3d.h"
|
|
#endif
|
|
|
|
#ifndef _TGGEDBCURVEENTITY_H_
|
|
#include "TGGeDbCurveEntity.h"
|
|
#endif
|
|
|
|
#ifndef _TDPTRLIST_H_
|
|
#include "TDPtrList.h"
|
|
#endif
|
|
|
|
class GEOAPI TGGiClipBoundary
|
|
{
|
|
public:
|
|
|
|
enum ClipType
|
|
{
|
|
kClipIn = 0x0000, //去除内部
|
|
kClipOut = 0x0001, //去除外部
|
|
kNoClipEdge = 0x0002, //保留边界
|
|
kAcGiClip = 0x0004
|
|
};
|
|
|
|
TGGiClipBoundary(const TGGePoly2D& poly,int flag = 0);
|
|
|
|
virtual ~TGGiClipBoundary();
|
|
|
|
virtual int GetClipType() const;
|
|
|
|
virtual bool IsClip(const TADSGePoint3d&pt) const;
|
|
|
|
virtual bool DoClip(TDPtrList<TGGeCurveSegment>& lstCurve) const;
|
|
|
|
virtual bool DoClip(TDPtrList<TGGePoly2D> &lstRegion) const;
|
|
|
|
virtual bool DoClip(TDPtrList<TGGeDbCurveEntity>&lstObj) const;
|
|
|
|
virtual bool DoClip(TDPtrList<AcDbEntity> &lstEnt) const;
|
|
|
|
virtual TGGePoly2D 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;
|
|
TGGePoly2D m_poly;
|
|
AcGiClipBoundary *m_pAcGiClip;
|
|
};
|
|
#endif |