3D Geometry Types in OpenCascade
eryar@163.com
摘要Abstract:本文对OpenCascade中的几何类型进行简要介绍。文章内容来源为OpenCascade的介绍文档overview。
关键字Key Words:OpenCascade、Geometry
OpenCascade中Geom包提供了符合STEP part42部分的三维几何对象的实现。特别提供了以下功能:
l 对点、向量、曲线、曲面的描述;
l 它们在三维坐标空间中的位置;
l 它们的几何变换,如平移、旋转、镜像、缩放,或者这些变换的组合;
几何曲线曲面(Geom Curves and Surfaces)的重要特点是他们是参数化的(parameterized)。每个类都提供了对曲线、曲面参数方程相关计算的功能。特别地,计算如下点:
n 曲线上参数u对应的点;
n 曲面上参数(u,v)对应的点;
n 曲面上参数(u,v)处的1,2,...,N次导数的向量;
由于曲线曲面是参数表示的,所以Geom曲线、曲面是有方向(oriented)的。OpenCascade还提供了与参数表示的有向的曲线曲面不同的,类名相同或相似的包gp。Geom包还提供了将Geom与gp包中曲线曲面互相转换的功能。Geom提供了更复杂的曲线曲面,包含:
l Bezier和B样条曲线曲面Bezier and BSpline curves and surfaces;
l 扫掠曲面,如旋转、拉伸曲面swept surfaces, revolution and linear extrusion surfaces;
l 裁剪曲线曲面trimmed curves and surfaces;
l 偏移曲线曲面offset curves and surfaces;
Geom包中的对象根据继承结构来组织,Geom_Surface的类图如下所示:
所以,球(具体类为Geom_SphericalSurface)也是一个初等曲面(elementary surface),因为他由Geom_ElementarySurface派生。Bezier曲面(具体类为Geom_BezierSurface)也是一个有界曲面(bounded surface),因为他由Geom_BoundedSurface派生。这两种曲面还都是曲面(抽象类Geom_Surface)。由抽象基类Geom_Geometry派生的曲线、点、向量,描述了Geom包中的几何对象通用的属性。
这个派生结构是开放的,也可用来定义新的对象。
最后,Geom对象也在更复杂的数据结构中使用。这也是拓朴数据结构(topological data structure)中使用他们的原因。例如:
Geom包使用gp包中的功能来实现初等代数积分和对几何对象的基本分析;
描述可用于Geom对象的几何变换;
描述Geom对象的初等数据结构。
毕竟包Geom主要是提供数据而不是算法。可使参考包GC去查找关于构造Geom对象的更多算法。