Open CASCADE拓扑(Open CASCADE Topology)使我们无须几何体的2D或3D表示,即能获取和处理几何体数据。而Open CASCADE Geometry通过坐标或参数值描述物体,Topology在参数空间使用参数空间的位置或约束来描述数据的结构。
quote:
参数空间:对一条平面曲线,显式表示的一般形式是:y=f(x).隐式表示:f(x,y)=0。用非参数方程(无论是显式或隐式)表示曲线曲面,会存在一些问题,如与坐标轴相关,会出现斜率无穷大的情况。在几何造型系统中,曲线曲面方程通常表示成参数形式。平面曲线上任一点可表示成P(t)=[x(t),y(t)]
能用这样的方法描述的的拓扑结构有:Vertex, Face 和 Shape。其中,Vertex用局部参数空间定义,Face和Shape用受限参数空间定义。
各种拓扑结构的关系
简单的拓扑结构可以可以组合成复杂拓扑结构:
Edge的集合构成Wire,Face的集合构成Shell,Solid的集合构成CompSolid。
各种不同的shape构成Compound.
共享数据结构
shape在拓扑结构中是可以共享的,例如两条边的共点,两个面的共边。CASCADE用引用方法处理共享数据结构,当简单的引用不能满足需要的时候,就要用到另外的信息:orientation 和 local coordinate reference ( LCR )。其中,
× Orientation 用于指定shape在边界中的引用方法(shape的取向)。
× LCR 允许我们在不同于拓扑结构定义引用一个shape的位置。
TopoDS
OpenCASCADE的TopoDS package提供了两大类class
× TopoDS_Shape及其子类
包含orientation和location信息
× TopoDS_TShape及其子类
在local coordinate system描述shape,没有orientation信息。
TopoDS_TShape是所有shape描述的父类。它包含了一组shape。从TopoDS_TShape继承的类能够承载几何域的描述(例如,一个几何点和TVertex联系)。这个类通过引用操作。
TopoDS_Shape描述了对一个shape的引用。它包含了对抽象underlying shape、取向、和局部引用坐标(LRC)的引用。这个类是通过值来操作的,因此不能被共享。
继承自TopoDS_Shape的类
继承自TopoDS_Shape的类有:TopoDS_Vertex, TopoDS_Edge, TopoDS_Wire, TopoDS_Face, TopoDS_Shell, TopoDS_Solid, TopoDS_CompSolid, and TopoDS_Compound. TopoDS_Shape和继承自它的类,是处理拓扑结构的直接途径。TopoDS_TShape类被隐藏了。TopoDS_TShape在它原来的局部坐标系统描述物体,TopoDS_Shape是对TopoDS_TShape的引用,并增加了orientation和局部引用。
两者的联系:
结合共享数据结构部分就可以看出:TopoDS_TShape包含了真正的几何数据,TopoDS_Shape实现了数据共享机制,并没有复杂的数据结构。正因为如此,CASCADE中TopoDS_Shape是以value的方式处理,而TopoDS_TShape以引用的方式处理。
翻译自Open CASCADE文档 modat.pdf Modeling Data User's Guide