53 lines
1.4 KiB
C++
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__
|