#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 & arObj); // 处理 XSectionFill 的遮挡问题. // 1.如果是 图块, 则判断其是否被遮挡 // 2.如果不是图块,则对其进行遮挡处理.并将处理后的结果存入原位置 static void PorcessCoverForFill(std::vector & arObj, std::vector &arFills); }; #endif