765b3e07 |
1 | Overview {#mainpage} |
2 | ======== |
3 | |
e5bd0d98 |
4 | @tableofcontents |
765b3e07 |
5 | |
e5bd0d98 |
6 | @section OCCT_OVW_SECTION_1 Welcome |
765b3e07 |
7 | |
e5bd0d98 |
8 | Welcome to Open CASCADE Technology (OCCT), a collection |
9 | of C++ libraries providing services for 3D surface and solid modeling, CAD data |
10 | exchange, and visualization. OCCT can be best applied in development of |
11 | software dealing with 3D modeling (CAD), manufacturing / measuring (CAM) or |
12 | numerical simulation (CAE). |
765b3e07 |
13 | |
e5bd0d98 |
14 | @htmlonly<center>@endhtmlonly |
15 | http://www.opencascade.org |
765b3e07 |
16 | @image html /resources/occt_logo.png |
17 | @image latex /resources/occt_logo.png |
765b3e07 |
18 | @htmlonly</center>@endhtmlonly |
19 | |
20 | @section OCCT_OVW_SECTION_2 Copyrights |
21 | |
22 | Copyright(c) 2001-2013 by OPEN CASCADE S.A.S. All rights reserved. |
23 | |
e5bd0d98 |
24 | @htmlonly<center>@endhtmlonly |
25 | http://www.opencascade.com |
26 | @image html /resources/occ_logo.png |
27 | @image latex /resources/occ_logo.png |
28 | @htmlonly</center>@endhtmlonly |
29 | |
765b3e07 |
30 | Trademark information |
31 | ---------------------- |
32 | |
33 | You are hereby informed that all software is a property of its respective authors and is protected by |
34 | international and domestic laws on intellectual property and trademarks. |
35 | Should you need further information, please directly contact the authors. |
36 | |
37 | CAS.CADE and Open CASCADE are registered trademarks of OPEN CASCADE S.A.S. |
38 | |
e5bd0d98 |
39 | Acknowledgements |
765b3e07 |
40 | ------------------ |
41 | |
42 | The following parties are acknowledged for producing tools which are used within |
43 | Open CASCADE Technology libraries or for release preparation. |
44 | |
45 | You are hereby informed that all rights to the software listed below belong to its respective |
46 | authors and such software may not be freely available and/or be free of charge for any kind |
47 | of use or purpose. We strongly recommend that you carefully read the license of these products |
48 | and, in case you need any further information, directly contact their authors. |
49 | |
50 | **Qt** is a cross-platform application framework that is widely used for developing application software |
51 | with graphical user interface (GUI). Qt is free and open source software distributed under |
52 | the terms of the GNU Lesser General Public License. In OCCT Qt is used for programming samples. |
e5bd0d98 |
53 | If you need further information on Qt, please, refer to Qt Homepage (http://qt.digia.com). |
765b3e07 |
54 | |
55 | **Tcl** is a high-level programming language. Tk is a graphical user interface (GUI) toolkit, |
56 | with buttons, menus, listboxes, scrollbars, and so on. Taken together Tcl and Tk provide a solution |
57 | to develop cross-platform graphical user interfaces with a native look and feel. Tcl/Tk is under copyright by |
58 | Scriptics Corp., Sun Microsystems, and other companies. However, Tcl/Tk is an open source, and |
59 | the copyright allows you to use, modify, and redistribute Tcl/Tk for any purpose, without an |
60 | explicit license agreement and without paying any license fees or royalties. |
61 | To use Tcl/Tk, please refer to the Licensing Terms (http://www.tcl.tk/software/tcltk/license.html). |
62 | |
63 | **Robert Boehne** has developed **GNU Autoconf**, **Automake** and **Libtool** scripts and makefiles |
64 | for the Open CASCADE project http://sourceforge.net/projects/autoopencas/, |
65 | which became an initial groundwork for the build scripts based on respective GNU tools |
66 | (autoconf, automake and libtool) in Open CASCADE Technology version 4.0. |
67 | These scripts are now maintained by the OPEN CASCADE company. |
68 | |
e5bd0d98 |
69 | **GL2PS** is developed by Christophe Geuzaine and others. It is optionally used by OCCT to |
70 | export content of OpenGL scene to vector graphics formats (PS, PDF, EMF, SVG). |
765b3e07 |
71 | The library is licensed under GL2PS LICENSE http://www.geuz.org/gl2ps/COPYING.GL2PS Version 2, November 2003. |
72 | |
73 | **FreeType 2** is developed by Antoine Leca, David Turner, Werner Lemberg and others. |
74 | It is a software font engine that is designed to be small, efficient, highly customizable and |
75 | portable while capable of producing high-quality output (glyph images). This product |
76 | can be used in graphic libraries, display servers, font conversion tools, |
77 | text image generation tools, and many other products. |
78 | |
79 | FreeType 2 is released under two open-source licenses: BSD-like FreeType License and the GPL. |
80 | |
81 | **Intel(R) Threading Building Blocks (TBB)** offers a rich and complete approach to expressing parallelism in a C++ program. |
82 | It is a library that helps you to take advantage of multi-core processor performance without having to be a threading expert. |
83 | Threading Building Blocks is not just a threads-replacement library. It represents a higher-level, task-based parallelism that |
84 | abstracts platform details and threading mechanisms for scalability and performance. |
85 | TBB is available under GPLv2 license with the runtime exception. |
86 | |
e5bd0d98 |
87 | Open CASCADE Technology WOK module on Windows also makes use of LGPL-licensed C routines **regexp** |
88 | and **getopt**, taken from GNU C library. |
765b3e07 |
89 | |
e5bd0d98 |
90 | **Doxygen** developed by Dimitri van Heesch is open source documentation system for |
765b3e07 |
91 | C++, C, Java, Objective-C, Python, IDL, PHP and C#. This product is used in Open CASCADE Technology |
92 | for automatic creation of Technical Documentation from C++ header files. |
93 | If you need further information on Doxygen, please refer to http://www.stack.nl/~dimitri/doxygen/index.html. |
94 | |
95 | **Graphviz** is open source graph visualization software developed by John Ellson, Emden Gansner, Yifan Hu and Arif Bilgin. |
96 | Graph visualization is representiation of structured information as diagrams of abstract graphs and networks. |
97 | This product is used together with Doxygen in Open CASCADE Technology for automatic creation of Technical Documentation |
98 | (generation of dependency graphs). Current versions of Graphviz are licensed on an open source |
e5bd0d98 |
99 | basis under The Eclipse Public License (EPL) (http://www.graphviz.org/License.php). |
765b3e07 |
100 | |
101 | **Inno Setup** is a free script-driven installation system created in CodeGear Delphi by Jordan Russell. |
102 | In OCCT Inno Setup is used to create Installation Wizard on Windows. |
103 | It is licensed under Inno Setup License (http://www.jrsoftware.org/files/is/license.txt). |
104 | |
e5bd0d98 |
105 | **FreeImage** is an Open Source library supporting popular graphics image formats, such as PNG, BMP, JPEG, TIFF, |
765b3e07 |
106 | and others used by multimedia applications. This library is developed by Hervé Drolon and Floris van den Berg. |
107 | FreeImage is easy to use, fast, multithreading safe, compatible with all 32-bit or 64-bit versions of Windows, |
e5bd0d98 |
108 | and cross-platform (works both with Linux and Mac OS X). FreeImage is optionally used by OCCT to work |
109 | with images, on conditions of the FreeImage Public License (FIPL) (http://freeimage.sourceforge.net/freeimage-license.txt). |
765b3e07 |
110 | |
e5bd0d98 |
111 | **MikTEX** is up-to-date implementation of TeX/LaTeX and related programs for Windows. It is used |
112 | for generation of User and Developer Guides in PDF format. See http://miktex.org for information |
113 | on this tool. |
765b3e07 |
114 | |
e5bd0d98 |
115 | Adobe Systems, Inc. provides **Adobe Reader**, which can be used to view files in Portable Document Format (PDF). |
765b3e07 |
116 | |
117 | **Linux** is a registered trademark of Linus Torvalds. |
118 | |
119 | **Windows** is a registered trademark of Microsoft Corporation in the United States and other countries. |
120 | |
121 | **Mac** and the Mac logo are trademarks of Apple Inc., registered in the U.S. and other countries. |
122 | |
e5bd0d98 |
123 | @section OCCT_OVW_SECTION_3 Documentation |
765b3e07 |
124 | |
e5bd0d98 |
125 | OCCT documentation is provided in several forms: |
765b3e07 |
126 | |
e5bd0d98 |
127 | - This overview provides general description of OCCT structure, functionality, modules, and features. |
128 | It is available in HTML format (generated by Doxygen) and includes User and Developer Guides. |
129 | The sources of this documentation are contained in **dox** subdirectory of OCCT sources |
130 | (plain text format is used, with mixed MarkDown / Doxygen syntax mark-up). |
765b3e07 |
131 | |
e5bd0d98 |
132 | - User and Developer Guides describing in details OCCT modules and development tools are also available in |
133 | Adobe Portable Document Format (PDF). To read this format, you need Adobe Acrobat Reader, |
134 | which is a freeware and can be downloaded from the Adobe site. |
765b3e07 |
135 | |
e5bd0d98 |
136 | - Full reference documentation covering all OCCT classes generated automatically by Doxygen |
137 | software is provided in HTML format, in a separate package. |
138 | Reference documentation is presented in **Modules --> Toolkits --> Packages --> Classes** |
139 | logic structure with cross-references to all OCCT classes and complete in-browser search by all classes. |
765b3e07 |
140 | |
e5bd0d98 |
141 | See @ref dev_guides__documentation "OCCT Documentation Guide" for details on OCCT documentation system. |
765b3e07 |
142 | |
e5bd0d98 |
143 | **Generation of HTML documentation** |
765b3e07 |
144 | |
e5bd0d98 |
145 | To generate HTML documentation from sources contained in *dox* subdirectory, |
146 | you need to have Tcl and Doxygen 1.8.4 (or above) installed on your system. |
147 | |
148 | In Tcl prompt, cd to OCCT root folder and run |
149 | |
150 | tclsh> source dox/start.tcl |
151 | |
152 | On Windows you can also run batch script **gendoc.bat**. |
153 | |
154 | |
155 | **Generation of reference documentation** |
156 | |
157 | Reference documentation can be generated with help of WOK tool that |
158 | is available for download from www.opencascade.org and dev.opencascade.org sites. |
765b3e07 |
159 | |
160 | Prerequisites: |
161 | |
e5bd0d98 |
162 | * Doxygen version 1.8.4 or higher |
765b3e07 |
163 | * Graphviz version 2.28.0 or higher |
164 | |
165 | Run WOK (cd \<WOK_INSTALL_DIR\>/site folder): |
166 | |
167 | * Using WOK TCL shell: |
168 | > wok_tclsh.sh |
169 | |
170 | * Using Emacs editor: |
171 | > wok_emacs.sh |
172 | |
173 | In the WOK prompt, step into your workbench: |
174 | |
e5bd0d98 |
175 | > wokcd <your workbench> |
765b3e07 |
176 | |
177 | In your workbench, use **wgendoc** command with –h argument to get information about arguments of **wgendoc** command: |
178 | |
e5bd0d98 |
179 | > wgendoc -h |
765b3e07 |
180 | |
e5bd0d98 |
181 | then run **wgendoc** command with required arguments, for instance: |
765b3e07 |
182 | |
e5bd0d98 |
183 | > wgendoc -output=d:/occt/doc {-m=Draw Visualization} |
765b3e07 |
184 | |
185 | @section OCCT_OVW_SECTION_5 Requirements |
186 | |
187 | @subsection OCCT_OVW_SECTION_5_1 Linux Intel |
188 | <table> |
189 | <tr> <th>Operating System </th> <th> 64-bit: Mandriva 2010, CentOS 5. 5, CentOS 6.3, Fedora 17, Fedora 18, Ubuntu-1304, Debian 6.0 * </th> </tr> |
190 | <tr> <td> Minimum memory </td> <td> 512 Mb, 1 Gb recommended </td > </tr> |
191 | <tr> <td> Free disk space (complete installation) </td> <td> For full installation Open CASCADE Technology requires 600 Mb of disk space. </td > </tr> |
192 | <tr> <td>Minimum swap space </td> <td> 500 Mb </td > </tr> |
e5bd0d98 |
193 | <tr> <td> Video card </td> <td> **GeForce** The following versions of GeForce drivers are recommended: |
194 | - 64-bit Version: 100.14.19 or later http://www.nvidia.com/object/linux_display_amd64_100.14.19.html |
195 | - 32-bit Version: 100.14.19 or later http://www.nvidia.com/object/linux_display_ia32_100.14.19.html </td > </tr> |
196 | <tr> <td> Graphic library </td> <td> OpenGL 1.1+ (OpenGL 2.1+ is recommended) <br> OpenCL 1.1+ (optional for ray tracing) </td > </tr> |
765b3e07 |
197 | <tr> <td>C++ </td> <td>GNU gcc 4.0. - 4.7.3. </td > </tr> |
198 | <tr> <td> TCL (for testing tools) </td> <td> Tcltk 8.5 or 8.6 http://www.tcl.tk/software/tcltk/8.6.html</td > </tr> |
199 | <tr> <td> Qt (for demonstration tools) </td> <td> Qt 4.6.2 http://qt.nokia.com/downloads </td > </tr> |
200 | <tr> <td> Freetype (OCCT Text rendering) </td> <td> freetype-2.4.11 http://sourceforge.net/projects/freetype/files/ </td > </tr> |
201 | <tr> <td> FreeImage (Support of common graphic formats) </td> <td>FreeImage 3.15.4 http://sourceforge.net/projects/freeimage/files/Source%20Distribution/ </td > </tr> |
202 | <tr> <td> gl2ps (Export contents of OCCT viewer to vector graphic file) </td> <td> gl2ps-1.3.8 http://geuz.org/gl2ps/ </td > </tr> |
203 | <tr> <td>TBB (optional tool for parallelized version of BRepMesh component) </td> <td> TBB 3.x or 4.x http://www.threadingbuildingblocks.org/ </td > </tr> |
204 | <tr> <td> OpenCL (optional for providing ray tracing visualization core </td> <td>http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/downloads/ </td> </tr> |
205 | </table> |
206 | \* Debian 60 64 bit is a permanently tested platform. |
207 | |
208 | @subsection OCCT_OVW_SECTION_5_2 Windows Intel |
209 | |
210 | <table> |
211 | <tr> <th>Operating System </th> <th> 32/64-bit: 8/ 7 SP1 / VISTA SP2 /XP SP3 </th> </tr> |
212 | <tr> <td> Minimum memory </td> <td> 512 Mb, 1 Gb recommended </td > </tr> |
213 | <tr> <td> Free disk space (complete installation) </td> <td> For full installation Open CASCADE Technology requires 650 Mb of disk space but during the process of installation you will need 1,2 Gb of free disk space. </td > </tr> |
214 | <tr> <td>Minimum swap space </td> <td> 500 Mb </td > </tr> |
215 | <tr> <td> Video card </td> <td> **GeForce** Version 266.58 WHQL or later is recommended: http://www.nvidia.com/Download/index.aspx |
216 | </td > </tr> |
e5bd0d98 |
217 | <tr> <td> Graphic library </td> <td> OpenGL 1.1+ (OpenGL 2.1+ is recommended) <br> OpenCL 1.1+ (optional for ray tracing) </td > </tr> |
218 | <tr> <td>C++ </td> <td> |
219 | - Microsoft Visual Studio 2005 SP1 with all security updates |
220 | - Microsoft Visual Studio 2008 SP1* |
221 | - Microsoft Visual Studio 2010 SP1 |
222 | - Microsoft Visual Studio 2012 Update 3 |
223 | - Microsoft Visual Studio 2013 |
224 | - Intel C++ Composer XE 2013 SP1 |
765b3e07 |
225 | </td > </tr> |
e5bd0d98 |
226 | <tr> <td> TCL (for testing tools) </td> <td> ActiveTcl 8.5 or 8.6 http://www.activestate.com/activetcl/downloads </td > </tr> |
765b3e07 |
227 | <tr> <td> Qt (for demonstration tools) </td> <td> Qt 4.6.2 http://qt.digia.com/downloads </td > </tr> |
228 | <tr> <td> Freetype (OCCT Text rendering) </td> <td> freetype-2.4.11 http://sourceforge.net/projects/freetype/files/ </td > </tr> |
229 | <tr> <td> FreeImage (Support of common graphic formats )</td> <td>FreeImage 3.15.4 http://sourceforge.net/projects/freeimage/files/Source%20Distribution/ </td > </tr> |
230 | <tr> <td> gl2ps (Export contents of OCCT viewer to vector graphic file) </td> <td> gl2ps-1.3.8 http://geuz.org/gl2ps/ </td > </tr> |
231 | <tr> <td>TBB (optional tool for parallelized version of BRepMesh component) </td> <td> TBB 3.x or 4.x http://www.threadingbuildingblocks.org/ </td > </tr> |
232 | <tr> <td> OpenCL (optional for providing ray tracing visualization core </td> <td>http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/downloads/ </td> </tr> |
233 | </table> |
234 | |
235 | * The official release of OCCT for Windows contains libraries built with VC++ 2008. |
236 | |
237 | |
238 | @subsection OCCT_OVW_SECTION_5_3 MAC OS X |
239 | |
240 | <table> |
e5bd0d98 |
241 | <tr> <th>Operating System </th> <th> 64-bit: Mac OS X 10.9 Mavericks / 10.8 Mountain Lion / 10.7 Lion / 10.6.8 Snow Leopard </th> </tr> |
765b3e07 |
242 | <tr> <td> Minimum memory </td> <td> 512 Mb, 1 Gb recommended </td > </tr> |
243 | <tr> <td> Free disk space (complete installation) </td> <td> For full installation Open CASCADE Technology requires 600 Mb of disk space. </td > </tr> |
244 | <tr> <td>Minimum swap space </td> <td> 500 Mb </td > </tr> |
245 | <tr> <td> Video card </td> <td> **GeForce** Version 266.58 WHQL or later is recommended: http://www.nvidia.com/Download/index.aspx |
246 | </td > </tr> |
e5bd0d98 |
247 | <tr> <td> Graphic library </td> <td> OpenGL 1.1+ (OpenGL 2.1+ is recommended) <br> OpenCL 1.1+ (optional for ray tracing) </td > </tr> |
765b3e07 |
248 | <tr> <td>C++ </td> <td>XCode 3.2 or newer (4.x is recommended) </td > </tr> |
249 | <tr> <td> Qt (for demonstration tools) </td> <td> Qt 4.6.2 http://qt.digia.com/downloads </td > </tr> |
250 | <tr> <td> Freetype (OCCT Text rendering) </td> <td> freetype-2.4.11 http://sourceforge.net/projects/freetype/files/ </td > </tr> |
251 | <tr> <td> FreeImage (Support of common graphic formats )</td> <td>FreeImage 3.15.4 http://sourceforge.net/projects/freeimage/files/Source%20Distribution/ </td > </tr> |
252 | <tr> <td> gl2ps (Export contents of OCCT viewer to vector graphic file) </td> <td> gl2ps-1.3.8 http://geuz.org/gl2ps/ </td > </tr> |
253 | <tr> <td>TBB (optional tool for parallelized version of BRepMesh component) </td> <td> TBB 3.x or 4.x http://www.threadingbuildingblocks.org/ </td > </tr> |
254 | <tr> <td> OpenCL (optional for providing ray tracing visualization core </td> <td> OpenCL 1.2.8 native </td> </tr> |
255 | </table> |
256 | |
257 | @section OCCT_OVW_SECTION_4 Installation |
258 | |
e5bd0d98 |
259 | In most cases you need to rebuild OCCT on your platform (OS, compiler) before |
260 | using it in your project, to ensure binary compatibility. |
261 | See @ref dev_guides__building for instructions on |
262 | building OCCT from sources on supported platforms. |
765b3e07 |
263 | |
e5bd0d98 |
264 | @subsection OCCT_OVW_SECTION_4_1 Using Windows installer |
765b3e07 |
265 | |
e5bd0d98 |
266 | On Windows Open CASCADE Technology can be installed with binaries precompiled by |
267 | Visual C++ 2008 with installation procedure. |
765b3e07 |
268 | |
269 | **Recommendation:** |
270 | |
271 | If you have a previous version of OCCT installed on your station, |
272 | and you do not plan to use it along with the new version, you might want to uninstall |
273 | the previous version (using Control Panel, Add/Remove Programs) before |
274 | the installation of this new version, to avoid possible problems |
275 | (conflict of system variables, paths, etc). |
276 | |
277 | **Attention:** For full installation OCCT requires approximately 650 Mb of disk space, |
278 | but during the installation process you will need 1,2 Gb of free disk space. |
279 | |
280 | OCCT installation with reference documentation requires 1,4 Gb on disk. |
281 | |
282 | * Download the OCCT installer from OPEN CASCADE web site using the link. you have been provided |
283 | * Launch the installer and follow the instructions. |
284 | |
765b3e07 |
285 | The includes and binaries of third-party libraries necessary for building and launching |
286 | OCCT are included into binary distribution (built with Visual C++ 2008). |
e5bd0d98 |
287 | When the installation is complete, you will find the directories for 3rd party products |
288 | (some might be absent in case of custom installation) and the main **OCCT** directory: |
765b3e07 |
289 | |
e5bd0d98 |
290 | @image html /overview/images/overview_3rdparty.png |
291 | @image latex /overview/images/overview_3rdparty.png |
765b3e07 |
292 | |
e5bd0d98 |
293 | The contents of the OCCT-6.7.0 directory (called further "OCCT root", or $CASROOT) are as follows: |
765b3e07 |
294 | |
295 | @image html /overview/images/overview_installation.png "The directory tree" |
296 | @image latex /overview/images/overview_installation.png "The directory tree" |
297 | |
765b3e07 |
298 | * **adm** This folder contains administration files, which allow rebuilding OCCT; |
299 | * **adm/cmake** This folder contains files of CMake building procedure; |
300 | * **adm/msvc** This folder contains Visual Studio projects for Visual C++ 2005, 2008 and 2010, which allow rebuilding OCCT under Windows platform in 32 and 64-bit mode; |
e5bd0d98 |
301 | * **data** This folder contains CAD files in different formats, which can be used to test the OCCT functionality; |
302 | * **doc** This folder contains OCCT documentation in HTML and PDF format; |
303 | * **dox** This folder contains sources of OCCT documentation in plain text (MarkDown) format; |
765b3e07 |
304 | * **drv** This folder contains source files generated by WOK (private header files and instantiations of generic classes); |
305 | * **inc** This folder contains all OCCT header files; |
306 | * **samples** This folder contains sample applications. |
307 | * **src** This folder contains OCCT source files. They are organized in folders, one per development unit; |
308 | * **tests** This folder contains scripts for OCCT testing. |
309 | * **win32/vc9** This folder contains executable and library files built in optimize mode for Windows platform by Visual C++ 2008; |
310 | |
e5bd0d98 |
311 | @section OCCT_OVW_SECTION_4_2 Environment Variables |
765b3e07 |
312 | |
313 | To run any Open CASCADE Technology application you need to set the environment variables. |
314 | |
315 | ### On Windows |
316 | |
765b3e07 |
317 | You can define the environment variables with env.bat script located in the |
e5bd0d98 |
318 | $CASROOT folder. This script accepts two arguments to be used: |
319 | the version of Visual Studio (vc8 - vc12) and the architecture (win32 or win64). |
765b3e07 |
320 | |
321 | The additional environment settings necessary for compiling OCCT libraries and samples |
322 | by Microsoft Visual Studio can be set using script custom.bat located in the same folder. |
323 | You might need to edit this script to correct the paths to third-party libraries |
324 | if they are installed on your system in a non-default location. |
325 | |
326 | Script msvc.bat can be used with the same arguments for immediate launch of Visual Studio for (re)compiling OCCT. |
327 | |
328 | ### On Unix |
329 | |
330 | |
331 | If OCCT was built by Code::Blocks, you can define the environment variables with env_cbp.sh or custom_cbp.sh script. |
332 | |
333 | If OCCT was built by Automake, you can define the environment variables with env_amk.sh or custom_amk.sh script. |
334 | |
e5bd0d98 |
335 | The scripts are located in the OCCT root folder. |
765b3e07 |
336 | |
337 | |
338 | ### Description of system variables: |
339 | |
340 | |
341 | * **CASROOT** is used to define the root directory of Open CASCADE Technology; |
342 | * **PATH** is required to define the path to OCCT binaries and 3rdparty folder; |
343 | * **LD_LIBRARY_PATH** is required to define the path to OCCT libraries (on UNIX platforms only); |
e5bd0d98 |
344 | * **MMGT_OPT** (optional) if set to 1, the memory manager performs optimizations as described below; if set to 2, |
345 | Intel (R) TBB optimized memory manager is used; if 0 (default), every memory block is allocated |
346 | in C memory heap directly (via malloc() and free() functions). |
347 | In the latter case, all other options except MMGT_CLEAR and MMGT_REENTRANT are ignored; |
348 | * **MMGT_CLEAR** (optional) if set to 1 (default), every allocated memory block is cleared by zeros; |
349 | if set to 0, memory block is returned as it is; |
350 | * **MMGT_CELLSIZE** (optional) defines the maximal size of blocks allocated in large pools of memory. Default is 200; |
351 | * **MMGT_NBPAGES** (optional) defines the size of memory chunks allocated for small blocks in pages |
352 | (operating-system dependent). Default is 10000; |
353 | * **MMGT_THRESHOLD** (optional) defines the maximal size of blocks that are recycled internally |
354 | instead of being returned to the heap. Default is 40000; |
355 | * **MMGT_MMAP** (optional) when set to 1 (default), large memory blocks are allocated using |
356 | memory mapping functions of the operating system; if set to 0, |
357 | they will be allocated in the C heap by malloc(); |
765b3e07 |
358 | * **CSF_LANGUAGE** is required to define the default language of messages; |
e5bd0d98 |
359 | * **CSF_DEBUG** (optional, Windows only): if defined then a diagnostic message is displayed in case of an exception; |
360 | * **CSF_DEBUG_BOP** (optional): if defined then it should specify directovy where diagnostic data on problems occured in Boolean operations will be saved; |
765b3e07 |
361 | * **CSF_MDTVTexturesDirectory** defines the directory for available textures when using texture mapping; |
e5bd0d98 |
362 | * **CSF_UnitsDefinition** and **CSF_UnitsLexicon** should define paths to resource files Lexi_Expr.dat and Units.dat, respectively, required for support of measurement units; |
765b3e07 |
363 | * **CSF_SHMessage** is required in order to define the path to the messages file for *ShapeHealing*; |
364 | * **CSF_XSMessage** is required in order to define the path to the messages file for **STEP** and **IGES** translators; |
e5bd0d98 |
365 | * **CSF_StandardDefaults** and **CSF_PluginDefaults** are required in order to maintain CASCADE Persistence mechanism to make possible any open/save operations with OCAF documents; |
765b3e07 |
366 | * **CSF_StandardLiteDefaults** is required in order to maintain *OCCT Persistence mechanism* to make possible any open/save operations with Lite OCAF documents; |
367 | * **CSF_XCAFDefaults** any open/save operations for **XDE** documents; |
765b3e07 |
368 | * **CSF_IGESDefaults** and **CSF_STEPDefaults** are required for **IGES** and **STEP** translators correspondingly in order to define the path to the resource files; |
369 | * **CSF_XmlOcafResource** is required in order to set the path to **XSD** resources, which defines XML grammar. |
e5bd0d98 |
370 | * **CSF_MIGRATION_TYPES** is required in order to read documents that contain old data types, such as *TDataStd_Shape*; |
371 | * **TCLLIBPATH**, **TCL_LIBRARY**, **TK_LIBRARY** and **TIX_LIBRARY** are required to allow work with **DRAW** and **WOK**. |
765b3e07 |
372 | |
373 | @section OCCT_OVW_SECTION_7 Getting Started |
374 | |
765b3e07 |
375 | @subsection OCCT_OVW_SECTION_7_1 Draw Test Harness |
376 | |
377 | Draw is a command interpreter based on TCL and a graphical system used for testing and demonstrating OCCT modeling libraries. |
378 | |
379 | Draw can be used interactively to create, display and modify objects such as curves, surfaces and topological shapes. |
380 | |
381 | @image html /overview/images/overview_draw.png |
382 | @image latex /overview/images/overview_draw.png |
383 | |
384 | Scripts can be written to customize Draw and perform tests. |
385 | New types of objects and new commands can be added using C++ programming language. |
386 | |
387 | Draw contains: |
388 | |
389 | * A command interpreter based on TCL command language. |
390 | * A 2D an 3D graphic viewer with support of operations such as zoom, pan, rotation and full-screen views. |
391 | * An optional set of geometric commands to create and modify curves and surfaces and to use OCCT geometry algorithms. |
392 | * A set of topological commands to create and modify BRep shapes and to use OCCT topology algorithms. |
393 | * A set of graphic commands for view and display operations including Mesh Visualization Service. |
394 | * A set of Application framework commands for handling of files and attributes. |
395 | * A set of Data Exchange commands for translation of files from various formats (IGES,STEP) into OCCT shapes. |
396 | * A set of Shape Healing commands: check of overlapping edges, approximation of a shape to BSpline, etc. |
397 | |
398 | You can add new custom test harness commands to Draw in order to test |
399 | or demonstrate a new functionality, which you are developing. |
400 | |
401 | Currently DRAW Test Harness is a single executable called DRAWEXE. |
402 | |
403 | Commands grouped in toolkits can be loaded at run-time thereby implementing dynamically loaded plug-ins. |
404 | Thus you can work only with the commands that suit your needs adding |
405 | the commands dynamically without leaving the Test Harness session. |
406 | |
407 | Declaration of available plug-ins is done through special resource file(s). |
408 | The pload command loads the plug-in in accordance with |
409 | the specified resource file and activates the commands implemented in the plug-in. |
410 | |
411 | The whole process of using the plug-in mechanism as well as the instructions for extending Test Harness is described in the |
e5bd0d98 |
412 | @ref user_guides__test_harness. |
765b3e07 |
413 | |
e5bd0d98 |
414 | Draw Test Harness provides an environment for OCCT automated testing system. |
415 | Please, consult its @ref dev_guides__tests "Automated Testing System" for details. |
765b3e07 |
416 | |
417 | Remarks: |
418 | |
419 | * The DRAWEXE executable is delivered with the installation procedure on Windows platform only. |
e5bd0d98 |
420 | * To start it, launch DRAWEXE executable from Open CASCADE Technology/Draw Test Harness item of the Start\\Programs menu. |
765b3e07 |
421 | |
422 | @subsection OCCT_OVW_SECTION_7_2 Experimenting with Draw Test Harness |
423 | |
424 | Running Draw |
425 | ------------ |
426 | |
427 | **On Linux:** |
428 | |
429 | 1. If OCCT was built by Code::Blocks * use $CASROOT/draw_cbp.sh file to launch DRAWEXE executable; |
430 | 2. If OCCT was built by Automake * use $CASROOT/draw_amk.sh file to launch DRAWEXE executable; |
431 | |
432 | Draw[1]> prompt appears in the command window |
433 | |
434 | Type pload ALL |
435 | |
436 | **On Windows:** |
437 | |
438 | Launch Draw executable from Open CASCADE Technology\\Test Harness\\Draw Test Harness |
439 | item of the Start\\Programs menu or Use $CASROOT\\draw.bat file to launch DRAWEXE executable. |
440 | |
441 | Draw[1]> prompt appears in the command window |
442 | |
443 | Type pload ALL |
444 | |
445 | **Creating your first geometric objects** |
446 | |
447 | 1. In the command window, type axo to create an axonometric view |
448 | 2. Type box b -10 -10 -10 20 20 20 to create a cube b of size 20, |
449 | parallel to the X Y Z axis and centered on the origin. |
450 | The cube will be displayed in the axonometric view in wireframe mode |
451 | 3. Type fit to fill the viewer with the cube |
452 | 4. Type pcylinder c 2 30 to create a cylinder c of radius 2 and height 30. |
453 | The cylinder will be displayed in addition to the cube |
454 | |
455 | **Manipulating the view** |
456 | |
457 | 1. Type clear to erase the view |
458 | 2. Type donly c to display the cylinder only |
459 | 3. Type donly b to display the cube only |
460 | 4. Type hlr hlr b to display the cube in the hidden line removal mode |
461 | |
462 | **Running demonstration files** |
463 | |
e5bd0d98 |
464 | 1. Type cd ../.. to return to the root directory |
465 | 2. Type cd src/DrawResources to reach the DrawResources directory |
765b3e07 |
466 | 3. Type source "Available Demo File" to run the demonstration provided with Open CASCADE |
467 | 4. The following demonstration files are available: |
468 | * DataExchangeDemo.tcl |
469 | * ModelingDemo.tcl |
470 | * OCAFDemo.tcl |
471 | * VisualizationDemo.tcl |
472 | |
473 | **Getting Help** |
474 | |
475 | 1. Type help to see all available commands |
476 | 2. Type help command-name to find out the arguments for a given command |
477 | |
478 | @subsection OCCT_OVW_SECTION_7_3 Programming Samples |
479 | |
480 | @subsubsection OCCT_OVW_SECTION_7_3_1 MFC |
481 | |
482 | Visual C++ programming samples containing 10 Visual C++ projects |
483 | illustrating how to use a particular module or functionality. |
484 | |
485 | The list of MFC samples: |
486 | |
487 | * Geometry |
488 | * Modeling |
489 | * Viewer2d |
490 | * Viewer3d |
491 | * ImportExport |
492 | * Ocaf |
493 | * Triangulation |
494 | * HLR |
495 | * Animation |
496 | * Convert |
497 | |
498 | @image html /overview/images/overview_mvc.png |
499 | @image latex /overview/images/overview_mvc.png |
500 | |
501 | **Remarks:** |
502 | |
503 | * MFC samples are available only on Windows platform; |
504 | * To start a sample use Open CASCADE Technology\\Samples\\Mfc\\ item of the Start\\Programs menu; |
505 | * Read carefully readme.txt to learn about launching and compilation options. |
506 | |
507 | @subsubsection OCCT_OVW_SECTION_7_3_2 Qt |
508 | |
509 | OCCT contains three samples based on Qt application framework |
510 | |
511 | Import Export |
512 | ------------- |
513 | |
e5bd0d98 |
514 | Import Export programming sample contains 3D Viewer and Import / Export functionality. |
765b3e07 |
515 | |
516 | @image html /overview/images/overview_qt.png |
517 | @image latex /overview/images/overview_qt.png |
518 | |
519 | Tutorial |
520 | --------- |
521 | |
522 | The Qt programming tutorial teaches how to use Open CASCADE Technology services to model a 3D object. |
523 | The purpose of the tutorial is not to explain all OCCT classes but |
524 | to help start thinking in terms of the Open CASCADE Technology. |
525 | |
526 | This tutorial assumes that the user has experience in using and setting up C++. |
527 | From the viewpoint of programming, Open CASCADE Technology is designed |
528 | to enhance user's C++ tools with high performance modeling classes, methods and functions. |
529 | The combination of these resources allows creating substantial applications. |
530 | |
e5bd0d98 |
531 | **See also:** @ref tutorial "OCCT Tutorial" |
765b3e07 |
532 | |
533 | Voxel |
534 | ------ |
535 | |
536 | This is a demonstration application showing OCCT voxel models. |
537 | It also includes a set of non-regression tests and other commands |
538 | for testing this functionality (accessible only through TEST pre-processor definition). |
539 | |
e5bd0d98 |
540 | **See also:** Voxels User's guide (under construction) |
765b3e07 |
541 | |
542 | **Remarks:** |
543 | |
544 | * Qt samples are available on all supported platforms; |
545 | * To start a sample on Windows use Open CASCADE Technology\\Samples\\Qt\\ item of the Start\\Programs menu. |
546 | |
547 | @subsubsection OCCT_OVW_SECTION_7_3_3 C# |
548 | |
e5bd0d98 |
549 | C# sample demonstrates integration of OCCT 3D Viewer and Import / Export functionality |
550 | into .NET applications (using Windows Forms and WPF front ends). |
765b3e07 |
551 | |
552 | @image html /overview/images/overview_c__ie.png |
553 | @image latex /overview/images/overview_c__ie.png |
554 | |
555 | Import: |
556 | |
557 | * BRep |
558 | * Iges |
559 | * Step |
560 | |
561 | Export: |
562 | |
563 | * Brep |
564 | * Iges |
565 | * Step |
566 | * Stl |
567 | * Vrml |