Files
envi-code/SourceCode/Code2026/tg_shs/shs_pipebase/TCoverBooleanOper.h
T

39 lines
980 B
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
#ifndef _TCOVERBOOLEANOPER_H__
2026-09-28 15:28:50 +08:00
#define _TCOVERBOOLEANOPER_H__
#if _MSC_VER > 1000
#pragma once
#endif
class TCoverBooleanOper
{
public:
TCoverBooleanOper();
virtual ~TCoverBooleanOper();
public:
2026-10-04 00:04:20 +08:00
// 排序辅助支持
2026-09-28 15:28:50 +08:00
typedef struct PtOnCrItem
{
AcGePoint3d m_ptGeOn;
AcDbCurve * m_pCurve;
} PTONCRITEM,* PPTONCRITEM;
2026-10-04 00:04:20 +08:00
// 基本曲线图元转换为AcDb 曲线,用完需要释放缓存
2026-09-28 15:28:50 +08:00
static AcDbCurve* CurveElement2DbCurve(TDb::TCurveElement el);
2026-10-04 00:04:20 +08:00
// 点排序
2026-09-28 15:28:50 +08:00
static BOOL SortPoints(AcGePoint3dArray& points,AcDbCurve * pCurve);
2026-10-04 00:04:20 +08:00
// 曲线的布尔减运算,实compcurve 减去 虚 edge
2026-09-28 15:28:50 +08:00
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__