Files

72 lines
1.5 KiB
C++
Raw Permalink Normal View History

2026-10-04 00:04:20 +08:00
//-----------------------------------------------------------------------------+
2026-09-28 15:28:50 +08:00
// Copyright (C), 1998-2007, SH Software Co. Ltd.
2026-10-04 00:04:20 +08:00
// = FileName : XDcClip 类
2026-09-28 15:28:50 +08:00
// = Version : ver2.0
// = Author : zjq
// = CreateDate : 2002-09-09
2026-10-04 00:04:20 +08:00
// = Description: XDcClip 声明
2026-09-28 15:28:50 +08:00
// = 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
{
2026-10-04 00:04:20 +08:00
kClipIn = 0x0000, //去除内部
kClipOut = 0x0001, //去除外部
kNoClipEdge = 0x0002, //保留边界
2026-09-28 15:28:50 +08:00
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