本文包含有关如何分割体的面的信息。
有时,一个体的面由两个循环(内循环和外循环)组成。您可能希望将该面分割成两个面,使每个结果面都由一个循环组成。要执行此类操作,请使用splitFace()方法:
void Body::splitFace(Face* pFace,
const OdGePlane& pPlane,
std::vector* pNewOuter = NULL,
std::vector* pNewInner = NULL);
此方法通过其平面分割体的面,同时保留原始拓扑。
示例
下图中的立方体中间有一个孔,因此整个体由10个面组成。
顶面由两个循环(外部循环和内部循环)组成。所有相邻面都由具有四个边的外部循环组成。
下图中的红色平面是分割平面,红色向量是其法线。
分割后,该实体有11个面(原始顶面被移除,并添加了两个新面)。每个新面都有一个外部循环(绿色折线n1-n8和s1-s8)。边e4和e5分别与边n1和s1配对。相邻面由一个包含五条边的循环组成。
可以根据结果面相对于分割平面的位置来获取它们。
可选参数pNewOuter包含平面法向量所指向的面(由n1-n8循环定义的面)。
可选参数pNewInner包含所有由相反向量所指向的面(由s1-s8循环定义的面)。