ModingData-3

Collections of shapes

TopTools包提供了各种集合

Brep_Builder BB;

TopTools_ListIteratorOfListOfShape anItl(anEdges);
TopTools_MapOfShape anEmap = anItl.Value;
for(;anIt1.More();anIt1.Next())
    BB.Remove(aWire,anIt1.Value());

for(anIt1.Initialize(edges);anIt1.More(),anIt1.Next())
{
    TopoDS_Shape anEdge = anIt1.Value();
    if(anEmp.Contains(anEdge))
        anEdge.Reverse();
    BB.Add(aWire,anEdge);
}

Exploration tools

TopoDS_Iterrator:浏览第一级sub-shapes

TopExp_Explorer:浏览所有的sub-shapes,可以设定浏览特定的类型

TopExp_Explorer anExp(aShape,TopAbs_Edge);
for(;anExp.More(),anExp.Next())
{
    TopoDS_Edge anEdge = TopoDS::Edge(anExp.Current());
}

TopExp::MapShapes() :浏览所有的sub-shapes并且将他们放到一个map中

请添加图片描述

TopExp::MapShapeAndAncestors():该方法返回引用了某个对象的所有图形

在OCC中,没有一个通过sub-shape指向它父对象的指针,但是TopExp::MapShapesAndAncestors()可以存在这些信息,比如,你想查找所有包含指定边的面,可以使用该方法

B-Rep entities

BRep_TVertex,BRep_TEdge,BRep_TFace通常为了给拓扑模型增加几何信息,而几何信息会以不同的方式存储在拓扑实体中

BRep_TVertex几何信息被存储的形式是:

  • 一个3D的点(gp_Pnt),所有的vertex都会这样
  • 一系列的点则会存储为:
    • 一个在curve上的点(如果使用点来限制edge),使用一个Geom_Curve和一个参数来存储
    • 一个在curve上的点,并且curve在一个面上,使用一个Geom_Surface,一个Geom_2dCurve,一个参数
    • 一个在面上的点(如果使用点来限制面),使用一个Geom_Surface,U方向参数,V方向参数

BRep_TEdge几何信息被存储为curve表示的列表:

BRep_TEdge会被存储为一系列的curve,他可以是:

  • 一个3D的Curve和两个在一个curve上的两个参数(Geom_Curve,p1,p2)
  • 一个在面上的Curve(Geom2d_Curve,p1,p2,Geom_Surface,U,V)

BRep_TFace的几何信息被存储为Geom_Surface

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

步、步、为营

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值