如上图,假设一个环有7条边,针对每一条边建一条TopoDs_Edge,再构建Topo_Wire, 发现OCCT不仅对前一条边的终点和下一条边的起点做共享, 对位置相同(容差范围内)的点也有做共享。上面的场景构造出来的环有6个TopoDs_Vertex,而不是7个。
测试代码
BRepBuilderAPI_MakeWire wireBuilder;
for(int i = 0; i < size; i ++){
const TopoDS_Edge& edge = ...
wireBuilder.Add(edge);
}
TopoDS_Wire wire = wireBuilder.Wire();
问题
- 只要构造出6条边,不关心加入环的顺序,也是可以建环成功,6个点 ?
感兴趣的同学可以测试下
思考
OCCT拓扑连接性是通过共享底层拓扑来定义的,而不是由它们的特定顺序来定义的
后面会写篇文章聊聊这样设计的优缺点