Files
envi-code/SourceCode/Code2026/tg_shs/shs_pipebase/TCoverReleationManager.h
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

53 lines
1.4 KiB
C++

#ifndef _TCOVERRELEATIONMANAGER_H__
#define _TCOVERRELEATIONMANAGER_H__
#if _MSC_VER > 1000
#pragma once
#endif
class TDbInterfacesObj;
class TCoverReleationManager
{
public:
TCoverReleationManager();
virtual ~TCoverReleationManager();
// 更新遮挡显示
BOOL UpdateCoverDisplay(AcDbObjectIdArray& arIds);
// 更新遮挡显示
BOOL UpdateCoverDisplay(TDbInterfacesObj* pObj);
// 更新遮挡显示
BOOL UpdateCoverDisplay(AcDbObjectId& id);
// 排序支持
typedef struct PtOnCrItem
{
AcGePoint3d m_ptGeOn;
AcDbCurve * m_pCurve;
} PTONCRITEM,* PPTONCRITEM;
protected:
// 选择影响遮挡的实体 [ssget]
BOOL SelectEntityByExt(TDbInterfacesObj* pObj,AcDbObjectIdArray& arIDs);
// 提取两条曲线的遮挡曲线段
BOOL CoverIntersectWith(TComplexCurve& extThisComplex,TComplexCurve& extOtherComplex,
TComplexCurve& extThisCovered,TComplexCurve& extOtherCovered,
AcDbVoidPtrArray& arThisFaces,AcDbVoidPtrArray& arOtherFaces,
BOOL bThisCoverByOther = TRUE,BOOL bIsInsideCurves = FALSE);
// 复杂图元 解释到 db 实体曲线
BOOL ComplexCurve2DbCurves(TComplexCurve& ext,AcDbVoidPtrArray& arThisCurs,AcDbIntArray& arGsMarks);
// Z 方向投影排序点
BOOL SortPointsProjectZ(AcGePoint3dArray& points,AcDbCurve * pCurve);
//
void OrthProject2ThisPlane(AcGePoint3d& ptGeT,AcDbFace* pFace);
};
#endif //_TCOVERRELEATIONMANAGER_H__