ODA面建模器:分割体的面

本文包含有关如何分割体的面的信息。

有时,一个体的面由两个循环(内循环和外循环)组成。您可能希望将该面分割成两个面,使每个结果面都由一个循环组成。要执行此类操作,请使用splitFace()方法:

void Body::splitFace(Face* pFace,
                     const OdGePlane& pPlane,
                     std::vector* pNewOuter = NULL,
                     std::vector* pNewInner = NULL);

此方法通过其平面分割体的面,同时保留原始拓扑。

示例

下图中的立方体中间有一个孔,因此整个体由10个面组成。

 

The cube

 

顶面由两个循环(外部循环和内部循环)组成。所有相邻面都由具有四个边的外部循环组成。

 

The top face

 

下图中的红色平面是分割平面,红色向量是其法线。

 

the splitting plane

 

分割后,该实体有11个面(原始顶面被移除,并添加了两个新面)。每个新面都有一个外部循环(绿色折线n1-n8和s1-s8)。边e4和e5分别与边n1和s1配对。相邻面由一个包含五条边的循环组成。

 

It's possible to get the resulting faces according to their position relative to the splitting plane.

 

可以根据结果面相对于分割平面的位置来获取它们。

可选参数pNewOuter包含平面法向量所指向的面(由n1-n8循环定义的面)。

可选参数pNewInner包含所有由相反向量所指向的面(由s1-s8循环定义的面)。

今天就开始行动

免费试用 ODA 软件 60 天。
无风险,无需信用卡。

免费试用