Renaming overview folder
[occt.git] / dox / overview / Overview.md
1 Overview {#mainpage}
2 ========
3
4 @section OCCT_OVW_SECTION_1 Welcome
5
6 Welcome to Open CASCADE Technology version 6.7.0, a minor release, 
7 which introduces a number of new features and improved traditional 
8 functionality along with some changes over the previous release 6.6.0.
9
10 This release makes Open CASCADE Technology even a more powerful and stable 
11 development platform for 3D modeling and numerical simulation applications.
12
13 Open CASCADE Technology 6.7.0 is a full-featured package that allows developing 
14 applications on Windows and Linux platforms.
15
16 @htmlonly<center>@endhtmlonly http://www.opencascade.org
17
18 @image html /overview/images/overview_occttransparent.png
19 @image latex /overview/images/overview_occttransparent.png
20
21 Copyright (c) 2001-2013 OPEN CASCADE S.A.S.
22
23 @image html /resources/occt_logo.png
24 @image latex /resources/occt_logo.png
25
26 @htmlonly</center>@endhtmlonly
27
28 @section OCCT_OVW_SECTION_2 Copyrights
29
30 Copyright(c) 2001-2013 by OPEN CASCADE S.A.S. All rights reserved.
31
32  Trademark information
33 ----------------------
34
35 You are hereby informed that all software is a property of its respective authors and is protected by 
36 international and domestic laws on intellectual property and trademarks. 
37 Should you need further information, please directly contact the authors.
38
39 CAS.CADE and Open CASCADE are registered trademarks of OPEN CASCADE S.A.S.
40
41  Acknowledgement
42 ------------------
43
44 The following parties are acknowledged for producing tools which are used within 
45 Open CASCADE Technology libraries or for release preparation.
46
47 You are hereby informed that all rights to the software listed below belong to its respective 
48 authors and such software may not be freely available and/or be free of charge for any kind 
49 of use or purpose. We strongly recommend that you carefully read the license of these products 
50 and, in case you need any further information, directly contact their authors.
51
52 **Qt** is a cross-platform application framework that is widely used for developing application software 
53 with graphical user interface (GUI). Qt is free and open source software distributed under 
54 the terms of the GNU Lesser General Public License. In OCCT Qt is used for programming samples. 
55 If you need further information on Qt, please, refer to Qt Homepage (qt.digia.com).
56
57 **Tcl** is a high-level programming language. Tk is a graphical user interface (GUI) toolkit, 
58 with buttons, menus, listboxes, scrollbars, and so on. Taken together Tcl and Tk provide a solution 
59 to develop cross-platform graphical user interfaces with a native look and feel. Tcl/Tk is under copyright by 
60 Scriptics Corp., Sun Microsystems, and other companies. However, Tcl/Tk is an open source, and 
61 the copyright allows you to use, modify, and redistribute Tcl/Tk for any purpose, without an 
62 explicit license agreement and without paying any license fees or royalties. 
63 To use Tcl/Tk, please refer to the Licensing Terms (http://www.tcl.tk/software/tcltk/license.html).
64
65 **Robert Boehne** has developed **GNU Autoconf**, **Automake** and **Libtool** scripts and makefiles 
66 for the Open CASCADE project http://sourceforge.net/projects/autoopencas/, 
67 which became an initial groundwork for the build scripts based on respective GNU tools 
68 (autoconf, automake and libtool) in Open CASCADE Technology version 4.0. 
69 These scripts are now maintained by the OPEN CASCADE company.
70
71 **GL2PS** is developed by Christophe Geuzaine and others. It is OpenGL to PostScript printing library. 
72 The library is licensed under GL2PS LICENSE http://www.geuz.org/gl2ps/COPYING.GL2PS Version 2, November 2003.
73
74 **FreeType 2** is developed by Antoine Leca, David Turner, Werner Lemberg and others. 
75 It is a software font engine that is designed to be small, efficient, highly customizable and 
76 portable while capable of producing high-quality output (glyph images). This product 
77 can be used in graphic libraries, display servers, font conversion tools, 
78 text image generation tools, and many other products.
79
80 FreeType 2 is released under two open-source licenses: BSD-like FreeType License and the GPL.
81
82 **Intel(R) Threading Building Blocks (TBB)** offers a rich and complete approach to expressing parallelism in a C++ program. 
83 It is a library that helps you to take advantage of multi-core processor performance without having to be a threading expert. 
84 Threading Building Blocks is not just a threads-replacement library. It represents a higher-level, task-based parallelism that 
85 abstracts platform details and threading mechanisms for scalability and performance. 
86 TBB is available under GPLv2 license with the runtime exception.
87
88 Open CASCADE Technology WOK module on Windows also makes use of LGPL-licensed C routines   * regexp and getopt, taken from GNU C library.
89
90 **Doxygen** (Copyright (c) 1997-2010 by Dimitri van Heesch) is open source documentation system for 
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 
99 basis only under The Eclipse Public License (EPL) (http://www.graphviz.org/License.php).
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
105 **FreeImage** is an Open Source library supporting popular graphics image formats, such as PNG, BMP, JPEG, TIFF 
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, 
108 and cross-platform (works both with Linux and Mac OS X). FreeImage is licensed under the 
109 GNU General Public License, version 2.0 (GPLv2) and 
110 the FreeImage Public License (FIPL) (http://freeimage.sourceforge.net/freeimage-license.txt).
111
112 Adobe Systems, Inc. provides **Adobe Acrobat Professional**, which is a software to view, create, manipulate, 
113 print and manage files in Portable Document Format (PDF). 
114 This product is used in OCCT for the development and update of User's Guides.
115
116 The same developer provides **Robohelp HTML** that allows developing online Help for applications that are run on the Web and on Intranets. 
117 **Robohelp HTML X5.0.2** is used in OCCT for the development and update of OCCT Overview.
118
119 **Linux** is a registered trademark of Linus Torvalds.
120
121 **Windows** is a registered trademark of Microsoft Corporation in the United States and other countries.
122
123 **Mac** and the Mac logo are trademarks of Apple Inc., registered in the U.S. and other countries.
124
125
126 @section OCCT_OVW_SECTION_3 Introduction
127
128
129 This document is just an introduction to Open CASCADE Technology (OCCT) dealing with 
130 compatibility and installation issues and providing a general description of OCCT modules 
131 and other features. All modules and development tools are described in User's Guides, available in 
132 Adobe Portable Document Format (PDF). To read this format, you need Adobe Acrobat Reader, 
133 which is a freeware and can be downloaded from the Adobe site. 
134 All user guides can be accessed directly from this help.
135
136 Alongside with PDF User Guides, OCCT suggests its users full reference documentation on all 
137 implementation classes automatically generated by Doxygen software. 
138 This Doxygen generated documentation is supplied  in the form of a separate package, 
139 in a usual html file format.
140
141 Reference documentation is presented in **Modules --> Toolkits --> Packages --> Classes** 
142 logic structure with cross-references to all OCCT classes and complete in-browser search by all classes.
143
144 **Recommendation for generation of reference documentation**
145
146 Reference documentation can be generated by OCCT binary WOK package that 
147 is available for downloading from www.opencascade.org and dev.opencascade.org sites.
148
149 Prerequisites:
150
151   * Doxygen version 1.7.4 or higher
152   * Graphviz version 2.28.0 or higher
153
154 Run WOK (cd \<WOK_INSTALL_DIR\>/site folder):
155
156 * Using WOK TCL shell:
157       > wok_tclsh.sh
158
159 * Using Emacs editor:
160       > wok_emacs.sh
161
162 In the WOK prompt, step into your workbench:
163
164       >wokcd <your workbench>
165
166 In your workbench, use **wgendoc** command with –h argument to get information about arguments of **wgendoc** command:
167
168       >wgendoc -h
169
170 then run **wgendoc** command with required arguments
171
172 e.g., wgendoc –output=d:/occt/doc {–m=Draw Visualization} -chm
173
174 @section OCCT_OVW_SECTION_5 Requirements
175
176 @subsection OCCT_OVW_SECTION_5_1 Linux Intel
177 <table>
178 <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>
179 <tr> <td> Minimum memory </td> <td> 512 Mb, 1 Gb recommended </td > </tr> 
180 <tr> <td> Free disk space (complete installation)  </td> <td> For full installation Open CASCADE Technology requires 600 Mb of disk space.  </td > </tr> 
181 <tr> <td>Minimum swap space  </td> <td> 500 Mb </td > </tr> 
182 <tr> <td> Video card   </td> <td> **GeForce** The following versions of GeForce drivers are recommended: 64-bit Version: 100.14.19 or later http://www.nvidia.com/object/linux_display_amd64_100.14.19.html 32-bit Version: 100.14.19 or later http://www.nvidia.com/object/linux_display_ia32_100.14.19.html  </td > </tr> 
183 <tr> <td> Graphic library     </td> <td> OpenGL 1.1+ (OpenGL 1.5+ is recommended) </td > </tr> 
184 <tr> <td>C++      </td> <td>GNU gcc 4.0.  - 4.7.3.  </td > </tr> 
185 <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> 
186 <tr> <td> Qt (for demonstration tools)  </td> <td> Qt 4.6.2 http://qt.nokia.com/downloads </td > </tr> 
187 <tr> <td> Freetype (OCCT Text rendering) </td> <td> freetype-2.4.11 http://sourceforge.net/projects/freetype/files/ </td > </tr> 
188 <tr> <td> FreeImage (Support of common graphic formats) </td> <td>FreeImage 3.15.4 http://sourceforge.net/projects/freeimage/files/Source%20Distribution/     </td > </tr> 
189 <tr> <td> gl2ps (Export contents of OCCT viewer to vector graphic file)      </td> <td> gl2ps-1.3.8  http://geuz.org/gl2ps/ </td > </tr> 
190 <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> 
191 <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> 
192 </table>
193 \* Debian 60 64 bit is a permanently tested platform. 
194
195 @subsection OCCT_OVW_SECTION_5_2 Windows Intel
196
197 <table>
198 <tr> <th>Operating System  </th> <th> 32/64-bit: 8/ 7 SP1 / VISTA SP2 /XP SP3    </th> </tr>
199 <tr> <td> Minimum memory </td> <td> 512 Mb, 1 Gb recommended </td > </tr> 
200 <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> 
201 <tr> <td>Minimum swap space  </td> <td> 500 Mb </td > </tr> 
202 <tr> <td> Video card   </td> <td> **GeForce** Version 266.58 WHQL or later is recommended: http://www.nvidia.com/Download/index.aspx  
203  </td > </tr> 
204 <tr> <td> Graphic library     </td> <td> OpenGL 1.1+ (OpenGL 1.5+ is recommended) </td > </tr> 
205 <tr> <td>C++      </td> <td>Microsoft Visual Studio .NET 2005 SP1 with all security updates
206 Microsoft Visual Studio .NET 2008 SP1*
207 Microsoft Visual Studio .NET 2010
208 Microsoft Visual Studio .NET 2012
209 Microsoft Visual Studio .NET 2013
210   </td > </tr> 
211 <tr> <td> TCL (for testing tools)    </td> <td> TActiveTcl 8.5 or 8.6
212 http://www.activestate.com/activetcl/downloads  </td > </tr> 
213 <tr> <td> Qt (for demonstration tools)  </td> <td> Qt 4.6.2 http://qt.digia.com/downloads </td > </tr> 
214 <tr> <td> Freetype (OCCT Text rendering) </td> <td> freetype-2.4.11 http://sourceforge.net/projects/freetype/files/ </td > </tr> 
215 <tr> <td> FreeImage (Support of common graphic formats )</td> <td>FreeImage 3.15.4 http://sourceforge.net/projects/freeimage/files/Source%20Distribution/     </td > </tr> 
216 <tr> <td> gl2ps (Export contents of OCCT viewer to vector graphic file)      </td> <td> gl2ps-1.3.8  http://geuz.org/gl2ps/ </td > </tr> 
217 <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> 
218 <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> 
219 </table>
220
221 * The official release of OCCT for Windows contains libraries built with VC++ 2008. 
222
223
224 @subsection OCCT_OVW_SECTION_5_3 MAC OS X
225
226 <table>
227 <tr> <th>Operating System  </th> <th> Mac OS X 10.6.8 Snow Leopard / 10.7 Lion    </th> </tr>
228 <tr> <td> Minimum memory </td> <td> 512 Mb, 1 Gb recommended </td > </tr> 
229 <tr> <td> Free disk space (complete installation)  </td> <td> For full installation Open CASCADE Technology requires 600 Mb of disk space. </td > </tr> 
230 <tr> <td>Minimum swap space  </td> <td> 500 Mb </td > </tr> 
231 <tr> <td> Video card   </td> <td> **GeForce** Version 266.58 WHQL or later is recommended: http://www.nvidia.com/Download/index.aspx  
232  </td > </tr> 
233 <tr> <td> Graphic library     </td> <td> OpenGL 1.1+ (OpenGL 1.5+ is recommended) </td > </tr> 
234 <tr> <td>C++      </td> <td>XCode 3.2 or newer (4.x is recommended)  </td > </tr> 
235 <tr> <td> Qt (for demonstration tools)  </td> <td> Qt 4.6.2 http://qt.digia.com/downloads </td > </tr> 
236 <tr> <td> Freetype (OCCT Text rendering) </td> <td> freetype-2.4.11 http://sourceforge.net/projects/freetype/files/ </td > </tr> 
237 <tr> <td> FreeImage (Support of common graphic formats )</td> <td>FreeImage 3.15.4 http://sourceforge.net/projects/freeimage/files/Source%20Distribution/     </td > </tr> 
238 <tr> <td> gl2ps (Export contents of OCCT viewer to vector graphic file)      </td> <td> gl2ps-1.3.8  http://geuz.org/gl2ps/ </td > </tr> 
239 <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> 
240 <tr> <td> OpenCL (optional for providing ray tracing visualization core </td> <td> OpenCL 1.2.8 native </td>  </tr> 
241 </table>
242
243 @section OCCT_OVW_SECTION_4 Installation
244
245 Open CASCADE Technology can be installed with binaries precompiled by 
246 Visual C++ 2008 using Installation Procedure under Windows platform only
247
248 The source package and the building tools are available for self-dependent 
249 preparation binary files on Unix and Windows platforms.
250
251 @subsection OCCT_OVW_SECTION_4_1 Windows
252
253 **Recommendation:**
254
255 If you have a previous version of OCCT installed on your station, 
256 and you do not plan to use it along with the new version, you might want to uninstall 
257 the previous version (using Control Panel, Add/Remove Programs) before 
258 the installation of this new version, to avoid possible problems 
259 (conflict of system variables, paths, etc).
260
261 **Attention:** For full installation OCCT requires approximately 650 Mb of disk space, 
262 but during the installation process you will need 1,2 Gb of free disk space.
263
264 OCCT installation with reference documentation requires 1,4 Gb on disk.
265
266   * Download the OCCT installer from OPEN CASCADE web site using the link. you have been provided
267   * Launch the installer and follow the instructions.
268
269 ### Third-party tools
270
271
272 The includes and binaries of third-party libraries necessary for building and launching 
273 OCCT are included into binary distribution (built with Visual C++ 2008). 
274 To recompile OCCT libraries with other Visual C++ versions, 
275 it is necessary to install headers and libraries of these third-party products.
276
277 The recommended way to do this is to download each of the third-party tools from its web site 
278 and build it using the relevant tools. For additional convenience of the users, 
279 OPEN CASCADE also provides the documents with recommendations on building 
280 third-party products from source files.
281
282
283
284 When the installation is complete, you will find the following directories 
285 (some might be absent in case of custom installation):
286
287 @image html /overview/images/overview_installation.png "The directory tree"
288 @image latex /overview/images/overview_installation.png "The directory tree"
289
290
291
292   * **adm**   This folder contains administration files, which allow rebuilding OCCT;
293   * **adm/cmake**  This folder contains files of CMake building procedure;
294   * **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;
295   * **data**  This folder contains CAD files in different formats, which can be used to test the OCCT functionalities;
296   * **doc**  This folder contains OCCT Overview documentation;
297   * **drv**  This folder contains source files generated by WOK (private header files and instantiations of generic classes);
298   * **inc**  This folder contains all OCCT header files;
299   * **samples**  This folder contains sample applications.
300   * **src**  This folder contains OCCT source files. They are organized in folders, one per development unit;
301   * **tests**  This folder contains scripts for OCCT testing.
302   * **win32/vc9**  This folder contains executable and library files built in optimize mode for Windows platform by Visual C++  2008;
303
304 3rd party products have been moved to the root of Open CASCADE installation.
305
306 @image html /overview/images/overview_3rdparty.png "The third-party products"
307 @image latex /overview/images/overview_3rdparty.png "The third-party products"
308
309
310 @subsection OCCT_OVW_SECTION_4_2 System Environment Variables
311
312 To run any Open CASCADE Technology application you need to set the environment variables.
313
314 ### On Windows
315
316
317 You can define the environment variables with env.bat script located in the 
318 OpenCACADE<version_number>/ros folder. This script accepts two arguments to be used: 
319 the version of Visual Studio (vc8, vc9, or vc10) and the architecture (win32 or win64).
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
335 The scripts are located in the OpenCACADE<version_number>/ros folder of the source package.
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);
344   * **MMGT_OPT** 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** 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** defines the maximal size of blocks allocated in large pools of memory. Default is 200;
351   * **MMGT_NBPAGES** defines the size of memory chunks allocated for small blocks in pages 
352   (operating-system dependent). Default is 10000;
353   * **MMGT_THRESHOLD** defines the maximal size of blocks that are recycled internally 
354   instead of being returned to the heap. Default is 40000;
355   * **MMGT_MMAP** 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();
358   * **MMGT_REENTRANT** when set to 1 (default), all calls to the 
359   optimized memory manager will be secured against possible simultaneous access from different execution threads. 
360
361 This variable should be set in any multithreaded application that uses 
362 an optimized memory manager (MMGT_OPT=1) and has more than one thread 
363 potentially calling OCCT functions. If set to 0, OCCT memory management and 
364 exception handling routines will skip the code protecting from possible concurrency 
365 in multi-threaded environment. This can yield some performance gain in some applications, 
366 but can lead to unpredictable results if used in a multithreaded application;
367
368 **Special note:** for applications that use OCCT memory manager from more than one thread, 
369 on multiprocessor hardware, it is recommended to use options MMGT_OPT=2 and MMGT_REENTRANT=1.
370
371   * **CSF_LANGUAGE** is required to define the default language of messages;
372   * **CSF_EXCEPTION_PROMPT** – if defined and set to 1 then a diagnostic message is displayed in case of an exception;
373   * **CSF_MDTVFontDirectory** accesses the fonts that can be used in OCCT;
374   * **CSF_MDTVTexturesDirectory** defines the directory for available textures when using texture mapping;
375   * **CSF_UnitsDefinition** and **CSF_UnitsLexicon** are required by programs considering units;
376   * **CSF_SHMessage** is required in order to define the path to the messages file for *ShapeHealing*;
377   * **CSF_XSMessage** is required in order to define the path to the messages file for **STEP** and **IGES** translators;
378   * **CSF_StandardDefaults** and **CSF_PluginDefaults** are required in order to maintain CASCADE Persistence mechanism to make possible   any open/save operations with OCAF documents;
379   * **CSF_StandardLiteDefaults** is required in order to maintain *OCCT Persistence mechanism* to make possible any open/save operations with Lite OCAF documents;
380   * **CSF_XCAFDefaults**  any open/save operations for **XDE** documents;
381   * **CSF_GraphicShr** is required to define the path to the *TKOpenGl* library;
382   * **CSF_IGESDefaults** and **CSF_STEPDefaults** are required for **IGES** and **STEP** translators correspondingly in order to define the path to the resource files;
383   * **CSF_XmlOcafResource** is required in order to set the path to **XSD** resources, which defines XML grammar.
384
385 As part of XML persistence support, these definitions can be used by end users 
386 in XML validators or editors, together with persistent XmlOcaf documents;
387
388 * **CSF_MIGRATION_TYPES** is required in order to read documents that contain old data types, such as *TDataStd_Shape*;
389 * **TCLLIBPATH**, **TCL_LIBRARY**, **TK_LIBRARY** and **TIX_LIBRARY** are required to allow work with **DRAW** and **WOK**.
390
391 @section OCCT_OVW_SECTION_6 Release Notes
392
393
394 Open CASCADE Technology latest version 
395 @htmlonly 
396 <a href="http://occtrel.nnov.opencascade.com/OpenCASCADE6.7.0/doc/release_notes.pdf">Release Notes</a>
397 @endhtmlonly  (PDF)
398
399
400 @section OCCT_OVW_SECTION_7 Getting Started
401
402
403 @subsection OCCT_OVW_SECTION_7_1 Draw Test Harness
404
405 Draw is a command interpreter based on TCL and a graphical system used for testing and demonstrating OCCT modeling libraries.
406
407 Draw can be used interactively to create, display and modify objects such as curves, surfaces and topological shapes.
408
409 @image html /overview/images/overview_draw.png
410 @image latex /overview/images/overview_draw.png
411
412 Scripts can be written to customize Draw and perform tests. 
413 New types of objects and new commands can be added using C++ programming language.
414
415 Draw contains:
416
417   * A command interpreter based on TCL command language.
418   * A 2D an 3D graphic viewer with support of operations such as zoom, pan, rotation and full-screen views.
419   * An optional set of geometric commands to create and modify curves and surfaces and to use OCCT geometry algorithms.
420   * A set of topological commands to create and modify BRep shapes and to use OCCT topology algorithms.
421   * A set of graphic commands for view and display operations including Mesh Visualization Service.
422   * A set of Application framework commands for handling of files and attributes.
423   * A set of Data Exchange commands for translation of files from various formats (IGES,STEP) into OCCT shapes.
424   * A set of Shape Healing commands: check of overlapping edges, approximation of a shape to BSpline, etc.  
425
426 You can add new custom test harness commands to Draw in order to test 
427 or demonstrate a new functionality, which you are developing.
428
429 Currently DRAW Test Harness is a single executable called DRAWEXE.
430
431 Commands grouped in toolkits can be loaded at run-time thereby implementing dynamically loaded plug-ins. 
432 Thus you can work only with the commands that suit your needs adding 
433 the commands dynamically without leaving the Test Harness session.
434
435 Declaration of available plug-ins is done through special resource file(s). 
436 The pload command loads the plug-in in accordance with 
437 the specified resource file and activates the commands implemented in the plug-in.
438
439 The whole process of using the plug-in mechanism as well as the instructions for extending Test Harness is described in the 
440 @htmlonly 
441 <a href="http://occtrel.nnov.opencascade.com/OpenCASCADE6.6.0/doc/OCCT_Tests.pdf">User's Guide/</a>
442 @endhtmlonly
443
444 Draw Test Harness provides an environment for OCCT automated testing system. Please, consult its 
445 @htmlonly 
446 <a href="http://occtrel.nnov.opencascade.com/OpenCASCADE6.6.0/doc/OCCT_Tests.pdf">User's Guide /</a>
447 @endhtmlonly
448 for details.
449
450 Remarks:
451
452 * The DRAWEXE executable is delivered with the installation procedure on Windows platform only.
453 * To start it, launch DRAWEXE executable from Open CASCADE Technology//Draw Test Harness item of the Start\\Programs menu.
454
455 @subsection OCCT_OVW_SECTION_7_2 Experimenting with Draw Test Harness
456
457  Running Draw
458 ------------
459
460 **On Linux:**
461
462 1. If OCCT was built by Code::Blocks   * use $CASROOT/draw_cbp.sh file to launch DRAWEXE executable;
463 2. If OCCT was built by Automake    * use $CASROOT/draw_amk.sh file to launch DRAWEXE executable;
464
465 Draw[1]> prompt appears in the command window
466
467 Type pload ALL
468
469 **On Windows:**
470
471 Launch Draw executable from Open CASCADE Technology\\Test Harness\\Draw Test Harness 
472 item of the Start\\Programs menu or Use $CASROOT\\draw.bat file to launch DRAWEXE executable.
473
474 Draw[1]> prompt appears in the command window
475
476 Type pload ALL
477
478 **Creating your first geometric objects**
479
480 1. In the command window, type axo to create an axonometric view
481 2. Type box b -10 -10 -10 20 20 20 to create a cube b of size 20, 
482    parallel to the X Y Z axis and centered on the origin. 
483    The cube will be displayed in the axonometric view in wireframe mode
484 3. Type fit to fill the viewer with the cube
485 4. Type pcylinder c 2 30 to create a cylinder c of radius 2 and height 30.
486    The cylinder will be displayed in addition to the cube
487
488 **Manipulating the view**
489
490 1. Type clear to erase the view
491 2. Type donly c to display the cylinder only
492 3. Type donly b to display the cube only
493 4. Type hlr hlr b to display the cube in the hidden line removal mode
494
495 **Running demonstration files**
496
497 1. Type cd ..//.. to return to the root directory
498 2. Type cd src//DrawResources to reach the DrawResources directory
499 3. Type source "Available Demo File" to run the demonstration provided with Open CASCADE
500 4. The following demonstration files are available:
501   * DataExchangeDemo.tcl
502   * ModelingDemo.tcl
503   * OCAFDemo.tcl
504   * VisualizationDemo.tcl
505
506 **Getting Help**
507
508 1. Type help to see all available commands
509 2. Type help command-name to find out the arguments for a given command
510
511 @subsection OCCT_OVW_SECTION_7_3 Programming Samples
512
513 @subsubsection OCCT_OVW_SECTION_7_3_1 MFC 
514
515 Visual C++ programming samples containing 10 Visual C++ projects 
516 illustrating how to use a particular module or functionality.
517
518 The list of MFC samples:
519
520   * Geometry
521   * Modeling
522   * Viewer2d
523   * Viewer3d
524   * ImportExport
525   * Ocaf
526   * Triangulation
527   * HLR
528   * Animation
529   * Convert
530
531 @image html /overview/images/overview_mvc.png
532 @image latex /overview/images/overview_mvc.png
533
534 **Remarks:**
535
536   * MFC samples are available only on Windows platform;
537   * To start a sample use Open CASCADE Technology\\Samples\\Mfc\\ item of the Start\\Programs menu;
538   * Read carefully readme.txt to learn about launching and compilation options.
539
540 @subsubsection OCCT_OVW_SECTION_7_3_2 Qt
541
542 OCCT contains three samples based on Qt application framework
543
544  Import Export
545 -------------
546
547  Import Export programming sample contains 3D Viewer and Import // Export functionality.
548
549 @image html /overview/images/overview_qt.png
550 @image latex /overview/images/overview_qt.png
551
552  Tutorial
553 ---------
554
555 The Qt programming tutorial teaches how to use Open CASCADE Technology services to model a 3D object. 
556 The purpose of the tutorial is not to explain all OCCT classes but 
557 to help start thinking in terms of the Open CASCADE Technology.
558
559 This tutorial assumes that  the user has experience in using and setting up C++. 
560 From the viewpoint of programming, Open CASCADE Technology is designed 
561 to enhance user's C++ tools with high performance modeling classes, methods and functions. 
562 The combination of these resources allows creating substantial applications.
563
564 **See also:** @subpage overview__tutorial "3D Object Tutorial" 
565
566  Voxel
567 ------
568
569 This is a demonstration application showing OCCT voxel models. 
570 It also includes a set of non-regression tests and other commands 
571 for testing this functionality (accessible only through TEST pre-processor definition).
572
573 **See also:** 
574  @htmlonly 
575 <a href="http://occtrel.nnov.opencascade.com/OpenCASCADE6.6.0/doc/voxels_wp.pdf">Voxels User's guide (PDF)</a>
576 @endhtmlonly
577
578 **Remarks:**
579
580   * Qt samples are available on all supported platforms;
581   * To start a sample on Windows use Open CASCADE Technology\\Samples\\Qt\\ item of the Start\\Programs menu.
582
583 @subsubsection OCCT_OVW_SECTION_7_3_3 C#
584
585 C# sample containing 3D Viewer and Import // Export functionality.
586
587 @image html /overview/images/overview_c__ie.png
588 @image latex /overview/images/overview_c__ie.png
589
590 Import:
591
592   * BRep
593   * Iges
594   * Step
595
596 Export: 
597
598   * Brep
599   * Iges
600   * Step
601   * Stl
602   * Vrml
603
604 **Remarks:**
605
606   * C# sample is available only on Windows platform;
607   * It is delivered in source code only and must be built with Microsoft Visual C++ 2005.
608   
609   
610   
611