Overview of Object Libraries

## Product Overview

Open CASCADE Object Libraries are object-oriented C++ class libraries designed for rapid production of sophisticated domain-specific design applications. A typical application developed using Open CASCADE deals with two or three-dimensional (2D or 3D) geometric modeling in general-purpose or specialized Computer Aided Design (CAD) systems, manufacturing or analysis applications, simulation applications, or illustration tools. Open CASCADE Object Libraries help you to develop your applications significantly faster. |

The Object Libraries provide the following services:

- 2D and 3D geometric modeling toolkits which allow you to model any type of object:

- Creating primitives such as prism, cylinder, cone and torus

- Performing Boolean operations (addition, subtraction and intersection)

- Tweaking constructions using fillets, chamfers and drafts

- Modeling constructions using offsets, shelling, hollowing and sweeps

- Computing properties such as surface, volume, center of gravity, curvature

- Computing geometry using projection, interpolation, approximation

- Visualization services that allow you to manage object display and manipulate views. Examples include:

- 3D rotation

- Zoom

- Shading

- An application framework featuring:

- Association between non-geometric application data and geometry

- Parameterization of models

- Java Application Desktop (JAD), a framework for creating your Graphical User Interfaces (GUI)

- Data exchange providing import and export functions of CASCADE models to and from standard formats such as IGES and STEP

Open CASCADE Object Libraries are based on the CAS.CADE technology developed and marketed by Open CASCADE Company. They are designed to be truly modular and extensible. As such, they separate C++ classes for:

- Defining data structures (geometric modeling, display and graphic selection)

- Implementing complex algorithms

- Providing Application Programming Interfaces (APIs)

Related classes are grouped into packages to prevent any class-name conflicts; C++ class-names are prefixed by a package name. For example, all classes defining 3D geometric objects belong to the Geompackage. In Geom, the class implementing Bezier surfaces is called BezierSurface, and its full name is Geom_BezierSurface.

Packages are then archived into libraries, which you link your application to.

Finally, libraries are grouped into six modules (the smallest one, Foundation Classes, contains two libraries while the largest one, Modeling Algorithms, contains eight). These modules are briefly presented in Figure 1 below.

Figure 1: Object Libraries modules and their contents

Foundation Classes | Modeling Data | Modeling Algorithms | Visualization | Data Exchange | Application Framework
Kernel Classes Math Utilities | 2D Geometry 3D Geometry Geometry Utilities Topology | Construction of Primitives Boolean Operations Fillets and Chamfers Offsets, Drafts Sewing and Sweeps Features Hidden Line Removal Geometric Tools Topological Tools | Services Common to 2D and 3D 2D Visualization 3D Visualization | IGES STEP AP203 AP214 Extended data exchange (XDE) | Data Framework Data Storage Application Desktop