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

52 lines
1.4 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
#ifndef _TCOVERRELEATIONMANAGER_H__
2026-09-28 15:28:50 +08:00
#define _TCOVERRELEATIONMANAGER_H__
#if _MSC_VER > 1000
#pragma once
#endif
class TDbInterfacesObj;
class TCoverReleationManager
{
public:
TCoverReleationManager();
virtual ~TCoverReleationManager();
2026-10-04 00:04:20 +08:00
// 更新遮挡显示
2026-09-28 15:28:50 +08:00
BOOL UpdateCoverDisplay(AcDbObjectIdArray& arIds);
2026-10-04 00:04:20 +08:00
// 更新遮挡显示
2026-09-28 15:28:50 +08:00
BOOL UpdateCoverDisplay(TDbInterfacesObj* pObj);
2026-10-04 00:04:20 +08:00
// 更新遮挡显示
2026-09-28 15:28:50 +08:00
BOOL UpdateCoverDisplay(AcDbObjectId& id);
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;
protected:
2026-10-04 00:04:20 +08:00
// 选择影响遮挡的实体 [ssget]
2026-09-28 15:28:50 +08:00
BOOL SelectEntityByExt(TDbInterfacesObj* pObj,AcDbObjectIdArray& arIDs);
2026-10-04 00:04:20 +08:00
// 提取两条曲线的遮挡曲线段
2026-09-28 15:28:50 +08:00
BOOL CoverIntersectWith(TComplexCurve& extThisComplex,TComplexCurve& extOtherComplex,
TComplexCurve& extThisCovered,TComplexCurve& extOtherCovered,
AcDbVoidPtrArray& arThisFaces,AcDbVoidPtrArray& arOtherFaces,
BOOL bThisCoverByOther = TRUE,BOOL bIsInsideCurves = FALSE);
2026-10-04 00:04:20 +08:00
// 复杂图元 解释到 db 实体曲线
2026-09-28 15:28:50 +08:00
BOOL ComplexCurve2DbCurves(TComplexCurve& ext,AcDbVoidPtrArray& arThisCurs,AcDbIntArray& arGsMarks);
2026-10-04 00:04:20 +08:00
// Z 方向投影排序点
2026-09-28 15:28:50 +08:00
BOOL SortPointsProjectZ(AcGePoint3dArray& points,AcDbCurve * pCurve);
//
void OrthProject2ThisPlane(AcGePoint3d& ptGeT,AcDbFace* pFace);
};
#endif //_TCOVERRELEATIONMANAGER_H__