0023962: Moving OCCT documentation to sources
[occt.git] / dox / technical_overview / technical_overview.md
CommitLineData
72b7576f 1Technical Overview {#technical_overview}
2========================================
3
4@section OCCT_TOVW_SECTION_1 Product Overview
5
6Open CASCADE Technology is an object-oriented C++ class librarLzlz ljky designed for rapid
7production of sophisticated domain-specific design applications. A typical application
8developed using OCCT deals with two or three-dimensional (2D or 3D) geometric modeling
9in general-purpose or specialized Computer Aided Design (CAD) systems, manufacturing
10or analysis applications, simulation applications, or illustration tools. OCCT Object
11Libraries help you to develop your applications significantly faster.
12
13![](/technical_overview/images/technical_overview_over.png "")
14
15The OCCT Library provides the following services:
16
17
18 * 2D and 3D geometric modeling toolkits which allow you to model any type of object:
19 * Creating primitives such as prism, cylinder, cone and torus
20 * Performing Boolean operations (addition, subtraction and intersection)
21 * Tweaking constructions using fillets, chamfers and drafts
22 * Modeling constructions using offsets, shelling, hollowing and sweeps
23 * Computing properties such as surface, volume, center of gravity, curvature
24 * Computing geometry using projection, interpolation, approximation
25 * Visualization services that allow you to manage object display and manipulate views, for example:
26 * 3D rotation
27 * Zoom
28 * Shading
29 * The application framework features:
30 * Association between non-geometric application data and geometry
31 * Parameterization of models
32 * Java Application Desktop (JAD), a framework for creating your Graphical User Interfaces (GUI)
33 * Data exchange providing import and export functions of OCCT models to and from standard formats such as IGES and STEP
34
35OCCT Library is developed and marketed by OPEN CASCADE Company. The library is designed
36to be truly modular and extensible. As such, they separate C++ classes for:
37
38 * Defining data structures (geometric modeling, display and graphic selection)
39 * Implementing complex algorithms
40 * Providing Application Programming Interfaces (APIs)
41
42
43Related classes are grouped into packages to prevent any class-name conflicts;
44C++ class-names are prefixed by a package name. For example, all classes defining
453D geometric objects belong to the Geompackage.
46In Geom, the class implementing Bezier surfaces is called BezierSurface, and its full name is <i> Geom_BezierSurface</i>.
47
48Packages are then archived into libraries, to which you can link your application.
49
50Finally, libraries are grouped into six modules: Foundation Classes,
51Modeling Data, Modeling Algorithms, Visualization, Data Exchange and Application Framework.
52
53In addition Draw Test Harness (Draw) provides testing tools for the Visualization,
54Modeling Algorithms, Application Framework and Data Exchange modules.
55These tools include a wide range of interpreted commands which allow experimenting with OCCT.
56
57Refer to the Technical Overview and OCCT documentation for details about the services provided in each module.
58
59@section OCCT_TOVW_SECTION_2 Foundation Classes
60
61
62Foundation Classes provide a variety of general-purpose services such as:
63
64 * Primitive types, strings and various types of quantities
65 * Automated management of heap memory
66 * Exception handling
67 * Classes for manipulating data collections
68 * Math tools such as vectors, matrices and primitive geometric types
69 * Basic services for saving data in ASCII files
70
71These services are organized into the following libraries:
72
73 * Kernel Classes
74 * Math Utilities
75