Open CASCADE 介绍

目录

概览

基础类

建模数据

建模算法

Mesh

可视化

数据交换

形状修复

应用程序框架

绘制测试线束

要求

第三方库和工具

硬件

下载与安装

Windows


欢迎使用开放式CASCADE技术(OCCT),这是一个软件开发平台,为三维表面和实体建模、CAD数据交换和可视化提供服务。OCCT的大部分功能都是以C++库的形式提供的。OCCT最适用于处理三维建模(CAD)、制造/测量(CAM)或数值模拟(CAE)的软件开发。

概览

Open CASCADE Technology(OCCT)是一个面向对象的C++类库,用于快速生成复杂的特定领域CAD/CAM/CAE应用程序:

使用OCCT开发的典型应用程序处理通用或专业计算机辅助设计(CAD)系统、制造或分析应用程序、模拟应用程序甚至插图工具中的二维或三维(2D或3D)几何建模。

OCCT库被设计为真正的模块化和可扩展性,为以下各项提供C++类:

  1. 基本数据结构(几何建模、可视化、交互式选择和特定应用程序服务);
  2. 建模算法;
  3. 使用网格(分面)数据;
  4. 与中性格式的数据互操作性(IGES、STEP);

C++类和其他类型被分组到包中。包被组织成工具包(库),您可以将应用程序链接到这些工具包。最后,工具包被分为七个模块。

这种模块化结构如下图所示。

Open CASCADE 介绍_第1张图片

  • 基础类模块是所有其他OCCT类的基础;
  • 建模数据模块提供数据结构,将二维和三维几何图元及其组成表示为CAD模型;
  • 建模算法模块包含大量的几何和拓扑算法;
  • “建模算法”模块中的网格工具包实现了对象的镶嵌表示;
  • 可视化模块为图形数据表示提供了复杂的机制;
  • 数据交换模块与流行的数据格式相互操作,并依靠形状修复来提高不同供应商的CAD软件之间的兼容性;
  • 应用程序框架模块提供了现成的解决方案,用于处理特定于应用程序的数据(用户属性)和常用功能(保存/恢复、撤消/重做、复制/粘贴、跟踪CAD修改等)

此外,Open CASCADE Test Harness(也称为Draw)提供了库的入口点,可以用作其模块的测试工具。

基础类

Foundation Classes模块包含更高级别的Open CASCADE Technology类使用的数据结构和服务:

  • 基元类型,如Boolean、Character、Integer或Real;
  • 处理Unicode字符串的字符串类;
  • 处理静态或动态大小的数据聚合的集合类,如数组、列表、队列、集合和哈希表(数据映射)。
  • 提供常用数值算法和基本线性代数计算(加法、乘法、向量和矩阵的换位、求解线性系统等)的类。
  • 基本类型,如颜色、日期和时间信息;
  • 基本几何类型提供定义和操作基本数据结构的基本几何和代数实体的实现。
  • 描述程序放弃正常执行时的情况的异常类;

该模块还提供各种通用服务,例如:

  • 安全处理动态创建的对象,确保自动删除未引用的对象(智能指针);
  • 标准和专用内存分配器;
  • 扩展运行时类型信息(RTTI)机制,维护完整的类型层次结构并提供对其进行迭代的方法;
  • C++流的封装;
  • 表达式的基本解释器,便于创建自定义脚本工具、表达式的通用定义等。;
  • 用于处理配置资源文件和可自定义消息文件的工具,有助于应用程序中的多语言支持;
  • 进度指示和用户中断界面,即使是低级别的算法也有可能以通用和方便的方式与用户进行通信;
  • 以及许多其他。。。

请参阅 Foundation Classes User's Guide中的详细信息

建模数据

建模数据提供数据结构来实现三维对象的边界表示(BRep)。在“重新绘制”中,形状表示为拓扑中几何图形的集合。几何体被理解为形状的数学描述,例如曲线和曲面(简单或规范、Bezier、NURBS等)。拓扑是将几何对象绑定在一起的数据结构。

几何类型和实用程序为以下各项提供几何数据结构和服务:

  • 点、矢量、曲线和曲面的描述:
  • 使用轴或坐标系统在3D空间中定位,以及
  • 他们的几何变换,通过应用平移、旋转、对称性、缩放变换及其组合。
  • 通过插值和近似创建参数曲线和曲面;
  • 直接构造算法;
  • 将曲线和曲面转换为NURBS形式;
  • 计算2D和3D曲线上的点坐标;
  • 几何对象之间极值的计算。

拓扑定义简单几何图元之间的关系。形状是一个基本的拓扑实体,可以分为组件(子形状):

  • Vertex 顶点–对应于一个点的零维形状;
  • Edge边–与曲线相对应的形状,并以每个端点的顶点为边界;
  • Wire–由顶点连接的边的序列;
  • 面——平面(二维)或曲面(三维)的一部分,由导线界定;
  • 外壳–通过其导线边界的边缘连接的面的集合;
  • 实体——三维空间的有限闭合部分,由壳界定;
  • Composite solid 复合实体–通过壳边界面连接的实体集合;
  • 复合物–任意类型的形状的集合。

复杂的形状可以定义为简单实体的组合(化合物)。

请参阅Modeling Data User's Guide中的详细信息

三维几何模型可以以OCCT原生BREP格式存储。有关格式的详细信息,请参阅BREP Format Description White Paper说明白皮书。

建模算法

建模算法模块对几何建模中使用的各种拓扑和几何算法进行分组。基本上,Open CASCADE Technology中有两组算法:

  • 实际设计中使用的高级建模例程;
  • 用作建模API基础的低级数学支持函数。

低级几何工具提供了以下算法:

  • 计算两条曲线、曲面或一条曲线和一个曲面的交点;
  • 将点投影到二维和三维曲线上,将点投影在曲面上,将三维曲线投影到曲面上;
  • 根据约束构造直线和圆;
  • 根据约束(插值、近似、蒙皮、间隙填充等)构建自由形式的曲线和曲面。

低级拓扑工具提供了以下算法:

  • 镶嵌形状;
  • 检查形状的正确定义;
  • 确定形状的局部和全局财产(导数、质量-惯性财产等);
  • 执行仿射变换;
  • 查找边所在的平面;
  • 将形状转换为NURBS几何体;
  • 从单独的拓扑元素(面和边)缝合连接的拓扑(壳和线)。

顶级API提供以下功能:

基本要素的构造:

  • 盒;
  • 棱镜;
  • 气缸;
  • 椎体;
  • 球体;
  • Toruses。

运动学建模:

  • 棱镜——线性扫描;
  • 旋转–旋转扫掠;
  • 管道——一般形式清扫;
  • 阁楼。

Open CASCADE 介绍_第2张图片

布尔运算,允许从源形状的组合中创建新形状。对于两种形状S1和S2:

  • Common包含S1和S2中的所有点;
  • 保险丝包含S1或S2中的所有点;
  • 剪切包含中位于S1中而不位于S2中的所有点。

有关详细文档,请参阅Boolean Operations用户指南。

  • 用于局部修改的算法,例如:
  • 空洞化;
  • 外壳;
  • 使用拔模角创建锥形;
  • 在形状边缘上制作圆角和倒角的算法,包括具有可变半径(弦)的圆角和倒角。

用于创建机械特征的算法,即沿着平面或旋转表面的凹陷、突起、肋和凹槽或槽。

Open CASCADE 介绍_第3张图片

有关细节Modeling Algorithms User's Guide.

Mesh

网格工具包提供了使用三角形镶嵌面的对象镶嵌表示的功能。此工具包包含:

  • 用于存储与形状相关联的表面网格数据的数据结构以及用于处理它们的基本算法;
  • 从BRep对象(形状)构建三角形表面网格的数据结构和算法;
  • 用于显示具有相关联的处理器前和处理器后数据(标量或向量)的网格的工具。

Open CASCADE SAS还提供高级网格产品:

开放式级联网格框架(OMF)

Express网眼布

Open CASCADE 介绍_第4张图片

可视化

可视化模块提供了现成的算法,可以从各种对象(形状、网格等)创建图形演示。

在开放式CASCADE技术中,可视化是基于CAD数据及其图形表示的分离。该模块还支持快速而强大的交互式选择机制。

可视化模块依赖于以下关键工具包:

  • TKV3d工具包定义了一个名为(Application Interactive Services*(AIS))的高级API,用于处理交互式对象。
  • TKService工具包定义了一个低级API,用于从基元数组管理和创建表示。该工具包定义了一个抽象层,用于定义负责实际渲染的任意图形驱动程序。
  • TKOpenGl工具包使用OpenGL和OpenGL ES库实现图形驱动程序。

虽然低级API使用基本数组(三角形、直线、点),但高级API包括用于构建B-Rep形状(着色和线框)的表示的服务。标准交互式对象的综合列表包括拓扑形状、网格表示、各种尺寸、操纵器和其他。它为快速应用程序开发提供了坚实的基础,而灵活和可扩展的API允许开发高度定制的特定于应用程序的演示。

以下是OCCT可视化功能的几个示例:

  • 相机驱动的视图投影和方向。支持透视投影、正交投影和立体投影。
  • 支持普通(漫射/环境光/镜面)和PBR金属粗糙度材料模型。
  • 可以灵活调整三维视图中尺寸的外观。3D文本对象将给定的文本字符串表示为模型空间中的真实3D对象。
  • 通过平面方程系数定义裁剪平面。能够在标高或单个剪裁平面上定义横截面的视觉属性。在下面的图像中,火箭的不同部分被不同的平面剪裁并画出阴影。

Open CASCADE 介绍_第5张图片

 支持内置和特定于应用程序的GLSL着色器。

Open CASCADE 介绍_第6张图片

 通过以下算法优化渲染性能:

  • 视图截头体剔除,在渲染阶段跳过摄影机外的演示;
  • 背面剔除,可减少渲染的三角形数量,并消除形状边界处的瑕疵。
  • 使用递归Whitted算法和有界体积层次有效优化结构的实时光线跟踪技术

Open CASCADE 介绍_第7张图片

更多的细节查看 Visualization User's Guide.

 通过VIS组件提供的VTK库实现OCCT拓扑形状的可视化在单独的VTK集成服务用户指南中进行了描述。

数据交换

数据交换允许开发基于OCCT的应用程序,该应用程序可以通过向外部数据写入CAD模型和从外部数据读取CAD模型来与其他CAD系统交互。

Open CASCADE 介绍_第8张图片

数据交换以模块化的方式组织为一组符合各种CAD格式的接口:IGES、STEP、STL、VRML等。这些接口允许基于OCCT的软件与各种CAD/PDM软件包交换数据,保持良好的互操作性。该模块处理CAD系统之间互操作性的各种问题,这些问题是由模型有效性标准和内部表示要求的差异引起的。

标准化的数据交换接口允许查询和检查输入文件,将其内容转换为CAD模型,并对完全转换的形状进行有效性检查。当前支持以下格式:

  • STEP(AP203:机械设计,包括通用三维CAD;AP214:汽车设计;AP242)。
  • IGES(高达5.3)。
  • glTF 2.0读写器。
  • OBJ网格文件读取器和写入器。
  • VRML转换器将Open CASCADE形状转换为VRML 1.0文件(虚拟现实建模语言)。
  • STL转换器将Open CASCADE形状转换为STL文件。STL(STtereoLithography)格式被广泛用于快速成型(3D打印)。

扩展数据交换(XDE)允许转换附加到几何数据的附加属性(颜色、图层、名称、材质等)。

除了标准数据交换接口外,还提供了高级数据交换组件,以支持使用以下专有格式的CAD软件的互操作性和数据自适应(也使用形状修复):

  • 原子能机构
  • Parasolid公司
  • DXF公司
  • 国际单项体育联合会
  • 日本

这些组件基于与STEP和IGES接口相同的体系结构。

形状修复

形状修复库提供了算法来纠正和调整从其他CAD系统导入到OCCT的形状的几何结构和拓扑结构。

形状修复算法包括但不限于以下操作:

  • 分析形状特征,特别是通过分析几何对象和拓扑来识别不符合OCCT几何和拓扑有效性规则的形状:
  • 检查边缘和电线的一致性;
  • 检查导线中的边缘顺序;
  • 检查面边界的方向;
  • 分析形状公差;

识别边界中的闭合导线和开放导线。

  • 修复不正确或不完整的形状:
  • 提供3D曲线与其对应的参数曲线之间的一致性;
  • 修复有缺陷的电线;
  • 使形状符合用户定义的公差值;

填充补片和边之间的间隙。

  • 升级和更改形状特征:
  • 减少曲线和曲面的程度;
  • 分割形状以获得C1连续性;
  • 将任何类型的曲线或曲面转换为贝塞尔曲线或B样条曲线或曲面并返回;
  • 拆分闭合曲面和旋转曲面。

形状治疗的每个子域都有自己的功能范围:

子域 描述 对形状的影响
分析 探索形状财产,计算形状特征,检测违反OCCT要求的情况。 形状本身不会被修改。
修复 固定形状以满足OCCT要求。 形状可能会改变其原始形式:修改、删除或创建子形状等)
升级 改进形状以适应某些特定的算法。 形状被替换为新的形状,但在几何上它们是相同的。
自定义 修改形状表达以满足特定需要。 形状不会被修改,只会改变其内部表示的数学形式。
过程 通过用户可编辑的资源文件进行形状修改的机制。

更多的细节查看 Shape Healing User's guide.

应用程序框架

开放式CASCADE应用程序框架(OCAF)基于应用程序/文档范式处理应用程序数据。它使用关联性引擎来简化CAD应用程序的开发,这要归功于以下现成的功能和服务:

  • 管理应用程序数据的数据属性,可以根据开发需求进行组织;
  • 数据存储和持久性(打开/保存);
  • 可以修改和重新计算文档中的属性。使用OCAF,可以很容易地表示模型中的修改历史和参数依赖关系;
  • 可以管理多个文档;
  • CAD/CAM/CAE应用程序通用的预定义属性(例如存储尺寸);
  • 撤消重做和复制粘贴功能。

由于OCAF处理应用程序结构,因此唯一的开发任务是创建特定于应用程序的数据和GUI。

OCAF在应用程序数据的组织方面不同于任何其他CAD框架,因为那里的数据结构基于参考键而不是形状。在模型中,形状数据、颜色和材质等属性被附加到一个不变的结构上,该结构比形状更深。形状对象成为shape属性的值,就像整数是integer属性的值而字符串是Name属性的值一样。

OCAF将这些属性组织起来并嵌入到文档中。OCAF文档则由OCAF应用程序进行管理。

更多的细节查看 OCAF User's Guide.

绘制测试线束

Test Harness或Draw是OCCT库的一种方便的测试工具。在构建整个应用程序之前,它可以用于测试和原型化各种算法。它包括:

  • 一个基于TCL语言的命令解释器;
  • 许多2D和3D观众;
  • 一组预定义的命令。
  • 查看器支持缩放、平移、旋转和全屏视图等操作。

基本命令提供通用服务,例如:

  • 获得帮助;
  • 从文件中评估脚本;
  • 捕获文件中的命令;
  • 管理视图;
  • 显示对象。

此外,Test Harness还提供了创建和操作曲线、曲面(几何体)和形状、访问可视化服务、使用OCAF文档、执行数据交换等命令。

您可以添加自定义命令来测试或演示您开发的任何新功能。

有关详细信息,请参见Draw Test Harness Manual.

要求

开放式CASCADE技术被设计为高度便携,并且已知可在各种平台上工作。当前版本在Windows(x86-64)、Linux(x86-66)、OS X/macOS(x86-6,arm64)、Android(arm64)和iOS(arm64。

下表描述了OCCT经认证可以工作的推荐软件配置。

C++编译器/IDE

操作系统 编译环境
Windows Microsoft Visual Studio: 2015 Update 3, 2017 1, 2019, 2022
, LLVM (ClangCL), GCC 4.3+ (Mingw-w64)
Linux GNU gcc 4.3+
LLVM CLang 3.6+
OS X / macOS XCode 6 or newer
Android NDK r12, GNU gcc 4.9 or newer
Web Emscripten SDK 1.39 or newer (CLang)

1) VC++141 64位用于定期测试和在Windows上构建OCCT正式发布的二进制包。

第三方库和工具

以下第三方库和工具不包括在OCCT源中,但对于OCCT的指示组件是必需的或可以选择性地使用。如果不需要相关组件,则不需要它们——可以在没有额外依赖性的情况下构建核心OCCT模块。

请注意,许多列出的库的预构建包可 在3rd party Components | Open CASCADE Technology

Component Where to find Used for Purpose
CMake 3.1+ CMake Configuration Build from sources
Intel oneTBB 2021.5.0 Release oneTBB 2021.5.0 · oneapi-src/oneTBB · GitHub All Parallelization of algorithms (alternative to built-in thread pool)
OpenGL 3.3+, OpenGL ES 2.0+ System Visualization Required for using 3D Viewer
OpenVR 1.10+ GitHub - ValveSoftware/openvr: OpenVR SDK Visualization VR (Virtual Reality) support in 3D Viewer
FreeType 2.4+ FreeType Downloads Visualization Text rendering in 3D Viewer
FreeImage 3.17+ FreeImage - Browse Files at SourceForge.net Visualization Reading/writing image files
FFmpeg 3.1+ Download FFmpeg Visualization Video recording
VTK 6.1+ Download | VTK IVtk VTK integration module
Flex 2.6.4+ and Bison 3.7.1+ Win flex-bison download | SourceForge.net Data Exchange Updating STEP and ExprIntrp parsers
RapidJSON 1.1+ RapidJSON: Main Page Data Exchange Reading glTF files
Draco 1.4.1+ GitHub - google/draco: Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics. Data Exchange Reading compressed glTF files
Tcl/Tk 8.6.3+ Download Tcl/Tk Sources DRAW Test Harness Tcl interpretor in Draw module
Qt 5.3.2+ Download Qt | Develop Desktop & Embedded Systems | Qt Inspector and Samples Inspector Qt samples and
Doxygen 1.8.5+ Doxygen: Downloads Documentation (Re)generating documentation
Graphviz 2.38+ Graphviz Documentation Generating dependency graphs

 

硬件

硬件 要求
最小内存 512 MB, 1 GB recommended
硬盘 1,5 GB approx.

在桌面上,为了获得最佳性能,3D查看器需要支持OpenGL 3.3或更高版本的图形处理单元(GPU)。光线跟踪需要OpenGL 4.0+或OpenGL 3.3+,扩展名为GL_ARB_texture_buffer_object_rgb32。只有当驱动程序提供GL_ARB_bindless_texture扩展名时,光线跟踪中的纹理才可用。

在移动平台上,3D查看器需要OpenGL ES 2.0+(建议使用OpenGL ES 3.1+)。光线跟踪需要OpenGL ES 3.2。一些旧硬件可能无法执行复杂的GLSL程序(例如,具有大量光源、剪裁平面)。

OCCT 3D Viewer通常支持从非常旧到新的各种图形硬件。因此,如果您观察到一些意外的视觉问题,请首先检查OpenGL驱动程序更新(或移动平台的固件更新);但要注意,驱动程序更新可能也会带来新的错误。别忘了向供应商报告这些错误。

下载与安装

OCCT可从下载https://dev.opencascade.org/release

在大多数情况下,在项目中使用OCCT之前,您需要从平台上的源代码(操作系统、编译器)重建OCCT,以确保二进制兼容性和库的适当配置。有关在支持的平台上从源代码构建OCCT的说明,请参阅构建、调试和升级。

以下小节描述了如何在不同的平台上从现成的软件包安装OCCT。

Windows

在Windows Open CASCADE Technology上,通过Visual C++2017预编译的二进制文件可以使用官方下载页面上的安装过程进行安装。

建议:

如果您的工作站上安装了以前版本的OCCT,并且您不打算将其与新版本一起使用,您可能需要在安装此新版本之前卸载以前版本(使用“控制面板”、“添加/删除程序”),以避免可能出现的问题(系统变量、路径等冲突)。

带参考文档的完整OCCT安装需要1.8 Gb的磁盘空间。

安装完成后,您将找到第三方产品的目录(在自定义安装的情况下,有些可能不存在)和主OCCT目录:

Open CASCADE 介绍_第9张图片

OCCT-7.4.0目录(也称为“OCCT根目录”或$CASROOT)的内容如下:

Open CASCADE 介绍_第10张图片

  • adm 此文件夹包含允许重建OCCT的管理文件;
  • adm/cmake 此文件夹包含cmake构建过程的文件;
  • adm/msvc 此文件夹包含用于Visual C++2013、2015、2017、2019和2022的Visual Studio项目,允许在32位和64位模式下在Windows平台下重建OCCT。
  • adm/scripts 此文件夹包含用于不同平台的OCCT半自动构建和打包的辅助脚本。
  • data  此文件夹包含不同格式的CAD文件,可用于测试OCCT功能;
  • doc 文档此文件夹包含HTML和PDF格式的OCCT文档。
  • dox 此文件夹包含纯文本(markdown)格式的OCCT文档源;
  • inc 此文件夹包含所有OCCT标题文件的副本;
  • samples 此文件夹包含示例应用程序。
  • src 此文件夹包含OCCT源文件。它们组织在文件夹中,每个开发单元一个;
  • test 此文件夹包含用于OCCT测试的脚本。
  • tool 此文件夹包含检查器工具的源代码。
  • Win64/VC14 此文件夹包含Visual C++2015以Windows平台优化模式构建的可执行文件和库文件。

Linux

OCCT在许多Linux发行版的官方存储库中以“opencascade”包的形式提供。

从https://repology.org/project/opencascade/versions

这个网址里可以看到耕读哦信息

macOS

在macOS上,OCCT在Homebrew中可用(https://formulae.brew.sh/formula/opencascade)和Mac端口(https://ports.macports.org/port/opencascade/summary)存储库。

环境变量

要运行任何Open CASCADE Technology应用程序,您需要设置环境变量。

在Windows

您可以使用位于$CASROOT文件夹中的env.bat脚本定义环境变量。此脚本接受两个要使用的参数:Visual Studio的版本(vc12–vc143)和体系结构(win32或win64)。

通过Microsoft Visual Studio编译OCCT库和示例所需的其他环境设置可以使用位于同一文件夹中的脚本custom.bat进行设置。如果第三方库安装在系统的非默认位置,则可能需要编辑此脚本以更正到第三方库的路径。

脚本msvc.bat可以与相同的参数一起使用,以便立即启动Visual Studio以(重新)编译OCCT。

在Unix

如果OCCT是由Code::Blocks构建的,则可以使用env_cbp.sh或custom_cbp.sh脚本定义环境变量。

如果OCCT是由Automake构建的,则可以使用env_amk.sh或custom_amk.sh脚本定义环境变量。

脚本位于OCCT根文件夹中。

许可证

Open CASCADE Technology和所有材料,包括本文档,版权所有(c)1999-2010 by Open CASCADE.S.A.S.。保留所有权利。

Open CASCADE技术是免费软件;您可以根据GNU宽松通用公共许可证(LGPL)2.1版的条款重新分发和/或修改它,但有其他例外。

请注意,LGPL对与Open CASCADE Technology链接的应用程序施加了一些义务。如果您希望在专有应用程序中使用OCCT,请特别注意解决LGPL第6节的要求。至少应考虑以下内容:

  • 添加应用程序用户可见的通知,明确说明此应用程序中使用了Open CASCADE Technology,并且根据LGPL,他们在这方面拥有权利。此类通知可以添加到“关于”对话框(如果此框包含版权声明,则此项为必填项)或类似位置和/或文档中。LGPL许可证的文本应可供用户访问。
  • 使应用程序使用的OCCT源的副本可供用户使用,并在必要时提供如何以与应用程序兼容的方式构建OCCT的说明。
  • 确保用户能够行使使用修改版本的OCCT运行应用程序的权利。如果应用程序以不允许用户修改OCCT部分的形式分发(例如,应用程序静态链接到OCCT,或通过iOS上的AppStore、Android上的GooglePlay、Windows Store等分发),则应用程序应以可修改的形式单独提供,具有用户能够使用OCCT的修改版本运行应用程序所需的所有材料。

如果您想在不受LGPL要求约束的情况下使用Open CASCADE技术,请联系Open CASCADE公司获取商业许可。

请注意,开放级联技术是在“按原样”的基础上提供的,没有任何形式的保证。与OCCT代码和材料的任何使用相关的全部风险由您承担。有关正式免责声明,请参阅许可证文本。

鸣谢

以下各方因生产Open CASCADE Technology库中使用的工具或用于发布准备而受到认可。

特此通知您,以下所列软件的所有权利属于其各自的作者,此类软件不得免费提供和/或出于任何用途或目的免费提供。我们强烈建议您仔细阅读这些产品的许可证,如果您需要任何进一步的信息,请直接联系其作者。

Qt是一个跨平台的应用程序框架,广泛用于开发具有图形用户界面(GUI)的应用程序软件。Qt是根据GNU宽松通用公共许可证条款分发的免费开源软件。在OCCT中,Qt用于对样本进行编程。如果您需要有关Qt的更多信息,请参阅Qt主页(https://www.qt.io/)

Tcl是一种高级编程语言。Tk是一个图形用户界面(GUI)工具包,包含按钮、菜单、列表框、滚动条等。Tcl和Tk共同提供了一个开发具有本地外观的跨平台图形用户界面的解决方案。Tcl/Tk的版权归Scriptics Corp.、Sun Microsystems和其他公司所有。然而,Tcl/Tk是一个开源的,版权允许您出于任何目的使用、修改和重新分发Tcl/Tk,而无需明确的许可协议,也无需支付任何许可费或版税。要使用Tcl/Tk,请参阅许可条款(https://www.tcl.tk/software/tcltk/license.html).

FreeType 2由Antoine Leca、David Turner、Werner Lemberg等人开发。它是一个软件字体引擎,设计为小型、高效、高度可定制和便携,同时能够产生高质量的输出(字形图像)。该产品可用于图形库、显示服务器、字体转换工具、文本图像生成工具和许多其他产品。FreeType2是在两个开源许可证下发布的:类似BSD的FreeType许可证和GPL(https://www.freetype.org/license.html).

“英特尔(R)线程构建块”(TBB)为在C++程序中表达并行性提供了一种丰富而完整的方法。它是一个库,可以帮助您在不必成为线程专家的情况下利用多核处理器的性能。线程构建块不仅仅是一个线程替换库。它代表了一种更高级别的基于任务的并行性,它抽象了平台细节和线程机制,以实现可扩展性和性能。Intel oneTBB 2021.5.0在Apache 2.0许可证下可用(https://www.threadingbuildingblocks.org).

OpenGL是OCCT用于实现3D查看器的3D图形的行业标准API。OpenGL规范是由Khronos集团开发的,https://www.khronos.org/opengl/.OCCT代码包括从Khronos网站获得的头文件glext.h。

OpenVR是一种API和运行时,它允许从多个供应商访问VR硬件,而不需要应用程序对其目标硬件有特定的了解。OCCT可选择使用OpenVR来支持VR。OpenVR是在类似BSD的许可下发布的(https://github.com/ValveSoftware/openvr/blob/master/LICENSE).

VTK–可视化工具包(VTK)是一个开源、免费提供的软件系统,用于3D计算机图形、图像处理和可视化。OCCT VIS组件通过VTK库为OCCT拓扑形状的可视化提供自适应功能。如果您需要有关VTK的更多信息,请参阅VTK主页https://www.vtk.org/.

Dimitri van Heesch开发的Doxygen是一个面向C++、C、Java、Objective-C、Python、IDL、PHP和C#的开源文档系统。本产品用于Open CASCADE Technology,用于从C++头文件自动创建技术文档。如果您需要更多关于Doxygen的信息,请参阅https://www.doxygen.nl/index.html.

Graphviz是由John Ellson、Emden Gansner、Yifan Hu和Arif Bilgin开发的开源图形可视化软件。图形可视化是将结构化信息表示为抽象图形和网络的图表。本产品与开放式CASCADE技术中的Doxygen一起使用,用于自动创建技术文档(生成依赖关系图)。Graphviz的当前版本是在Eclipse公共许可证(EPL)的开源基础上获得许可的(https://www.graphviz.org/license/).

Inno Setup是一个免费的脚本驱动安装系统,由Jordan Russell在CodeGear Delphi中创建。在OCCT中,Inno Setup用于在Windows上创建安装向导。它是根据Inno Setup License许可的(http://www.jrsoftware.org/files/is/license.txt).

FreeImage是一个开源库,支持流行的图形图像格式,如PNG、BMP、JPEG、TIFF和多媒体应用程序使用的其他格式。这个图书馆由HervéDrolon和Floris van den Berg开发。FreeImage易于使用、快速、多线程安全,与所有32位或64位版本的Windows兼容,并且跨平台(可与Linux和Mac OS X一起使用)。在FreeImage公共许可证(FIPL)的条件下,OCCT可以选择使用FreeImage来处理图像(https://freeimage.sourceforge.net/freeimage-license.txt).

FFmpeg是一个开源框架,支持各种图像、视频和音频编解码器。在LGPL条件下,OCCT可选择使用FFmpeg进行视频录制(https://www.ffmpeg.org/legal.html).

David M.Gay的浮点例程(dtoa.c)用于从文本字符串中快速读取浮点值。这些例程在类似麻省理工学院的许可证下可用(请参阅https://www.netlib.org/fp/).

Flex是词法分析器(扫描器)的生成器,可在BSD许可证下使用(https://github.com/westes/flex).

GNU Bison是一个解析器生成器,用于(与Flex一起)实现STEP文件格式的读取器和表达式的解析器。它可以在GNU GPL v3许可证下使用(https://www.gnu.org/software/bison/).

Delabella是Newton-Apple Wrapper算法的开源跨平台实现,产生2D Delaunay三角测量。Delabella被BRepMesh用作替代2D三角测量算法之一。Delabella获得麻省理工学院许可(https://github.com/msokalski/delabella).

CMake是一个开源、跨平台的工具系列,旨在构建、测试和打包软件。CMake用于使用简单的平台和编译器独立的配置文件控制软件编译过程,并生成可在您选择的编译器环境中使用的本地makefile和工作区。OCCT使用CMake作为构建系统。CMake在BSD 3条款许可下可用。更多信息,请访问https://cmake.org/

Cotire(编译时间减少器)是一个CMake模块,它通过完全自动化预编译头的使用和C和C++的单个编译单元构建等技术,加快了基于CMake的构建系统的构建过程。Cotire包含在OCCT存储库中,OCCT CMake脚本可以选择使用它来通过使用预编译的头文件来加速构建。Cotire获得麻省理工学院许可(https://github.com/sakra/cotire/blob/master/license).

MikTEX是针对Windows的TeX/LaTeX和相关程序的最新实现。它用于生成PDF格式的用户和开发人员指南。看见https://miktex.org有关此工具的信息。

RapidJSON是一个面向C++的开源JSON解析器和生成器。RapidJSON可供OCCT选择用于读取glTF文件(https://rapidjson.org/).

Draco是一个面向C++的开源JSON解析器和生成器。OCCT可选择使用Draco来读取使用KHR_Draco_mesh_compression扩展名的glTF文件(https://github.com/google/draco). Draco在Apache 2.0许可证下可用。

DejaVu字体是基于许可证下的Vera字体的字体家族(类似MIT,https://dejavu-fonts.github.io/License.html). 当没有可用的系统字体时,OCCT使用DejaVu Sans(基本拉丁子集)作为后备字体。

Adobe Systems,Inc.提供Adobe Reader,可用于查看可移植文档格式(PDF)的文件。

CAS.CADE和Open CASCADE是Open CASCADE.S.A.S.的注册商标。

Linux是Linus Torvalds的注册商标。

Windows是微软公司在美国和其他国家/地区的注册商标。

Mac、OS X、macOS和Mac徽标是Apple Inc.在美国和其他国家/地区注册的商标。

Android是谷歌有限责任公司的商标。

你可能感兴趣的:(c++,c++)