遍历模型中的face、edge等——TopExp_Explorer类

TopExp_Explorer类:用于遍历。

参考官网内容,和整理使用笔记。 官网链接:

1、 上实例

//Example to find all the Faces in the Shape S :
//遍历模型 S 中的所有 TopAbs_FACE 类型的对象
for (Ex.Init(S,TopAbs_FACE); Ex.More(); Ex.Next()) 
{
          
    
	ProcessFace(Ex.Current());//处理这个face
}
//第二种方法
//遍历模型 S 中的所有 TopAbs_FACE 类型的对象
TopExp_Explorer Ex(S,TopAbs_FACE);
while (Ex.More()) 
{
          
    
	ProcessFace(Ex.Current()); //处理这个face
	Ex.Next(); 
}
//To find all the vertices which are not in an edge :
//要查找不在边(edge )中的所有顶点(vertices )
for (Ex.Init(S,TopAbs_VERTEX,TopAbs_EDGE); ...)

//To find all the faces in a SHELL, 
//要查找壳(SHELL)中的所有面(faces ),
TopExp_Explorer Ex1, Ex2;
for (Ex1.Init(S,TopAbs_SHELL),...) 
{
          
    
	// visit all shells 遍历shell
	for (Ex2.Init(Ex1.Current(),TopAbs_FACE),...) 
	{
          
    
		// visit all the faces of the current shell 
		//遍历当前shell的face
	}
 }
 
 //then all the faces not in a SHELL :
//然后查找不在壳(SHELL )中的所有面(faces ):
for (Ex1.Init(S,TopAbs_FACE,TopAbs_SHELL),...) {
          
    // visit all faces not in a shell }
//遍历可选择类型
enum TopAbs_ShapeEnum
{
          
   
TopAbs_COMPOUND,
TopAbs_COMPSOLID,
TopAbs_SOLID,
TopAbs_SHELL,
TopAbs_FACE,
TopAbs_WIRE,
TopAbs_EDGE,
TopAbs_VERTEX,
TopAbs_SHAPE
};

2、TopExp_Explorer类具体说明

详细描述:(Detailed Description) TopExp_Explorer类是从TopoDS包中访问拓扑数据结构的工具。 由以下各项组成: 1.要遍历的形状。 2.要查找的形状类型:例如:顶点、边。这种类型不能是形状(TopAbs_SHAPE)。 3.要避免的形状类型。例如:壳,边。默认情况下,这种类型是TopAbs_SHAPE,这意味着对探索没有限制。如果要避免的类型与要查找的类型相同,或要避免的类型比要查找的类型等级更低,则发现该类型没有效果。例如,搜索不在顶点中的边不会产生任何影响。

TopExp_Explorer类会访问所有结构,以查找所请求类型的形状,这些形状不包含在要避免的类型中。

3、常用函数

TopExp_Explorer () 
TopExp_Explorer (const TopoDS_Shape &S, const TopAbs_ShapeEnum ToFind, 
	const TopAbs_ShapeEnum ToAvoid=TopAbs_SHAPE)
 //ToFind查找类型;ToAvoid避免类型;S 待查找类型对象
~TopExp_Explorer ()
 	
void 	Init (const TopoDS_Shape &S, const TopAbs_ShapeEnum ToFind,
	const TopAbs_ShapeEnum ToAvoid=TopAbs_SHAPE)
 //同上面构造函数
 
Standard_Boolean 	More () const
//如果还有下一个对象就返回true. 	Returns True if there are more shapes in the exploration. 
 
void 	Next ()
// iteration移动到下一个。	Moves to the next Shape in the exploration. Exceptions Standard_NoMoreObject if there are no more shapes to explore.
 
const TopoDS_Shape & 	Value () const
//返回当前对象 	Returns the current shape in the exploration. Exceptions Standard_NoSuchObject if this explorer has no more shapes to explore.
 
const TopoDS_Shape & 	Current () const
//获得当前对象 	Returns the current shape in the exploration. Exceptions Standard_NoSuchObject if this explorer has no more shapes to explore.
 
void 	ReInit ()
//用原始参数重新初始化。	Reinitialize the exploration with the original arguments.
 
Standard_Integer 	Depth () const
//返回当前勘探深度。0是探索自身的形状。
// 	Returns the current depth of the exploration. 0 is the shape to explore itself. 
 
void 	Clear ()
// 	Clears the content of the explorer. It will return False on More(). 
 
void 	Destroy ()
//无
经验分享 程序员 微信小程序 职场和发展