Open CASCADE Modeling Data – Topology
eryar@163.com
一、概述 Overview
Open CASCADE拓朴数据结构可以在几何对象不显示的情况下访问或控制对象的数据。拓朴数据结构在参数空间描述了几何对象,而Geometry用坐标和参数值来定义几何对象。为了提供这种描述,Open CASCADE抽象的拓朴结构提供以下功能:
u 跟踪形状的位置;
u 对形状、子形状、状态进行命名;
u 操纵形状和子形状;
u 遍历拓朴数据结构;
u 使用形状的列表和映射;
二、跟踪形状的位置 Keeping track of Shape Location
局部坐标系(Local Coordinate System)可看作如下两部分构成:
u 由原点和三个标准正交化后的向量组成的右手坐标系;包gp_Ax2对应着这个定义。
u 局部坐标到全局引用的坐标变换。gp_Trsf对应着这个定义。
包TopLoc标识两个方面:
u 基本引用坐标系;
u 由基本坐标组成的组合坐标系;
两个坐标系若由相同的基本坐标系按相同的顺序组成,则认为这两个坐标系也相同。例如:若有以下三个基本坐标系:R1,R2,R3;组合坐标系分别是:
C1 = R1 * R2;
C2 = R2 * R3;
C3 = C1 * R3;
C4 = R1 * C2;
注意到C3和C4是相同的,因为它们都是R1 * R2 * R3。
包TopLoc位于Toolkit TKMath中。
u TopLoc的实现 Implementation of TopLoc
n TopLoc_Datum3D表示一个基本三维坐标系;
n TopLoc_Location表示组合坐标系;
u 类TopLoc_Datum3D
类TopLoc_Datum3D表示基本坐标系的改变。这个改变是共享的,所以由类MMgt_TShared派生而来。这个坐标系由gp_Trsf表示。这个变换没有缩放因子。
u 类TopLoc_Location
类TopLoc_Location表示一系列基本坐标系,并且这些坐标系是按顺序存储的。
三、对形状、子形状、状态进行命名
包TopAbs提供了描述拓朴结构常用的枚举类型以及对这些枚举类型的处理,其中不包含类。因为对拓朴结构来说太常用,所以将它剥离出去了,这就避免了重新定义这些枚举类型。包TopAbs定义以下三个方面:
n 拓朴结构类型 (TopAbs_ShapeEnum);
n 朝向 (TopAbs_Orientation);
n State (TopAbs_State)
u 拓朴结构类型 Topological Types
TopAbs包含TopAbs_ShageEnum的枚举定义,定义了不同的拓朴元素:
u COMPOUND
u COMPSOLID
u SOLID
u SHELL
u FACE
u WIRE
u EDGE
u VERTEX
u SHAPE
拓朴结构表示的模型可以认为是有相邻关系的图形对象。当在二维和三维空间中用拓朴结构来建模时,图形元素必须属于上述枚举类型。包TopAbs列举出了所有模型都包含的图形元素类型。这些类型不能被扩展,但是可以使用它们的子集。如在二维空间中SOLID没有什么作用。
每种枚举类型表示的含义如下所示:
COMPOUND | 表示一组拓朴对象 |
COMPSOLID | 表示由面相连的一组实体 |
SOLID | 三维实体 |
SHELL | 边相边的面的集合,可以不闭合 |
FACE | 在二维空间中是平面,在三维空间是表面的一部分 |
WIRE | 顶点相连边集 |
EDGE | 拓朴元素,对应受限的曲线,是一维的 |
VERTEX | 拓朴元素对应点,是零维的 |
SHAPE | 是以上类型的抽象类 |
上述类型从最复杂到最简单,因为可以用更简单的元素来描述一个对象。如面引用了WIREs, EDGEs, 和VERTICES。
u 朝向 Orientation
朝向由TopAbs_Orientation表示。朝向是方向的一个通用说法。
u 状态 State
四、操纵形状和子形状
五、遍历拓朴数据结构
六、使用列表和映射
eryar@163.com
Shanghai China
2012-10-24