【OCC学习14】OCC Foundation Classes

一、OOC Modules

 OCC包含6大模块,简单描述如下:

模块名称功能描述
Foundation Classes基础类,包含被其他模块使用的数据结构及工具
Modeling Data实现2D/3D几何及拓扑数据结构
Modeling Algorithms实现拓扑和几何相关算法
Visualization可视化,用于显示2D、3D对象
Data Exchange数据交换,提供读写IGES、Step等文件
Application Framework又称OCAF,提供数据管理能力,简化CAD应用开发

 每个模块会包含若干tookit,每个tookit会编译成一个dll动态库。每个toolkit包含若干个包, 每个包包含若干class定义。

 二、Foundation Module

Foundation模块包含两个Tookit:TKernel、TKMath。

 三、TKernel toolkit

1. 标准包提供root类,供其他类进行派生。

  • 包含抽象基类Standard_Transient,这是其他Transient类root class
  • 提供C++标准类型的重定义
  • 提供运行时类型信息接口(RTTI)
  • 提供智能指针Handle,用于管理动态对象的分配与销毁

2. OCC对C++中的标准类型进行了重定义

src\Standard\Standard_TypeDef.hxx

 3. 智能指针Handle

   具体使用方式:

Handle(MyClass) anObject = new MyClass();

4. OCC RTTI:运行时获取对象类型信息

他的实现是通过在类中增加预定义函数,为此OCC提供了两个宏:

 5. 容器类

集合容器类位于NCollection包下,包括Array、Sequence、Map、List等数据结构。

6. 单位转换API:UnitsAPI

四、TKMath toolkit

1. gp包:提供了基础的2d、3d几何形体的定义,平时开发中用的应该比较多,主要的类包括:

  • 轴:gp_Ax1、gp_Ax2、gp_Ax22d、gp_Ax2d、gp_Ax3、gp_XY、gp_XYZ
  • 矢量:gp_Dir、gp_Dir2d、gp_Vec、gp_Vec2d、gp_Vec2f、gp_Vec3f
  • 点:gp_Pnt、gp_Pnt2d
  • 线:gp_Lin、gp_Lin2d
  • 平面:gp_Pln
  • 曲线:gp_Circ、gp_Circ2d、gp_Cone、gp_Elips、gp_Elips2d、gp_Parab、gp_Parab2d、gp_Hypr、gp_Hypr2d
  • 曲面:gp_Cylinder、gp_Sphere、gp_Torus
  • 变换:gp_Trsf、gp_Trsf2d、gp_Mat、gp_Mat2d、gp_GTrsf、gp_GTrsf2d

2. TColgp包:使用NCollection包下的容器,用typedef重新定义了gp对象容器。其每一个文件都类似于如下:

 3. GeomAbs包:定义了一些枚举,包括曲线类型、曲面类型等;

4. bnd:简单包围盒、包围球;

  • Bnd_Box:平行于坐标轴的包围盒;
  • Bnd_OBB:沿物体方向的包围盒;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值