40 lines
980 B
C++
40 lines
980 B
C++
#ifndef _TCOVERBOOLEANOPER_H__
|
|
#define _TCOVERBOOLEANOPER_H__
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
class TCoverBooleanOper
|
|
{
|
|
public:
|
|
TCoverBooleanOper();
|
|
virtual ~TCoverBooleanOper();
|
|
|
|
public:
|
|
|
|
// 排序辅助支持
|
|
typedef struct PtOnCrItem
|
|
{
|
|
AcGePoint3d m_ptGeOn;
|
|
AcDbCurve * m_pCurve;
|
|
} PTONCRITEM,* PPTONCRITEM;
|
|
|
|
// 基本曲线图元转换为AcDb 曲线,用完需要释放缓存
|
|
static AcDbCurve* CurveElement2DbCurve(TDb::TCurveElement el);
|
|
|
|
// 点排序
|
|
static BOOL SortPoints(AcGePoint3dArray& points,AcDbCurve * pCurve);
|
|
|
|
// 曲线的布尔减运算,实compcurve 减去 虚 edge
|
|
static BOOL BoolSubtract(TComplexCurve& curveThisEdge,const TDbExtentsEdge& otherEdge);
|
|
|
|
static AcDbArc* FormatArc(AcGePoint3d& ptGe1,AcGePoint3d& ptGe2,AcGePoint3d& ptGe3);
|
|
|
|
static BOOL RealInsideOther(AcDbLine& lineReal,TDb::TCurveElement& elOtherSeg);
|
|
|
|
static BOOL RealInsideOther(AcDbArc* pArcReal,AcDbArc* pArcEdge);
|
|
};
|
|
|
|
#endif //_TCOVERBOOLEANOPER_H__
|