38 lines
980 B
C++
38 lines
980 B
C++
#ifndef _XCoverVisibleRelationCal_H_
|
|
#define _XCoverVisibleRelationCal_H_
|
|
|
|
#include "SectionStructDef.h"
|
|
#include "XPoly2D.h"
|
|
|
|
class GEOAPI XCoverVisibleRelationCal
|
|
{
|
|
public:
|
|
|
|
XCoverVisibleRelationCal(){};
|
|
~XCoverVisibleRelationCal(){};
|
|
|
|
enum SectionRelative // 表明上下两面之间的遮掩关系
|
|
{
|
|
// Top面完全包含Low面
|
|
kTopContainLow,
|
|
// Low面完全包含Top面 或者 两面互不包含,且不相交
|
|
kLowContainTop,
|
|
// 两面存在交集
|
|
kIntersection,
|
|
// 两面不存在交集,且组成面的线段也不相交
|
|
kNoneIntersection,
|
|
};
|
|
|
|
// 处理两个面的遮挡
|
|
static bool CoverVisibleCal(const ObjSectionRecord &top, ObjSectionRecord &low);
|
|
// 处理多个没有排序面的遮挡
|
|
static void CoverMultipleRecordCal(std::vector<ObjSectionRecord> & arObj);
|
|
|
|
// 处理 XSectionFill 的遮挡问题.
|
|
// 1.如果是 图块, 则判断其是否被遮挡
|
|
// 2.如果不是图块,则对其进行遮挡处理.并将处理后的结果存入原位置
|
|
static void PorcessCoverForFill(std::vector<ObjSectionRecord> & arObj, std::vector<AcDbVoidPtrArray> &arFills);
|
|
};
|
|
|
|
#endif
|