OpenCasCade-实体边界表示数据结构-备忘录

class TopoDS_TShape : public Standard_Transient
{
...
private:
TopoDS_ListOfShape myShapes;
};

TopoDS_Shape的边界TopoDS_Shape存放在TopoDS_TShape的myShapes中,
有TopoDS_Vertex, Edge,Wire,Face,Shell,Solid,Component顺序层次,在Brep_Builder的add方法,需vertex添加到edge,edge添加到wire,wire 添加到face…这个顺序,就是在填myShapes,这个private的myShapes貌似需要TopoDS_Iterator来间接遍历访问。HashCode()返回指定范围的标识数。

class TopoDS_Shape 
{
public:
const Handle(TopoDS_TShape)& TShape() const { return myTShape; }
...
private:

  Handle(TopoDS_TShape) myTShape;
  TopLoc_Location myLocation;
  TopAbs_Orientation myOrient;
};

这些派生类例如TopoDS_TVertex只要类声明有DEFINE_STANDARD_RTTIEXT宏,通过DynamicType()->Name()得到派生类类名

只有TopoDS_Vertex,TopoDS_Edge,TopoDS_Face存有Geometry,

class BRep_TVertex : public TopoDS_TVertex
{
...
private:
gp_Pnt myPnt;
  Standard_Real myTolerance;
  BRep_ListOfPointRepresentation myPoints;
};

class BRep_TEdge : public TopoDS_TEdge
{
...
private:
BRep_ListOfCurveRepresentation myCurves;
};

class BRep_TFace : public TopoDS_TFace
{
...
private:
Handle(Geom_Surface) mySurface;
  Handle(Poly_Triangulation) myTriangulation;
}

BRep_TVertex有Pnt得到点的几何,还有点表示,它的具体类有 pointOnSurface,pointOnCurveOnSurface

BRep_TEdge的线表示具体类有curve3d,curveOnSurface,curveOn2Surface,通过线表示访问线几何,还有pcurve

BRep_TFace可以直接Surface()访问到face的几何

Brep_Builder有许多Makexxx,Add,Remove,Updatexxx实现就是在正确填写和修改TopoDS_xxx这个层次化的的边界表示的实体建模(solid modeling)这个实体模型的数据结构体,其它的modeling中的各种造型算法其实底下也是在修改这个数据结构,包括正确的拓扑和几何,几何最多的运算就是求交,产生曲面的交曲线和产生新的点,布尔运算是在xx_Pave这种运算后,经过点点,点线…,线线,线面,面面…多次由低维向高维几何元素间求交,得到Pave,马赛克这个词挺形象,这种两个体的face和edge碎在一起的face片,多个face片共邻一个edge,然后由体素正则集合运算法则,根据是并交差算符,从Pave 这得到体的哪些面片,正确的orientation,组织成新shell从而得到新体,这个过程还记住了原来体的哪些face edge vertex 对新体的贡献。

Brep_Tool有很多方便的方法读取几何方程(Geom_xx)和离散数据(poly_xx)如果brepmesh过以后。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值