73 lines
1.5 KiB
C++
73 lines
1.5 KiB
C++
//-----------------------------------------------------------------------------+
|
|
// Copyright (C), 1998-2007, SH Software Co. Ltd.
|
|
// = FileName : XDcClip 类
|
|
// = Version : ver2.0
|
|
// = Author : zjq
|
|
// = CreateDate : 2002-09-09
|
|
// = Description: XDcClip 声明
|
|
// = Maintainers:
|
|
//
|
|
//-----------------------------------------------------------------------------+
|
|
#ifndef _XDcClip_H_
|
|
#define _XDcClip_H_
|
|
|
|
#ifndef _XPOLY2D_H_
|
|
#include "XPoly2D.h"
|
|
#endif
|
|
|
|
#ifndef _XPOINT_H_
|
|
#include "XPoint.h"
|
|
#endif
|
|
|
|
#ifndef _XDcObject_H_
|
|
#include "XDcObject.h"
|
|
#endif
|
|
|
|
#ifndef _DLIST_H_
|
|
#include "DList.h"
|
|
#endif
|
|
|
|
class GEOAPI XDcClip
|
|
{
|
|
public:
|
|
|
|
enum ClipType
|
|
{
|
|
kClipIn = 0x0000, //去除内部
|
|
kClipOut = 0x0001, //去除外部
|
|
kNoClipEdge = 0x0002, //保留边界
|
|
kAcGiClip = 0x0004
|
|
};
|
|
|
|
XDcClip(const XPoly2D& poly,int flag = 0);
|
|
|
|
virtual ~XDcClip();
|
|
|
|
virtual int GetClipType() const;
|
|
|
|
virtual bool IsClip(const XPoint&pt) const;
|
|
|
|
virtual bool DoClip(DList<XCurveSegment>& lstCurve) const;
|
|
|
|
virtual bool DoClip(DList<XPoly2D> &lstRegion) const;
|
|
|
|
virtual bool DoClip(DList<XDcObject>&lstObj) const;
|
|
|
|
virtual bool DoClip(DList<AcDbEntity> &lstEnt) const;
|
|
|
|
virtual XPoly2D 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;
|
|
XPoly2D m_poly;
|
|
AcGiClipBoundary *m_pAcGiClip;
|
|
};
|
|
#endif
|