3D Geometry Types in OpenCascade

3D Geometry Types in OpenCascade

[email protected]

摘要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的类图如下所示:

3D Geometry Types in OpenCascade_第1张图片

所以,球(具体类为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对象的更多算法。

 

PDF Version: 3D Geometry Types in OpenCascade

你可能感兴趣的:(3D Geometry Types in OpenCascade)