此功能是对之前的网格交互操作的扩充,并无实时性的创新,此次修改是根据用于选中任意的模型树节点,通过找到该节点的所有shape后,对这些shape进行网格划分。修改实现了任意节点的隐藏、显示、高亮、消隐功能以及任意节点的网格划分功能。以网格划分为例:
核心思想是对查找到的所有的shape合并为一个新的shape,核心代码如下:
TopoDS_Shape QFormDoc::makeOneShape(Handle(TopTools_HSequenceOfShape) theShapes)
{
TopoDS_Shape res;
Standard_Integer nb = theShapes->Length();
if (nb == 0)
return res;
else if (nb == 1)
return theShapes->Value(1);
else
{
TopoDS_Compound C;
BRep_Builder B;
B.MakeCompound(C);
for (Standard_Integer i = 1; i <= nb; i++)
{
B.Add(C, theShapes->Value(i));
}
return C;
}
}
其他接口不需要变化,直接把新的shape传给netgen或者gmsh就行了,显示这些也是一样的,直接来先看下效果:
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END