documentation updated V6_7_0_beta
authoribs <ibs@opencascade.com>
Thu, 7 Nov 2013 09:06:49 +0000 (13:06 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 7 Nov 2013 11:43:00 +0000 (15:43 +0400)
unrelated changes: Unused unit OpenCL removed from UDLIST

All articles revised
README revised
comments are allowed in FILES.txt

Add gendoc.sh for Linux
Added option -s to set search engine of the HTML documents
Added 3rdparty_building docs for different platforms

help message removed from bat&sh scripts (left within tcl script)
tableofcontents added for all huge articles;
gendoc.bat doesn't change PATH variable
jpgs converted to pngs and unused pngs removed
logo displaying of pdf files fixed
Automatic detection of OCCT version number added to occtdoc.tcl
OCCT version within pdfs is got from Standard_Version.hxx; copyright changed
pdf generation process removes latex dir now
GIF images converted to PNG in technical_overview;
references fixed (incorrect reference to wok and cdl didn't touch; redundant latex option removed

Tutorial moved from Overview and made top level page
LICENSE.md moved from dox/overview to dox folder

Section related to OCCT building refactored and simplified.
WOK and CDL explicitly declared as deprecated.

380 files changed:
README
adm/UDLIST
dox/FILES.txt
dox/LICENSE.md [new file with mode: 0644]
dox/dev_guides/building/3rdparty/3rdparty_linux.md [new file with mode: 0644]
dox/dev_guides/building/3rdparty/3rdparty_osx.md [new file with mode: 0644]
dox/dev_guides/building/3rdparty/3rdparty_windows.md [new file with mode: 0644]
dox/dev_guides/building/3rdparty/images/3rdparty_image001.png [new file with mode: 0644]
dox/dev_guides/building/3rdparty/images/3rdparty_image003.png [new file with mode: 0644]
dox/dev_guides/building/3rdparty/images/3rdparty_image004.png [new file with mode: 0644]
dox/dev_guides/building/3rdparty/images/3rdparty_image005.png [new file with mode: 0644]
dox/dev_guides/building/3rdparty/images/3rdparty_image006.png [new file with mode: 0644]
dox/dev_guides/building/3rdparty/images/3rdparty_image007.png [new file with mode: 0644]
dox/dev_guides/building/automake.md
dox/dev_guides/building/building.md
dox/dev_guides/building/cmake.md [deleted file]
dox/dev_guides/building/cmake/cmake.md [new file with mode: 0644]
dox/dev_guides/building/cmake/images/cmake_image001.png [new file with mode: 0644]
dox/dev_guides/building/cmake/images/cmake_image002.png [new file with mode: 0644]
dox/dev_guides/building/cmake/images/cmake_image003.png [new file with mode: 0644]
dox/dev_guides/building/cmake/images/cmake_image004.png [new file with mode: 0644]
dox/dev_guides/building/cmake/images/cmake_image005.png [new file with mode: 0644]
dox/dev_guides/building/cmake/images/cmake_image006.png [new file with mode: 0644]
dox/dev_guides/building/code_blocks.md
dox/dev_guides/building/msvc.md
dox/dev_guides/building/wok/images/wok_image001.jpg [deleted file]
dox/dev_guides/building/wok/images/wok_image001.png [new file with mode: 0644]
dox/dev_guides/building/wok/images/wok_image002.jpg [deleted file]
dox/dev_guides/building/wok/images/wok_image002.png [new file with mode: 0644]
dox/dev_guides/building/wok/images/wok_image003.jpg [deleted file]
dox/dev_guides/building/wok/images/wok_image003.png [new file with mode: 0644]
dox/dev_guides/building/wok/images/wok_image004.jpg [deleted file]
dox/dev_guides/building/wok/images/wok_image004.png [new file with mode: 0644]
dox/dev_guides/building/wok/wok.md
dox/dev_guides/building/xcode.md
dox/dev_guides/cdl/cdl.md
dox/dev_guides/cdl/images/cdl_image001.jpg [deleted file]
dox/dev_guides/cdl/images/cdl_image002.jpg [deleted file]
dox/dev_guides/cdl/images/cdl_image003.jpg [deleted file]
dox/dev_guides/cdl/images/cdl_image003.png [new file with mode: 0644]
dox/dev_guides/cdl/images/cdl_image004.jpg [deleted file]
dox/dev_guides/cdl/images/cdl_image004.png [new file with mode: 0644]
dox/dev_guides/cdl/images/cdl_image005.jpg [deleted file]
dox/dev_guides/cdl/images/cdl_image005.png [new file with mode: 0644]
dox/dev_guides/cdl/images/cdl_image006.jpg [deleted file]
dox/dev_guides/cdl/images/cdl_image006.png [new file with mode: 0644]
dox/dev_guides/cdl/images/cdl_image007.jpg [deleted file]
dox/dev_guides/cdl/images/cdl_image007.png [new file with mode: 0644]
dox/dev_guides/cdl/images/cdl_image008.jpg [deleted file]
dox/dev_guides/cdl/images/cdl_image008.png [new file with mode: 0644]
dox/dev_guides/cdl/images/cdl_image009.jpg [deleted file]
dox/dev_guides/cdl/images/cdl_image009.png [new file with mode: 0644]
dox/dev_guides/cdl/images/cdl_image010.jpg [deleted file]
dox/dev_guides/cdl/images/cdl_image010.png [new file with mode: 0644]
dox/dev_guides/cdl/images/cdl_image011.jpg [deleted file]
dox/dev_guides/cdl/images/cdl_image011.png [new file with mode: 0644]
dox/dev_guides/cdl/images/cdl_image012.jpg [deleted file]
dox/dev_guides/cdl/images/cdl_image012.png [new file with mode: 0644]
dox/dev_guides/dev_guides.md
dox/dev_guides/documentation/documentation.md
dox/dev_guides/documentation/images/documentation_image002.png [new file with mode: 0644]
dox/dev_guides/tests/images/tests_image001.png
dox/dev_guides/tests/tests.md
dox/dev_guides/wok/images/wok_image001.jpg [deleted file]
dox/dev_guides/wok/images/wok_image002.jpg [deleted file]
dox/dev_guides/wok/images/wok_image013.jpg [deleted file]
dox/dev_guides/wok/images/wok_image013.png [new file with mode: 0644]
dox/dev_guides/wok/images/wok_image014.jpg [deleted file]
dox/dev_guides/wok/images/wok_image014.png [new file with mode: 0644]
dox/dev_guides/wok/wok.md
dox/occdoc.tcl
dox/overview/LICENSE.md [deleted file]
dox/overview/Overview.md
dox/overview/images/overview_3rdparty.png [new file with mode: 0644]
dox/overview/images/overview_occttransparent.png [deleted file]
dox/overview/tutorial/images/tutorial_image001.png [deleted file]
dox/overview/tutorial/images/tutorial_image002.png [deleted file]
dox/overview/tutorial/images/tutorial_image003.png [deleted file]
dox/overview/tutorial/images/tutorial_image004.png [deleted file]
dox/overview/tutorial/images/tutorial_image005.png [deleted file]
dox/overview/tutorial/images/tutorial_image006.png [deleted file]
dox/overview/tutorial/images/tutorial_image007.png [deleted file]
dox/overview/tutorial/images/tutorial_image008.png [deleted file]
dox/overview/tutorial/images/tutorial_image009.png [deleted file]
dox/overview/tutorial/images/tutorial_image010.png [deleted file]
dox/overview/tutorial/images/tutorial_image011.png [deleted file]
dox/overview/tutorial/images/tutorial_image012.png [deleted file]
dox/overview/tutorial/images/tutorial_image013.png [deleted file]
dox/overview/tutorial/images/tutorial_image014.png [deleted file]
dox/overview/tutorial/images/tutorial_image015.png [deleted file]
dox/overview/tutorial/images/tutorial_image016.png [deleted file]
dox/overview/tutorial/images/tutorial_image017.png [deleted file]
dox/overview/tutorial/images/tutorial_image018.png [deleted file]
dox/overview/tutorial/images/tutorial_image019.png [deleted file]
dox/overview/tutorial/tutorial.md [deleted file]
dox/resources/occ_logo.png [new file with mode: 0644]
dox/resources/occt_logo.png
dox/start.tcl [changed mode: 0644->0755]
dox/technical_overview/images/technical_overview_buildingmodules.png [new file with mode: 0644]
dox/technical_overview/images/technical_overview_de.png [new file with mode: 0644]
dox/technical_overview/images/technical_overview_ma.png [new file with mode: 0644]
dox/technical_overview/images/technical_overview_md.png [new file with mode: 0644]
dox/technical_overview/images/technical_overview_occ_0005.png [new file with mode: 0644]
dox/technical_overview/images/technical_overview_occ_0006.png [new file with mode: 0644]
dox/technical_overview/images/technical_overview_occ_0007.png [new file with mode: 0644]
dox/technical_overview/images/technical_overview_occ_0008.png [new file with mode: 0644]
dox/technical_overview/images/technical_overview_occ_0068.png [new file with mode: 0644]
dox/technical_overview/images/technical_overview_occt_logo.png [new file with mode: 0644]
dox/technical_overview/images/technical_overview_shapeattrib.png [new file with mode: 0644]
dox/technical_overview/images/technical_overview_viz.png [new file with mode: 0644]
dox/technical_overview/technical_overview.md
dox/tutorial/images/tutorial_image001.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image002.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image003.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image004.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image005.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image006.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image007.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image008.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image009.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image010.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image011.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image012.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image013.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image014.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image015.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image016.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image017.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image018.png [new file with mode: 0644]
dox/tutorial/images/tutorial_image019.png [new file with mode: 0644]
dox/tutorial/tutorial.md [new file with mode: 0644]
dox/user_guides/draw_test_harness.md [new file with mode: 0644]
dox/user_guides/draw_test_harness/draw_test_harness.md [deleted file]
dox/user_guides/draw_test_harness/images/draw_test_harness_image001.jpg [deleted file]
dox/user_guides/draw_test_harness/images/draw_test_harness_image002.jpg [deleted file]
dox/user_guides/foundation_classes/foundation_classes.md
dox/user_guides/foundation_classes/images/foundation_classes_image001.jpg [deleted file]
dox/user_guides/foundation_classes/images/foundation_classes_image002.jpg [deleted file]
dox/user_guides/foundation_classes/images/foundation_classes_image003.jpg [deleted file]
dox/user_guides/foundation_classes/images/foundation_classes_image003.png [new file with mode: 0644]
dox/user_guides/foundation_classes/images/foundation_classes_image004.jpg [deleted file]
dox/user_guides/foundation_classes/images/foundation_classes_image004.png [new file with mode: 0644]
dox/user_guides/foundation_classes/images/foundation_classes_image005.jpg [deleted file]
dox/user_guides/foundation_classes/images/foundation_classes_image005.png [new file with mode: 0644]
dox/user_guides/foundation_classes/images/foundation_classes_image006.jpg [deleted file]
dox/user_guides/foundation_classes/images/foundation_classes_image006.png [new file with mode: 0644]
dox/user_guides/foundation_classes/images/foundation_classes_image007.jpg [deleted file]
dox/user_guides/foundation_classes/images/foundation_classes_image007.png [new file with mode: 0644]
dox/user_guides/foundation_classes/images/foundation_classes_image008.jpg [deleted file]
dox/user_guides/foundation_classes/images/foundation_classes_image008.png [new file with mode: 0644]
dox/user_guides/iges/iges.md
dox/user_guides/iges/images/iges_image001.jpg [deleted file]
dox/user_guides/iges/images/iges_image002.jpg [deleted file]
dox/user_guides/iges/images/iges_image003.jpg [deleted file]
dox/user_guides/iges/images/iges_image003.png [new file with mode: 0644]
dox/user_guides/iges/images/iges_image004.jpg [deleted file]
dox/user_guides/iges/images/iges_image004.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image001.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image002.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image003.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image003.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image004.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image004.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image005.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image005.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image006.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image006.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image007.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image007.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image008.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image008.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image009.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image009.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image010.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image010.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image011.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image011.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image012.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image012.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image013.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image013.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image014.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image014.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image015.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image015.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image016.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image016.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image017.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image017.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image018.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image018.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image019.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image019.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image020.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image020.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image021.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image021.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image022.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image022.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image023.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image023.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image024.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image024.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image025.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image025.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image026.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image026.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image027.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image027.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image028.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image028.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image029.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image029.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image030.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image030.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image031.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image031.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image033.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image033.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image034.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image034.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image035.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image035.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image036.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image036.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image037.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image037.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image038.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image038.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image039.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image039.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image040.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image040.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image041.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image041.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image042.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image042.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image043.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image043.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image044.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image044.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image045.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image045.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image046.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image046.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image047.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image047.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image048.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image048.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image049.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image049.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image050.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image050.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image051.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image051.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image052.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image052.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image053.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image053.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image054.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image054.png [new file with mode: 0644]
dox/user_guides/modeling_algos/images/modeling_algos_image055.jpg [deleted file]
dox/user_guides/modeling_algos/images/modeling_algos_image055.png [new file with mode: 0644]
dox/user_guides/modeling_algos/modeling_algos.md
dox/user_guides/modeling_data/images/modeling_data_image001.jpg [deleted file]
dox/user_guides/modeling_data/images/modeling_data_image002.jpg [deleted file]
dox/user_guides/modeling_data/images/modeling_data_image003.jpg [deleted file]
dox/user_guides/modeling_data/images/modeling_data_image003.png [new file with mode: 0644]
dox/user_guides/modeling_data/images/modeling_data_image004.jpg [deleted file]
dox/user_guides/modeling_data/images/modeling_data_image004.png [new file with mode: 0644]
dox/user_guides/modeling_data/images/modeling_data_image005.jpg [deleted file]
dox/user_guides/modeling_data/images/modeling_data_image005.png [new file with mode: 0644]
dox/user_guides/modeling_data/images/modeling_data_image006.jpg [deleted file]
dox/user_guides/modeling_data/images/modeling_data_image006.png [new file with mode: 0644]
dox/user_guides/modeling_data/images/modeling_data_image007.jpg [deleted file]
dox/user_guides/modeling_data/images/modeling_data_image007.png [new file with mode: 0644]
dox/user_guides/modeling_data/images/modeling_data_image008.jpg [deleted file]
dox/user_guides/modeling_data/images/modeling_data_image008.png [new file with mode: 0644]
dox/user_guides/modeling_data/images/modeling_data_image009.jpg [deleted file]
dox/user_guides/modeling_data/images/modeling_data_image009.png [new file with mode: 0644]
dox/user_guides/modeling_data/images/modeling_data_image010.jpg [deleted file]
dox/user_guides/modeling_data/images/modeling_data_image010.png [new file with mode: 0644]
dox/user_guides/modeling_data/images/modeling_data_image011.jpg [deleted file]
dox/user_guides/modeling_data/images/modeling_data_image011.png [new file with mode: 0644]
dox/user_guides/modeling_data/images/modeling_data_image012.jpg [deleted file]
dox/user_guides/modeling_data/images/modeling_data_image012.png [new file with mode: 0644]
dox/user_guides/modeling_data/images/modeling_data_image013.jpg [deleted file]
dox/user_guides/modeling_data/images/modeling_data_image013.png [new file with mode: 0644]
dox/user_guides/modeling_data/images/modeling_data_image014.jpg [deleted file]
dox/user_guides/modeling_data/images/modeling_data_image014.png [new file with mode: 0644]
dox/user_guides/modeling_data/modeling_data.md
dox/user_guides/ocaf/images/ocaf_image001.png [deleted file]
dox/user_guides/ocaf/images/ocaf_image002.png [deleted file]
dox/user_guides/ocaf/ocaf.md
dox/user_guides/shape_healing/images/shape_healing_image001.jpg [deleted file]
dox/user_guides/shape_healing/images/shape_healing_image002.jpg [deleted file]
dox/user_guides/shape_healing/images/shape_healing_image003.jpg [deleted file]
dox/user_guides/shape_healing/images/shape_healing_image003.png [new file with mode: 0644]
dox/user_guides/shape_healing/images/shape_healing_image004.jpg [deleted file]
dox/user_guides/shape_healing/images/shape_healing_image004.png [new file with mode: 0644]
dox/user_guides/shape_healing/images/shape_healing_image005.jpg [deleted file]
dox/user_guides/shape_healing/images/shape_healing_image005.png [new file with mode: 0644]
dox/user_guides/shape_healing/images/shape_healing_image006.jpg [deleted file]
dox/user_guides/shape_healing/images/shape_healing_image006.png [new file with mode: 0644]
dox/user_guides/shape_healing/images/shape_healing_image007.jpg [deleted file]
dox/user_guides/shape_healing/images/shape_healing_image007.png [new file with mode: 0644]
dox/user_guides/shape_healing/images/shape_healing_image008.jpg [deleted file]
dox/user_guides/shape_healing/images/shape_healing_image008.png [new file with mode: 0644]
dox/user_guides/shape_healing/shape_healing.md
dox/user_guides/step/images/step_image001.jpg [deleted file]
dox/user_guides/step/images/step_image002.jpg [deleted file]
dox/user_guides/step/images/step_image003.jpg [deleted file]
dox/user_guides/step/images/step_image003.png [new file with mode: 0644]
dox/user_guides/step/images/step_image004.jpg [deleted file]
dox/user_guides/step/images/step_image004.png [new file with mode: 0644]
dox/user_guides/step/step.md
dox/user_guides/tobj/images/tobj_image004.jpg [deleted file]
dox/user_guides/tobj/images/tobj_image004.png [new file with mode: 0644]
dox/user_guides/tobj/tobj.md
dox/user_guides/user_guides.md
dox/user_guides/visualization/images/visualization_image001.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image002.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image003.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image003.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image006.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image006.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image007.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image007.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image008.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image008.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image009.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image009.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image010.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image010.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image011.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image011.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image012.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image012.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image013.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image013.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image014.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image014.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image015.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image015.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image016.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image016.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image017.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image017.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image018.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image018.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image019.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image019.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image020.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image020.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image021.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image021.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image022.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image022.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image025.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image025.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image026.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image026.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image027.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image027.png [new file with mode: 0644]
dox/user_guides/visualization/images/visualization_image028.jpg [deleted file]
dox/user_guides/visualization/images/visualization_image028.png [new file with mode: 0644]
dox/user_guides/visualization/visualization.md
dox/user_guides/xde/images/xde_image001.jpg [deleted file]
dox/user_guides/xde/images/xde_image002.jpg [deleted file]
dox/user_guides/xde/images/xde_image003.jpg [deleted file]
dox/user_guides/xde/images/xde_image003.png [new file with mode: 0644]
dox/user_guides/xde/images/xde_image004.jpg [deleted file]
dox/user_guides/xde/images/xde_image004.png [new file with mode: 0644]
dox/user_guides/xde/images/xde_image005.jpg [deleted file]
dox/user_guides/xde/images/xde_image005.png [new file with mode: 0644]
dox/user_guides/xde/images/xde_image006.jpg [deleted file]
dox/user_guides/xde/images/xde_image006.png [new file with mode: 0644]
dox/user_guides/xde/xde.md
gendoc.bat
gendoc.sh [new file with mode: 0755]

diff --git a/README b/README
index 0f84738..66dc267 100644 (file)
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
-               Open CASCADE Technology source repository
-               -----------------------------------------
+Open CASCADE Technology
+=======================
 
 This directory contains sources of Open CASCADE Technology (OCCT), a collection
 of C++ libraries providing services for 3D surface and solid modeling, CAD data
@@ -7,38 +7,74 @@ exchange, and visualization. OCCT can be best applied in development of
 software dealing with 3D modeling (CAD), manufacturing / measuring (CAM) or
 numerical simulation (CAE).
 
-The OCCT code is subject to the Open CASCADE Technology Public License Version
-6.5 (the "License"). You may not use the content of the relevant files except in
-compliance with the License. Please see the LICENSE file or obtain a copy of the
-License at http://www.opencascade.org and read it completely before using this
-software.
+License
+-------
 
-In order to build OCCT libraries from these sources for use in your program, 
-you need to:
+The OCCT code is subject to the Open CASCADE Technology Public License 
+(the "License"). You may not use the content of the relevant files except
+in compliance with the License. Please see the LICENSE file or obtain a copy 
+of the License at http://www.opencascade.org and read it completely before 
+using this software.
 
-1. Download, build, and install the required third-party libraries.
+Packaging
+---------
 
-   Follow the instructions provided in the documents titled "Building 3rd party
-   products for OCCT" on http://dev.opencascade.org/?q=home/resources for
-   installation and building.
+You can receive certified version of OCCT code in different packages.
 
-2. Install and configure WOK development environment.
+- Snapshot of Git repository: contains only bare sources of OCCT; many C++ 
+  files, HTML documentation, and project files / makefiles for building OCCT
+  need to be generated.
 
-   See http://dev.opencascade.org/?q=home/resources for the latest build of the 
-   WOK and instructions of configuring it.
+- Complete source archive: contains all sources of OCCT, including C++ files
+  generated by WOK, HTML and PDF documentation, and projects / makefiles for 
+  building on all officially supported platforms.
 
-3. Use WOK to generate build scripts or project files for your compiler,
-   then build the libraries.
+- Binary package (platform-specific): in addition to complete source archive, 
+  includes binaries of OCCT and third-party libraries built on one platform. 
+  This package allows using OCCT immediately after installation.
 
-Note that you may use also the pre-processed source packages that include
-makefiles and projects, or binary packages, available for official releases of
-OCCT at http://www.opencascade.org. In this case however you will not be able
-to re-generate derived files after changing the CDL files (requires WOK).
+Certified versions of OCCT can be downloaded from http://www.opencascade.org
+
+You can also find OCCT pre-installed on your system, or install it from 
+packages provided by a third party. Note that packaging and functionality
+of such versions can be different from certified releases. Please consult 
+documentation accompanyog your version for details.
+
+Documentation
+-------------
+
+Open file doc/html/index.html to browse HTML documentation.
+
+If HTML documentation is not available in your package, you can:
+
+- Generate it from sources. 
+  You need to have Tcl and Doxygen 1.8.4 (or above) in PATH.
+  In Tcl prompt, cd to OCCT root folder and run "source dox/start.tcl".
+  On Windows you can also run shortcut batch file *gendoc.bat*.
+
+- Read documentation in source plain text (MarkDown) format found in 
+  subfolder *dox*
+
+See *dox/dev_guides/documentation/documentation.md* for details.
+
+Building
+--------
+
+In most cases you need to rebuild OCCT on your platform (OS, compiler) before
+using it in your project, to ensure binary compatibility.
+
+Consult the file *dox/dev_guides/building/building.md* for instructions on
+building OCCT from sources on supported platforms.
+
+Version
+-------
 
 The current version of OCCT can be consulted in the file
-src/Standard/Standard_Version.hxx
+*src/Standard/Standard_Version.hxx*
 
-For more information regarding OCCT code development please consult the official
-OCCT Collaborative Development Portal:
+Development
+-----------
 
-                        http://dev.opencascade.org
+For information regarding OCCT code development please consult the official 
+OCCT Collaborative Development Portal:
+http://dev.opencascade.org
index c6cea58..eb7824c 100644 (file)
@@ -488,4 +488,3 @@ p BOPAlgo
 p BOPDS
 p BOPCol
 p BOPInt
-r OpenCL
index b816e36..5991dc4 100644 (file)
@@ -1,5 +1,12 @@
+# This file contains list of documentation files of OCCT which are processed
+# by Doxygen to generate HTML documentation.
+# Files are listed one file per line, with paths relative to dox folder.
+# Empty spaces are allowed, part of string starting with # is ignored.
+# The order of files in this list determines order of top-level pages
+# in the generated documentation.
+
 overview/overview.md
-overview/tutorial/tutorial.md
+tutorial/tutorial.md
 technical_overview/technical_overview.md
 
 user_guides/user_guides.md
@@ -13,7 +20,7 @@ user_guides/xde/xde.md
 user_guides/ocaf/ocaf.md
 user_guides/tobj/tobj.md
 user_guides/shape_healing/shape_healing.md
-user_guides/draw_test_harness/draw_test_harness.md
+user_guides/draw_test_harness.md
 
 dev_guides/dev_guides.md
 dev_guides/cdl/cdl.md
@@ -22,11 +29,14 @@ dev_guides/documentation/documentation.md
 dev_guides/wok/wok.md
 
 dev_guides/building/building.md
+dev_guides/building/3rdparty/3rdparty_windows.md
+dev_guides/building/3rdparty/3rdparty_linux.md
+dev_guides/building/3rdparty/3rdparty_osx.md
 dev_guides/building/wok/wok.md
 dev_guides/building/automake.md
-dev_guides/building/cmake.md
+dev_guides/building/cmake/cmake.md
 dev_guides/building/code_blocks.md
 dev_guides/building/msvc.md
 dev_guides/building/xcode.md
 
-overview/license.md
\ No newline at end of file
+license.md
diff --git a/dox/LICENSE.md b/dox/LICENSE.md
new file mode 100644 (file)
index 0000000..1358286
--- /dev/null
@@ -0,0 +1,157 @@
+License {#occt_pubic_license}
+=======
+
+## Open CASCADE Technology Public License
+
+*License version: 6.6* @htmlonly<br />@endhtmlonly
+*March, 2013*
+
+Open CASCADE S.A.S. releases and makes publicly available the source code of the software Open CASCADE Technology to the free software development community under the terms and conditions of this license.
+
+It is not the purpose of this license to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this license has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
+
+
+Please read this license carefully and completely before downloading this software. By downloading, using, modifying, distributing and sublicensing this software, you indicate your acceptance to be bound by the terms and conditions of this license. If you do not want to accept or cannot accept for any reasons the terms and conditions of this license, please do not download or use in any manner this software.
+
+### 1. Definitions
+
+Unless there is something in the subject matter or in the context inconsistent therewith, the capitalized terms used in this License shall have the following meaning.
+
+"Applicable Intellectual Property Rights" means (a) with respect to the Initial Developer, any rights under patents or patents applications or other intellectual property rights that are now or hereafter acquired, owned by or assigned to the Initial Developer and that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce, modify, distribute or sublicense the Original Code without infringement; and (b) with respect to You or any Contributor, any rights under patents or patents applications or other intellectual property rights that are now or hereafter acquired, owned by or assigned to You or to such Contributor and that cover subject matter contained in Your Modifications or in such Contributor's Modifications, taken alone or in combination with Original Code.
+
+"Contributor" means each individual or legal entity that creates or contributes to the creation of any Modification, including the Initial Developer.
+
+"Derivative Program": means a new program combining the Software or portions thereof with other source code not governed by the terms of this License.
+
+"Initial Developer": means Open CASCADE S.A.S., with main offices   at 1, place des Frères Montgolfier, 78280 Guyancourt, France.
+
+"Modifications": mean any addition to, deletion from or change to the substance or the structure of the Software. When source code of the Software is released as a series of files, a Modification is: (a) any addition to, deletion from or change to the contents of a file containing the Software or (b) any new file or other representation of computer program statements that contains any part of the Software. By way of example, Modifications include any debug of, or improvement to, the Original Code or any of its components or portions as well as its next versions or releases thereof.
+
+"Original Code": means (a) the source code of the software Open CASCADE Technology originally made available by the Initial Developer under this License, including the source code of any updates or upgrades of the Original Code and (b) the object code compiled from such source code and originally made available by Initial Developer under this License.
+
+"Software": means the Original Code, the Modifications, the combination of Original Code and any Modifications or any respective portions thereof.
+
+"You" or "Your": means an individual or a legal entity exercising rights under this License.
+
+
+### 2. Acceptance of license
+
+By using, reproducing, modifying, distributing or sublicensing the Software or any portion thereof, You expressly indicate Your acceptance of the terms and conditions of this License and undertake to act in accordance with all the provisions of this License applicable to You.
+
+
+### 3. Scope and purpose
+
+This License applies to the Software and You may not use, reproduce, modify, distribute, sublicense or circulate the Software, or any portion thereof, except as expressly provided under this License. Any attempt to otherwise use, reproduce, modify, distribute or sublicense the Software is void and will automatically terminate Your rights under this License.
+
+
+### 4. Contributor license
+
+Subject to the terms and conditions of this License, the Initial Developer and each of the Contributors hereby grant You a world-wide, royalty-free, irrevocable and non-exclusive license under the Applicable Intellectual Property Rights they own or control, to use, reproduce, modify, distribute and sublicense the Software provided that:
+
+You reproduce in all copies of the Software the copyright and other proprietary notices and disclaimers of the Initial Developer as they appear in the Original Code and attached hereto as Schedule "A" and any other notices or disclaimers attached to the Software and keep intact all notices in the Original Code that refer to this License and to the absence of any warranty;
+You include a copy of this License with every copy of the Software You distribute;
+If you distribute or sublicense the Software (as modified by You or on Your behalf as the case may be), You cause such Software to be licensed as a whole, at no charge, to all third parties, under the terms and conditions of the License, making in particular available to all third parties the source code of the Software;
+You document all Your Modifications, indicate the date of each such Modifications, designate the version of the Software You used, prominently include a file carrying such information with respect to the Modifications and duplicate the copyright and other proprietary notices and disclaimers attached hereto as Schedule "B" or any other notices or disclaimers attached to the Software with your Modifications.
+
+For greater certainty, it is expressly understood that You may freely create Derivative Programs (without any obligation to publish such Derivative Program) and distribute same as a single product. In such case, You must ensure that all the requirements of this License are fulfilled for the Software or any portion thereof.
+
+
+### 5. Your license
+
+You hereby grant all Contributors and anyone who becomes a party under this License a world-wide, non-exclusive, royalty-free and irrevocable license under the Applicable Intellectual Property Rights owned or controlled by You, to use, reproduce, modify, distribute and sublicense all Your Modifications under the terms and conditions of this License.
+
+
+### 6. Software subject to license
+
+Your Modifications shall be governed by the terms and conditions of this License. You are not authorized to impose any other terms or conditions than those prevailing under this License when You distribute and/or sublicense the Software, save and except as permitted under Section 7 hereof.
+
+
+### 7. Additional terms
+
+You may choose to offer, on a non-exclusive basis, and to charge a fee for any warranty, support, maintenance, liability obligations or other rights consistent with the scope of this License with respect to the Software (the "Additional Terms") to the recipients of the Software. However, You may do so only on Your own behalf and on Your sole and exclusive responsibility. You must obtain the recipient's agreement that any such Additional Terms are offered by You alone, and You hereby agree to indemnify, defend and hold the Initial Developer and any Contributor harmless for any liability incurred by or claims asserted against the Initial Developer or any Contributors with respect to any such Additional Terms.
+
+
+### 8. Disclaimer of warranty
+
+The Software is provided under this License on an "as is" basis, without warranty of any kind, including without limitation, warranties that the Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Software is with You.
+
+
+### 9. Liability
+
+Under no circumstances shall You, the Initial Developer or any Contributor be liable to any person for any direct or indirect damages of any kind including, without limitation, damages for loss of goodwill, loss of data, work stoppage, computer failure or malfunction or any and all other commercial damages or losses resulting from or relating to this License or indirectly to the use of the Software.
+
+
+### 10. Trademark
+
+This License does not grant any rights to use the trademarks, trade names and domain names "MATRA", "EADS Matra Datavision", "CAS.CADE", "Open CASCADE", "opencascade.com" and "opencascade.org" or any other trademarks, trade names or domain names used or owned by the Initial Developer.
+
+
+### 11. Copyright
+
+The Initial Developer retains all rights, title and interest in and to the Original Code. You may not remove the copyright (c) notice which appears when You download the Software.
+
+
+### 12. Term
+
+This License is granted to You for a term equal to the remaining period of protection covered by the intellectual property rights applicable to the Original Code.
+
+
+### 13. Termination
+
+In case of termination, as provided in Section 3 above, You agree to immediately stop any further use, reproduction, modification, distribution and sublicensing of the Software and to destroy all copies of the Software that are in Your possession or control. All sublicenses of the Software which have been properly granted prior to termination shall survive any termination of this License. In addition, Sections 5, 8 to 11, 13.2 and 15.2 of this License, in reason of their nature, shall survive the termination of this License for a period of fifteen (15) years.
+
+
+### 14. Versions of the license
+
+The Initial Developer may publish new versions of this License from time to time. Once Original Code has been published under a particular version of this License, You may choose to continue to use it under the terms and conditions of that version or use the Original Code under the terms of any subsequent version of this License published by the Initial Developer.
+
+
+### 15. Miscellaneous
+
+#### 15.1 Relationship of Parties
+
+This License will not be construed as creating an agency, partnership, joint venture or any other form of legal association between You and the Initial Developer, and You will not represent to the contrary, whether expressly, by implication or otherwise.
+
+#### 15.2 Independent Development
+
+Nothing in this License will impair the Initial Developer's right to acquire, license, develop, have others develop for it, market or distribute technology or products that perform the same or similar functions as, or otherwise compete with, Modifications, Derivative Programs, technology or products that You may develop, produce, market or distribute.
+
+#### 15.3 Severability
+
+If for any reason a court of competent jurisdiction finds any provision of this License, or portion thereof, to be unenforceable, that provision of the License will be enforced to the maximum extent permissible so as to effect the economic benefits and intent of the parties, and the remainder of this License will continue in full force and extent.
+
+
+@htmlonly<center>@endhtmlonly
+#### END OF THE TERMS AND CONDITIONS OF THIS LICENSE
+
+Open CASCADE S.A.S. is a French société par actions simplifiée having its main offices at 1, place in Frères Montgolfier, 78280 Guyancourt, France. Its web site is located at the following address  http://www.opencascade.com
+
+
+#### Open CASCADE Technology Public License
+
+#### Schedule "A"
+
+The content of this file is subject to the Open CASCADE Technology Public License Version 6.5 (the "License"). 
+You may not use the content of this file except in compliance with the License. 
+Please obtain a copy of the License at http://www.opencascade.org and read it completely before using this file. The Initial Developer of the Original Code is Open CASCADE S.A.S., with main offices at  1, place des Frères Montgolfier, 78280 Guyancourt, France. The Original Code is copyright (c) Open CASCADE S.A.S., 2001. All rights reserved.
+
+"The Original Code and all software distributed under the License are distributed on an "AS IS" basis, without warranty of any kind, and the Initial Developer hereby disclaims all such warranties, including without limitation, any warranties of merchantability, fitness for a particular purpose or non-infringement. 
+
+Please see the License for the specific terms and conditions governing rights and limitations under the License".
+
+#### End of Schedule "A"
+
+
+#### Open CASCADE Technology Public License
+
+#### Schedule "B"
+
+"The content of this file is subject to the Open CASCADE Technology Public License Version 6.5 (the "License"). You may not use the content of this file except in compliance with the License. Please obtain a copy of the License at http://www.opencascade.org and read it completely before using this file. The Initial Developer of the Original Code is Open CASCADE S.A.S., with main offices at  1, place des Frères Montgolfier, 78280 Guyancourt, France. The Original Code is copyright (c) Open CASCADE S.A.S., 2001. All rights reserved.
+
+Modifications to the Original Code have been made by ________________________. Modifications are copyright (c) [Year to be included]. All rights reserved.
+
+The software Open CASCADE Technology and all software distributed under the License are distributed on an "AS IS" basis, without warranty of any kind, and the Initial Developer hereby disclaims all such warranties, including without limitation, any warranties of merchantability, fitness for a particular purpose or non-infringement. Please see the License for the specific terms and conditions governing rights and limitations under the License".
+
+#### End of Schedule "B"
+
+@htmlonly</center>@endhtmlonly
\ No newline at end of file
diff --git a/dox/dev_guides/building/3rdparty/3rdparty_linux.md b/dox/dev_guides/building/3rdparty/3rdparty_linux.md
new file mode 100644 (file)
index 0000000..6cab2db
--- /dev/null
@@ -0,0 +1,303 @@
+ Building 3rd-party libraries on Linux {#dev_guides__building_3rdparty_linux}
+============================================
+@tableofcontents 
+
+@section dev_guides__building_3rdparty_linux_1 Introduction
+
+  This document presents additional guidelines for building third-party 
+  products used by Open CASCADE Technology and samples on Linux platform. 
+
+  The links for downloading the third-party products are available on the web site 
+  of OPEN CASCADE SAS at 
+  http://www.opencascade.org/getocc/require/. 
+
+  There are two types of third-party products, which are  necessary to build OCCT: 
+  
+  * Mandatory  products: Tcl 8.5, Tk 8.5, FreeType 2.4.10 
+  * Optional  products: TBB 3.x or 4.x, gl2ps 1.3.5, FreeImage 3.14.1 
+
+@section dev_guides__building_3rdparty_linux_2 Building Mandatory Third-party Products
+
+@subsection dev_guides__building_3rdparty_linux_2_1 Tcl/Tk 8.5 
+
+  Tcl/Tk is required for DRAW test harness. Version 8.5 or 8.6 can be used with OCCT. 
+
+@subsubsection dev_guides__building_3rdparty_linux_2_1_1 Installation from binaries
+
+  It is possible to download ready-to-install binaries from 
+  http://www.activestate.com/activetcl/downloads
+
+  * 1. Download the binaries archive and unpack them to some  TCL_SRC_DIR. 
+  * 2. Enter the directory TCL_SRC_DIR.
+
+  @verbatim
+    cd TCL_SRC_DIR
+  @endverbatim
+
+  * 3. Run the install command 
+
+  @verbatim
+    install.sh
+  @endverbatim
+    
+  and follow instructions. 
+
+@subsubsection dev_guides__building_3rdparty_linux_2_1_2 Installation from sources: Tcl 8.5
+  
+  Download the necessary archive from http://www.tcl.tk/software/tcltk/download.html and unpack it. 
+  
+  * 1. Enter the unix sub-directory of the directory where the source  files of Tcl are located (TCL_SRC_DIR). 
+
+  @verbatim
+    cd TCL_SRC_DIR/unix   
+  @endverbatim
+
+  * 2. Run the configure command
+
+  @verbatim
+    configure --enable-gcc  --enable-shared --enable-threads --prefix=TCL_INSTALL_DIR   
+  @endverbatim
+
+  For a 64 bit platform also add --enable-64bit option to the  command line. 
+  
+  * 3. If the configure command has finished successfully, start  the building process 
+  
+  @verbatim
+    make   
+  @endverbatim
+
+  * 4. If building is finished successfully, start the installation of Tcl. 
+  All binary and service files of the product will be copied to the directory defined by TCL_INSTALL_DIR 
+
+  @verbatim
+    make install   
+  @endverbatim
+
+@subsubsection dev_guides__building_3rdparty_linux_2_1_3 Installation from sources: Tk 8.5
+  
+  Download the necessary archive from http://www.tcl.tk/software/tcltk/download.html and unpack it. 
+  
+  * 1. Enter the unix sub-directory of the directory where the source  files of Tk are located (TK_SRC_DIR). 
+
+  @verbatim
+    cd TK_SRC_DIR/unix   
+  @endverbatim
+
+  * 2. Run the configure command, where TCL_LIB_DIR is  TCL_INSTALL_DIR/lib 
+
+  @verbatim
+    configure --enable-gcc  --enable-shared --enable-threads --with-tcl=TCL_LIB_DIR  --prefix=TK_INSTALL_DIR   
+  @endverbatim
+
+  where TCL_LIB_DIR is TCL_INSTALL_DIR/lib 
+
+  For a 64 bit platform also add --enable-64bit option to the  command line. 
+
+  * 3. If the configure command has finished successfully, start  the building process 
+
+  @verbatim
+    make   
+  @endverbatim
+
+  * 4. If building has finished successfully, start the installation of Tk. 
+       All binary and service files of the product will be copied 
+       to the directory defined by TK_INSTALL_DIR (usually  TK_INSTALL_DIR is TCL_INSTALL_DIR) 
+
+  @verbatim
+    make install   
+  @endverbatim
+
+@subsection dev_guides__building_3rdparty_linux_2_2 FreeType 2.4.10
+
+  FreeType is required for display of text in 3D viewer. 
+  Download the necessary archive from http://sourceforge.net/projects/freetype/files/ and unpack it. 
+  
+  * 1. Enter the directory where the source files of FreeType  are located (FREETYPE_SRC_DIR). 
+
+  @verbatim
+    cd FREETYPE_SRC_DIR   
+  @endverbatim
+
+  * 2. Run the configure command 
+  
+  @verbatim
+    configure  --prefix=FREETYPE_INSTALL_DIR   
+  @endverbatim
+
+  For a 64 bit platform also add CFLAGS='-m64 -fPIC'  CPPFLAGS='-m64 -fPIC' option to the command line. 
+    
+  * 3. If the configure command has finished successfully, start  the building process 
+
+  @verbatim
+    make   
+  @endverbatim
+
+  * 4. If building has finished successfully, start the installation of FreeType. 
+       All binary and service files of the product will be copied to the directory defined by FREETYPE_INSTALL_DIR 
+    
+  @verbatim
+    make install   
+  @endverbatim
+
+@section dev_guides__building_3rdparty_linux_3 Building Optional Third-party Products
+    
+@subsection dev_guides__building_3rdparty_linux_3_1 TBB 3.x or 4.x
+
+  This third-party product is  installed with binaries from the archive that can be downloaded from http://threadingbuildingblocks.org. 
+  Go to \"Downloads page\", find the  release version you need (e.g. tbb30_018oss) and pick the archive for Linux  platform. 
+  To install, unpack the downloaded archive of TBB 3.0 product (*tbb30_018oss_lin.tgz*).
+
+@subsection dev_guides__building_3rdparty_linux_3_2 gl2ps 1.3.5
+
+  Download the necessary archive from http://geuz.org/gl2ps/ and unpack it.
+  
+  * 1. Install or build cmake product from source file. 
+  * 2. Start cmake in GUI mode with the directory where the source files of gl2ps are located:
+  @verbatim
+    ccmake GL2PS_SRC_DIR   
+  @endverbatim
+     * 2.1. Press [c] to make the  initial configuration 
+     * 2.2. Define the necessary options  CMAKE_INSTALL_PREFIX 
+     * 2.3. Press [c] to make the final  configuration 
+     * 2.4. Press [g] to generate  Makefile and exit 
+
+  or just run the following command: 
+
+  @verbatim
+    cmake  –DCMAKE_INSTALL_PREFIX=GL2PS_INSTALL_DIR –DCMAKE_BUILD_TYPE=Release   
+  @endverbatim
+
+  * 3. Start building of gl2ps 
+
+  @verbatim
+    make   
+  @endverbatim
+
+  * 4. Start the installation of gl2ps. Binaries will be  installed according to the CMAKE_INSTALL_PREFIX option 
+
+  @verbatim
+    make install   
+  @endverbatim
+
+@subsection dev_guides__building_3rdparty_linux_3_3 FreeImage 3.14.1
+
+  Download the necessary archive from http://sourceforge.net/projects/freeimage/files/Source%20Distribution/
+  and unpack it. The directory with unpacked sources is  further referred to as FREEIMAGE_SRC_DIR. 
+  
+  * 1. Modify FREEIMAGE_SRC_DIR/Source/OpenEXR/Imath/ImathMatrix.h: 
+   In line 60 insert the following: 
+
+  @verbatim
+    #include string.h   
+  @endverbatim
+
+  * 2. Enter the directory where the source files of FreeImage are located (FREEIMAGE_SRC_DIR). 
+  
+  @verbatim
+    cd FREEIMAGE_SRC_DIR   
+  @endverbatim
+
+  * 3. Run the building process 
+  
+  @verbatim
+    make   
+  @endverbatim
+
+  * 4. Run the installation process 
+     * 4.1. If you have permissions to write to /usr/include and /usr/lib directories then run the following command: 
+  @verbatim
+    make install   
+  @endverbatim
+     * 4.2. If you don’t have permissions to write to /usr/include and 
+       /usr/lib directories then you need to modify the file FREEIMAGE_SRC_DIR/Makefile.gnu: 
+  
+  Change lines 7-9 from:
+  
+  @verbatim
+    DESTDIR ?= /   
+    INCDIR  ?= $(DESTDIR)/usr/include   
+    INSTALLDIR  ?= $(DESTDIR)/usr/lib   
+  @endverbatim
+
+  to: 
+
+  @verbatim
+    DESTDIR  ?= $(DESTDIR)   
+    INCDIR  ?= $(DESTDIR)/include   
+    INSTALLDIR  ?= $(DESTDIR)/lib   
+  @endverbatim
+
+  Change lines 65-67 from: 
+
+  @verbatim
+    install  -m 644 -o root -g root $(HEADER) $(INCDIR)   
+    install  -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)   
+    install  -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)   
+  @endverbatim
+  
+  to:
+
+  @verbatim
+    install  -m 755 $(HEADER) $(INCDIR)   
+    install  -m 755 $(STATICLIB) $(INSTALLDIR)   
+    install  -m 755 $(SHAREDLIB) $(INSTALLDIR)
+  @endverbatim
+
+  Change line 70 from: 
+
+  @verbatim
+    ldconfig
+  @endverbatim
+
+  to:
+  
+  @verbatim
+    \#ldconfig   
+  @endverbatim
+    
+  Then run the installation process by the following command: 
+
+  @verbatim
+    make DESTDIR=FREEIMAGE_INSTALL_DIR  install   
+  @endverbatim
+
+  * 5. Clean the temporary files
+  
+  @verbatim
+    make clean   
+  @endverbatim
+
+@section dev_guides__building_3rdparty_linux_4 Installation From Official Repositories
+
+@subsection dev_guides__building_3rdparty_linux_4_1 Debian-based distributives
+
+  All 3rd-party products required for building of  OCCT could be installed 
+  from official repositories. You may install them from  console using apt-get utility: 
+
+  @verbatim
+    sudo apt-get install \   
+    tcllib tklib tcl-dev tk-dev \   
+    libfreetype-dev \   
+    libxt-dev libxmu-dev \   
+    libgl1-mesa-dev \   
+    libfreeimage-dev \   
+    libtbb-dev \   
+    libgl2ps-dev   
+  @endverbatim
+  
+  To launch WOK-prebuilt binaries you need install C shell and  32-bit libraries on x86_64 distributives: 
+  
+  @verbatim
+    sudo apt-get install \   
+    csh \   
+    libstdc++5:i386 libxt6:i386   
+  @endverbatim
+
+  Any compliant C++ compiler is required for building anyway: 
+  
+  @verbatim
+    sudo apt-get install \   
+    g++ \   
+  @endverbatim
+
+@see http://www.opencascade.org for details
diff --git a/dox/dev_guides/building/3rdparty/3rdparty_osx.md b/dox/dev_guides/building/3rdparty/3rdparty_osx.md
new file mode 100644 (file)
index 0000000..eaea1a1
--- /dev/null
@@ -0,0 +1,269 @@
+ Building 3rd-party libraries on MacOS X {#dev_guides__building_3rdparty_osx}
+==============================================
+@tableofcontents 
+
+@section dev_guides__building_3rdparty_osx_1 Introduction
+
+  This document presents additional guidelines for building third-party products 
+  used by Open CASCADE Technology and samples on Mac OS X platform (10.6.4  and later). 
+
+  The links for downloading the third-party products are available 
+  on the web site of OPEN CASCADE SAS at 
+  http://www.opencascade.org/getocc/require/</a>. 
+
+  There are two types of third-party products, which are  necessary to build OCCT: 
+  
+  * Mandatory  products: Tcl 8.5, Tk 8.5, FreeType 2.4.10 
+  * Optional  products: TBB 3.x or 4.x, gl2ps 1.3.5, FreeImage 3.14.1 or 3.15.x 
+  
+@section dev_guides__building_3rdparty_osx_2 Building Mandatory Third-party Products
+
+@subsection dev_guides__building_3rdparty_osx_2_1 Tcl/Tk 8.5 
+
+  Tcl/Tk is required for DRAW test harness. Version 8.5 or  8.6 can be used with OCCT. 
+
+@subsubsection dev_guides__building_3rdparty_osx_2_1_1 Installation from binaries
+
+  It is possible to download ready-to-install binaries from 
+  http://www.activestate.com/activetcl/downloads   
+
+  * 1. Download the disk image to some TCL_DOWNLOAD_DIR. 
+  * 2. Open in Finder the directory TCL_DOWNLOAD_DIR. 
+  * 3. Open disk image and follow instructions. 
+
+@subsubsection dev_guides__building_3rdparty_osx_2_1_2 Installation from sources: Tcl 8.5
+
+  Download the necessary archive from http://www.tcl.tk/software/tcltk/download.html and unpack it. 
+
+  * 1. Enter the macosx sub-directory of the directory where the source files of Tcl are located (TCL_SRC_DIR). 
+
+  @verbatim
+    cd TCL_SRC_DIR/macosx   
+  @endverbatim
+
+  * 2. Run the configure command 
+
+  @verbatim
+    configure --enable-gcc  --enable-shared --enable-threads --prefix=TCL_INSTALL_DIR   
+  @endverbatim
+
+  For a 64 bit platform also add --enable-64bit option to the command line. 
+
+  * 3. If the configure command has finished successfully, start the building process 
+
+  @verbatim
+    make   
+  @endverbatim
+  
+  * 4. If building is finished successfully, start the installation of Tcl. 
+  All binary and service files of the product will be copied to the directory defined by TCL_INSTALL_DIR 
+
+  @verbatim
+    make install   
+  @endverbatim
+
+@subsubsection dev_guides__building_3rdparty_osx_2_1_3 Installation from sources: Tk 8.5
+
+  Download the necessary archive from http://www.tcl.tk/software/tcltk/download.html and unpack it. 
+
+  * 1. Enter the macosx sub-directory of the directory where the  source files of Tk are located (TK_SRC_DIR). 
+
+  @verbatim
+    cd TK_SRC_DIR/macosx   
+  @endverbatim
+
+  * 2. Run the configure command, where TCL_LIB_DIR is  TCL_INSTALL_DIR/lib 
+
+  @verbatim
+    configure --enable-gcc --enable-shared --enable-threads --with-tcl=TCL_LIB_DIR --prefix=TK_INSTALL_DIR   
+  @endverbatim
+
+  where TCL_LIB_DIR is TCL_INSTALL_DIR/lib. For a 64 bit platform also add --enable-64bit option to the  command line. 
+
+  * 3. If the configure command has finished successfully, start  the building process 
+
+  @verbatim
+    make   
+  @endverbatim
+
+  * 4. If building has finished successfully, start the  installation of Tk. 
+  All binary and service files of the product will be copied to the directory 
+  defined by TK_INSTALL_DIR (usually TK_INSTALL_DIR  is TCL_INSTALL_DIR) 
+
+  @verbatim
+    make install   
+  @endverbatim
+
+@subsection dev_guides__building_3rdparty_osx_2_2 FreeType 2.4.10
+  
+  FreeType is required for display of text in 3D viewer. 
+
+  Download the necessary archive from http://sourceforge.net/projects/freetype/files/ and unpack it. 
+
+  * 1. Enter the directory where the source files of FreeType  are located (FREETYPE_SRC_DIR). 
+
+  @verbatim
+    cd FREETYPE_SRC_DIR   
+  @endverbatim
+
+  * 2. Run the configure command 
+  
+  @verbatim
+    configure  --prefix=FREETYPE_INSTALL_DIR   
+  @endverbatim
+
+  For a 64 bit platform also add CFLAGS='-m64 -fPIC'  CPPFLAGS='-m64 -fPIC' option to the command line. 
+
+  * 3. If the configure command has finished successfully, start  the building process 
+
+  @verbatim
+    make   
+  @endverbatim
+
+  * 4. If building has finished successfully, start the installation of FreeType. 
+  All binary and service files of the product will be copied to the directory defined by FREETYPE_INSTALL_DIR 
+
+  @verbatim
+    make install   
+  @endverbatim
+
+@section dev_guides__building_3rdparty_osx_3 Building Optional Third-party Products
+    
+@subsection dev_guides__building_3rdparty_osx_3_1 TBB 3.x or 4.x
+
+  This third-party product is installed with binaries from the archive 
+  that can be downloaded from http://threadingbuildingblocks.org/. 
+  Go to \"Downloads / Commercial  Aligned Release\", find the release version you need (e.g. tbb30_018oss) 
+  and  pick the archive for Mac OS X platform. 
+  To install, unpack the downloaded archive of TBB 3.0 product (*tbb30_018oss_osx.tgz*).
+
+@subsection dev_guides__building_3rdparty_osx_3_2 gl2ps 1.3.5
+
+  Download the necessary archive from http://geuz.org/gl2ps/ and unpack it. 
+
+  * 1. Install or build cmake product from source file. 
+
+  * 2. Start cmake in GUI mode with the directory where the source  files of fl2ps are located 
+  @verbatim
+      ccmake GL2PS_SRC_DIR   
+  @endverbatim
+     * 2.1. Press [c] to make the  initial configuration 
+     * 2.2. Define the necessary options  CMAKE_INSTALL_PREFIX 
+     * 2.3. Press [c] to make the final  configuration 
+     * 2.4. Press [g] to generate  Makefile and exit 
+
+  or just run the following command: 
+
+  @verbatim
+    cmake  –DCMAKE_INSTALL_PREFIX=GL2PS_INSTALL_DIR –DCMAKE_BUILD_TYPE=Release   
+  @endverbatim
+
+  * 3. Start building of gl2ps 
+
+  @verbatim
+      make   
+  @endverbatim
+
+  * 4. Start the installation of gl2ps. Binaries will be  installed according to the CMAKE_INSTALL_PREFIX option 
+
+  @verbatim
+      make install   
+  @endverbatim
+
+@subsection dev_guides__building_3rdparty_osx_3_3 FreeImage 3.14.1 or 3.15.x
+
+  Download the necessary archive from 
+  http://sourceforge.net/projects/freeimage/files/Source%20Distribution/   
+  and unpack it. The directory with unpacked sources is  further referred to as FREEIMAGE_SRC_DIR.  
+
+  Note that for building FreeImage on Mac OS X 10.7 you should replace Makefile.osx 
+  in FREEIMAGE_SRC_DIR by corrected one which you  can find in attachment to issue #22811 in OCCT Mantis bug tracker 
+  (http://tracker.dev.opencascade.org/file_download.php?file_id=6937&type=bug) or elsewhere. 
+
+  * 1.If you are building FreeImage 3.15.x you can skip this  step. 
+  Modify FREEIMAGE_SRC_DIR/Source/OpenEXR/Imath/ImathMatrix.h: 
+  
+  In line 60 insert the following: 
+
+  @verbatim
+    #include string.h 
+  @endverbatim
+
+  Modify FREEIMAGE_SRC_DIR/Source/FreeImage/PluginTARGA.cpp: 
+  
+  In line 320 replace: 
+  @verbatim
+    SwapShort(value); 
+  @endverbatim
+
+  with: 
+  @verbatim
+    SwapShort(&value); 
+  @endverbatim
+
+  * 2.Enter the directory where the source files of FreeImage  are located (FREEIMAGE_SRC_DIR). 
+
+  @verbatim
+    cd FREEIMAGE_SRC_DIR 
+  @endverbatim
+
+  * 3.Run the building process 
+
+  @verbatim
+    make   
+  @endverbatim
+
+  * 4.Run the installation process 
+     * 4.1. If you have permissions to write to /usr/local/include  and /usr/local/lib directories then run the following command: 
+  @verbatim
+    make install   
+  @endverbatim
+     * 4.2. If you don’t have permissions to write to /usr/include and /usr/lib directories 
+            then you need to modify the file FREEIMAGE_SRC_DIR/Makefile.osx: 
+
+   Change line 49 from:     
+
+  @verbatim
+    PREFIX ?= /usr/local
+  @endverbatim
+
+   to:
+   
+  @verbatim
+    PREFIX  ?= $(PREFIX) 
+  @endverbatim
+
+  Change lines 65-69 from: 
+
+  @verbatim
+    install -d -m 755 -o  root -g wheel $(INCDIR) $(INSTALLDIR) 
+    install  -m 644 -o root -g wheel $(HEADER) $(INCDIR) 
+    install  -m 644 -o root -g wheel $(SHAREDLIB) $(STATICLIB) $(INSTALLDIR) 
+    ranlib  -sf $(INSTALLDIR)/$(STATICLIB) 
+    ln  -sf $(SHAREDLIB) $(INSTALLDIR)/$(LIBNAME) 
+  @endverbatim
+    
+   to: 
+
+  @verbatim
+    install  -d $(INCDIR) $(INSTALLDIR) 
+    install  -m 755 $(HEADER) $(INCDIR) 
+    install  -m 755 $(STATICLIB) $(INSTALLDIR) 
+    install  -m 755 $(SHAREDLIB) $(INSTALLDIR) 
+    ln  -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)  
+    ln  -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
+  @endverbatim
+
+  Then run the installation process by the following command: 
+  
+  @verbatim
+    make PREFIX=FREEIMAGE_INSTALL_DIR  install 
+  @endverbatim
+  
+  * 5.Clean the temporary files 
+  
+  @verbatim
+    make clean 
+  @endverbatim
+
+@see http://www.opencascade.org for details
diff --git a/dox/dev_guides/building/3rdparty/3rdparty_windows.md b/dox/dev_guides/building/3rdparty/3rdparty_windows.md
new file mode 100644 (file)
index 0000000..914835c
--- /dev/null
@@ -0,0 +1,270 @@
+ Building 3rd-party libraries on Windows {#dev_guides__building_3rdparty_windows}
+==============================================
+@tableofcontents
+
+@section dev_guides__building_3rdparty_win_1 Introduction
+
+  This document presents guidelines for building third-party products 
+  used by Open CASCADE Technology (OCCT) and samples on Windows platform. 
+
+  In order to understand these guidelines, you need to be  familiar with MS Visual Studio / Visual C++. 
+
+  You need to use the same version of MS Visual Studio for building 
+  all third-party products and OCCT itself, in order to receive a consistent set of run-time binaries. 
+
+  The links for downloading the third-party products are available on the web site 
+  of OPEN CASCADE SAS at http://www.opencascade.org/getocc/require/. 
+  There are two types of third-party products which are used  by OCCT: 
+
+  * Mandatory  products: Tcl 8.5, Tk 8.5 and  FreeType 2.4.10 
+  * Optional  products: TBB 3.x or 4.x, gl2ps * 1.3.5, FreeImage 3.14.1 
+
+  It is recommended to create a separate new folder on your workstation where 
+  you will unpack the downloaded archives of the third-party  products, 
+  and where you will build these products (for example, *c:\\occ3rdparty*). 
+
+  Further in this document, this folder is referred to as *3rdparty*. 
+
+@section dev_guides__building_3rdparty_win_2 Building Mandatory Third-party Products
+
+@subsection dev_guides__building_3rdparty_win_2_1 Tcl/Tk 8.5
+
+  Tcl/Tk is required for DRAW test harness. Version 8.5 or  * 8.6 can be used for OCCT. 
+  We recommend installing a binary distribution that could be downloaded from 
+  http://www.activestate.com/activetcl.
+
+  Go to \"Free Downloads\" and pick the version of the Install Wizard 
+  that matches your target platform – 32 bit (x86) or 64 bit (x64). 
+  The version of Visual Studio you use is irrelevant when choosing the Install Wizard. 
+
+  Run the Install Wizard you  downloaded, and install Tcl/Tk products 
+  to 3rdparty\\tcltk-win32 folder (for 32-bit platform) or 
+  to 3rdparty\\tcltk-win64 folder (for 64-bit platform). 
+
+  Further in this document,  this folder is referred to as *tcltk*. 
+
+@subsection dev_guides__building_3rdparty_win_2_2 FreeType 2.4.10
+
+  FreeType is required for display of text in 3D viewer. 
+  You can download its sources from http://sourceforge.net/projects/freetype/files/   
+
+  The building process is the following:
+
+    * 1. Unpack the  downloaded archive of FreeType 2.4.10 product into the *3rdparty*  folder. 
+
+      As a result, you should have a folder named *3rdparty\\freetype-2.4.10*.  Further in this document, this folder is referred to as *freetype*. 
+
+    * 2. Open the  solution file *freetype\\builds\\win32\\vc20xx\\freetype.sln*  in Visual Studio, where vc20xx stands for the version of Visual Studio you are  using. 
+    * 3. Select a  configuration to build: either Debug or Release. 
+    * 4. Build  the *freetype* project. 
+
+      As a result, you will get a  freetype import library (.lib) in the *freetype\\obj\\win32\\vc20xx*  folder. 
+
+    * 5. If you are  building for 64 bit platform, start the Configuration Manager (Build - Configuration Manager), 
+    and add *x64* platform to the solution configuration by copying the  settings from Win32 platform: 
+
+@image html /dev_guides/building/3rdparty/images/3rdparty_image001.png 
+@image latex /dev_guides/building/3rdparty/images/3rdparty_image001.png 
+
+  Update the value of the Output File for  x64 configuration: 
+
+@image html /dev_guides/building/3rdparty/images/3rdparty_image003.png 
+@image latex /dev_guides/building/3rdparty/images/3rdparty_image003.png 
+
+  Build the *freetype* project. 
+
+   As a result, you should obtain a 64  bit import library (.lib) file in the *freetype\\x64\\vc20xx*  folder. 
+   If you want to build freetype as an import library (.lib) and a dynamic library (.dll) you should follow items 6, 7 and 8 of this list. 
+
+  * 6.  Open Project-Properties-Configuration  Properties-General and change option 'Configuration Type' to \"*Dynamic  Library (.dll)*\". 
+  * 7.  Edit file *freetype\\include\\freetype\\config\\ftoption.h*:  
+  
+    in line 255, uncomment the definition of macro FT_EXPORT and change it as follows: 
+
+  @verbatim
+    #define FT_EXPORT(x)   __declspec(dllexport) x 
+  @endverbatim
+
+  * 8. Build  the *freetype* project. 
+
+    As a result, you should obtain import  library (.lib) and dynamic library (.dll) 
+    files in *freetype  \\objs\\release or \\objs\\debug folders.* 
+    If you are building for a 64 bit  platform, follow item 5 of this list. 
+
+    In order to facilitate use of the  FreeType libraries in OCCT with minimal adjustment of its build procedures, 
+    it is recommended to copy the include files and libraries of FreeType to a separate folder, named according to the pattern: 
+    *freetype-compiler-bitness-building  mode*  
+    where 
+    
+    * compiler  is vc8 or vc9 or vc10 or vc11; 
+    * bitness  is 32 or 64; 
+    * building  mode is opt (for Release) or deb (for Debug) 
+    
+    The include subfolder should be copied as is, while libraries should be renamed to 
+    *freetype.lib* and *freetype.dll* (suffixes removed) and placed to subdirectories 
+    *lib *and  *bin*, respectively. If Debug configuration is built, 
+    the Debug libraries should be put in subdirectories *libd* and *bind*. 
+
+@section dev_guides__building_3rdparty_win_3 Building Optional Third-party Products
+
+@subsection dev_guides__building_3rdparty_win_3_1 TBB 3.x or 4.x
+
+  This third-party product is  installed with binaries 
+  from the archive that can be downloaded from http://threadingbuildingblocks.org/. 
+  Go to \"Downloads page\", find the  release version you need (e.g. tbb30_018oss) and pick the archive for Windows  platform. 
+  Unpack the downloaded  archive of TBB product into the *3rdparty* folder. 
+  Further in this document,  this folder is referred to as *tbb*. 
+
+@subsection dev_guides__building_3rdparty_win_3_2  gl2ps * 1.3.5
+
+  This third-party product should be built as a dynamically loadable library (dll file). 
+  You can download its sources from  http://geuz.org/gl2ps/src/ 
+
+  The building process is the following: 
+
+  * 1. Unpack the downloaded  archive of gl2ps * 1.3.5 product (*gl2ps-* 1.3.5.tgz*) into the *3rdparty*  folder. 
+    As a result, you should  have a folder named *3rdparty\\gl2ps-* 1.3.5-source*. 
+    Rename it according to the  rule: gl2ps-platform-compiler-building mode, where 
+    platform is win32  or win64; 
+    compiler is vc8 or  vc9 or vc10; 
+    building mode - opt  (for release) or deb (for debug) 
+    Further in this document,  this folder is referred to as *gl2ps*. 
+
+  * 2. Download (from http://www.cmake.org/cmake/resources/software.html) 
+    and install the *CMake* build system.  
+
+  * 3. Edit the file *gl2ps\\CMakeLists.txt*. 
+   After line 113 in CMakeLists.txt: 
+
+  @verbatim
+    set_target_properties(shared PROPERTIES  COMPILE_FLAGS \"-DGL2PSDLL -DGL2PSDLL_EXPORTS\")
+  @endverbatim
+    
+   add the following line:   
+    
+  @verbatim
+    add_definitions(-D_USE_MATH_DEFINES)  
+  @endverbatim
+
+  Attention: If cygwin was installed on  your computer make sure that there is no path 
+  to the latter in the PATH variable in order to avoid possible conflicts during  the configuration. 
+
+  * 4. Launch CMake (cmake-gui.exe) using  the Program menu. 
+  In CMake: 
+  
+     * Define where the source code is. 
+       This path must point to *gl2ps*  folder. 
+     * Define where to build the  binaries. 
+       This path must point to the folder where generated gl2ps project binaries will be placed 
+       (for example, *gl2ps\\bin*). 
+       Further in this document, this folder is referred to as *gl2ps_bin*.
+     * Press the \"Configure\" button. 
+@image html /dev_guides/building/3rdparty/images/3rdparty_image004.png 
+@image latex /dev_guides/building/3rdparty/images/3rdparty_image004.png 
+     * Select the generator (the compiler  and the target platform - 32 or 64 bit) in the pop-up window. 
+@image html /dev_guides/building/3rdparty/images/3rdparty_image005.png 
+@image latex /dev_guides/building/3rdparty/images/3rdparty_image005.png 
+     * Then press the \"Finish\" button to  return to the main CMake window. 
+       Expand the ENABLE group and uncheck  ENABLE_PNG and ENABLE_ZLIB check boxes. 
+@image html /dev_guides/building/3rdparty/images/3rdparty_image006.png 
+@image latex /dev_guides/building/3rdparty/images/3rdparty_image006.png 
+     * Expand the CMAKE group and define CMAKE_INSTALL_PREFIX 
+       (path where you want to install the build results, for example, *c:\\occ3rdparty\\gl2ps\-1.3.5*). 
+@image html /dev_guides/building/3rdparty/images/3rdparty_image007.png 
+@image latex /dev_guides/building/3rdparty/images/3rdparty_image007.png 
+     * Press the  \"Configure\" button again, and then the \"Generate\" button in order to generate 
+       Visual Studio projects. After completion, close CMake application. 
+
+  * 5. Open the solution file *gl2ps_bin\\gl2ps.sln* in Visual Studio. 
+    * Select a  configuration to build 
+        * Choose \"*Release*\" if you are building Release binaries. 
+        * Choose \"*Debug*\" if you are building Debug binaries. 
+    * Select  a platform to build. 
+        * Choose \"*Win32*\" if you are building for a 32 bit  platform. 
+        * Choose \"*x64*\" if you are building for a 64 bit  platform. 
+    * Build the solution. 
+    * Build the *INSTALL* project. 
+    
+    As a  result, you should have the installed gl2ps product in the *CMAKE_INSTALL_PREFIX*  path. 
+
+@subsection dev_guides__building_3rdparty_win_3_3 FreeImage 3.14.1
+
+  This third-party product should be built as a dynamically loadable library (.dll file). 
+  You can download its sources from 
+  http://sourceforge.net/projects/freeimage/files/Source%20Distribution/
+
+  The building process is the following: 
+
+  * 1. Unpack the  downloaded archive of FreeImage 3.14.1 product (*FreeImage314* 1.zip*) into *3rdparty* folder. 
+  
+    As a result,  you should have a folder named *3rdparty\\FreeImage*. 
+    Rename it  according to the rule: freeimage-platform-compiler-building  mode, where 
+    platform  is win32 or win64; 
+    compiler  is vc8 or vc9 or vc10 or vc11; 
+    building  mode is opt (for release) or deb (for debug) 
+    Further in this  document, this folder is referred to as *freeimage*. 
+
+  * 2. Open the  solution file *freeimage\\FreeImage.*.sln* in Visual Studio  that corresponds to the version of Visual Studio you use. 
+  
+    Since the  version of Visual Studio you use is higher than VC++ 2008, apply conversion of the workspace. 
+    Such conversion should be suggested automatically by Visual  Studio. 
+    
+  * 3. Select a  configuration to build. 
+   Choose \" *Release* \"  if you are building Release binaries. 
+   Choose \" *Debug* \" if you are building  Debug binaries. 
+   *Note:* 
+   If you want to  build a debug version of FreeImage binaries then you must rename 
+   the following  files for projects FreeImage and FreeimagePlus:
+
+  Project-Properties-Configuration Properties-Linker-General-Output File
+
+  @verbatim
+    from FreeImage*d*.dll  to FreeImage.dll 
+    from  FreeImagePlus*d*.dll to FreeImagePlus.dll 
+  @endverbatim
+
+  Project-Properties-Configuration Properties-Linker-Debugging-Generate Program Database File
+
+  @verbatim
+    from FreeImage*d*.pdb  to FreeImage.pdb 
+    from  FreeImagePlus*d*.pdb to FreeImagePlus.pdb 
+  @endverbatim
+
+  Project-Properties-Configuration Properties-Linker-Advanced-Import Library
+
+  @verbatim
+    from FreeImage*d*.lib  to FreeImage.lib 
+    from FreeImagePlus*d*.lib  to FreeImagePlus.lib 
+  @endverbatim
+
+  Project-Properties-Configuration Properties-Build Events-Post-Build Event-Comand Line 
+
+  @verbatim
+    from FreeImage*d*.dll     to FreeImage.dll 
+    from FreeImage*d*.lib     to FreeImage.lib 
+    from FreeImagePlus*d*.dll to FreeImagePlus.dll 
+    from FreeImagePlus*d*.lib to FreeImagePlus.lib 
+  @endverbatim
+
+  Additionally, for project FreeImagePlus rename: 
+  Project-Properties-Configuration  Properties-Linker-Input-Additional Dependencies 
+
+  @verbatim
+    from FreeImage*d*.lib to FreeImage.lib 
+  @endverbatim
+
+  * 4. Select a platform to build. 
+
+    Choose \" *Win32* \" if you are building for a 32 bit platform. 
+    Choose \" *x64* \" if you are building for a 64 bit platform. 
+
+  * 5. Start the building process. 
+
+  As a result, you should have the  library files of FreeImage product in the *freeimage\\Dist*
+
+  @verbatim
+    folder (FreeImage.dll and FreeImage.lib files) and in the *freeimage\\Wrapper\\FreeImagePlus\\dist*
+    folder (FreeImagePlus.dll and FreeImagePlus.lib files). 
+  @endverbatim
+
+@see http://www.opencascade.org for details
diff --git a/dox/dev_guides/building/3rdparty/images/3rdparty_image001.png b/dox/dev_guides/building/3rdparty/images/3rdparty_image001.png
new file mode 100644 (file)
index 0000000..d021815
Binary files /dev/null and b/dox/dev_guides/building/3rdparty/images/3rdparty_image001.png differ
diff --git a/dox/dev_guides/building/3rdparty/images/3rdparty_image003.png b/dox/dev_guides/building/3rdparty/images/3rdparty_image003.png
new file mode 100644 (file)
index 0000000..c7fd21d
Binary files /dev/null and b/dox/dev_guides/building/3rdparty/images/3rdparty_image003.png differ
diff --git a/dox/dev_guides/building/3rdparty/images/3rdparty_image004.png b/dox/dev_guides/building/3rdparty/images/3rdparty_image004.png
new file mode 100644 (file)
index 0000000..1b41730
Binary files /dev/null and b/dox/dev_guides/building/3rdparty/images/3rdparty_image004.png differ
diff --git a/dox/dev_guides/building/3rdparty/images/3rdparty_image005.png b/dox/dev_guides/building/3rdparty/images/3rdparty_image005.png
new file mode 100644 (file)
index 0000000..7ee7289
Binary files /dev/null and b/dox/dev_guides/building/3rdparty/images/3rdparty_image005.png differ
diff --git a/dox/dev_guides/building/3rdparty/images/3rdparty_image006.png b/dox/dev_guides/building/3rdparty/images/3rdparty_image006.png
new file mode 100644 (file)
index 0000000..f1d55a2
Binary files /dev/null and b/dox/dev_guides/building/3rdparty/images/3rdparty_image006.png differ
diff --git a/dox/dev_guides/building/3rdparty/images/3rdparty_image007.png b/dox/dev_guides/building/3rdparty/images/3rdparty_image007.png
new file mode 100644 (file)
index 0000000..91321e8
Binary files /dev/null and b/dox/dev_guides/building/3rdparty/images/3rdparty_image007.png differ
index e03ceb7..fc2f611 100644 (file)
@@ -6,7 +6,7 @@ archive on Linux with GNU build system (Autotools).
 
 If you are building OCCT from bare sources (as in Git repository), or do some 
 changes affecting CDL files, you need to use WOK to re-generate header files
-and build scripts / projects. See file \ref wok "WOK" for instructions.
+and build scripts / projects. See \ref dev_guides__building__wok for instructions.
 
 Before building OCCT, you need to install required third-party libraries; see
 OCCT_Build3rdParty_Linux.pdf for instructions.
index 25ef343..9df63a7 100644 (file)
@@ -1,23 +1,23 @@
-Building OCCT Libraries {#dev_guides__building}
+Building OCCT from sources {#dev_guides__building}
 =========
 
-The source package of the Open CASCADE Technology including the source files of samples
-and tools and the set of building procedures is available for self-dependent preparation
-binary files on UNIX and Windows platforms. 
-
 In order to build OCCT libraries from these sources for use in your program, 
 you need to:
 
-1. Install the required third-party libraries.
+1. Make sure you have all required third-party libraries installed (check 
+   software requirements in \ref OCCT_OVW_SECTION_5 "Overview").
+
+   See the following documents for short guide to installation of 
+   third-party libraries on different platforms:
+   - \subpage dev_guides__building_3rdparty_windows
+   - \subpage dev_guides__building_3rdparty_linux
+   - \subpage dev_guides__building_3rdparty_osx
 
-   Follow the instructions provided in the documents titled "Building 3rd party
-   products for OCCT" on http://dev.opencascade.org/?q=home/resources for
-   choice of the needed libraries, their installation and building.
 
-2. If you use OCCT sources from Git repository or do come changes affecting
-   CDL files or dependencies of OCCT toolkit, update header files generated 
-   from CDL, and regenerate build scripts for your environment using WOK.
-   See \subpage dev_guides__building__wok "WOK" for details.
+2. If you use bare OCCT sources from Git repository or made some changes affecting
+   CDL files or dependencies of OCCT toolkits, you need to update header files generated
+   from \ref dev_guides__cdl "CDL", and regenerate build scripts for your environment using WOK.
+   See \subpage dev_guides__building__wok for details.
 
    Skip to step 3 if you use complete source package (e.g. official OCCT 
    release) without changes in CDL.
@@ -26,7 +26,7 @@ you need to:
    - \subpage dev_guides__building__automake "Building on Linux with Autotools"
    - \subpage dev_guides__building__cmake "Building with CMake (cross-platform)"
    - \subpage dev_guides__building__code_blocks "Building on Mac OS X with Code::Blocks"
-   - \subpage dev_guides__building__msvc "Building on Windows with MS Visual Studio 2005-2012"
+   - \subpage dev_guides__building__msvc "Building on Windows with MS Visual Studio"
    - \subpage dev_guides__building__xcode "Building on Mac OS X with Xcode"
 
 The current version of OCCT can be consulted in the file src/Standard/Standard_Version.hxx
\ No newline at end of file
diff --git a/dox/dev_guides/building/cmake.md b/dox/dev_guides/building/cmake.md
deleted file mode 100644 (file)
index 4f648e6..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-Building with CMake {#dev_guides__building__cmake}
-===================
-
-This file describes steps to build OCCT libraries from complete source package
-with CMake. CMake is free software that can create GNU Makefiles, KDevelop, 
-XCode, and Visual Studio project files. Version 2.6 or above of CMake is 
-required.
-
-If you are building OCCT from bare sources (as in Git repository), or do some 
-changes affecting CDL files, you need to use WOK to re-generate header files
-and build scripts / projects. See file \ref wok "WOK" for instructions.
-
-Before building OCCT, you need to install required third-party libraries; see
-instructions for your platform on Resources page at http://dev.opencascade.org
-
-1.  Decide on location of build and install directories.
-    
-    The build directory is the one where intermediate files will be created 
-    (projects / makefiles, objects, binaries).
-    The install directory is the one where binaries will be installed after 
-    build, along with header files and resources required for OCCT use in 
-    applications.
-    
-    OCCT CMake scripts assume use of separate build and one install directories
-    for each configuration (Debug or Release).
-    
-    It is recommended to separate build and install directories from OCCT 
-    source directory, for example:
-    
-       /user/home/occt/ros - sources
-       /user/home/tmp/occt-build-release - intermediate files (release)
-       /user/home/occt-install-release - installed binaries (release)
-    
-2.  Run CMake indicating path to OCCT sources (ros subdirectory) and selected build directory. 
-    It is recommended to use GUI tools provided by CMake: cmake-gui on Windows
-    and Mac, ccmake on Linux.
-    
-    Example:
-    
-       Linux> cd /user/home/occt-install-release
-       Linux> ccmake /user/home/occt/ros
-    
-3. Run Configure
-    
-    You will likely get CMake errors due to missing paths to 3rd-party 
-    libraries. This is normal; proceed with configuration as follows.
-    
-4. Check parameters shown by CMake, set them in accordance with your 
-    environment, and repeat Configure until it runs without error:
-    
-    - 3RDPARTY_DIR: path to directory whethe 3rd-party libraries are installed
-      (for the cases when they are not in default locations, or on Windows)
-    - 3RDPARTY_USE_\<library\>: select to use optional libraries
-    - Other options in 3RDPARTY group can be used to fine-tune paths to 
-      3rd-party libraries
-    
-    - BUILD_TYPE: configuration to build (Debug or Release)
-    - BUILD_BITNESS: bitness (32 or 64)
-    - BUILD_TOOLKITS: optional string containing list of toolkits to be built
-      in addition to those included in completely built modueles
-    - BUILD_\<module\>: select to build corresponding OCCT module
-    
-    - INSTALL_DIR: directory to install OCCT
-    - INSTALL_\<library\>: select to copy corresponding 3rd-party library to OCCT
-      install dir
-
-5. Run Generate
-
-    This will create makefiles or project files for your build system.
-
-6. Build OCCT:
-
-    - on Windows with MSVC: open solution OCCT.sln and build it, when build project INSTALL_ALL explicitly to have binaries and headers installed
-    - on Linux with make files: run 'make install'
-
\ No newline at end of file
diff --git a/dox/dev_guides/building/cmake/cmake.md b/dox/dev_guides/building/cmake/cmake.md
new file mode 100644 (file)
index 0000000..8ab8bda
--- /dev/null
@@ -0,0 +1,208 @@
+Building with CMake {#dev_guides__building__cmake}
+===================
+
+@tableofcontents
+
+This file describes steps to build OCCT libraries from complete source package
+with CMake. CMake is free software that can create GNU Makefiles, KDevelop, 
+XCode, and Visual Studio project files. Version 2.6 or above of CMake is 
+required.
+
+If you are building OCCT from bare sources (as in Git repository), or do some 
+changes affecting CDL files, you need to use WOK to re-generate header files
+and build scripts / projects. See \ref dev_guides__building__wok for instructions.
+
+Before building OCCT, you need to install required third-party libraries; see
+instructions for your platform on Resources page at http://dev.opencascade.org 
+and @ref dev_guides__building article for details.
+
+## Decide on location of build and install directories.
+
+The build directory is the one where intermediate files will be created (projects / makefiles, objects, binaries).
+The install directory is the one where binaries will be installed after build, along with header files and resources required for OCCT use in applications.
+
+OCCT CMake scripts assume use of separate build and one install directories for each configuration (Debug or Release).
+
+It is recommended to separate build and install directories from OCCT source directory, for example:
+
+       /user/home/occt/ - sources
+       /user/home/tmp/occt-build-release - intermediate files (release)
+       /user/home/occt-install-release - installed binaries (release)
+
+## CMake usage
+
+Run CMake indicating path to OCCT sources ($CASROOT; in previous example CASROOT equal to /user/home/occt in lin case, and d:/occt in win case) and selected build directory (in prev example build directory is /user/home/tmp/occt-build-release). 
+
+It is recommended to use GUI tools provided by CMake: cmake-gui on Windows and Mac, ccmake on Linux.
+
+### Windows:
+
+@image html /dev_guides/building/cmake/images/cmake_image001.png
+@image latex /dev_guides/building/cmake/images/cmake_image001.png
+
+* Specify "main" CMakelists.txt meta-project location by clicking Browse Source (e.g., $CASROOT)
+* Specify location (build folder) for Cmake generated project files by clicking Browse Build (e.g., d:/occt/build/win32-vc9-debug) (each cmake configuration of the project uses a specific build directory and a specific directory for installed files. It is recommended to compose names of the binary and install directory from system, bitness, compiler and build type.)
+* Configure opens the window with a drop-down list of generators supported by CMake project. Select the required generator (e.g., Visual Studio 2008) and click Finish)
+
+@image html /dev_guides/building/cmake/images/cmake_image002.png
+@image latex /dev_guides/building/cmake/images/cmake_image002.png
+
+### Linux:
+
+In the console, change to the build directory and call ccmake with the path to the source directory of the project:
+
+       > cd ~/occt/build/debug
+       > ccmake ~/occt/adm/cmake
+
+@image html /dev_guides/building/cmake/images/cmake_image003.png
+@image latex /dev_guides/building/cmake/images/cmake_image003.png
+
+Press "c" to configure.
+
+### Mac OS:
+
+Use cmake-gui (Applications -> CMake 2.8-10.app) to generate project files for the chosen build environment (e.g., XCode).
+
+@image html /dev_guides/building/cmake/images/cmake_image004.png
+@image latex /dev_guides/building/cmake/images/cmake_image004.png
+
+## OCCT Configuration
+
+The error message which appears at the end of configuration process, informs you about the required variables 
+which need to be defined. This error will appear until all required variables are defined correctly.
+Note: In cmake-gui there is "grouped" option, which groups variables with a common prefix.
+
+###The variables with BUILD_ prefix:
+
+* BUILD_TYPE - defines build configuration of the future project (Release by default)
+* BUILD_<MODULE> - allows including the toolkit set of the specified module to the future project or excluding it from the project.
+* BUILD_TOOLKITS - allows including additional specified toolkits (list of items separated by a space or a semicolon) to the common set of the future project.
+
+Check USE_\<PRODUCT\> variable (USE_FREEIMAGE, USE_GL2PS, USE_TBB and USE_OPENCL) if you want to use this 3rd-party product in the future project.
+
+### 3rd-party configuration
+
+If you have 3rd-party libraries in a non-default location 
+(e.g., on Windows, binaries downloaded from "http://www.opencascade.org/getocc/download/3rdparty/"), 
+specify 3RDPARTY_DIR variable that points to the folders of 3rdparty products (some or all). 
+At the next configuration 3rd-party product paths stored in 3RDPARTY_\<PRODUCT\>_DIR variable 
+will be searched for in 3RDPARTY_DIR directory. If the structure of 3RDPARTY_DIR directory 
+is the same as adopted in the OCCT, the directory will contain product dir, lib and header files. 
+Press "Configure" ("c" key for ccmake)
+Important: The names of searched libraries and header files are hardcoded.
+The result of the 3rdparty product search will be recorded in the corresponding variables:
+
+* 3RDPARTY_\<PRODUCT\>_DIR - path to the product directory (with directory name) (e.g., D:/3rdparty/Tcl-8.5.12.0-32)
+* 3RDPARTY_\<PRODUCT\>_LIBRARY - path to the .lib libraries (with the library name) (e.g., D:/3rdparty/Tcl-8.5.12.0-32/lib/tcl85.lib). In non-windows case, this variable is the same as 3RDPARTY_\<PRODUCT\>_DLL.
+* 3RDPARTY_\<PRODUCT\>_INCLUDE - path to the include directory that contains the required header file (with "include" name) (e.g., D:/3rdparty/Tcl-8.5.12.0-32/include including tcl.h)
+* 3RDPARTY_\<PRODUCT\>_DLL - path to the .dll/.so/.dylib library  (with the library name) (e.g., D:/3rdparty/Tcl-8.5.12.0-32/bin/tcl85.dll)
+
+The search process is as follows:
+
+1 level:. 3RDPARTY_DIR
+  2 level: 3RDPARTY_\<PRODUCT\>_DIR\
+    3 level: 3RDPARTY_\<PRODUCT\>_LIBRARY
+    3 level: 3RDPARTY_\<PRODUCT\>_INCLUDE
+    3 level: 3RDPARTY_\<PRODUCT\>_DLL
+
+If a variable of any level is not defined (empty or \<variable name\>-NOTFOUND) 
+and the upper level variable is defined, the content of the non-defined variable 
+will be searched for at the next configuration step. If search process in level 3 
+doesn't find the required files, it searches in default places also. 
+
+*Note*: Freetype search process tries to find ft2build.h file in 3RDPARTY_FREETYPE INCLUDE dir 
+and after that adds "3RDPARTY_FREETYPE_INCLUDE /freetype2" path to common includes if it exists. 
+Important: If BUILD_TYPE or BITNESS variable is changed - at the next configuration 
+3RDPARTY_ variables will be replaced by the search process result, except for the 3RDPARTY_DIR variable.
+
+*Note*: CMake will produce an error after the configuration step until all required variables are defined correctly.
+If the search result (include path, or library path, or dll path) does not meet your expectations - 
+you can  change 3RDPARTY_\<PRODUCT\>_DIR variable, clear (if they are not empty) 
+3RDPARTY_\<PRODUCT\>_DLL, 3RDPARTY_\<PRODUCT\>_INCLUDE_DIR and 3RDPARTY_\<PRODUCT\>_LIBRARY variables 
+(or clear one of them) and run the configuration process again. 
+At this time the search will be performed in the new identified directory 
+and the result will be recorded to empty variables (non-empty variables will not be replaced).
+
+For example, (Linux case) 3RDPARTY_FREETYPE_DIR variable 
+
+/PRODUCTS/maintenance/Mandriva2010/freetype-2.3.7
+
+can be changed to 
+
+/PRODUCTS/maintenance/Mandriva2010/freetype-2.4.10
+
+and the related variables: 3RDPARTY_FREETYPE_DLL, 3RDPARTY_FREETYPE_INCLUDE_DIR and  3RDPARTY_FREETYPE_LIBRARY will be cleared.
+
+@image html /dev_guides/building/cmake/images/cmake_image005.png
+@image latex /dev_guides/building/cmake/images/cmake_image005.png
+
+During configuration process the cleaned variables will be filled with new found values.
+
+### Install path configuration
+
+Define in INSTALL_DIR variable the path to the installed OCCT files (libraries, executables and headers).
+If INSTALL_\<PRODUCT\> variable is checked - 3rd-party products will be copied to the install directory.
+At the end of the configuration process "configuring done" message will be shown and the generation process can be started.
+
+## OCCT Generation
+
+This will create makefiles or project files for your build system.
+
+### Windows
+
+Click Generate button and wait until the generation process is finished. 
+Then the project files will appear in the build folder (e.g., d:/occt/build/win32-vc9-release). 
+
+### Linux
+
+When the configuration is complete, start the generation process by pressing "g".
+
+@image html /dev_guides/building/cmake/images/cmake_image006.png
+@image latex /dev_guides/building/cmake/images/cmake_image006.png
+
+### Mac OS X
+
+Click Generate button and wait until the generation process is finished. 
+Then the project files will appear in the build folder (e.g., /Developer/occt/build/XCode).
+
+## OCCT Building
+
+The install folder contains bin, inc, lib and res folders and a script to run DRAWEXE (draw.bat or draw.sh).
+"bin" contains executables, DLL (Windows) style shared libraries and pdb-files in OCCT debug version,.
+"lib" contains the import parts of DLL libraries.
+"inc" contains header files.
+"res" contains all required source files for OCCT.
+
+### Windows (Visual studio)
+
+Go to the build folder, start the Visual Studio solution (OCCT.sln) and build it by clicking Build - Build Solution.
+When the building process finished, build the INSTALL project 
+(by default the build solution process skips the building of the INSTALL project) to move the above files to INSTALL_DIR. 
+For this in the solution explorer right click on the INSTALL project and select Project Only - Build Only INSTALL. 
+
+### Linux (make)
+Change directory to binary dir and run make command
+
+       > make 
+
+To copy all libraries, executables and chosen 3rd-party libraries run "make" command with "install" argument
+
+       > make install
+
+This command will move the above files to INSTALL_DIR.
+
+### Mac OS X (XCode)
+
+Go to the build folder, start the XCode solution (OCCT.xcodeproj) 
+and build it by clicking Build -> Build. 
+Please notice that XCode may have worst responsibility to user actions 
+due to sources processing at first start.
+
+When the building process finished, build the INSTALL project 
+(by default the build solution process skips the building of the INSTALL project) 
+to move the above files to INSTALL_DIR. 
+Notice that env.sh (configure PATH and DYLD_LIBRARY_PATH environment variables 
+as well as Draw Harness extra variables) and draw.sh (to launch DRAWEXE) will be created in target directory. 
+
+## OCCT project debugging for Visual Studio
+Run OCCT.bat from the build directory to start Visual Studio with required environment for debugging.
\ No newline at end of file
diff --git a/dox/dev_guides/building/cmake/images/cmake_image001.png b/dox/dev_guides/building/cmake/images/cmake_image001.png
new file mode 100644 (file)
index 0000000..6c38e3b
Binary files /dev/null and b/dox/dev_guides/building/cmake/images/cmake_image001.png differ
diff --git a/dox/dev_guides/building/cmake/images/cmake_image002.png b/dox/dev_guides/building/cmake/images/cmake_image002.png
new file mode 100644 (file)
index 0000000..eeae785
Binary files /dev/null and b/dox/dev_guides/building/cmake/images/cmake_image002.png differ
diff --git a/dox/dev_guides/building/cmake/images/cmake_image003.png b/dox/dev_guides/building/cmake/images/cmake_image003.png
new file mode 100644 (file)
index 0000000..c442f9d
Binary files /dev/null and b/dox/dev_guides/building/cmake/images/cmake_image003.png differ
diff --git a/dox/dev_guides/building/cmake/images/cmake_image004.png b/dox/dev_guides/building/cmake/images/cmake_image004.png
new file mode 100644 (file)
index 0000000..bb889d9
Binary files /dev/null and b/dox/dev_guides/building/cmake/images/cmake_image004.png differ
diff --git a/dox/dev_guides/building/cmake/images/cmake_image005.png b/dox/dev_guides/building/cmake/images/cmake_image005.png
new file mode 100644 (file)
index 0000000..ee1a512
Binary files /dev/null and b/dox/dev_guides/building/cmake/images/cmake_image005.png differ
diff --git a/dox/dev_guides/building/cmake/images/cmake_image006.png b/dox/dev_guides/building/cmake/images/cmake_image006.png
new file mode 100644 (file)
index 0000000..0d7ec18
Binary files /dev/null and b/dox/dev_guides/building/cmake/images/cmake_image006.png differ
index 919edc2..7b72fda 100644 (file)
@@ -6,7 +6,7 @@ on Mac OS X with Code::Blocks.
 
 If you are building OCCT from bare sources (as in Git repository), or do some 
 changes affecting CDL files, you need to use WOK to re-generate header files
-and build scripts / projects. See file \ref wok "WOK" for instructions.
+and build scripts / projects. See \ref dev_guides__building__wok for instructions.
 
 Before building OCCT, you need to install required third-party libraries; see
 OCCT_Build3rdParty_OSX.pdf for details.
index 3a84422..7807c44 100644 (file)
@@ -6,7 +6,7 @@ archive on Windows with MS Visual C++.
 
 If you are building OCCT from bare sources (as in Git repository), or do some 
 changes affecting CDL files, you need to use WOK to re-generate header files
-and build scripts / projects. See file \ref wok "WOK" for instructions.
+and build scripts / projects. See \ref dev_guides__building__wok for instructions.
 
 Before building OCCT, you need to install required third-party libraries; see
 OCCT_Build3rdParty_Windows.pdf for instructions.
diff --git a/dox/dev_guides/building/wok/images/wok_image001.jpg b/dox/dev_guides/building/wok/images/wok_image001.jpg
deleted file mode 100644 (file)
index 37fd735..0000000
Binary files a/dox/dev_guides/building/wok/images/wok_image001.jpg and /dev/null differ
diff --git a/dox/dev_guides/building/wok/images/wok_image001.png b/dox/dev_guides/building/wok/images/wok_image001.png
new file mode 100644 (file)
index 0000000..e1d685a
Binary files /dev/null and b/dox/dev_guides/building/wok/images/wok_image001.png differ
diff --git a/dox/dev_guides/building/wok/images/wok_image002.jpg b/dox/dev_guides/building/wok/images/wok_image002.jpg
deleted file mode 100644 (file)
index b805c9b..0000000
Binary files a/dox/dev_guides/building/wok/images/wok_image002.jpg and /dev/null differ
diff --git a/dox/dev_guides/building/wok/images/wok_image002.png b/dox/dev_guides/building/wok/images/wok_image002.png
new file mode 100644 (file)
index 0000000..c5d11ca
Binary files /dev/null and b/dox/dev_guides/building/wok/images/wok_image002.png differ
diff --git a/dox/dev_guides/building/wok/images/wok_image003.jpg b/dox/dev_guides/building/wok/images/wok_image003.jpg
deleted file mode 100644 (file)
index bc3844a..0000000
Binary files a/dox/dev_guides/building/wok/images/wok_image003.jpg and /dev/null differ
diff --git a/dox/dev_guides/building/wok/images/wok_image003.png b/dox/dev_guides/building/wok/images/wok_image003.png
new file mode 100644 (file)
index 0000000..298c32f
Binary files /dev/null and b/dox/dev_guides/building/wok/images/wok_image003.png differ
diff --git a/dox/dev_guides/building/wok/images/wok_image004.jpg b/dox/dev_guides/building/wok/images/wok_image004.jpg
deleted file mode 100644 (file)
index 260d032..0000000
Binary files a/dox/dev_guides/building/wok/images/wok_image004.jpg and /dev/null differ
diff --git a/dox/dev_guides/building/wok/images/wok_image004.png b/dox/dev_guides/building/wok/images/wok_image004.png
new file mode 100644 (file)
index 0000000..f7b53fd
Binary files /dev/null and b/dox/dev_guides/building/wok/images/wok_image004.png differ
index 784936f..194a0d0 100644 (file)
@@ -1,16 +1,21 @@
-WOK {#dev_guides__building__wok}
+Using WOK {#dev_guides__building__wok}
 =========
 
-WOK is a legacy build environment for Open CASCADE Technology. It is required 
-for generation of header files for classes defined with @ref ug_cdl "CDL"
-("Cascade Definition Language"). Also tools for generation of project files
-for other build systems, and OCCT documentation, are integrated to WOK.
+@tableofcontents
+
+\ref dev_guides__wok "WOK" is a legacy build environment for Open CASCADE Technology. 
+It is required for generation of header files for classes defined with 
+@ref dev_guides__cdl "CDL" ("Cascade Definition Language"). 
+Also tools for generation of project files for other build systems, and OCCT 
+documentation, are integrated to WOK.
 
 WOK thus is needed in the following situations:
 - Building from OCCT sources from Git repository (do not contain generated files)
 - Building after some changes made in CDL files
 
-Before installing and using WOK, make sure that you have installed a compiler (it is assumed that it is Visual Studio on Windows or gcc on Linux and MacOS) and third-party components required for building OCCT.
+Before installing and using WOK, make sure that you have installed a compiler 
+(it is assumed that it is Visual Studio on Windows or gcc on Linux and MacOS) 
+and third-party components required for building OCCT.
 
 @section wok1 Installing WOK
 
@@ -20,14 +25,14 @@ Before installing and using WOK, make sure that you have installed a compiler (i
 
   Run the installer. You will be prompted to read and accept the OCCT Public License to proceed:
   
-  @image html /dev_guides/building/wok/images/wok_image001.jpg
-  @image latex /dev_guides/building/wok/images/wok_image001.jpg
+  @image html /dev_guides/building/wok/images/wok_image001.png
+  @image latex /dev_guides/building/wok/images/wok_image001.png
  
   Click Next and proceed with the installation.
   At the end of the installation you will be prompted to specify the version and the location of Visual Studio to be used, and the location of third-party libraries:
   
-  @image html /dev_guides/building/wok/images/wok_image002.jpg
-  @image latex /dev_guides/building/wok/images/wok_image002.jpg
+  @image html /dev_guides/building/wok/images/wok_image002.png
+  @image latex /dev_guides/building/wok/images/wok_image002.png
  
   You can change these settings at any time later. For this click on the item "Customize environment (GUI tool)" in the WOK group in the Windows Start menu.
   
@@ -39,52 +44,52 @@ Before installing and using WOK, make sure that you have installed a compiler (i
 
 @subsection wok12 Linux
 
-  * Unpack the .tgz archive containing WOK distributive into an installation directory <WOK_INSTALL_DIR>.
+  * Unpack the .tgz archive containing WOK distributive into an installation directory \<WOK_INSTALL_DIR\>.
 
-  * Perform the following commands assuming that you have unpacked WOK distributive archive into <WOK_INSTALL_DIR>:
+  * Perform the following commands assuming that you have unpacked WOK distributive archive into \<WOK_INSTALL_DIR\>:
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.tcl}
-  cd <WOK_INSTALL_DIR>/site
+  cd \<WOK_INSTALL_DIR\>/site
   wok_confgui.sh
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   
   Define all necessary paths to third-party products in the dialog window:
   
-  @image html /dev_guides/building/wok/images/wok_image003.jpg
-  @image latex /dev_guides/building/wok/images/wok_image003.jpg
+  @image html /dev_guides/building/wok/images/wok_image003.png
+  @image latex /dev_guides/building/wok/images/wok_image003.png
  
   * Run the following commands to create WOK LOC factory:
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.tcl}
-  cd <WOK_INSTALL_DIR>/site
+  cd \<WOK_INSTALL_DIR\>/site
   wok_init.sh
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   
   * Your installation procedure is over. To run WOK use one the following commands:
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.tcl}
-  cd <WOK_INSTALL_DIR>/site
+  cd \<WOK_INSTALL_DIR\>/site
   wok_emacs.sh
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   or
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.tcl}
-  cd <WOK_INSTALL_DIR>/site
+  cd \<WOK_INSTALL_DIR\>/site
   wok_tclsh.sh
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 @subsection wok13 Mac OS X
 
-  * In the Finder double click on wokSetup.dmg file. This will open a new window. Drag and drop "wokSetup" folder from this window at the location in the Finder where you want to install WOK, i.e. <WOK_INSTALL_DIR>.
+  * In the Finder double click on wokSetup.dmg file. This will open a new window. Drag and drop "wokSetup" folder from this window at the location in the Finder where you want to install WOK, i.e. \<WOK_INSTALL_DIR\>.
   
-  * Browse in the Finder to the folder <WOK_INSTALL_DIR>/site and double click on WokConfig. This will open a window with additional search path settings. Define all necessary paths to third-party products in the dialog window:
+  * Browse in the Finder to the folder \<WOK_INSTALL_DIR\>/site and double click on WokConfig. This will open a window with additional search path settings. Define all necessary paths to third-party products in the dialog window:
   
-  @image html /dev_guides/building/wok/images/wok_image004.jpg
-  @image latex /dev_guides/building/wok/images/wok_image004.jpg
+  @image html /dev_guides/building/wok/images/wok_image004.png
+  @image latex /dev_guides/building/wok/images/wok_image004.png
  
   * Run the following commands to create WOK LOC factory:
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.tcl}
-  cd <WOK_INSTALL_DIR>/site
+  cd \<WOK_INSTALL_DIR\>/site
   wok_init.sh
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   
-  * Your installation procedure is over. To run WOK in Emacs navigate in the Finder to the folder <WOK_INSTALL_DIR>/site and double click on WokEmacs.
+  * Your installation procedure is over. To run WOK in Emacs navigate in the Finder to the folder \<WOK_INSTALL_DIR\>/site and double click on WokEmacs.
 
 
 @section wok2 Initialization of Workbench
@@ -100,7 +105,7 @@ Before installing and using WOK, make sure that you have installed a compiler (i
 
   Note: $CASROOT is equal to D:/occt now
 
-  Then you can work with this workbench using normal WOK functionality (wprocess, umake, etc.; see WOK User\92s Guide for details) or use it only for generation of derived sources and project files, and build OCCT with Visual Studio on Windows or make command on Linux, as described below.
+  Then you can work with this workbench using normal WOK functionality (wprocess, umake, etc.; see WOK User's Guide for details) or use it only for generation of derived sources and project files, and build OCCT with Visual Studio on Windows or make command on Linux, as described below.
   
 @section wok3 Generation of building projects
 
@@ -134,10 +139,10 @@ The generated building project has been placed into $CASROOT/adm folder:
   * for vc9 - $CASROOT/adm/msvc/vc9
   * for vc10 - $CASROOT/adm/msvc/vc10
   * for vc11 - $CASROOT/adm/msvc/vc11
-  * for cbp - $CASROOT/adm/<OS> /cbp
+  * for cbp - $CASROOT/adm/\<OS\>/cbp
   * for cmake - $CASROOT/adm/cmake
   * for amk - $CASROOT/adm/lin/amk
-  * xcd - $CASROOT/adm/<OS>/xcd
+  * xcd - $CASROOT/adm/\<OS\>/xcd
 
 @section wok4  Generation of documentation
 
index e1ba093..7d9ff0c 100644 (file)
@@ -6,7 +6,7 @@ on Mac OS X with Xcode.
 
 If you are building OCCT from bare sources (as in Git repository), or do some 
 changes affecting CDL files, you need to use WOK to re-generate header files
-and build scripts / projects. See file \ref wok "WOK" for instructions.
+and build scripts / projects. See \ref dev_guides__building__wok for instructions.
 
 Before building OCCT, you need to install required third-party libraries; see
 OCCT_Build3rdParty_OSX.pdf for details.
index 279e2db..327170b 100644 (file)
@@ -1,6 +1,12 @@
  Component Definition Language (CDL)  {#dev_guides__cdl}
 ==============================
 
+@tableofcontents
+
+@section occt_cdl_0 DEPRECATION WARNING
+
+Please note that CDL is considered as obsolete and is to be removed in one of future releases of OCCT.
+
 @section occt_1819379591_354121062 CDL and Application Architecture
 
 CDL is the component  definition language of the Open CASCADE Technology (**OCCT**) programming  platform. Some components, which CDL allows you to create, are specific to OCCT  application architecture. These and other components, which you can define  using CDL include the following: 
@@ -10,7 +16,7 @@ CDL is the component  definition language of the Open CASCADE Technology (**OCCT
   * Schema
   * Executable
   * Client.
-A** class** is the  fundamental software component in object-oriented development. Because of a  very large number of resources used in large-scale applications, the **class **itself  is too small to be used as a basic management unit. 
+A **class** is the  fundamental software component in object-oriented development. Because of a  very large number of resources used in large-scale applications, the **class** itself  is too small to be used as a basic management unit. 
 
 So, while the class is  the basic data component defined in CDL, this language also provides a way to  group classes, **enumerations**, and **exceptions **together – the **package**.  A package groups together a number of classes, which have semantic links. For  example, a geometry package would contain Point, Line, and Circle classes. A  package can also contain enumerations, exceptions, and package methods. In  practice, a class name is prefixed with the name of its package e.g.  Geom_Circle. 
 
@@ -19,18 +25,18 @@ Using the services  described in the **packages**, you can construct an **execut
 To save data in a file,  you need to define persistent classes. Then, you group these classes in a  schema, which provides the necessary read/write tools. 
 
 
-               @image html /dev_guides/cdl/images/cdl_image003.jpg
-    @image latex /dev_guides/cdl/images/cdl_image003.jpg
+    @image html /dev_guides/cdl/images/cdl_image003.png
+    @image latex /dev_guides/cdl/images/cdl_image003.png
      
 Figure 1. Building  an Open CASCADE Technology application 
 @section occt_1819379591_986437237 2. Introduction to  CDL
 @subsection occt_1819379591_98643723721  Purposes of the Language
-You can use CDL to **define  data **in the Open CASCADE Technology environment. CDL allows you to define  various kinds of data types supporting the application architecture and  development methodology, which you envision. CDL is neither an analysis  formalism (e.g. Booch methodology) nor a data manipulation language (e.g. C++). 
+You can use CDL to **define** **data** in the Open CASCADE Technology environment. CDL allows you to define  various kinds of data types supporting the application architecture and  development methodology, which you envision. CDL is neither an analysis  formalism (e.g. Booch methodology) nor a data manipulation language (e.g. C++). 
 
-You use CDL in the **design  phase **of a development process to define a set of software components which  best model the concepts stated in the application specification. 
+You use CDL in the **design** **phase** of a development process to define a set of software components which  best model the concepts stated in the application specification. 
 
-               @image html /dev_guides/cdl/images/cdl_image004.jpg
-    @image latex /dev_guides/cdl/images/cdl_image004.jpg     
+    @image html /dev_guides/cdl/images/cdl_image004.png
+    @image latex /dev_guides/cdl/images/cdl_image004.png     
 
 Figure 2. The Development Process 
 
@@ -97,8 +103,8 @@ You declare the  variables of a **data manipulation language **as being of certa
   * Data types manipulated by  handle (or reference)
   * Data types manipulated by  value
   
-               @image html /dev_guides/cdl/images/cdl_image005.jpg
-    @image latex /dev_guides/cdl/images/cdl_image005.jpg      
+    @image html /dev_guides/cdl/images/cdl_image005.png
+    @image latex /dev_guides/cdl/images/cdl_image005.png      
 
 Figure 3. Manipulation of data types 
 
@@ -399,8 +405,8 @@ Two types are  manipulated by handle:
   * Types defined using classes  inheriting from the **Transient **class.
 These types are not storable as such in a file. 
 
-@image html /dev_guides/cdl/images/cdl_image006.jpg
-@image latex /dev_guides/cdl/images/cdl_image006.jpg
+@image html /dev_guides/cdl/images/cdl_image006.png
+@image latex /dev_guides/cdl/images/cdl_image006.png
 
 Figure 4. Manipulation of a data type by reference 
 
@@ -411,8 +417,8 @@ Types, which are  manipulated by value, behave in a more direct fashion than tho
 
 You can store types  known to the schema (i.e. either primitives or inheriting from Storable) and  manipulated by value inside a persistent object as part of the representation.  This is the only way for you to store objects “manipulated by value” in a file. 
 
-               @image html /dev_guides/cdl/images/cdl_image007.jpg
-    @image latex /dev_guides/cdl/images/cdl_image007.jpg
+    @image html /dev_guides/cdl/images/cdl_image007.png
+    @image latex /dev_guides/cdl/images/cdl_image007.png
       
 Figure 5. Manipulation of a data type by value 
 Three types are  manipulated by value: 
@@ -475,8 +481,8 @@ The elements, which make  up the definition of a class, are divided into four pa
   * the internal representation
   * the friend methods and friend  classes.
 
-               @image html /dev_guides/cdl/images/cdl_image009.jpg
-    @image latex /dev_guides/cdl/images/cdl_image009.jpg
+    @image html /dev_guides/cdl/images/cdl_image009.png
+    @image latex /dev_guides/cdl/images/cdl_image009.png
     
 **Figure 7. Contents of a class** 
 *** a deferred class does not have to contain a  constructor** 
@@ -570,8 +576,8 @@ Grouped behind the  keyword **uses **are the names of all the packages containin
 
 The methods you declare  in a package do not belong to any particular class. **Package methods ***must  *carry a name different from the data types contained in the package. Like  any other method, they can be overloaded. With the exception of the keyword **me  **and the visibility (a package method can *only *be either public or  private) package methods are described in the same way as **instance methods**. 
 
-@image html /dev_guides/cdl/images/cdl_image010.jpg
-@image latex /dev_guides/cdl/images/cdl_image010.jpg
+@image html /dev_guides/cdl/images/cdl_image010.png
+@image latex /dev_guides/cdl/images/cdl_image010.png
 Figure 8. Contents of a package 
 
 The example of the  package below includes some of the basic data structures: 
@@ -1549,8 +1555,8 @@ friends Distance from Line (me; P : Point)
 
 A method can be a friend  to many classes. The class to which the method belongs does *not *need to  appear in the **uses **clause of other classes of which it is a friend. 
 
-               @image html /dev_guides/cdl/images/cdl_image011.jpg
-    @image latex /dev_guides/cdl/images/cdl_image011.jpg
+    @image html /dev_guides/cdl/images/cdl_image011.png
+    @image latex /dev_guides/cdl/images/cdl_image011.png
 
 When the methods of a class are all friends  of another class, you can establish the friendship at the level of the class. 
 
@@ -1786,8 +1792,8 @@ identifier **as**** **type-constraint
 
 
 
-@subsection occt_1819379591_213955286151   Comparison  of CDL &amp; C++ Syntax for Data Types manipulated by Handle and by Value
+@subsection occt_1819379591_213955286151   Comparison  of CDL & C++ Syntax for Data Types manipulated by Handle and by Value
 
-               @image html /dev_guides/cdl/images/cdl_image012.jpg
-    @image latex /dev_guides/cdl/images/cdl_image012.jpg
+    @image html /dev_guides/cdl/images/cdl_image012.png
+    @image latex /dev_guides/cdl/images/cdl_image012.png
     
\ No newline at end of file
diff --git a/dox/dev_guides/cdl/images/cdl_image001.jpg b/dox/dev_guides/cdl/images/cdl_image001.jpg
deleted file mode 100644 (file)
index 0e782ca..0000000
Binary files a/dox/dev_guides/cdl/images/cdl_image001.jpg and /dev/null differ
diff --git a/dox/dev_guides/cdl/images/cdl_image002.jpg b/dox/dev_guides/cdl/images/cdl_image002.jpg
deleted file mode 100644 (file)
index 5f87a33..0000000
Binary files a/dox/dev_guides/cdl/images/cdl_image002.jpg and /dev/null differ
diff --git a/dox/dev_guides/cdl/images/cdl_image003.jpg b/dox/dev_guides/cdl/images/cdl_image003.jpg
deleted file mode 100644 (file)
index 15de92c..0000000
Binary files a/dox/dev_guides/cdl/images/cdl_image003.jpg and /dev/null differ
diff --git a/dox/dev_guides/cdl/images/cdl_image003.png b/dox/dev_guides/cdl/images/cdl_image003.png
new file mode 100644 (file)
index 0000000..97f4480
Binary files /dev/null and b/dox/dev_guides/cdl/images/cdl_image003.png differ
diff --git a/dox/dev_guides/cdl/images/cdl_image004.jpg b/dox/dev_guides/cdl/images/cdl_image004.jpg
deleted file mode 100644 (file)
index 87a293d..0000000
Binary files a/dox/dev_guides/cdl/images/cdl_image004.jpg and /dev/null differ
diff --git a/dox/dev_guides/cdl/images/cdl_image004.png b/dox/dev_guides/cdl/images/cdl_image004.png
new file mode 100644 (file)
index 0000000..9a07132
Binary files /dev/null and b/dox/dev_guides/cdl/images/cdl_image004.png differ
diff --git a/dox/dev_guides/cdl/images/cdl_image005.jpg b/dox/dev_guides/cdl/images/cdl_image005.jpg
deleted file mode 100644 (file)
index 04f85ee..0000000
Binary files a/dox/dev_guides/cdl/images/cdl_image005.jpg and /dev/null differ
diff --git a/dox/dev_guides/cdl/images/cdl_image005.png b/dox/dev_guides/cdl/images/cdl_image005.png
new file mode 100644 (file)
index 0000000..9c91d68
Binary files /dev/null and b/dox/dev_guides/cdl/images/cdl_image005.png differ
diff --git a/dox/dev_guides/cdl/images/cdl_image006.jpg b/dox/dev_guides/cdl/images/cdl_image006.jpg
deleted file mode 100644 (file)
index 7573c61..0000000
Binary files a/dox/dev_guides/cdl/images/cdl_image006.jpg and /dev/null differ
diff --git a/dox/dev_guides/cdl/images/cdl_image006.png b/dox/dev_guides/cdl/images/cdl_image006.png
new file mode 100644 (file)
index 0000000..3e1ba07
Binary files /dev/null and b/dox/dev_guides/cdl/images/cdl_image006.png differ
diff --git a/dox/dev_guides/cdl/images/cdl_image007.jpg b/dox/dev_guides/cdl/images/cdl_image007.jpg
deleted file mode 100644 (file)
index 370ed26..0000000
Binary files a/dox/dev_guides/cdl/images/cdl_image007.jpg and /dev/null differ
diff --git a/dox/dev_guides/cdl/images/cdl_image007.png b/dox/dev_guides/cdl/images/cdl_image007.png
new file mode 100644 (file)
index 0000000..869e4a2
Binary files /dev/null and b/dox/dev_guides/cdl/images/cdl_image007.png differ
diff --git a/dox/dev_guides/cdl/images/cdl_image008.jpg b/dox/dev_guides/cdl/images/cdl_image008.jpg
deleted file mode 100644 (file)
index 6648804..0000000
Binary files a/dox/dev_guides/cdl/images/cdl_image008.jpg and /dev/null differ
diff --git a/dox/dev_guides/cdl/images/cdl_image008.png b/dox/dev_guides/cdl/images/cdl_image008.png
new file mode 100644 (file)
index 0000000..923e014
Binary files /dev/null and b/dox/dev_guides/cdl/images/cdl_image008.png differ
diff --git a/dox/dev_guides/cdl/images/cdl_image009.jpg b/dox/dev_guides/cdl/images/cdl_image009.jpg
deleted file mode 100644 (file)
index b07ee6c..0000000
Binary files a/dox/dev_guides/cdl/images/cdl_image009.jpg and /dev/null differ
diff --git a/dox/dev_guides/cdl/images/cdl_image009.png b/dox/dev_guides/cdl/images/cdl_image009.png
new file mode 100644 (file)
index 0000000..5860e77
Binary files /dev/null and b/dox/dev_guides/cdl/images/cdl_image009.png differ
diff --git a/dox/dev_guides/cdl/images/cdl_image010.jpg b/dox/dev_guides/cdl/images/cdl_image010.jpg
deleted file mode 100644 (file)
index b471c0a..0000000
Binary files a/dox/dev_guides/cdl/images/cdl_image010.jpg and /dev/null differ
diff --git a/dox/dev_guides/cdl/images/cdl_image010.png b/dox/dev_guides/cdl/images/cdl_image010.png
new file mode 100644 (file)
index 0000000..701df35
Binary files /dev/null and b/dox/dev_guides/cdl/images/cdl_image010.png differ
diff --git a/dox/dev_guides/cdl/images/cdl_image011.jpg b/dox/dev_guides/cdl/images/cdl_image011.jpg
deleted file mode 100644 (file)
index d67dff7..0000000
Binary files a/dox/dev_guides/cdl/images/cdl_image011.jpg and /dev/null differ
diff --git a/dox/dev_guides/cdl/images/cdl_image011.png b/dox/dev_guides/cdl/images/cdl_image011.png
new file mode 100644 (file)
index 0000000..0c1546b
Binary files /dev/null and b/dox/dev_guides/cdl/images/cdl_image011.png differ
diff --git a/dox/dev_guides/cdl/images/cdl_image012.jpg b/dox/dev_guides/cdl/images/cdl_image012.jpg
deleted file mode 100644 (file)
index e60fdd6..0000000
Binary files a/dox/dev_guides/cdl/images/cdl_image012.jpg and /dev/null differ
diff --git a/dox/dev_guides/cdl/images/cdl_image012.png b/dox/dev_guides/cdl/images/cdl_image012.png
new file mode 100644 (file)
index 0000000..2785fd9
Binary files /dev/null and b/dox/dev_guides/cdl/images/cdl_image012.png differ
index 5e88b4f..8da5bb4 100644 (file)
@@ -1,79 +1,17 @@
  Developer Guides {#dev_guides}
 ================
 
-## Source Repository
+The following documents provide information on OCCT building, development and testing:
 
-This directory contains sources of Open CASCADE Technology (OCCT), a collection
-of C++ libraries providing services for 3D surface and solid modeling, CAD data
-exchange, and visualization. OCCT can be best applied in development of
-software dealing with 3D modeling (CAD), manufacturing / measuring (CAM) or
-numerical simulation (CAE).
+* @subpage dev_guides__building "Building OCCT from sources"
+* @subpage dev_guides__documentation "Documentation system"
+* Coding Rules
+* Contribution Workflow
+* Guide to installing and using Git for OCCT development
+* @subpage dev_guides__tests "Automatic Testing system"
 
-The OCCT code is subject to the Open CASCADE Technology Public License Version
-6.6 (the "License"). You may not use the content of the relevant files except in
-compliance with the License. Please see the LICENSE file or obtain a copy of the
-License at http://www.opencascade.org and read it completely before using this
-software.
+Two other documents provide details on obsolete technologies used by OCCT, 
+to be removed in future releases:
 
-## Automatic tests
-
-OCCT automatic testing system is integrated with @ref draw "DRAW Test Harness",
-a console application based on Tcl (a scripting language).
-All tests are run from DRAW command prompt (run **draw.bat** or 
-**draw.sh** to start it).
-
-Standard OCCT tests are located in subdirectory **tests** of the OCCT root 
-folder. This location is set as default at DRAW start (see environment variable 
-_CSF_TestScriptsPath_ defined in **src/DrawResources/DrawDefaults**).
-
-The tests are organized in three levels:
-- Group: a group of related test grids, usually testing a particular subset of OCCT functionality (e.g. *blend*). 
-- Grid: a set of test cases within a group, usually aimed at testing a particular aspect or mode of execution of the relevant functionality (e.g. *buildevol*).
-- Test case: a script implementing an individual test (e.g. *K4*).
-
-To run all tests, type command *testgrid*:
-
-    Draw[]\> testgrid
-
-For running only a group or a grid of tests, give additional arguments indicating the group and (if needed) the grid name:
-
-    Draw[]\> testgrid blend simple
-
-As the tests progress, the result of each test case is reported. 
-At the end of the log a summary of test cases is output, including the list of 
-detected regressions and improvements, if any.
-The tests are considered as non-regressive if only OK, BAD (i.e. known problem), 
-and SKIPPED (i.e. not executed, typically because of lack of a data file) 
-statuses are reported. 
-
-To run a single test, type command 'test' followed by the names of 
-group, grid, and test case. 
-
-    Draw[1]\> test blend simple A1
-    CASE blend simple A1: OK
-
-To see intermediate commands and their output during the test execution, 
-add one more argument '-echo' at the end of the command line, or type 'dlog get'
-after test completion. 
-
-For more information consult \subpage dev_guides__tests
-
-## docs
-**short description**
-
-\subpage dev_guides__documentation
-
-## wok
-**short description**
-
-\subpage dev_guides__wok
-
-## building
-**short description**
-
-\subpage dev_guides__building
-
-## cdl
-**short description**
-
-\subpage dev_guides__cdl
\ No newline at end of file
+* @subpage dev_guides__wok "Workshop Organization Kit (WOK)"
+* @subpage dev_guides__cdl "Component Definition Language (CDL)"
index 69cf2e6..bfcfffd 100644 (file)
@@ -1,5 +1,7 @@
- Documentation  {#dev_guides__documentation}
-=================
+ Documentation System {#dev_guides__documentation}
+======================
+
+@tableofcontents
 
 @section  OCCT_DM_SECTION_1 Introduction
 
@@ -8,20 +10,27 @@ This document provides practical guidenes for generation and editing of OCCT use
 @section  OCCT_DM_SECTION_2 Prerequisites
 
 <b>Tcl/Tk</b>
-The lates version: http://www.tcl.tk/software/tcltk/download.html
+Version 8.5 or 8.6: http://www.tcl.tk/software/tcltk/download.html
 
-<b>Doxygen</b> ( >= 1.8.4 ) 
-The latest version: http://www.stack.nl/~dimitri/doxygen/download.html
+<b>Doxygen</b> 
+Version 1.8.4 or above: http://www.stack.nl/~dimitri/doxygen/download.html
 
-<b>MathJax</b> (used for rendering math formulas in browser). Download it for local installation or use the MathJax Content Delivery Network.  \(read 
-@htmlonly <a href="#OCCT_DM_SECTION_A_9">Formulas</a> @endhtmlonly paragraph for more detailed description\)
+<b>MathJax</b> (used for rendering math formulas in browser). 
+See \ref OCCT_DM_SECTION_A_9 paragraph for more detailed description
 The latest version: http://www.mathjax.org/download/
 
 <b>MiKTeX</b> or equivalent tool (used for PDF document creation)
+
 Latest version: http://miktex.org/download
 
-**Note**: to generate pdf documentation with MiKTeX you should execute gen.bat with MiKTeX environment 
-(e.g. into MiKTeX command promt)
+**Note**: to generate pdf documentation with MiKTeX you should execute gendoc.bat within MiKTeX environment 
+(run gendoc.bat in MiKTeX command promt or update PATH for MiKTeX bin folder). Also in process of pdf generation
+MiKTeX can request you to download missing packages if MiKTeX was installed with option below:
+
+@image html /dev_guides/documentation/images/documentation_image002.png
+@image latex /dev_guides/documentation/images/documentation_image002.png
+
+If this option is set to "Yes", MiKTeX will download missing packages automatically.
 
 @section OCCT_DM_SECTION_2_1 Documentation Generation
 
@@ -31,8 +40,8 @@ gendoc.bat options:
 
   * -html                : To generate HTML files (cannot be used with -pdf);
   * -pdf                 : To generate PDF files (cannot be used with -html);
-  * -m=<modules_list>    : Specifies list of articles to generate. If it is not specified, all files, mentioned in FILES.txt are processed;
-  * -l=<document_name>   : Specifies the article caption for a single document;
+  * -m=\<modules_list\>    : Specifies list of articles to generate. If it is not specified, all files, mentioned in FILES.txt are processed;
+  * -l=\<document_name\>   : Specifies the article caption for a single document;
   * -h                   : Prints help message;
   * -v                   : Specifies the Verbose mode (info on all script actions is shown).
 
@@ -55,19 +64,19 @@ where documentation .md is name of article and devs_guid/documentation/ is relat
   * use this name with -m option in the generation process:
 
 @verbatim
-% gen.bat -html -m=devs_guid/documentation/documentation.md
+% gendoc.bat -html -m=devs_guid/documentation/documentation.md
 @endverbatim
 
 Multiple files are separated with comma:
 
 @verbatim
-% gen.bat -html -m=MD_FILE_1,MD_FILE_2
+% gendoc.bat -html -m=MD_FILE_1,MD_FILE_2
 @endverbatim
 
-To sepcify a article name with -l option, use tcl list to prevent whitespaces incorrect interpretation:
+To sepcify a article name with -l option, use quotes to prevent incorrect interpretation of whitespaces:
 
 @verbatim
-% gen.bat -pdf -m=MD_FILE_1 -l=[list MD File 1 Label]
+% gendoc.bat -pdf -m=MD_FILE_1 -l="Label of MD_FILE_1 document"
 @endverbatim
 
 @section  OCCT_DM_SECTION_3 Documentation Conventions
@@ -133,3 +142,304 @@ http://en.wikipedia.org/wiki/Help:Displaying_a_formula
 
 More information on MarkDown and Doxygen syntax can be found at:
 http://www.stack.nl/~dimitri/doxygen/manual
+
+@section  OCCT_DM_SECTION_A Appendix 1: Document Syntax
+
+Each OCCT document file in *.md format has a simple structure.
+It can contain: 
+
+| Content type      | Obligation            |
+| :---------------- | :-------------------: |
+| Header            | M                     |
+| Footer            | M                     |
+| Plain text        | O                     |
+| List              | O                     |
+| Table             | O                     |
+| Code              | O                     |
+| Formula           | O                     |
+| Image             | O                     |
+| Page numbers      | M (auto generation)   |
+| Table of contents | M (auto generation)   |
+
+The legend:
+
+  * M is for Mandatory
+  * O is for Optional
+
+@subsection  OCCT_DM_SECTION_A_1 Text Caption (a header)
+
+headings of different levels can be specified with the following code:
+
+@verbatim
+Header 1  {#header1}
+=======
+@endverbatim
+
+  to get
+
+ Header 1
+=========
+
+  and with the following code:
+
+@verbatim
+Header 2 {#header2}
+--------
+@endverbatim
+
+to get 
+
+Header 2
+---------
+
+Where a word in curly braces is a MarkDown-style reference, which can be used in table of contents.
+If you would like to have the table of contents, it is recommended to use \@section, 
+\@subsection and \@subsubsection pages instead of MarkDown headers as follows:
+
+@verbatim
+  @section Section_Name Section Header
+  @subsection SubSection_Name SubSection Header
+  @subsubsection SubSubSection_Name SubSubSection Header
+@endverbatim
+
+@subsection OCCT_DM_SECTION_A_2 Plain Text
+
+Plain text is a text in a notepad-like format. To insert special symbols, 
+like \< , \> or \\, prepend them with \\ character: \\\<, \\\>, \\\\ 
+To emphasize some words, write one pair of asterisks ( * ) or underscores ( _ ) across the word 
+to make it *italic* and two pairs of these symbols to make a word **Bold**.
+
+@subsection OCCT_DM_SECTION_A_3 Lists
+
+To create a bulleted list, start each line with a hyphen or an asterisk, 
+followed by a space. List items can be nested. This code:
+
+@verbatim
+  * Bullet 1
+  * Bullet 2
+    * Bullet 2a
+    * Bullet 2b
+  * Bullet 3
+@endverbatim
+
+  produces this list:
+
+  * Bullet 1
+  * Bullet 2
+    * Bullet 2a
+    * Bullet 2b
+  * Bullet 3  
+
+To create a numbered list, start each line with number and a period, then a space. Thus this code 
+
+@verbatim
+  1. ListItem_1
+  2. ListItem_2
+  3. ListItem_3
+@endverbatim
+
+  produces this list:
+
+  1. ListItem_1
+  2. ListItem_2
+  3. ListItem_3
+
+It is recommended to indent lists with 2 spaces.
+
+@subsection  OCCT_DM_SECTION_A_4 Tables
+
+A table consists of a header line, a separator line, and at least one row line. 
+Table columns are separated by the pipe (|) character. The following example: 
+
+@verbatim
+First Header  | Second Header
+------------- | -------------
+Content Cell  | Content Cell 
+Content Cell  | Content Cell 
+@endverbatim
+
+  will produce the following table:
+
+First Header | Second Header
+------------ | -------------
+Content Cell | Content Cell 
+Content Cell | Content Cell 
+
+Column alignment can be controlled via one or two colons at the header separator line: 
+
+@verbatim
+| Right | Center | Left  |
+| ----: | :----: | :---- |
+| 10    | 10     | 10    |
+| 1000  | 1000   | 1000  |
+@endverbatim
+
+which will looks as follows:
+
+| Right | Center | Left  |
+| ----: | :----: | :---- |
+| 10    | 10     | 10    |
+| 1000  | 1000   | 1000  |
+
+@subsection  OCCT_DM_SECTION_A_5 Code Blocks
+
+It is recommended to indent a code lines with 4 spaces.
+A fenced code block does not require indentation, and is defined by a pair of "fence lines". 
+Such line consists of 3 or more tilde (~) characters on a line. 
+The end of the block should have the same number of tildes. Here is an example:
+
+~~~~~~~~~~~~~~~~~~~~~~~
+  a one-line code block
+~~~~~~~~~~~~~~~~~~~~~~~
+
+By default the output is the same as for a normal code block.
+To highlight the code, the developer has to indicate the typical file extension, 
+which corresponds to the programming language, after the opening fence. 
+For highlighting according to the C++ language, for instance,  write the following code (the curly braces and dot are optional): 
+
+@verbatim
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
+    int func(int a,int b) { return a*b; }
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+@endverbatim
+
+which will produce:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} 
+    int func(int a,int b) { return a*b; }
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Verbatim content can be written by using framing \@verbatim \@endverbatim . For instance
+
+@verbatim
+  verbatim text
+@endverbatim
+
+@subsection  OCCT_DM_SECTION_A_6 References
+
+To insert a reference to a website, it is proposed to write a URL. For example: http://en.wikipedia.org
+To insert a reference to another part of the same document, the developer can write:
+
+@verbatim
+  @htmlonly 
+    <a href="#OCCT_DOC_SECTION_5">Doxygen Configuration file</a>
+  @endhtmlonly 
+@endverbatim
+
+to get a link to paragraph : @htmlonly <a href="#OCCT_DOC_SECTION_5">Doxygen configuration</a> @endhtmlonly 
+
+@subsection  OCCT_DM_SECTION_A_7 Images
+
+To insert image into document the developer can write the following code(in Doxygen-style):
+@verbatim
+![alt-caption](relative/path/to/image/image001.svg "Image Caption")
+@endverbatim
+
+This code tells Doxygen to insert a picture right in the place this code was written. Like this:
+@verbatim
+![](/resources/occ_logo.png "OCCT logo")
+@endverbatim
+
+![](/resources/occ_logo.png "OCCT logo")
+@subsection  OCCT_DM_SECTION_A_8 Table Of Contents
+
+To get the table of contents at the beginning of the document, write \@tableofcontents tag. 
+But it is not needed now because TreeView option for HTML is used.
+The TOC in the PDF document will be generated automatically.
+
+@subsection  OCCT_DM_SECTION_A_9 Formulas
+
+Formulas within documents will be generated using MathJax tool.
+
+A developer has to specify these parameters in Doxyfile to enable support of MathJax in Doxygen:
+
+    USE_MATHJAX         = YES
+    MATHJAX_FORMAT      = HTML-CSS
+    MATHJAX_RELPATH     = http://cdn.mathjax.org/mathjax/latest
+    MATHJAX_EXTENSIONS  = TeX/AMSmath TeX/AMSsymbols
+
+To use MathJax tool with the HTML page, it's \<head\> block has to contain 
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.html}
+    <script type="text/x-mathjax-config">
+      MathJax.Hub.Config({
+        tex2jax: {inlineMath: [["$","$"],["\\(","\\)"]]},
+        displayAlign: "left"
+      });
+    </script>
+
+    <script type="text/javascript"
+      src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
+    </script>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+First script configures MathJax to understand separator types and to left allign formulas. 
+The second script inserts reference to MathJax tool. 
+This tool will always be used when the HTML output will be shown.
+
+Equations can be written by several ways:
+
+1.Unnumbered displayed formulas that are centered on a separate line. 
+These formulas should be put between \@f\[ and \@f\] tags. An example: 
+
+@verbatim
+@f$[
+    |I_2|=\left| \int_{0}^T \psi(t)
+            \left\{ 
+                u(a,t)-
+                \int_{\gamma(t)}^a 
+                \frac{d\theta}{k(\theta,t)}
+                \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi
+            \right\} dt
+        \right|
+@f$]
+@endverbatim
+
+gives the following result:
+
+   @f$
+       |I_2|=\left| \int_{0}^T \psi(t)
+               \left\{ 
+                   u(a,t)-
+                   \int_{\gamma(t)}^a 
+                   \frac{d\theta}{k(\theta,t)}
+                   \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi
+               \right\} dt
+           \right|
+   @f$
+   
+2.Formulas can also be put between @verbatim \begin{align} @endverbatim and @verbatim \end{align} @endverbatim tags. An example: 
+
+@verbatim
+  \begin{align}
+  \dot{x} & = \sigma(y-x) \\
+  \dot{y} & = \rho x - y - xz \\
+  \dot{z} & = -\beta z + xy
+  \end{align}
+@endverbatim
+
+  gives the following result:
+@latexonly
+  \begin{align}
+  \dot{x} & = \sigma(y-x) \\
+  \dot{y} & = \rho x - y - xz \\
+  \dot{z} & = -\beta z + xy
+  \end{align}
+@endlatexonly
+
+@htmlonly
+  \begin{align}
+  \dot{x} & = \sigma(y-x) \\
+  \dot{y} & = \rho x - y - xz \\
+  \dot{z} & = -\beta z + xy
+  \end{align}
+@endhtmlonly
+
+3.Inline formulas can be specified using this syntax:
+
+@verbatim
+  @f$ \sqrt{3x-1}+(1+x)^2 @f$
+@endverbatim
+
+  that leads to the following result: @f$ \sqrt{3x-1}+(1+x)^2 @f$
+  
\ No newline at end of file
diff --git a/dox/dev_guides/documentation/images/documentation_image002.png b/dox/dev_guides/documentation/images/documentation_image002.png
new file mode 100644 (file)
index 0000000..3b3c707
Binary files /dev/null and b/dox/dev_guides/documentation/images/documentation_image002.png differ
index e571732..517f2c3 100644 (file)
Binary files a/dox/dev_guides/tests/images/tests_image001.png and b/dox/dev_guides/tests/images/tests_image001.png differ
index 2282f23..ede8df7 100644 (file)
@@ -1,6 +1,8 @@
  Automated Testing System  {#dev_guides__tests}
 ======================================
 
+@tableofcontents
+
 @section testmanual_1 Introduction
 
 This document provides overview and practical guidelines for work with OCCT automatic testing system.
@@ -10,11 +12,13 @@ more in-depth description of the test system, required for modifying the tests a
 
 @subsection testmanual_1_1 Basic Information
 
-OCCT automatic testing system is organized around DRAW Test Harness [1]
+OCCT automatic testing system is organized around DRAW Test Harness @ref user_guides__test_harness "DRAW Test Harness"
 a console application based on Tcl (a scripting language) interpreter extended by OCCT-related commands.
+
 Standard OCCT tests are included with OCCT sources and are located in subdirectory *tests*
  of the OCCT root folder. Other test folders can be included in the scope of the test system, 
  e.g. for testing applications based on OCCT.
+
 Logically the tests are organized in three levels:
 
   * Group: group of related test grids, usually relating to some part of OCCT functionality (e.g. blend)
@@ -257,8 +261,8 @@ which will be added to the test report when this status is detected.
 Example:
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.tcl}
-    FAILED /\b[Ee]xception\b/ exception
-    FAILED /\bError\b/ error
+    FAILED /\\b[Ee]xception\\b/ exception
+    FAILED /\\bError\\b/ error
     SKIPPED /Cannot open file for reading/ data file is missing
     SKIPPED /Could not read file .*, abandon/ data file is missing
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -273,7 +277,7 @@ with status IGNORE to ignore messages that would otherwise be treated as errors
 Example:
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.tcl}
-    FAILED /\bFaulty\b/ bad shape
+    FAILED /\\bFaulty\\b/ bad shape
     IGNORE /^Error [23]d = [\d.-]+/ debug output of blend command
     IGNORE /^Tcl Exception: tolerance ang : [\d.-]+/ blend failure
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -431,7 +435,7 @@ Example:
 Make sure that file parse.rules in the grid or group directory contains 
 regular expression to catch possible messages indicating failure of the test. 
 For instance, for catching errors reported by *checkshape* command 
-relevant grids define a rule to recognize its report by the word *Faulty*: FAILED /\bFaulty\b/ bad shape
+relevant grids define a rule to recognize its report by the word *Faulty*: FAILED /\\bFaulty\\b/ bad shape
 For the messages generated in the script the most natural way is to use the word *Error* in the message.
 Example:
 
@@ -499,7 +503,8 @@ The new test created for a fixed problem should return FAILED without the fix, a
 @subsection testmanual_3_5 Marking BAD Cases
 
 If the test produces invalid result at a certain moment then the corresponding bug 
-should be created in the OCCT issue tracker [3], and the problem should be marked as TODO in the test script.
+should be created in the OCCT issue tracker http://tracker.dev.opencascade.org, 
+and the problem should be marked as TODO in the test script.
 The following statement should be added to such test script:
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.tcl}
@@ -586,9 +591,3 @@ Example:
       d:/occt/test-data[_path_separator]d:/MyOCCTProject/tests
     return ;# this is to avoid an echo of the last command above in cout
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-@section testmanual_5 References
-
--# DRAW Test Harness User’s Guide
--# Perl regular expressions, http://perldoc.perl.org/perlre.html 
--# OCCT MantisBT issue tracker, http://tracker.dev.opencascade.org 
diff --git a/dox/dev_guides/wok/images/wok_image001.jpg b/dox/dev_guides/wok/images/wok_image001.jpg
deleted file mode 100644 (file)
index 0e782ca..0000000
Binary files a/dox/dev_guides/wok/images/wok_image001.jpg and /dev/null differ
diff --git a/dox/dev_guides/wok/images/wok_image002.jpg b/dox/dev_guides/wok/images/wok_image002.jpg
deleted file mode 100644 (file)
index 5f87a33..0000000
Binary files a/dox/dev_guides/wok/images/wok_image002.jpg and /dev/null differ
diff --git a/dox/dev_guides/wok/images/wok_image013.jpg b/dox/dev_guides/wok/images/wok_image013.jpg
deleted file mode 100644 (file)
index f1fa7e8..0000000
Binary files a/dox/dev_guides/wok/images/wok_image013.jpg and /dev/null differ
diff --git a/dox/dev_guides/wok/images/wok_image013.png b/dox/dev_guides/wok/images/wok_image013.png
new file mode 100644 (file)
index 0000000..af43ae4
Binary files /dev/null and b/dox/dev_guides/wok/images/wok_image013.png differ
diff --git a/dox/dev_guides/wok/images/wok_image014.jpg b/dox/dev_guides/wok/images/wok_image014.jpg
deleted file mode 100644 (file)
index 291bcb2..0000000
Binary files a/dox/dev_guides/wok/images/wok_image014.jpg and /dev/null differ
diff --git a/dox/dev_guides/wok/images/wok_image014.png b/dox/dev_guides/wok/images/wok_image014.png
new file mode 100644 (file)
index 0000000..30bb297
Binary files /dev/null and b/dox/dev_guides/wok/images/wok_image014.png differ
index 4d9b9ee..8713ddd 100644 (file)
@@ -1,5 +1,17 @@
-Workshop Organisation Toolkit  {#dev_guides__wok}
-==============================
+Workshop Organisation Kit  {#dev_guides__wok}
+=========================
+
+@tableofcontents
+
+@section occt_wok_0 DEPRECATION WARNING
+
+Please note that this document describes use of WOK as comprehensive
+build system. This use is outdated, and WOK is to be removed in
+one of future releases of OCCT.
+
+Currently only small subset of WOK capabilities described in this document
+are actually necessary for building OCCT. See @ref dev_guides__building__wok
+for more practical guide.
 
 @section occt_wok_1_ Introduction Glossary
 
@@ -2338,8 +2350,8 @@ Fetches the latest version of *File1.cxx* and *File2.hxx*.
 In the new WOK model: 
   *  each workbench can have its own database 
   *  the version control environment variables are relative to the workbench. 
-@image html /dev_guides/wok/images/wok_image014.jpg "Workshop Installation Model"
-@image latex /dev_guides/wok/images/wok_image014.jpg "Workshop Installation Model"
+@image html /dev_guides/wok/images/wok_image014.png "Workshop Installation Model"
+@image latex /dev_guides/wok/images/wok_image014.png "Workshop Installation Model"
 
 The following procedure explains how to set up the source management environment for a workshop. 
 1. Open the factory and the workshop. 
index 1c9e370..1817762 100644 (file)
@@ -4,12 +4,23 @@
 #  Author: omy
 # -----------------------------------------------------------------------
 
-# Generates Doxygen configuration file for Overview documentation
-proc OverviewDoc_MakeDoxyfile {casDir outDir tagFileDir {doxyFileName} {generatorMode ""} DocFilesList verboseMode} {
+# get OCCT version from file Standard_Version.hxx (if available)
+proc OverviewDoc_DetectCasVersion {theCasRoot} {
+  set occt_ver 16.7.0
+  set occt_ver_add ""
+  if { [file exist $theCasRoot/src/Standard/Standard_Version.hxx] } {
+    set fh [open $theCasRoot/src/Standard/Standard_Version.hxx]
+    set fh_loaded [read $fh]
+    close $fh
+    regexp {[^/]\s*#\s*define\s+OCC_VERSION_COMPLETE\s+\"([^\s]*)\"} $fh_loaded dummy occt_ver
+    regexp {#\s*define\s+OCC_VERSION_DEVELOPMENT\s+\"([^\s]*)\"} $fh_loaded dummy occt_ver_add
+    if { "$occt_ver_add" != "" } { set occt_ver ${occt_ver}.$occt_ver_add }
+  }
+  return $occt_ver
+}
 
-    if {$verboseMode == "YES"} {
-        puts "INFO: Doxygen is now generating Doxyfile..."
-    }
+# Generates Doxygen configuration file for Overview documentation
+proc OverviewDoc_MakeDoxyfile {casDir outDir tagFileDir {doxyFileName} {generatorMode ""} DocFilesList verboseMode searchMode} {
 
     set doxyFile [open $doxyFileName "w"]
     set casroot  $casDir
@@ -18,9 +29,9 @@ proc OverviewDoc_MakeDoxyfile {casDir outDir tagFileDir {doxyFileName} {generato
     # Common configs
     puts $doxyFile "DOXYFILE_ENCODING      = UTF-8"
     puts $doxyFile "PROJECT_NAME           = \"Open CASCADE Technology\""
-    puts $doxyFile "PROJECT_NUMBER         = 6.7.0"
+    puts $doxyFile "PROJECT_NUMBER         = [OverviewDoc_DetectCasVersion $casDir]"
     puts $doxyFile "PROJECT_BRIEF          = "
-    puts $doxyFile "PROJECT_LOGO           = $inputDir/resources/occt_logo.png"
+    puts $doxyFile "PROJECT_LOGO           = $inputDir/resources/occ_logo.png"
 
     puts $doxyFile "OUTPUT_DIRECTORY       = $outDir"
     puts $doxyFile "CREATE_SUBDIRS         = NO"
@@ -70,31 +81,20 @@ proc OverviewDoc_MakeDoxyfile {casDir outDir tagFileDir {doxyFileName} {generato
     puts $doxyFile "GENERATE_AUTOGEN_DEF   = NO"
     puts $doxyFile "GENERATE_PERLMOD       = NO"
 
-    set PARAM_INPUT "INPUT                  = "
-    set PARAM_IMAGEPATH "IMAGE_PATH         = $inputDir/resources/ "
+    set PARAM_INPUT "INPUT                  ="
+    set PARAM_IMAGEPATH "IMAGE_PATH             = $inputDir/resources/ "
 
     foreach docFile $DocFilesList {
         set NEW_IMG_PATH [file normalize [file dirname "$inputDir/$docFile"]]
         if { [string compare $NEW_IMG_PATH $casroot] != 0 } {
           if {[file isdirectory "$NEW_IMG_PATH/images"]} {
-            append PARAM_IMAGEPATH " " "$NEW_IMG_PATH/images"
+            append PARAM_IMAGEPATH " $NEW_IMG_PATH/images"
           }
         }
         append PARAM_INPUT " " $inputDir/$docFile
     }
     puts $doxyFile $PARAM_INPUT
     puts $doxyFile $PARAM_IMAGEPATH
-    
-    if { $generatorMode == "PDF_ONLY"} {
-        set PARAM_LATEX_EF "LATEX_EXTRA_FILES      ="
-        foreach docFile $DocFilesList {
-            set NEW_LEF_PATH [file normalize [file dirname "$inputDir/$docFile"]]
-            if { [string compare $NEW_LEF_PATH $casroot] != 0 } {
-                append PARAM_LATEX_EF " " "$NEW_LEF_PATH/images"
-            }
-        }
-        puts $doxyFile $PARAM_LATEX_EF
-    }
 
     if { $generatorMode == "HTML_ONLY"} {
         # Set a reference to a TAGFILE
@@ -104,7 +104,6 @@ proc OverviewDoc_MakeDoxyfile {casDir outDir tagFileDir {doxyFileName} {generato
                 puts $doxyFile "TAGFILES               = $tagFileDir/OCCT.tag=$tagPath/html"
             }
         }
-
         # HTML Output
         puts $doxyFile "GENERATE_LATEX         = NO"
         puts $doxyFile "GENERATE_HTML          = YES"
@@ -119,9 +118,28 @@ proc OverviewDoc_MakeDoxyfile {casDir outDir tagFileDir {doxyFileName} {generato
         puts $doxyFile "ENUM_VALUES_PER_LINE   = 8"
         puts $doxyFile "TREEVIEW_WIDTH         = 250"
         puts $doxyFile "EXTERNAL_PAGES         = NO"
-        puts $doxyFile "SEARCHENGINE           = YES"
-        puts $doxyFile "SERVER_BASED_SEARCH    = NO"
-        puts $doxyFile "EXTERNAL_SEARCH        = NO"
+        # HTML Search engine options
+        if { [string tolower $searchMode] == "none" } {
+          puts $doxyFile "SEARCHENGINE           = NO"
+          puts $doxyFile "SERVER_BASED_SEARCH    = NO"
+          puts $doxyFile "EXTERNAL_SEARCH        = NO"
+        } else {
+          puts $doxyFile "SEARCHENGINE           = YES"
+          if { [string tolower $searchMode] == "local" } {
+            puts $doxyFile "SERVER_BASED_SEARCH    = NO"
+            puts $doxyFile "EXTERNAL_SEARCH        = NO"
+          } elseif { [string tolower $searchMode] == "server" } {
+            puts $doxyFile "SERVER_BASED_SEARCH    = YES"
+            puts $doxyFile "EXTERNAL_SEARCH        = NO"
+          } elseif { [string tolower $searchMode] == "external" } {
+            puts $doxyFile "SERVER_BASED_SEARCH    = YES"
+            puts $doxyFile "EXTERNAL_SEARCH        = YES"
+          } else {
+            puts "ERROR: Wrong search engine type"
+            close $doxyFile 
+            return
+          }
+        }
         puts $doxyFile "SEARCHDATA_FILE        = searchdata.xml"
         puts $doxyFile "SKIP_FUNCTION_MACROS   = YES"
         # Formula options
@@ -179,7 +197,7 @@ proc OverviewDoc_GetRelPath {targetFile currentpath} {
 
 # Prints Help message
 proc OverviewDoc_PrintHelpMessage {} {
-    puts "\nUsage : occdoc \[-h\] \[-html\] \[-pdf\] \[-m=<list of files>\] \[-l=<document name>\] \[-v\]"
+    puts "\nUsage : occdoc \[-h\] \[-html\] \[-pdf\] \[-m=<list of files>\] \[-l=<document name>\] \[-v\] \[-s\]"
     puts ""
     puts " Options are : "
     puts "    -html                : To generate HTML files"
@@ -194,6 +212,9 @@ proc OverviewDoc_PrintHelpMessage {} {
     puts "    -h                   : Prints help message"
     puts "    -v                   : Specifies the Verbose mode"
     puts "                           (info on all script actions is shown)"
+    puts "    -s=<search_mode>     : Specifies the Search mode of HTML documents."
+    puts "                           Can be: none | local | server | external | "
+    puts "                         : Can be used only with -html option"
 }
 
 # Parses command line arguments
@@ -240,7 +261,11 @@ proc OverviewDoc_LoadFilesList {} {
     if { [file exists "$INPUTDIR/FILES.txt"] == 1 } {
         set FILE [open "$INPUTDIR/FILES.txt" r]
         while {1} {
-            set line [gets $FILE]
+            set line [string trim [gets $FILE]]
+
+            # trim possible comments starting with '#'
+            set line [regsub {\#.*} $line {}]
+
             if {$line != ""} {
               lappend available_docfiles $line
             }
@@ -314,8 +339,8 @@ proc OverviewDoc_MakeRefmanTex {fileName latexDir docLabel verboseMode} {
     puts $texfile "\\hfuzz=15pt"
     puts $texfile "\\hbadness=750"
     puts $texfile "\\setlength{\\emergencystretch}{15pt}"
-    puts $texfile "\\setlength{\\parindent}{0.75cm}"
-    puts $texfile "\\setlength{\\parskip}{0.2cm}"
+    puts $texfile "\\setlength{\\parindent}{0cm}";#0.75cm
+    puts $texfile "\\setlength{\\parskip}{0.2cm}"; #0.2
     puts $texfile "\\makeatletter"
     puts $texfile "\\renewcommand{\\paragraph}{%"
     puts $texfile "  \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%"
@@ -340,8 +365,8 @@ proc OverviewDoc_MakeRefmanTex {fileName latexDir docLabel verboseMode} {
     puts $texfile "\\fancyhead\[RO\]{\\fancyplain{}{\\bfseries\\thepage}}"
     puts $texfile "\\fancyfoot\[LE\]{\\fancyplain{}{}}"
     puts $texfile "\\fancyfoot\[CE\]{\\fancyplain{}{}}"
-    puts $texfile "\\fancyfoot\[RE\]{\\fancyplain{}{\\bfseries\\scriptsize (c) Open CASCADE Technology 2001\-2013}}"
-    puts $texfile "\\fancyfoot\[LO\]{\\fancyplain{}{\\bfseries\\scriptsize (c) Open CASCADE Technology 2001\-2013}}"
+    puts $texfile "\\fancyfoot\[RE\]{\\fancyplain{}{\\bfseries\\scriptsize (c) Open CASCADE 2001\-2013}}"
+    puts $texfile "\\fancyfoot\[LO\]{\\fancyplain{}{\\bfseries\\scriptsize (c) Open CASCADE 2001\-2013}}"
     puts $texfile "\\fancyfoot\[CO\]{\\fancyplain{}{}}"
     puts $texfile "\\fancyfoot\[RO\]{\\fancyplain{}{}}"
     puts $texfile "\\renewcommand{\\footrulewidth}{0.4pt}"
@@ -378,7 +403,6 @@ proc OverviewDoc_MakeRefmanTex {fileName latexDir docLabel verboseMode} {
     puts $texfile "}"
     puts $texfile "\n"
     puts $texfile "%===== C O N T E N T S =====\n"
-#    puts $texfile "\\DeclareUnicodeCharacter{00A0}{ }"
     puts $texfile "\\begin{document}"
     puts $texfile ""
     puts $texfile "% Titlepage & ToC"
@@ -387,8 +411,8 @@ proc OverviewDoc_MakeRefmanTex {fileName latexDir docLabel verboseMode} {
     puts $texfile "\\begin{titlepage}"
     puts $texfile "\\vspace*{7cm}"
     puts $texfile "\\begin{center}%"
-    puts $texfile "\\includegraphics\[width=0.75\\textwidth, height=0.2\\textheight\]{overview_occttransparent.png}\\\\\\\\"
-    puts $texfile "{\\Large Open C\\-A\\-S\\-C\\-A\\-D\\-E Technology \\\\\[1ex\]\\Large 6.\\-6.\\-0 }\\\\"
+    puts $texfile "\\includegraphics\[width=0.75\\textwidth, height=0.2\\textheight\]{../../../dox/resources/occt_logo.png}\\\\"; #\\\\\\\\
+    puts $texfile "{\\Large Open C\\-A\\-S\\-C\\-A\\-D\\-E Technology \\\\\[1ex\]\\Large [OverviewDoc_DetectCasVersion $latexDir/../../../] }\\\\"
     puts $texfile "\\vspace*{1cm}"
     puts $texfile "{\\Large $docLabel}\\\\"
     puts $texfile "\\vspace*{1cm}"
@@ -404,6 +428,8 @@ proc OverviewDoc_MakeRefmanTex {fileName latexDir docLabel verboseMode} {
     puts $texfile "\\pagenumbering{arabic}"
     puts $texfile "\\hypersetup{pageanchor=true}"
     puts $texfile ""
+    puts $texfile "\\let\\stdsection\\section"
+    puts $texfile "  \\renewcommand\\section{\\pagebreak\\stdsection}"
     puts $texfile "\\hypertarget{$fileName}{}"
     puts $texfile "\\input{$fileName}"
     puts $texfile ""
@@ -464,7 +490,7 @@ proc OverviewDoc_ProcessTex {{texFiles {}} {latexDir} verboseMode} {
 }
 
 # Main procedure for documents compilation
-proc OverviewDoc_Main { {docfiles {}} generatorMode docLabel verboseMode} {
+proc OverviewDoc_Main { {docfiles {}} generatorMode docLabel verboseMode searchMode} {
 
     set INDIR      [file normalize [file dirname [info script]]]
     set CASROOT    [file normalize [file dirname "$INDIR/../../"]]
@@ -482,29 +508,30 @@ proc OverviewDoc_Main { {docfiles {}} generatorMode docLabel verboseMode} {
     if {[file exists $HTMLDIR] == 0} {
         file mkdir $HTMLDIR
     }
-    if {[file exists $LATEXDIR] == 0} {
-        file mkdir $LATEXDIR
-    }
     if {[file exists $PDFDIR] == 0} {
         file mkdir $PDFDIR
     }
+    
+    if {[file exists $LATEXDIR]} {
+      #file delete {*}[glob -nocomplain $LATEXDIR/*.*]
+      file delete -force $LATEXDIR
+    }
+    file mkdir $LATEXDIR
 
     # Run tools to compile documents
-    puts ""
-    puts " [clock format [clock seconds] -format {%Y.%m.%d %H:%M}] Generation process started..."
-    puts ""
-    puts " Please, wait while Doxygen finishes it\'s work"
-    OverviewDoc_MakeDoxyfile $CASROOT "$OUTDIR/overview" $TAGFILEDIR $DOXYFILE $generatorMode $docfiles $verboseMode
+    puts "[clock format [clock seconds] -format {%Y-%m-%d %H:%M}] Generating Doxyfile..."
+    
+    OverviewDoc_MakeDoxyfile $CASROOT "$OUTDIR/overview" $TAGFILEDIR $DOXYFILE $generatorMode $docfiles $verboseMode $searchMode
 
     # Run doxygen tool
     if { $generatorMode == "HTML_ONLY"} {
-        puts " [clock format [clock seconds] -format {%Y.%m.%d %H:%M}] Doxygen is now generating HTML files...\n"
+        puts "[clock format [clock seconds] -format {%Y-%m-%d %H:%M}] Generating HTML files..."
     }
     set RESULT [catch {exec doxygen $DOXYFILE > $OUTDIR/doxygen_out.log} DOX_ERROR] 
     if {$RESULT != 0} {
         if {[llength [split $DOX_ERROR "\n"]] > 1} {
             if {$verboseMode == "YES"} {
-                puts "INFO: See Doxygen messages in $OUTDIR/doxygen_warnings_and_errors.log"
+                puts "See Doxygen log in $OUTDIR/doxygen_warnings_and_errors.log"
             }
             set DOX_ERROR_FILE [open "$OUTDIR/doxygen_warnings_and_errors.log" "w"]
             puts $DOX_ERROR_FILE $DOX_ERROR
@@ -518,8 +545,7 @@ proc OverviewDoc_Main { {docfiles {}} generatorMode docLabel verboseMode} {
 
     # Start PDF generation routine
     if { $generatorMode == "PDF_ONLY" } {
-        puts ""
-        puts " [clock format [clock seconds] -format {%Y.%m.%d %H:%M}] Doxygen is now generating PDF files...\n"
+        puts "[clock format [clock seconds] -format {%Y-%m-%d %H:%M}] Generating PDF files..."
 
         set OS $::tcl_platform(platform)
         if { $OS == "unix" } {
@@ -529,7 +555,6 @@ proc OverviewDoc_Main { {docfiles {}} generatorMode docLabel verboseMode} {
         }
 
         # Prepare a list of TeX files, generated by Doxygen
-        puts "go to $LATEXDIR"
         cd $LATEXDIR
         
         set TEXFILES [glob $LATEXDIR -type f -directory $LATEXDIR -tails "*.tex" ]
@@ -543,10 +568,14 @@ proc OverviewDoc_Main { {docfiles {}} generatorMode docLabel verboseMode} {
             set IDX [lsearch $TEXFILES "$LATEXDIR"]
         }
 
-        puts "Preprocess generated TeX files"
+        if {$verboseMode == "YES"} {
+            puts "Preprocessing generated TeX files..."
+        }
         OverviewDoc_ProcessTex $TEXFILES $LATEXDIR $verboseMode
-
-        puts "Generate PDF files from"
+        
+        if {$verboseMode == "YES"} {
+            puts "Generating PDF files from TeX files..."
+        }
         foreach TEX $TEXFILES {
             # Rewrite existing REFMAN.tex file...
             set TEX [string range $TEX 0 [ expr "[string length $TEX] - 5"]]
@@ -554,12 +583,15 @@ proc OverviewDoc_Main { {docfiles {}} generatorMode docLabel verboseMode} {
             
             if {$verboseMode == "YES"} {
                 puts "INFO: Generating PDF file from $TEX"
+                # ...and use it to generate PDF from TeX...
+                puts "Executing $LATEXDIR/make$PREFIX..."
             }
-            # ...and use it to generate PDF from TeX...
-            puts "execute $LATEXDIR/make$PREFIX"
             set RESULT [catch {eval exec [auto_execok $LATEXDIR/make$PREFIX] > "$OUTDIR/pdflatex_out.log"} LaTeX_ERROR]
             if {$RESULT != 0} {
                 if {[llength [split $LaTeX_ERROR "\n"]] > 1} {
+                    if {$verboseMode == "YES"} {
+                        puts "See Latex log in $OUTDIR/pdflatex_warnings_and_errors.log"
+                    }
                     set LaTeX_ERROR_FILE [open "$OUTDIR/pdflatex_warnings_and_errors.log" "w"]
                     puts $LaTeX_ERROR_FILE $LaTeX_ERROR
                     close $LaTeX_ERROR_FILE
@@ -574,44 +606,37 @@ proc OverviewDoc_Main { {docfiles {}} generatorMode docLabel verboseMode} {
             }
             
             if {![file exists "$LATEXDIR/refman.pdf"]} {
-              puts "file $LATEXDIR/refman.pdf doesn't exist"
+              puts "Error: file $LATEXDIR/refman.pdf does not exist"
               return
             }
             
             file rename $LATEXDIR/refman.pdf "$PDFDIR/$TEX.pdf"
         }
-        if {$verboseMode == "YES"} {
-            puts "INFO: See LaTeX messages in $OUTDIR/pdflatex_warnings_and_errors.log"
-        }
     }
 
     cd $INDIR
-    puts " [clock format [clock seconds] -format {%Y.%m.%d %H:%M}] Generation process finished..."
-    puts ""
-    puts "--------------------------------------------------------------------"
+    puts "[clock format [clock seconds] -format {%Y-%m-%d %H:%M}] Generation completed"
     if { $generatorMode == "HTML_ONLY" } {
-        puts " You can look at generated HTML pages by opening: "
+        puts "View generated HTML documentation by opening: "
         set RESFILE $OUTDIR/overview/html/index.html
-        puts " $RESFILE"
+        puts "$RESFILE"
     }
     if { $generatorMode == "PDF_ONLY" } {
-        puts " You can look at generated PDF files in: "
-        puts " $OUTDIR/overview/pdf folder"
+        puts "PDF files are generated in: "
+        puts "$OUTDIR/overview/pdf folder"
     }
-    puts ""
-    puts " Copyright \u00a9 Open CASCADE Technology 2001-2013"
-    puts "--------------------------------------------------------------------\n"
 }
 
 # A command for User Documentation compilation
 proc occdoc {args} {
     # Programm options
-    set GEN_HTML  "NO"
-    set GEN_PDF   "NO"
+    set GEN_MODE    "HTML_ONLY"
+    
     set DOCFILES  {}
-    set DOCLABEL  "Default OCCT Document"
-    set VERB_MODE "NO"
-    set GEN_MODE  "DEFAULT"
+    set DOCLABEL    "Default OCCT Document"
+    set VERB_MODE   "NO"
+    set SEARCH_MODE "none"
+
     global available_docfiles
     global args_names
     global args_values
@@ -626,80 +651,69 @@ proc occdoc {args} {
     if {[OverviewDoc_ParseArguments $args] == 1} {
         return
     }
-    if {$args_names == {}} {
-        set GEN_HTML "YES"
-        set VERB_MODE "YES"
-    } else {
-        foreach arg_n $args_names {
-            if {$arg_n == "h"} {
-              OverviewDoc_PrintHelpMessage
-              return
-            } elseif {$arg_n == "html"} {
-                set GEN_HTML "YES"
-            } elseif {$arg_n == "pdf"} {
-                set GEN_PDF "YES"
-            } elseif {$arg_n == "v"} {
-                set VERB_MODE "YES"
-            } elseif {$arg_n == "m"} {
-                if {$args_values(m) != "NULL"} {
-                    set DOCFILES $args_values(m)
-                } else {
-                    puts "Error in argument m"
-                    return
-                }
-                # Check if all chosen docfiles are correct
-                foreach docfile $DOCFILES {
-                    if { [lsearch $available_docfiles $docfile] == -1 } {
-                        puts "File \"$docfile\" is not presented in the list of available docfiles"
-                        puts "Please, specify the correct docfile name"
-                        return
-                    } else {
-                        puts "File $docfile is presented in FILES.TXT"
-                    }
-                }
-            } elseif {$arg_n == "l"} {
-                if { [llength $DOCFILES] <= 1 } {
-                    if {$args_values(l) != "NULL"} {
-                        set DOCLABEL $args_values(l)
-                    } else {
-                        puts "Error in argument l"
-                        return
-                    }
-                }
-            } else {
-                puts "\nWrong argument: $arg_n"
-                OverviewDoc_PrintHelpMessage
-                return
-            }
-        }
-    }
-
-    # Specify generation mode
-    if {$GEN_HTML == "YES" && $GEN_PDF == "NO"} {
+    
+  foreach arg_n $args_names {
+    if {$arg_n == "h"} {
+      OverviewDoc_PrintHelpMessage
+      return
+    } elseif {$arg_n == "html"} {
         set GEN_MODE "HTML_ONLY"
-    } elseif {$GEN_PDF == "YES"} {
+    } elseif {$arg_n == "pdf"} {
         set GEN_MODE "PDF_ONLY"
-    }
-    # Check if -v is the only option
-    if {$GEN_MODE == "DEFAULT"} {
-        if { $VERB_MODE == "YES" } {
-            puts "\nArgument -v can't be used without -pdf or -html argument"
-            OverviewDoc_PrintHelpMessage
+    } elseif {$arg_n == "v"} {
+        set VERB_MODE "YES"
+    } elseif {$arg_n == "m"} {
+      if {$args_values(m) != "NULL"} {
+        set DOCFILES $args_values(m)
+      } else {
+        puts "Error in argument m"
+        return
+      }
+        
+      # Check if all chosen docfiles are correct
+      foreach docfile $DOCFILES {
+        if { [lsearch $available_docfiles $docfile] == -1 } {
+          puts "File \"$docfile\" is not presented in the list of available docfiles"
+          puts "Please, specify the correct docfile name"
+          return
+        } else {
+          puts "File $docfile is presented in FILES.TXT"
+        }
+      }
+    } elseif {$arg_n == "l"} {
+      if { [llength $DOCFILES] <= 1 } {
+        if {$args_values(l) != "NULL"} {
+          set DOCLABEL $args_values(l)
+        } else {
+          puts "Error in argument l"
+          return
         }
+      }
+    } elseif {$arg_n == "s"} {
+      if {$args_values(s) != "NULL"} {
+        set SEARCH_MODE $args_values(s)
+      } else {
+        puts "Error in argument s"
         return
+      }
+    } else {
+      puts "\nWrong argument: $arg_n"
+      OverviewDoc_PrintHelpMessage
+      return
     }
+  }
+
+  # Specify verbose mode
+  if { $GEN_MODE != "PDF_ONLY" && [llength $DOCFILES] > 1 } {
+    set DOCLABEL ""
+  }
     
-    # Specify verbose mode
-    if { $GEN_PDF != "YES" && [llength $DOCFILES] > 1 } {
-        set DOCLABEL ""
-    }
-    
-    # If we don't specify list for docfiles with -m argument,
-    # we assume that we have to generate all docfiles
-    if { [llength $DOCFILES] == 0 } {
-        set DOCFILES $available_docfiles
-    }
+  # If we don't specify list for docfiles with -m argument,
+  # we assume that we have to generate all docfiles
+  if { [llength $DOCFILES] == 0 } {
+    set DOCFILES $available_docfiles
+  }
 
-    # Start main activities
-    OverviewDoc_Main $DOCFILES $GEN_MODE $DOCLABEL $VERB_MODE
+  # Start main activities
+  OverviewDoc_Main $DOCFILES $GEN_MODE $DOCLABEL $VERB_MODE $SEARCH_MODE
 }
diff --git a/dox/overview/LICENSE.md b/dox/overview/LICENSE.md
deleted file mode 100644 (file)
index 1358286..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-License {#occt_pubic_license}
-=======
-
-## Open CASCADE Technology Public License
-
-*License version: 6.6* @htmlonly<br />@endhtmlonly
-*March, 2013*
-
-Open CASCADE S.A.S. releases and makes publicly available the source code of the software Open CASCADE Technology to the free software development community under the terms and conditions of this license.
-
-It is not the purpose of this license to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this license has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
-
-
-Please read this license carefully and completely before downloading this software. By downloading, using, modifying, distributing and sublicensing this software, you indicate your acceptance to be bound by the terms and conditions of this license. If you do not want to accept or cannot accept for any reasons the terms and conditions of this license, please do not download or use in any manner this software.
-
-### 1. Definitions
-
-Unless there is something in the subject matter or in the context inconsistent therewith, the capitalized terms used in this License shall have the following meaning.
-
-"Applicable Intellectual Property Rights" means (a) with respect to the Initial Developer, any rights under patents or patents applications or other intellectual property rights that are now or hereafter acquired, owned by or assigned to the Initial Developer and that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce, modify, distribute or sublicense the Original Code without infringement; and (b) with respect to You or any Contributor, any rights under patents or patents applications or other intellectual property rights that are now or hereafter acquired, owned by or assigned to You or to such Contributor and that cover subject matter contained in Your Modifications or in such Contributor's Modifications, taken alone or in combination with Original Code.
-
-"Contributor" means each individual or legal entity that creates or contributes to the creation of any Modification, including the Initial Developer.
-
-"Derivative Program": means a new program combining the Software or portions thereof with other source code not governed by the terms of this License.
-
-"Initial Developer": means Open CASCADE S.A.S., with main offices   at 1, place des Frères Montgolfier, 78280 Guyancourt, France.
-
-"Modifications": mean any addition to, deletion from or change to the substance or the structure of the Software. When source code of the Software is released as a series of files, a Modification is: (a) any addition to, deletion from or change to the contents of a file containing the Software or (b) any new file or other representation of computer program statements that contains any part of the Software. By way of example, Modifications include any debug of, or improvement to, the Original Code or any of its components or portions as well as its next versions or releases thereof.
-
-"Original Code": means (a) the source code of the software Open CASCADE Technology originally made available by the Initial Developer under this License, including the source code of any updates or upgrades of the Original Code and (b) the object code compiled from such source code and originally made available by Initial Developer under this License.
-
-"Software": means the Original Code, the Modifications, the combination of Original Code and any Modifications or any respective portions thereof.
-
-"You" or "Your": means an individual or a legal entity exercising rights under this License.
-
-
-### 2. Acceptance of license
-
-By using, reproducing, modifying, distributing or sublicensing the Software or any portion thereof, You expressly indicate Your acceptance of the terms and conditions of this License and undertake to act in accordance with all the provisions of this License applicable to You.
-
-
-### 3. Scope and purpose
-
-This License applies to the Software and You may not use, reproduce, modify, distribute, sublicense or circulate the Software, or any portion thereof, except as expressly provided under this License. Any attempt to otherwise use, reproduce, modify, distribute or sublicense the Software is void and will automatically terminate Your rights under this License.
-
-
-### 4. Contributor license
-
-Subject to the terms and conditions of this License, the Initial Developer and each of the Contributors hereby grant You a world-wide, royalty-free, irrevocable and non-exclusive license under the Applicable Intellectual Property Rights they own or control, to use, reproduce, modify, distribute and sublicense the Software provided that:
-
-You reproduce in all copies of the Software the copyright and other proprietary notices and disclaimers of the Initial Developer as they appear in the Original Code and attached hereto as Schedule "A" and any other notices or disclaimers attached to the Software and keep intact all notices in the Original Code that refer to this License and to the absence of any warranty;
-You include a copy of this License with every copy of the Software You distribute;
-If you distribute or sublicense the Software (as modified by You or on Your behalf as the case may be), You cause such Software to be licensed as a whole, at no charge, to all third parties, under the terms and conditions of the License, making in particular available to all third parties the source code of the Software;
-You document all Your Modifications, indicate the date of each such Modifications, designate the version of the Software You used, prominently include a file carrying such information with respect to the Modifications and duplicate the copyright and other proprietary notices and disclaimers attached hereto as Schedule "B" or any other notices or disclaimers attached to the Software with your Modifications.
-
-For greater certainty, it is expressly understood that You may freely create Derivative Programs (without any obligation to publish such Derivative Program) and distribute same as a single product. In such case, You must ensure that all the requirements of this License are fulfilled for the Software or any portion thereof.
-
-
-### 5. Your license
-
-You hereby grant all Contributors and anyone who becomes a party under this License a world-wide, non-exclusive, royalty-free and irrevocable license under the Applicable Intellectual Property Rights owned or controlled by You, to use, reproduce, modify, distribute and sublicense all Your Modifications under the terms and conditions of this License.
-
-
-### 6. Software subject to license
-
-Your Modifications shall be governed by the terms and conditions of this License. You are not authorized to impose any other terms or conditions than those prevailing under this License when You distribute and/or sublicense the Software, save and except as permitted under Section 7 hereof.
-
-
-### 7. Additional terms
-
-You may choose to offer, on a non-exclusive basis, and to charge a fee for any warranty, support, maintenance, liability obligations or other rights consistent with the scope of this License with respect to the Software (the "Additional Terms") to the recipients of the Software. However, You may do so only on Your own behalf and on Your sole and exclusive responsibility. You must obtain the recipient's agreement that any such Additional Terms are offered by You alone, and You hereby agree to indemnify, defend and hold the Initial Developer and any Contributor harmless for any liability incurred by or claims asserted against the Initial Developer or any Contributors with respect to any such Additional Terms.
-
-
-### 8. Disclaimer of warranty
-
-The Software is provided under this License on an "as is" basis, without warranty of any kind, including without limitation, warranties that the Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Software is with You.
-
-
-### 9. Liability
-
-Under no circumstances shall You, the Initial Developer or any Contributor be liable to any person for any direct or indirect damages of any kind including, without limitation, damages for loss of goodwill, loss of data, work stoppage, computer failure or malfunction or any and all other commercial damages or losses resulting from or relating to this License or indirectly to the use of the Software.
-
-
-### 10. Trademark
-
-This License does not grant any rights to use the trademarks, trade names and domain names "MATRA", "EADS Matra Datavision", "CAS.CADE", "Open CASCADE", "opencascade.com" and "opencascade.org" or any other trademarks, trade names or domain names used or owned by the Initial Developer.
-
-
-### 11. Copyright
-
-The Initial Developer retains all rights, title and interest in and to the Original Code. You may not remove the copyright (c) notice which appears when You download the Software.
-
-
-### 12. Term
-
-This License is granted to You for a term equal to the remaining period of protection covered by the intellectual property rights applicable to the Original Code.
-
-
-### 13. Termination
-
-In case of termination, as provided in Section 3 above, You agree to immediately stop any further use, reproduction, modification, distribution and sublicensing of the Software and to destroy all copies of the Software that are in Your possession or control. All sublicenses of the Software which have been properly granted prior to termination shall survive any termination of this License. In addition, Sections 5, 8 to 11, 13.2 and 15.2 of this License, in reason of their nature, shall survive the termination of this License for a period of fifteen (15) years.
-
-
-### 14. Versions of the license
-
-The Initial Developer may publish new versions of this License from time to time. Once Original Code has been published under a particular version of this License, You may choose to continue to use it under the terms and conditions of that version or use the Original Code under the terms of any subsequent version of this License published by the Initial Developer.
-
-
-### 15. Miscellaneous
-
-#### 15.1 Relationship of Parties
-
-This License will not be construed as creating an agency, partnership, joint venture or any other form of legal association between You and the Initial Developer, and You will not represent to the contrary, whether expressly, by implication or otherwise.
-
-#### 15.2 Independent Development
-
-Nothing in this License will impair the Initial Developer's right to acquire, license, develop, have others develop for it, market or distribute technology or products that perform the same or similar functions as, or otherwise compete with, Modifications, Derivative Programs, technology or products that You may develop, produce, market or distribute.
-
-#### 15.3 Severability
-
-If for any reason a court of competent jurisdiction finds any provision of this License, or portion thereof, to be unenforceable, that provision of the License will be enforced to the maximum extent permissible so as to effect the economic benefits and intent of the parties, and the remainder of this License will continue in full force and extent.
-
-
-@htmlonly<center>@endhtmlonly
-#### END OF THE TERMS AND CONDITIONS OF THIS LICENSE
-
-Open CASCADE S.A.S. is a French société par actions simplifiée having its main offices at 1, place in Frères Montgolfier, 78280 Guyancourt, France. Its web site is located at the following address  http://www.opencascade.com
-
-
-#### Open CASCADE Technology Public License
-
-#### Schedule "A"
-
-The content of this file is subject to the Open CASCADE Technology Public License Version 6.5 (the "License"). 
-You may not use the content of this file except in compliance with the License. 
-Please obtain a copy of the License at http://www.opencascade.org and read it completely before using this file. The Initial Developer of the Original Code is Open CASCADE S.A.S., with main offices at  1, place des Frères Montgolfier, 78280 Guyancourt, France. The Original Code is copyright (c) Open CASCADE S.A.S., 2001. All rights reserved.
-
-"The Original Code and all software distributed under the License are distributed on an "AS IS" basis, without warranty of any kind, and the Initial Developer hereby disclaims all such warranties, including without limitation, any warranties of merchantability, fitness for a particular purpose or non-infringement. 
-
-Please see the License for the specific terms and conditions governing rights and limitations under the License".
-
-#### End of Schedule "A"
-
-
-#### Open CASCADE Technology Public License
-
-#### Schedule "B"
-
-"The content of this file is subject to the Open CASCADE Technology Public License Version 6.5 (the "License"). You may not use the content of this file except in compliance with the License. Please obtain a copy of the License at http://www.opencascade.org and read it completely before using this file. The Initial Developer of the Original Code is Open CASCADE S.A.S., with main offices at  1, place des Frères Montgolfier, 78280 Guyancourt, France. The Original Code is copyright (c) Open CASCADE S.A.S., 2001. All rights reserved.
-
-Modifications to the Original Code have been made by ________________________. Modifications are copyright (c) [Year to be included]. All rights reserved.
-
-The software Open CASCADE Technology and all software distributed under the License are distributed on an "AS IS" basis, without warranty of any kind, and the Initial Developer hereby disclaims all such warranties, including without limitation, any warranties of merchantability, fitness for a particular purpose or non-infringement. Please see the License for the specific terms and conditions governing rights and limitations under the License".
-
-#### End of Schedule "B"
-
-@htmlonly</center>@endhtmlonly
\ No newline at end of file
index 7e34d0a..ceb72f3 100644 (file)
@@ -1,34 +1,32 @@
 Overview {#mainpage}
 ========
 
-@section OCCT_OVW_SECTION_1 Welcome
-
-Welcome to Open CASCADE Technology version 6.7.0, a minor release, 
-which introduces a number of new features and improved traditional 
-functionality along with some changes over the previous release 6.6.0.
-
-This release makes Open CASCADE Technology even a more powerful and stable 
-development platform for 3D modeling and numerical simulation applications.
-
-Open CASCADE Technology 6.7.0 is a full-featured package that allows developing 
-applications on Windows and Linux platforms.
-
-@htmlonly<center>@endhtmlonly http://www.opencascade.org
+@tableofcontents
 
-@image html /overview/images/overview_occttransparent.png
-@image latex /overview/images/overview_occttransparent.png
+@section OCCT_OVW_SECTION_1 Welcome
 
-Copyright (c) 2001-2013 OPEN CASCADE S.A.S.
+Welcome to Open CASCADE Technology (OCCT), a collection
+of C++ libraries providing services for 3D surface and solid modeling, CAD data
+exchange, and visualization. OCCT can be best applied in development of
+software dealing with 3D modeling (CAD), manufacturing / measuring (CAM) or
+numerical simulation (CAE).
 
+@htmlonly<center>@endhtmlonly 
+http://www.opencascade.org
 @image html /resources/occt_logo.png
 @image latex /resources/occt_logo.png
-
 @htmlonly</center>@endhtmlonly
 
 @section OCCT_OVW_SECTION_2 Copyrights
 
 Copyright(c) 2001-2013 by OPEN CASCADE S.A.S. All rights reserved.
 
+@htmlonly<center>@endhtmlonly
+http://www.opencascade.com
+@image html /resources/occ_logo.png
+@image latex /resources/occ_logo.png
+@htmlonly</center>@endhtmlonly
+
  Trademark information
 ----------------------
 
@@ -38,7 +36,7 @@ Should you need further information, please directly contact the authors.
 
 CAS.CADE and Open CASCADE are registered trademarks of OPEN CASCADE S.A.S.
 
- Acknowledgement
+ Acknowledgements
 ------------------
 
 The following parties are acknowledged for producing tools which are used within 
@@ -52,7 +50,7 @@ and, in case you need any further information, directly contact their authors.
 **Qt** is a cross-platform application framework that is widely used for developing application software 
 with graphical user interface (GUI). Qt is free and open source software distributed under 
 the terms of the GNU Lesser General Public License. In OCCT Qt is used for programming samples. 
-If you need further information on Qt, please, refer to Qt Homepage (qt.digia.com).
+If you need further information on Qt, please, refer to Qt Homepage (http://qt.digia.com).
 
 **Tcl** is a high-level programming language. Tk is a graphical user interface (GUI) toolkit, 
 with buttons, menus, listboxes, scrollbars, and so on. Taken together Tcl and Tk provide a solution 
@@ -68,7 +66,8 @@ which became an initial groundwork for the build scripts based on respective GNU
 (autoconf, automake and libtool) in Open CASCADE Technology version 4.0. 
 These scripts are now maintained by the OPEN CASCADE company.
 
-**GL2PS** is developed by Christophe Geuzaine and others. It is OpenGL to PostScript printing library. 
+**GL2PS** is developed by Christophe Geuzaine and others. It is optionally used by OCCT to
+export content of OpenGL scene to vector graphics formats (PS, PDF, EMF, SVG). 
 The library is licensed under GL2PS LICENSE http://www.geuz.org/gl2ps/COPYING.GL2PS Version 2, November 2003.
 
 **FreeType 2** is developed by Antoine Leca, David Turner, Werner Lemberg and others. 
@@ -85,9 +84,10 @@ Threading Building Blocks is not just a threads-replacement library. It represen
 abstracts platform details and threading mechanisms for scalability and performance. 
 TBB is available under GPLv2 license with the runtime exception.
 
-Open CASCADE Technology WOK module on Windows also makes use of LGPL-licensed C routines   * regexp and getopt, taken from GNU C library.
+Open CASCADE Technology WOK module on Windows also makes use of LGPL-licensed C routines **regexp** 
+and **getopt**, taken from GNU C library.
 
-**Doxygen** (Copyright (c) 1997-2010 by Dimitri van Heesch) is open source documentation system for 
+**Doxygen** developed by Dimitri van Heesch is open source documentation system for 
 C++, C, Java, Objective-C, Python, IDL, PHP and C#. This product is used in Open CASCADE Technology 
 for automatic creation of Technical Documentation from C++ header files. 
 If you need further information on Doxygen, please refer to http://www.stack.nl/~dimitri/doxygen/index.html.
@@ -96,25 +96,23 @@ If you need further information on Doxygen, please refer to http://www.stack.nl/
 Graph visualization is representiation of structured information as diagrams of abstract graphs and networks. 
 This product is used together with Doxygen in Open CASCADE Technology for automatic creation of Technical Documentation 
 (generation of dependency graphs). Current versions of Graphviz are licensed on an open source 
-basis only under The Eclipse Public License (EPL) (http://www.graphviz.org/License.php).
+basis under The Eclipse Public License (EPL) (http://www.graphviz.org/License.php).
 
 **Inno Setup** is a free script-driven installation system created in CodeGear Delphi by Jordan Russell. 
 In OCCT Inno Setup is used to create Installation Wizard on Windows. 
 It is licensed under Inno Setup License (http://www.jrsoftware.org/files/is/license.txt).
 
-**FreeImage** is an Open Source library supporting popular graphics image formats, such as PNG, BMP, JPEG, TIFF 
+**FreeImage** is an Open Source library supporting popular graphics image formats, such as PNG, BMP, JPEG, TIFF, 
 and others used by multimedia applications. This library is developed by Hervé Drolon and Floris van den Berg. 
 FreeImage is easy to use, fast, multithreading safe, compatible with all 32-bit or 64-bit versions of Windows, 
-and cross-platform (works both with Linux and Mac OS X). FreeImage is licensed under the 
-GNU General Public License, version 2.0 (GPLv2) and 
-the FreeImage Public License (FIPL) (http://freeimage.sourceforge.net/freeimage-license.txt).
+and cross-platform (works both with Linux and Mac OS X). FreeImage is optionally used by OCCT to work
+with images, on conditions of the FreeImage Public License (FIPL) (http://freeimage.sourceforge.net/freeimage-license.txt).
 
-Adobe Systems, Inc. provides **Adobe Acrobat Professional**, which is a software to view, create, manipulate, 
-print and manage files in Portable Document Format (PDF). 
-This product is used in OCCT for the development and update of User's Guides.
+**MikTEX** is up-to-date implementation of TeX/LaTeX and related programs for Windows. It is used 
+for generation of User and Developer Guides in PDF format. See http://miktex.org for information
+on this tool.
 
-The same developer provides **Robohelp HTML** that allows developing online Help for applications that are run on the Web and on Intranets. 
-**Robohelp HTML X5.0.2** is used in OCCT for the development and update of OCCT Overview.
+Adobe Systems, Inc. provides **Adobe Reader**, which can be used to view files in Portable Document Format (PDF). 
 
 **Linux** is a registered trademark of Linus Torvalds.
 
@@ -122,33 +120,46 @@ The same developer provides **Robohelp HTML** that allows developing online Help
 
 **Mac** and the Mac logo are trademarks of Apple Inc., registered in the U.S. and other countries.
 
+@section OCCT_OVW_SECTION_3 Documentation
 
-@section OCCT_OVW_SECTION_3 Introduction
+OCCT documentation is provided in several forms:
 
+- This overview provides general description of OCCT structure, functionality, modules, and features. 
+  It is available in HTML format (generated by Doxygen) and includes User and Developer Guides.
+  The sources of this documentation are contained in **dox** subdirectory of OCCT sources 
+  (plain text format is used, with mixed MarkDown / Doxygen syntax mark-up).
 
-This document is just an introduction to Open CASCADE Technology (OCCT) dealing with 
-compatibility and installation issues and providing a general description of OCCT modules 
-and other features. All modules and development tools are described in User's Guides, available in 
-Adobe Portable Document Format (PDF). To read this format, you need Adobe Acrobat Reader, 
-which is a freeware and can be downloaded from the Adobe site. 
-All user guides can be accessed directly from this help.
+- User and Developer Guides describing in details OCCT modules and development tools are also available in 
+  Adobe Portable Document Format (PDF). To read this format, you need Adobe Acrobat Reader, 
+  which is a freeware and can be downloaded from the Adobe site. 
 
-Alongside with PDF User Guides, OCCT suggests its users full reference documentation on all 
-implementation classes automatically generated by Doxygen software. 
-This Doxygen generated documentation is supplied  in the form of a separate package, 
-in a usual html file format.
+- Full reference documentation covering all OCCT classes generated automatically by Doxygen 
+  software is provided in HTML format, in a separate package. 
+  Reference documentation is presented in **Modules --> Toolkits --> Packages --> Classes** 
+  logic structure with cross-references to all OCCT classes and complete in-browser search by all classes.
 
-Reference documentation is presented in **Modules --> Toolkits --> Packages --> Classes** 
-logic structure with cross-references to all OCCT classes and complete in-browser search by all classes.
+See @ref dev_guides__documentation "OCCT Documentation Guide" for details on OCCT documentation system.
 
-**Recommendation for generation of reference documentation**
+**Generation of HTML documentation**
 
-Reference documentation can be generated by OCCT binary WOK package that 
-is available for downloading from www.opencascade.org and dev.opencascade.org sites.
+To generate HTML documentation from sources contained in *dox* subdirectory, 
+you need to have Tcl and Doxygen 1.8.4 (or above) installed on your system.
+
+In Tcl prompt, cd to OCCT root folder and run 
+
+    tclsh> source dox/start.tcl
+
+On Windows you can also run batch script **gendoc.bat**.
+
+
+**Generation of reference documentation**
+
+Reference documentation can be generated with help of WOK tool that 
+is available for download from www.opencascade.org and dev.opencascade.org sites.
 
 Prerequisites:
 
-  * Doxygen version 1.7.4 or higher
+  * Doxygen version 1.8.4 or higher
   * Graphviz version 2.28.0 or higher
 
 Run WOK (cd \<WOK_INSTALL_DIR\>/site folder):
@@ -161,15 +172,15 @@ Run WOK (cd \<WOK_INSTALL_DIR\>/site folder):
 
 In the WOK prompt, step into your workbench:
 
-      >wokcd <your workbench>
+      > wokcd <your workbench>
 
 In your workbench, use **wgendoc** command with –h argument to get information about arguments of **wgendoc** command:
 
-      >wgendoc -h
+      > wgendoc -h
 
-then run **wgendoc** command with required arguments
+then run **wgendoc** command with required arguments, for instance:
 
-e.g., wgendoc –output=d:/occt/doc {–m=Draw Visualization} -chm
+      > wgendoc -output=d:/occt/doc {-m=Draw Visualization}
 
 @section OCCT_OVW_SECTION_5 Requirements
 
@@ -179,8 +190,10 @@ e.g., wgendoc –output=d:/occt/doc {–m=Draw Visualization} -chm
 <tr> <td> Minimum memory </td> <td> 512 Mb, 1 Gb recommended </td > </tr> 
 <tr> <td> Free disk space (complete installation)  </td> <td> For full installation Open CASCADE Technology requires 600 Mb of disk space.  </td > </tr> 
 <tr> <td>Minimum swap space  </td> <td> 500 Mb </td > </tr> 
-<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> 
-<tr> <td> Graphic library     </td> <td> OpenGL 1.1+ (OpenGL 1.5+ is recommended) </td > </tr> 
+<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> 
+<tr> <td> Graphic library     </td> <td> OpenGL 1.1+ (OpenGL 2.1+ is recommended) <br> OpenCL 1.1+ (optional for ray tracing) </td > </tr> 
 <tr> <td>C++      </td> <td>GNU gcc 4.0.  - 4.7.3.  </td > </tr> 
 <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> 
 <tr> <td> Qt (for demonstration tools)  </td> <td> Qt 4.6.2 http://qt.nokia.com/downloads </td > </tr> 
@@ -201,15 +214,16 @@ e.g., wgendoc –output=d:/occt/doc {–m=Draw Visualization} -chm
 <tr> <td>Minimum swap space  </td> <td> 500 Mb </td > </tr> 
 <tr> <td> Video card   </td> <td> **GeForce** Version 266.58 WHQL or later is recommended: http://www.nvidia.com/Download/index.aspx  
  </td > </tr> 
-<tr> <td> Graphic library     </td> <td> OpenGL 1.1+ (OpenGL 1.5+ is recommended) </td > </tr> 
-<tr> <td>C++      </td> <td>Microsoft Visual Studio .NET 2005 SP1 with all security updates
-Microsoft Visual Studio .NET 2008 SP1*
-Microsoft Visual Studio .NET 2010
-Microsoft Visual Studio .NET 2012
-Microsoft Visual Studio .NET 2013
+<tr> <td> Graphic library     </td> <td> OpenGL 1.1+ (OpenGL 2.1+ is recommended) <br> OpenCL 1.1+ (optional for ray tracing) </td > </tr> 
+<tr> <td>C++      </td> <td>
+- Microsoft Visual Studio 2005 SP1 with all security updates
+- Microsoft Visual Studio 2008 SP1*
+- Microsoft Visual Studio 2010 SP1
+- Microsoft Visual Studio 2012 Update 3
+- Microsoft Visual Studio 2013
+- Intel C++ Composer XE 2013 SP1
   </td > </tr> 
-<tr> <td> TCL (for testing tools)    </td> <td> TActiveTcl 8.5 or 8.6
-http://www.activestate.com/activetcl/downloads  </td > </tr> 
+<tr> <td> TCL (for testing tools)    </td> <td> ActiveTcl 8.5 or 8.6 http://www.activestate.com/activetcl/downloads  </td > </tr> 
 <tr> <td> Qt (for demonstration tools)  </td> <td> Qt 4.6.2 http://qt.digia.com/downloads </td > </tr> 
 <tr> <td> Freetype (OCCT Text rendering) </td> <td> freetype-2.4.11 http://sourceforge.net/projects/freetype/files/ </td > </tr> 
 <tr> <td> FreeImage (Support of common graphic formats )</td> <td>FreeImage 3.15.4 http://sourceforge.net/projects/freeimage/files/Source%20Distribution/     </td > </tr> 
@@ -224,13 +238,13 @@ http://www.activestate.com/activetcl/downloads  </td > </tr>
 @subsection OCCT_OVW_SECTION_5_3 MAC OS X
 
 <table>
-<tr> <th>Operating System  </th> <th> Mac OS X 10.6.8 Snow Leopard / 10.7 Lion    </th> </tr>
+<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>
 <tr> <td> Minimum memory </td> <td> 512 Mb, 1 Gb recommended </td > </tr> 
 <tr> <td> Free disk space (complete installation)  </td> <td> For full installation Open CASCADE Technology requires 600 Mb of disk space. </td > </tr> 
 <tr> <td>Minimum swap space  </td> <td> 500 Mb </td > </tr> 
 <tr> <td> Video card   </td> <td> **GeForce** Version 266.58 WHQL or later is recommended: http://www.nvidia.com/Download/index.aspx  
  </td > </tr> 
-<tr> <td> Graphic library     </td> <td> OpenGL 1.1+ (OpenGL 1.5+ is recommended) </td > </tr> 
+<tr> <td> Graphic library     </td> <td> OpenGL 1.1+ (OpenGL 2.1+ is recommended) <br> OpenCL 1.1+ (optional for ray tracing) </td > </tr> 
 <tr> <td>C++      </td> <td>XCode 3.2 or newer (4.x is recommended)  </td > </tr> 
 <tr> <td> Qt (for demonstration tools)  </td> <td> Qt 4.6.2 http://qt.digia.com/downloads </td > </tr> 
 <tr> <td> Freetype (OCCT Text rendering) </td> <td> freetype-2.4.11 http://sourceforge.net/projects/freetype/files/ </td > </tr> 
@@ -242,13 +256,15 @@ http://www.activestate.com/activetcl/downloads  </td > </tr>
 
 @section OCCT_OVW_SECTION_4 Installation
 
-Open CASCADE Technology can be installed with binaries precompiled by 
-Visual C++ 2008 using Installation Procedure under Windows platform only
+In most cases you need to rebuild OCCT on your platform (OS, compiler) before
+using it in your project, to ensure binary compatibility.
+See @ref dev_guides__building for instructions on
+building OCCT from sources on supported platforms.
 
-The source package and the building tools are available for self-dependent 
-preparation binary files on Unix and Windows platforms.
+@subsection OCCT_OVW_SECTION_4_1 Using Windows installer
 
-@subsection OCCT_OVW_SECTION_4_1 Windows
+On Windows Open CASCADE Technology can be installed with binaries precompiled by 
+Visual C++ 2008 with installation procedure.
 
 **Recommendation:**
 
@@ -266,34 +282,25 @@ OCCT installation with reference documentation requires 1,4 Gb on disk.
   * Download the OCCT installer from OPEN CASCADE web site using the link. you have been provided
   * Launch the installer and follow the instructions.
 
-### Third-party tools
-
-
 The includes and binaries of third-party libraries necessary for building and launching 
 OCCT are included into binary distribution (built with Visual C++ 2008). 
-To recompile OCCT libraries with other Visual C++ versions, 
-it is necessary to install headers and libraries of these third-party products.
-
-The recommended way to do this is to download each of the third-party tools from its web site 
-and build it using the relevant tools. For additional convenience of the users, 
-OPEN CASCADE also provides the documents with recommendations on building 
-third-party products from source files.
+When the installation is complete, you will find the directories for 3rd party products 
+(some might be absent in case of custom installation) and the main **OCCT** directory:
 
+@image html /overview/images/overview_3rdparty.png 
+@image latex /overview/images/overview_3rdparty.png 
 
-
-When the installation is complete, you will find the following directories 
-(some might be absent in case of custom installation):
+The contents of the OCCT-6.7.0 directory (called further "OCCT root", or $CASROOT) are as follows: 
 
 @image html /overview/images/overview_installation.png "The directory tree"
 @image latex /overview/images/overview_installation.png "The directory tree"
 
-
-
   * **adm**   This folder contains administration files, which allow rebuilding OCCT;
   * **adm/cmake**  This folder contains files of CMake building procedure;
   * **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;
-  * **data**  This folder contains CAD files in different formats, which can be used to test the OCCT functionalities;
-  * **doc**  This folder contains OCCT Overview documentation;
+  * **data**  This folder contains CAD files in different formats, which can be used to test the OCCT functionality;
+  * **doc**  This folder contains OCCT documentation in HTML and PDF format;
+  * **dox**  This folder contains sources of OCCT documentation in plain text (MarkDown) format;
   * **drv**  This folder contains source files generated by WOK (private header files and instantiations of generic classes);
   * **inc**  This folder contains all OCCT header files;
   * **samples**  This folder contains sample applications.
@@ -301,22 +308,15 @@ When the installation is complete, you will find the following directories
   * **tests**  This folder contains scripts for OCCT testing.
   * **win32/vc9**  This folder contains executable and library files built in optimize mode for Windows platform by Visual C++  2008;
 
-3rd party products have been moved to the root of Open CASCADE installation.
-
-@image html /overview/images/overview_3rdparty.png "The third-party products"
-@image latex /overview/images/overview_3rdparty.png "The third-party products"
-
-
-@subsection OCCT_OVW_SECTION_4_2 System Environment Variables
+@section OCCT_OVW_SECTION_4_2 Environment Variables
 
 To run any Open CASCADE Technology application you need to set the environment variables.
 
 ### On Windows
 
-
 You can define the environment variables with env.bat script located in the 
-OpenCACADE<version_number>/ros folder. This script accepts two arguments to be used: 
-the version of Visual Studio (vc8, vc9, or vc10) and the architecture (win32 or win64).
+$CASROOT folder. This script accepts two arguments to be used: 
+the version of Visual Studio (vc8 - vc12) and the architecture (win32 or win64).
 
 The additional environment settings necessary for compiling OCCT libraries and samples 
 by Microsoft Visual Studio can be set using script custom.bat located in the same folder. 
@@ -332,7 +332,7 @@ Script msvc.bat can be used with the same arguments for immediate launch of Visu
 
   If OCCT was built by Automake, you can define the environment variables with env_amk.sh or custom_amk.sh script.
 
-The scripts are located in the OpenCACADE<version_number>/ros folder of the source package.
+The scripts are located in the OCCT root folder.
 
  
 ### Description of system variables:
@@ -341,65 +341,37 @@ The scripts are located in the OpenCACADE<version_number>/ros folder of the sour
   * **CASROOT** is used to define the root directory of Open CASCADE Technology;
   * **PATH** is required to define the path to OCCT binaries and 3rdparty folder;
   * **LD_LIBRARY_PATH** is required to define the path to OCCT libraries (on UNIX platforms only);
-  * **MMGT_OPT** if set to 1, the memory manager performs optimizations as described below; if set to 2, 
-  Intel (R) TBB optimized memory manager is used; if 0 (default), every memory block is allocated 
-  in C memory heap directly (via malloc() and free() functions). 
-  In the latter case, all other options except MMGT_CLEAR  and MMGT_REENTRANT are ignored;
-  * **MMGT_CLEAR** if set to 1 (default), every allocated memory block is cleared by zeros; 
-  if set to 0, memory block is returned as it is;
-  * **MMGT_CELLSIZE** defines the maximal size of blocks allocated in large pools of memory. Default is 200;
-  * **MMGT_NBPAGES** defines the size of memory chunks allocated for small blocks in pages 
-  (operating-system dependent). Default is 10000;
-  * **MMGT_THRESHOLD** defines the maximal size of blocks that are recycled internally 
-  instead of being returned to the heap. Default is 40000;
-  * **MMGT_MMAP** when set to 1 (default), large memory blocks are allocated using 
-  memory mapping functions of the operating system; if set to 0, 
-  they will be allocated in the C heap by malloc();
-  * **MMGT_REENTRANT** when set to 1 (default), all calls to the 
-  optimized memory manager will be secured against possible simultaneous access from different execution threads. 
-
-This variable should be set in any multithreaded application that uses 
-an optimized memory manager (MMGT_OPT=1) and has more than one thread 
-potentially calling OCCT functions. If set to 0, OCCT memory management and 
-exception handling routines will skip the code protecting from possible concurrency 
-in multi-threaded environment. This can yield some performance gain in some applications, 
-but can lead to unpredictable results if used in a multithreaded application;
-
-**Special note:** for applications that use OCCT memory manager from more than one thread, 
-on multiprocessor hardware, it is recommended to use options MMGT_OPT=2 and MMGT_REENTRANT=1.
-
+  * **MMGT_OPT** (optional) if set to 1, the memory manager performs optimizations as described below; if set to 2, 
+    Intel (R) TBB optimized memory manager is used; if 0 (default), every memory block is allocated 
+    in C memory heap directly (via malloc() and free() functions). 
+    In the latter case, all other options except MMGT_CLEAR  and MMGT_REENTRANT are ignored;
+  * **MMGT_CLEAR** (optional) if set to 1 (default), every allocated memory block is cleared by zeros; 
+    if set to 0, memory block is returned as it is;
+  * **MMGT_CELLSIZE** (optional) defines the maximal size of blocks allocated in large pools of memory. Default is 200;
+  * **MMGT_NBPAGES** (optional) defines the size of memory chunks allocated for small blocks in pages 
+    (operating-system dependent). Default is 10000;
+  * **MMGT_THRESHOLD** (optional) defines the maximal size of blocks that are recycled internally 
+    instead of being returned to the heap. Default is 40000;
+  * **MMGT_MMAP** (optional) when set to 1 (default), large memory blocks are allocated using 
+    memory mapping functions of the operating system; if set to 0, 
+    they will be allocated in the C heap by malloc();
   * **CSF_LANGUAGE** is required to define the default language of messages;
-  * **CSF_EXCEPTION_PROMPT** – if defined and set to 1 then a diagnostic message is displayed in case of an exception;
-  * **CSF_MDTVFontDirectory** accesses the fonts that can be used in OCCT;
+  * **CSF_DEBUG** (optional, Windows only): if defined then a diagnostic message is displayed in case of an exception;
+  * **CSF_DEBUG_BOP** (optional): if defined then it should specify directovy where diagnostic data on problems occured in Boolean operations will be saved;
   * **CSF_MDTVTexturesDirectory** defines the directory for available textures when using texture mapping;
-  * **CSF_UnitsDefinition** and **CSF_UnitsLexicon** are required by programs considering units;
+  * **CSF_UnitsDefinition** and **CSF_UnitsLexicon** should define paths to resource files Lexi_Expr.dat and Units.dat, respectively, required for support of measurement units;
   * **CSF_SHMessage** is required in order to define the path to the messages file for *ShapeHealing*;
   * **CSF_XSMessage** is required in order to define the path to the messages file for **STEP** and **IGES** translators;
-  * **CSF_StandardDefaults** and **CSF_PluginDefaults** are required in order to maintain CASCADE Persistence mechanism to make possible   any open/save operations with OCAF documents;
+  * **CSF_StandardDefaults** and **CSF_PluginDefaults** are required in order to maintain CASCADE Persistence mechanism to make possible any open/save operations with OCAF documents;
   * **CSF_StandardLiteDefaults** is required in order to maintain *OCCT Persistence mechanism* to make possible any open/save operations with Lite OCAF documents;
   * **CSF_XCAFDefaults**  any open/save operations for **XDE** documents;
-  * **CSF_GraphicShr** is required to define the path to the *TKOpenGl* library;
   * **CSF_IGESDefaults** and **CSF_STEPDefaults** are required for **IGES** and **STEP** translators correspondingly in order to define the path to the resource files;
   * **CSF_XmlOcafResource** is required in order to set the path to **XSD** resources, which defines XML grammar.
-
-As part of XML persistence support, these definitions can be used by end users 
-in XML validators or editors, together with persistent XmlOcaf documents;
-
-* **CSF_MIGRATION_TYPES** is required in order to read documents that contain old data types, such as *TDataStd_Shape*;
-* **TCLLIBPATH**, **TCL_LIBRARY**, **TK_LIBRARY** and **TIX_LIBRARY** are required to allow work with **DRAW** and **WOK**.
-
-@section OCCT_OVW_SECTION_6 Release Notes
-
-
-Open CASCADE Technology latest version 
-@htmlonly 
-<a href="http://occtrel.nnov.opencascade.com/OpenCASCADE6.7.0/doc/release_notes.pdf">Release Notes</a>
-@endhtmlonly  (PDF)
-
+  * **CSF_MIGRATION_TYPES** is required in order to read documents that contain old data types, such as *TDataStd_Shape*;
+  * **TCLLIBPATH**, **TCL_LIBRARY**, **TK_LIBRARY** and **TIX_LIBRARY** are required to allow work with **DRAW** and **WOK**.
 
 @section OCCT_OVW_SECTION_7 Getting Started
 
-
 @subsection OCCT_OVW_SECTION_7_1 Draw Test Harness
 
 Draw is a command interpreter based on TCL and a graphical system used for testing and demonstrating OCCT modeling libraries.
@@ -437,20 +409,15 @@ The pload command loads the plug-in in accordance with
 the specified resource file and activates the commands implemented in the plug-in.
 
 The whole process of using the plug-in mechanism as well as the instructions for extending Test Harness is described in the 
-@htmlonly 
-<a href="http://occtrel.nnov.opencascade.com/OpenCASCADE6.6.0/doc/OCCT_Tests.pdf">User's Guide/</a>
-@endhtmlonly
+@ref user_guides__test_harness.
 
-Draw Test Harness provides an environment for OCCT automated testing system. Please, consult its 
-@htmlonly 
-<a href="http://occtrel.nnov.opencascade.com/OpenCASCADE6.6.0/doc/OCCT_Tests.pdf">User's Guide /</a>
-@endhtmlonly
-for details.
+Draw Test Harness provides an environment for OCCT automated testing system. 
+Please, consult its @ref dev_guides__tests "Automated Testing System" for details.
 
 Remarks:
 
 * The DRAWEXE executable is delivered with the installation procedure on Windows platform only.
-* To start it, launch DRAWEXE executable from Open CASCADE Technology//Draw Test Harness item of the Start\\Programs menu.
+* To start it, launch DRAWEXE executable from Open CASCADE Technology/Draw Test Harness item of the Start\\Programs menu.
 
 @subsection OCCT_OVW_SECTION_7_2 Experimenting with Draw Test Harness
 
@@ -494,8 +461,8 @@ Type pload ALL
 
 **Running demonstration files**
 
-1. Type cd ..//.. to return to the root directory
-2. Type cd src//DrawResources to reach the DrawResources directory
+1. Type cd ../.. to return to the root directory
+2. Type cd src/DrawResources to reach the DrawResources directory
 3. Type source "Available Demo File" to run the demonstration provided with Open CASCADE
 4. The following demonstration files are available:
   * DataExchangeDemo.tcl
@@ -544,7 +511,7 @@ OCCT contains three samples based on Qt application framework
  Import Export
 -------------
 
- Import Export programming sample contains 3D Viewer and Import // Export functionality.
+ Import Export programming sample contains 3D Viewer and Import / Export functionality.
 
 @image html /overview/images/overview_qt.png
 @image latex /overview/images/overview_qt.png
@@ -561,7 +528,7 @@ From the viewpoint of programming, Open CASCADE Technology is designed
 to enhance user's C++ tools with high performance modeling classes, methods and functions. 
 The combination of these resources allows creating substantial applications.
 
-**See also:** @subpage overview__tutorial "3D Object Tutorial" 
+**See also:** @ref tutorial "OCCT Tutorial" 
 
  Voxel
 ------
@@ -570,10 +537,7 @@ This is a demonstration application showing OCCT voxel models.
 It also includes a set of non-regression tests and other commands 
 for testing this functionality (accessible only through TEST pre-processor definition).
 
-**See also:** 
- @htmlonly 
-<a href="http://occtrel.nnov.opencascade.com/OpenCASCADE6.6.0/doc/voxels_wp.pdf">Voxels User's guide (PDF)</a>
-@endhtmlonly
+**See also:** Voxels User's guide (under construction)
 
 **Remarks:**
 
@@ -582,7 +546,8 @@ for testing this functionality (accessible only through TEST pre-processor defin
 
 @subsubsection OCCT_OVW_SECTION_7_3_3 C#
 
-C# sample containing 3D Viewer and Import // Export functionality.
+C# sample demonstrates integration of OCCT 3D Viewer and Import / Export functionality
+into .NET applications (using Windows Forms and WPF front ends).
 
 @image html /overview/images/overview_c__ie.png
 @image latex /overview/images/overview_c__ie.png
@@ -600,12 +565,3 @@ Export:
   * Step
   * Stl
   * Vrml
-
-**Remarks:**
-
-  * C# sample is available only on Windows platform;
-  * It is delivered in source code only and must be built with Microsoft Visual C++ 2005.
-  
-  
-  
-  
diff --git a/dox/overview/images/overview_3rdparty.png b/dox/overview/images/overview_3rdparty.png
new file mode 100644 (file)
index 0000000..5db69ff
Binary files /dev/null and b/dox/overview/images/overview_3rdparty.png differ
diff --git a/dox/overview/images/overview_occttransparent.png b/dox/overview/images/overview_occttransparent.png
deleted file mode 100644 (file)
index ce18b6e..0000000
Binary files a/dox/overview/images/overview_occttransparent.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image001.png b/dox/overview/tutorial/images/tutorial_image001.png
deleted file mode 100644 (file)
index 5fd0189..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image001.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image002.png b/dox/overview/tutorial/images/tutorial_image002.png
deleted file mode 100644 (file)
index 801c5ea..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image002.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image003.png b/dox/overview/tutorial/images/tutorial_image003.png
deleted file mode 100644 (file)
index b08eeb8..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image003.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image004.png b/dox/overview/tutorial/images/tutorial_image004.png
deleted file mode 100644 (file)
index b10ce22..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image004.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image005.png b/dox/overview/tutorial/images/tutorial_image005.png
deleted file mode 100644 (file)
index bfbe42c..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image005.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image006.png b/dox/overview/tutorial/images/tutorial_image006.png
deleted file mode 100644 (file)
index d5a119f..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image006.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image007.png b/dox/overview/tutorial/images/tutorial_image007.png
deleted file mode 100644 (file)
index 1391895..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image007.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image008.png b/dox/overview/tutorial/images/tutorial_image008.png
deleted file mode 100644 (file)
index 85efc0e..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image008.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image009.png b/dox/overview/tutorial/images/tutorial_image009.png
deleted file mode 100644 (file)
index 3fb60f5..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image009.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image010.png b/dox/overview/tutorial/images/tutorial_image010.png
deleted file mode 100644 (file)
index 899e224..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image010.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image011.png b/dox/overview/tutorial/images/tutorial_image011.png
deleted file mode 100644 (file)
index 741a671..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image011.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image012.png b/dox/overview/tutorial/images/tutorial_image012.png
deleted file mode 100644 (file)
index 4d68528..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image012.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image013.png b/dox/overview/tutorial/images/tutorial_image013.png
deleted file mode 100644 (file)
index af84d79..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image013.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image014.png b/dox/overview/tutorial/images/tutorial_image014.png
deleted file mode 100644 (file)
index f963517..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image014.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image015.png b/dox/overview/tutorial/images/tutorial_image015.png
deleted file mode 100644 (file)
index 5dc55b9..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image015.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image016.png b/dox/overview/tutorial/images/tutorial_image016.png
deleted file mode 100644 (file)
index 8ea559a..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image016.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image017.png b/dox/overview/tutorial/images/tutorial_image017.png
deleted file mode 100644 (file)
index 5beaf94..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image017.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image018.png b/dox/overview/tutorial/images/tutorial_image018.png
deleted file mode 100644 (file)
index 0ac10c9..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image018.png and /dev/null differ
diff --git a/dox/overview/tutorial/images/tutorial_image019.png b/dox/overview/tutorial/images/tutorial_image019.png
deleted file mode 100644 (file)
index c5e2eed..0000000
Binary files a/dox/overview/tutorial/images/tutorial_image019.png and /dev/null differ
diff --git a/dox/overview/tutorial/tutorial.md b/dox/overview/tutorial/tutorial.md
deleted file mode 100644 (file)
index fda8026..0000000
+++ /dev/null
@@ -1,862 +0,0 @@
- Tutorial {#overview__tutorial}
-=======
-
-@section sec1 Overview 
-
-
-This tutorial will teach you how to use Open CASCADE Technology services to model a 3D object. The purpose of this tutorial is not to describe all Open CASCADE Technology classes but to help you start thinking in terms of Open CASCADE Technology as a tool. 
-
-
-@subsection OCCT_TUTORIAL_SUB1_1 Prerequisites 
-
-This tutorial assumes that you have experience in using and setting up C++.
-From a programming standpoint, Open CASCADE Technology is designed to enhance your C++ tools with 3D modeling classes, methods and functions. The combination of all these resources will allow you to create substantial applications.
-
-@subsection OCCT_TUTORIAL_SUB1_2 The Model
-
-To illustrate the use of classes provided in the 3D geometric modeling toolkits, you will create a bottle as shown:
-
-@image html /overview/tutorial/images/tutorial_image001.png
-@image latex /overview/tutorial/images/tutorial_image001.png
-
-In the tutorial we will create, step-by-step, a function that will model a bottle as shown above. You will find the complete source code of this tutorial, including the very function *MakeBottle* in the distribution of Open CASCADE Technology. The function body is provided in the file samples/qt/Tutorial/src/MakeBottle.cxx.
-
-@subsection OCCT_TUTORIAL_SUB1_3 Model Specifications
-
-We first define the bottle specifications as follows:
-
-| Object Parameter | Parameter Name | Parameter Value |
-| :--------------: | :------------: | :-------------: |
-| Bottle height    | MyHeight       |         70mm    |
-| Bottle width     | MyWidth        |         50mm    |
-| Bottle thickness | MyThickness    |         30mm    |
-
-In addition, we decide that the bottle's profile (base) will be centered on the origin of the global Cartesian coordinate system.
-
-@image html /overview/tutorial/images/tutorial_image002.png
-@image latex /overview/tutorial/images/tutorial_image002.png
-
-This modeling requires four steps:
-
-  * build the bottle's Profile
-  * build the bottle's Body
-  * build the Threading on the bottle's neck
-  * build the result compound
-
-  
-@section sec2 Building the Profile 
-
-@subsection OCCT_TUTORIAL_SUB2_1 Defining Support Points
-
-To create the bottle's profile, you first create characteristic points with their coordinates as shown below in the (XOY) plane. These points will be the supports that define the geometry of the profile.
-
-@image html /overview/tutorial/images/tutorial_image003.png
-@image latex /overview/tutorial/images/tutorial_image003.png
-
-There are two classes to describe a 3D Cartesian point from its X, Y and Z coordinates in Open CASCADE Technology:
-
-  * the primitive geometric *gp_Pnt* class
-  * the transient *Geom_CartesianPoint* class manipulated by handle
-    
-A handle is a type of smart pointer that provides automatic memory management.
-To choose the best class for this application, consider the following:
-
-  * *gp_Pnt* is manipulated by value. Like all objects of its kind, it will have a limited lifetime.
-  * *Geom_CartesianPoint* is manipulated by handle and may have multiple references and a long lifetime.
-    
-Since all the points you will define are only used to create the profile's curves, an object with a limited lifetime will do. Choose the *gp_Pnt* class.
-To instantiate a *gp_Pnt* object, just specify the X, Y, and Z coordinates of the points in the global cartesian coordinate system:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    gp_Pnt aPnt1(-myWidth / 2., 0, 0);
-    gp_Pnt aPnt2(-myWidth / 2., -myThickness / 4., 0);
-    gp_Pnt aPnt3(0, -myThickness / 2., 0);
-    gp_Pnt aPnt4(myWidth / 2., -myThickness / 4., 0);
-    gp_Pnt aPnt5(myWidth / 2., 0, 0);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Once your objects are instantiated, you can use methods provided by the class to access and modify its data. For example, to get the X coordinate of a point:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-Standard_Real xValue1 = aPnt1.X();
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-@subsection OCCT_TUTORIAL_SUB2_2 Profile: Defining the Geometry
-With the help of the previously defined points, you can compute a part of the bottle's profile geometry. As shown in the figure below, it will consist of two segments and one arc.
-
-@image html /overview/tutorial/images/tutorial_image004.png
-@image latex /overview/tutorial/images/tutorial_image004.png
-
-To create such entities, you need a specific data structure, which implements 3D geometric objects. This can be found in the Geom package of Open CASCADE Technology.
-In Open CASCADE Technology a package is a group of classes providing related functionality. The classes have names that start with the name of a package they belong to. For example, *Geom_Line* and *Geom_Circle* classes belong to the *Geom* package. The *Geom* package implements 3D geometric objects: elementary curves and surfaces are provided as well as more complex ones (such as *Bezier* and *BSpline*).
-However, the *Geom* package provides only the data structure of geometric entities. You can directly instantiate classes belonging to *Geom*, but it is easier to compute elementary curves and surfaces by using the *GC* package. 
-This is because the *GC* provides two algorithm classes which are exactly what is required for our profile:
-
-  * Class *GC_MakeSegment* to create a segment. One of its constructors allows you to define a segment by two end points P1 and P2
-  * Class *GC_MakeArcOfCircle* to create an arc of a circle. A useful constructor creates an arc from two end points P1 and P3 and going through P2.
-
-Both of these classes return a *Geom_TrimmedCurve* manipulated by handle. This entity represents a base curve (line or circle, in our case), limited between two of its parameter values. For example, circle C is parameterized between 0 and 2PI. If you need to create a quarter of a circle, you create a *Geom_TrimmedCurve* on C limited between 0 and M_PI/2.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    Handle(Geom_TrimmedCurve) aArcOfCircle = GC_MakeArcOfCircle(aPnt2,aPnt3,aPnt4);
-    Handle(Geom_TrimmedCurve) aSegment1    = GC_MakeSegment(aPnt1, aPnt2);
-    Handle(Geom_TrimmedCurve) aSegment2    = GC_MakeSegment(aPnt4, aPnt5);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-All *GC* classes provide a casting method to obtain a result automatically with a function-like call. Note that this method will raise an exception if construction has failed. To handle possible errors more explicitly, you may use the *IsDone* and *Value* methods. For example:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    GC_MakeSegment mkSeg (aPnt1, aPnt2);
-    Handle(Geom_TrimmedCurve) aSegment1;
-    if(mkSegment.IsDone()){
-        aSegment1 = mkSeg.Value();
-    }
-    else {
-    // handle error
-    }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-@subsection OCCT_TUTORIAL_SUB2_3 Profile: Defining the Topology
-
-
-You have created the support geometry of one part of the profile but these curves are independent with no relations between each other.
-To simplify the modeling, it would be right to manipulate these three curves as a single entity.
-This can be done by using the topological data structure of Open CASCADE Technology defined in the *TopoDS* package: it defines relationships between geometric entities which can be linked together to represent complex shapes.
-Each object of the *TopoDS* package, inheriting from the *TopoDS_Shape* class, describes a topological shape as described below:
-
-| Shape     | Open CASCADE Technology Class |                      Description                              |
-| :-------- | :---------------------------- | :------------------------------------------------------------ |
-| Vertex    | TopoDS_Vertex                 | Zero dimensional shape corresponding to a point in geometry.  |
-| Edge      | TopoDS_Edge                   | One-dimensional shape corresponding to a curve and bounded by a vertex at each extremity.|
-| Wire      | TopoDS_Wire                   | Sequence of edges connected by vertices.                      |
-| Face      | TopoDS_Face                   | Part of a surface bounded by a closed wire(s).                |
-| Shell     | TopoDS_Shell                  | Set of faces connected by edges.                              |
-| Solid     | TopoDS_Solid                  | Part of 3D space bounded by Shells.                           |
-| CompSolid | TopoDS_CompSolid              | Set of solids connected by their faces.                       |
-| Compound  | TopoDS_Compound               | Set of any other shapes described above.                      |
-
-Referring to the previous table, to build the profile, you will create:
-
-  * Three edges out of the previously computed curves.
-  * One wire with these edges.
-
-@image html /overview/tutorial/images/tutorial_image005.png
-@image latex /overview/tutorial/images/tutorial_image005.png
-    
-However, the *TopoDS* package provides only the data structure of the topological entities. Algorithm classes available to compute standard topological objects can be found in the *BRepBuilderAPI* package.
-To create an edge, you use the BRepBuilderAPI_MakeEdge class with the previously computed curves:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    TopoDS_Edge aEdge1 = BRepBuilderAPI_MakeEdge(aSegment1);
-    TopoDS_Edge aEdge2 = BRepBuilderAPI_MakeEdge(aArcOfCircle);
-    TopoDS_Edge aEdge3 = BRepBuilderAPI_MakeEdge(aSegment2);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-In Open CASCADE Technology, you can create edges in several ways. One possibility is to create an edge directly from two points, in which case the underlying geometry of this edge is a line, bounded by two vertices being automatically computed from the two input points. For example, aEdge1 and aEdge3 could have been computed in a simpler way:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    TopoDS_Edge aEdge1 = BRepBuilderAPI_MakeEdge(aPnt1, aPnt3);
-    TopoDS_Edge aEdge2 = BRepBuilderAPI_MakeEdge(aPnt4, aPnt5);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To connect the edges, you need to create a wire with the *BRepBuilderAPI_MakeWire* class. There are two ways of building a wire with this class:
-
-  * directly from one to four edges
-  * by adding other wire(s) or edge(s) to an existing wire (this is explained later in this tutorial)
-
-When building a wire from less than four edges, as in the present case, you can use the constructor directly as follows:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    TopoDS_Wire aWire = BRepBuilderAPI_MakeWire(aEdge1, aEdge2, aEdge3);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-@subsection OCCT_TUTORIAL_SUB2_4 Profile: Completing the Profile
-
-
-Once the first part of your wire is created you need to compute the complete profile. A simple way to do this is to:
-
-  * compute a new wire by reflecting the existing one.
-  * add the reflected wire to the initial one.
-
-@image html /overview/tutorial/images/tutorial_image006.png
-@image latex /overview/tutorial/images/tutorial_image006.png
-
-To apply a transformation on shapes (including wires), you first need to define the properties of a 3D geometric transformation by using the gp_Trsf class. This transformation can be a translation, a rotation, a scale, a reflection, or a combination of these.
-In our case, we need to define a reflection with respect to the X axis of the global coordinate system. An axis, defined with the gp_Ax1 class, is built out of a point and has a direction (3D unitary vector). There are two ways to define this axis.
-The first way is to define it from scratch, using its geometric definition:
-
-  * X axis is located at (0, 0, 0) - use the *gp_Pnt* class.
-  * X axis direction is (1, 0, 0) - use the *gp_Dir* class. A *gp_Dir* instance is created out of its X, Y and Z coordinates.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    gp_Pnt aOrigin(0, 0, 0);
-    gp_Dir xDir(1, 0, 0);
-    gp_Ax1 xAxis(aOrigin, xDir);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The second and simplest way is to use the geometric constants defined in the gp package (origin, main directions and axis of the global coordinate system). To get the X axis, just call the *gp::OX* method:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    gp_Ax1 xAxis = gp::OX();
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-As previously explained, the 3D geometric transformation is defined with the *gp_Trsf* class. There are two different ways to use this class:
-
-  * by defining a transformation matrix by all its values
-  * by using the appropriate methods corresponding to the required transformation (SetTranslation for a translation, SetMirror for a reflection, etc.): the matrix is automatically computed.
-    
-Since the simplest approach is always the best one, you should use the SetMirror method with the axis as the center of symmetry.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    gp_Trsf aTrsf;
-    aTrsf.SetMirror(xAxis);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You now have all necessary data to apply the transformation with the BRepBuilderAPI_Transform class by specifying:
-
-  * the shape on which the transformation must be applied.
-  * the geometric transformation
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    BRepBuilderAPI_Transform aBRepTrsf(aWire, aTrsf);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*BRepBuilderAPI_Transform* does not modify the nature of the shape: the result of the reflected wire remains a wire. But the function-like call or the *BRepBuilderAPI_Transform::Shape* method returns a *TopoDS_Shape* object:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    TopoDS_Shape aMirroredShape = aBRepTrsf.Shape();
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-What you need is a method to consider the resulting reflected shape as a wire. The *TopoDS* global functions provide this kind of service by casting a shape into its real type. To cast the transformed wire, use the *TopoDS::Wire* method.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    TopoDS_Wire aMirroredWire = TopoDS::Wire(aMirroredShape);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The bottle's profile is almost finished. You have created two wires: *aWire* and *aMirroredWire*. You need to concatenate them to compute a single shape. To do this, you use the *BRepBuilderAPI_MakeWire* class as follows:
-
-  * create an instance of *BRepBuilderAPI_MakeWire*.
-  * add all edges of the two wires by using the *Add* method on this object.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    BRepBuilderAPI_MakeWire mkWire;
-    mkWire.Add(aWire);
-    mkWire.Add(aMirroredWire);
-    TopoDS_Wire myWireProfile = mkWire.Wire();
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-@section sec3 Building the Body
-
-
-@subsection OCCT_TUTORIAL_SUB3_1 Prism the Profile
-
-
-To compute the main body of the bottle, you need to create a solid shape. The simplest way is to use the previously created profile and to sweep it along a direction. The *Prism* functionality of Open CASCADE Technology is the most appropriate for that task. It accepts a shape and a direction as input and generates a new shape according to the following rules:
-
-| Shape  | Generates          |
-| :----- | :----------------- |
-| Vertex | Edge               |
-| Edge   | Face               |
-| Wire   | Shell              |
-| Face   | Solid              |
-| Shell  | Compound of Solids |
-
-@image html /overview/tutorial/images/tutorial_image007.png
-@image latex /overview/tutorial/images/tutorial_image007.png
-
-Your current profile is a wire. Referring to the Shape/Generates table, you need to compute a face out of its wire to generate a solid.
-To create a face, use the *BRepBuilderAPI_MakeFace* class. As previously explained, a face is a part of a surface bounded by a closed wire. Generally, *BRepBuilderAPI_MakeFace* computes a face out of a surface and one or more wires.
-When the wire lies on a plane, the surface is automatically computed.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    TopoDS_Face myFaceProfile = BRepBuilderAPI_MakeFace(myWireProfile);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The *BRepPrimAPI* package provides all the classes to create topological primitive constructions: boxes, cones, cylinders, spheres, etc. Among them is the *BRepPrimAPI_MakePrism* class. As specified above, the prism is defined by:
-
-  * the basis shape to sweep;
-  * a vector for a finite prism or a direction for finite and infinite prisms.
-
-You want the solid to be finite, swept along the Z axis and to be myHeight height. The vector, defined with the *gp_Vec* class on its X, Y and Z coordinates, is:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    gp_Vec aPrismVec(0, 0, myHeight);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-All the necessary data to create the main body of your bottle is now available. Just apply the *BRepPrimAPI_MakePrism* class to compute the solid:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    TopoDS_Shape myBody = BRepPrimAPI_MakePrism(myFaceProfile, aPrismVec);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-@subsection OCCT_TUTORIAL_SUB3_2 Applying Fillets
-
-
-The edges of the bottle's body are very sharp. To replace them by rounded faces, you use the *Fillet* functionality of Open CASCADE Technology.
-For our purposes, we will specify that fillets must be:
-
-  * applied on all edges of the shape
-  * have a radius of *myThickness* / 12
-
-@image html /overview/tutorial/images/tutorial_image008.png
-@image latex /overview/tutorial/images/tutorial_image008.png
-
-To apply fillets on the edges of a shape, you use the *BRepFilletAPI_MakeFillet* class. This class is normally used as follows:
-
-  * Specify the shape to be filleted in the *BRepFilletAPI_MakeFillet* constructor.
-  * Add the fillet descriptions (an edge and a radius) using the *Add* method (you can add as many edges as you need).
-  * Ask for the resulting filleted shape with the *Shape* method.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-BRepFilletAPI_MakeFillet mkFillet(myBody);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To add the fillet description, you need to know the edges belonging to your shape. The best solution is to explore your solid to retrieve its edges. This kind of functionality is provided with the *TopExp_Explorer* class, which explores the data structure described in a *TopoDS_Shape* and extracts the sub-shapes you specifically need. 
-Generally, this explorer is created by providing the following information:
-
-  * the shape to explore
-  * the type of sub-shapes to be found. This information is given with the *TopAbs_ShapeEnum* enumeration.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-TopExp_Explorer anEdgeExplorer(myBody, TopAbs_EDGE);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-An explorer is usually applied in a loop by using its three main methods:
-
-  * *More()* to know if there are more sub-shapes to explore.
-  * *Current()* to know which is the currently explored sub-shape (used only if the *More()* method returns true).
-  * *Next()* to move onto the next sub-shape to explore.
-
-  
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    while(anEdgeExplorer.More()){
-        TopoDS_Edge anEdge = TopoDS::Edge(anEdgeExplorer.Current());
-        //Add edge to fillet algorithm
-        ...
-        anEdgeExplorer.Next();
-    }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-In the explorer loop, you have found all the edges of the bottle shape. Each one must then be added in the *BRepFilletAPI_MakeFillet* instance with the *Add()* method. Do not forget to specify the radius of the fillet along with it.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    mkFillet.Add(myThickness / 12., anEdge);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Once this is done, you perform the last step of the procedure by asking for the filleted shape.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    myBody = mkFillet.Shape();
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-@subsection OCCT_TUTORIAL_SUB3_3 Adding the Neck
-
-
-To add a neck to the bottle, you will create a cylinder and fuse it to the body. The cylinder is to be positioned on the top face of the body with a radius of *myThickness* / 4. and a height of *myHeight* / 10.
-
-@image html /overview/tutorial/images/tutorial_image009.png
-@image latex /overview/tutorial/images/tutorial_image009.png
-
-To position the cylinder, you need to define a coordinate system with the *gp_Ax2* class defining a right-handed coordinate system from a point and two directions - the main (Z) axis direction and the X direction (the Y direction is computed from these two).
-To align the neck with the center of the top face, being in the global coordinate system (0, 0, *myHeight*), with its normal on the global Z axis, your local coordinate system can be defined as follows:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    gp_Pnt neckLocation(0, 0, myHeight);
-    gp_Dir neckAxis = gp::DZ();
-    gp_Ax2 neckAx2(neckLocation, neckAxis);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To create a cylinder, use another class from the primitives construction package: the *BRepPrimAPI_MakeCylinder* class. The information you must provide is:
-
-  * the coordinate system where the cylinder will be located;
-  * the radius and height.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    Standard_Real myNeckRadius = myThickness / 4.;
-    Standard_Real myNeckHeight = myHeight / 10;
-    BRepPrimAPI_MakeCylinder MKCylinder(neckAx2, myNeckRadius, myNeckHeight);
-    TopoDS_Shape myNeck = MKCylinder.Shape();
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You now have two separate parts: a main body and a neck that you need to fuse together.
-The *BRepAlgoAPI* package provides services to perform Boolean operations between shapes, and especially: *common* (Boolean intersection), *cut* (Boolean subtraction) and *fuse* (Boolean union).
-Use *BRepAlgoAPI_Fuse* to fuse the two shapes:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    myBody = BRepAlgoAPI_Fuse(myBody, myNeck);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-@subsection OCCT_TUTORIAL_SUB3_4 Creating a Hollowed Solid
-
-
-Since a real bottle is used to contain liquid material, you should now create a hollowed solid from the bottle's top face.
-In Open CASCADE Technology, a hollowed solid is called a *Thick* *Solid* and is internally computed as follows:
-
-  * Remove one or more faces from the initial solid to obtain the first wall W1 of the hollowed solid.
-  * Create a parallel wall W2 from W1 at a distance D. If D is positive, W2 will be outside the initial solid, otherwise it will be inside.
-  * Compute a solid from the two walls W1 and W2.
-
-@image html /overview/tutorial/images/tutorial_image010.png
-@image latex /overview/tutorial/images/tutorial_image010.png
-    
-To compute a thick solid, you create an instance of the *BRepOffsetAPI_MakeThickSolid* class by giving the following information:
-    
-  * The shape, which must be hollowed.
-  * The tolerance used for the computation (tolerance criterion for coincidence in generated shapes).
-  * The thickness between the two walls W1 and W2 (distance D).
-  * The face(s) to be removed from the original solid to compute the first wall W1.
-    
-The challenging part in this procedure is to find the face to remove from your shape - the top face of the neck, which:
-    
-  * has a plane (planar surface) as underlying geometry;
-  * is the highest face (in Z coordinates) of the bottle.
-    
-To find the face with such characteristics, you will once again use an explorer to iterate on all the bottle's faces to find the appropriate one.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    for(TopExp_Explorer aFaceExplorer(myBody, TopAbs_FACE) ; aFaceExplorer.More() ; aFaceExplorer.Next()){
-        TopoDS_Face aFace = TopoDS::Face(aFaceExplorer.Current());
-    }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-For each detected face, you need to access the geometric properties of the shape: use the *BRep_Tool* class for that. The most commonly used methods of this class are:
-    
-  * *Surface* to access the surface of a face;
-  * *Curve* to access the 3D curve of an edge;
-  * *Point* to access the 3D point of a vertex.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-Handle(Geom_Surface) aSurface = BRep_Tool::Surface(aFace);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-As you can see, the *BRep_Tool::Surface* method returns an instance of the *Geom_Surface* class manipulated by handle. However, the *Geom_Surface* class does not provide information about the real type of the object *aSurface*, which could be an instance of *Geom_Plane*, *Geom_CylindricalSurface*, etc.
-All objects manipulated by handle, like *Geom_Surface*, inherit from the *Standard_Transient* class which provides two very useful methods concerning types:
-
-  * *DynamicType* to know the real type of the object
-  * *IsKind* to know if the object inherits from one particular type
-
-DynamicType returns the real type of the object, but you need to compare it with the existing known types to determine whether *aSurface* is a plane, a cylindrical surface or some other type.
-To compare a given type with the type you seek, use the *STANDARD_TYPE* macro, which returns the type of a class:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    if(aSurface->DynamicType() == STANDARD_TYPE(Geom_Plane)){
-    //
-    }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If this comparison is true, you know that the *aSurface* real type is *Geom_Plane*. You can then convert it from *Geom_Surface* to *Geom_Plane* by using the *DownCast()* method provided by each class inheriting *Standard_Transient*. As its name implies, this static method is used to downcast objects to a given type with the following syntax:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    Handle(Geom_Plane) aPlane = Handle(Geom_Plane)::DownCast(aSurface);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Remember that the goal of all these conversions is to find the highest face of the bottle lying on a plane. Suppose that you have these two global variables:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    TopoDS_Face faceToRemove;
-    Standard_Real zMax = -1;
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You can easily find the plane whose origin is the biggest in Z knowing that the location of the plane is given with the *Geom_Plane::Location* method. For example:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    gp_Pnt aPnt = aPlane->Location();
-    Standard_Real aZ = aPnt.Z();
-    if(aZ > zMax){
-        zMax = aZ;
-        faceToRemove = aFace;
-    }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You have now found the top face of the neck. Your final step before creating the hollowed solid is to put this face in a list. Since more than one face can be removed from the initial solid, the *BRepOffsetAPI_MakeThickSolid* constructor takes a list of faces as arguments.
-Open CASCADE Technology provides many collections for different kinds of objects: see *TColGeom* package for collections of objects from *Geom* package, *TColgp* package for collections of objects from gp package, etc.
-The collection for shapes can be found in the *TopTools* package. As *BRepOffsetAPI_MakeThickSolid* requires a list, use the *TopTools_ListOfShape* class.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    TopTools_ListOfShape facesToRemove;
-    facesToRemove.Append(faceToRemove);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-All the necessary data are now available so you can create your hollowed solid by calling the *BRepOffsetAPI_MakeThickSolid* constructor:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    MyBody = BRepOffsetAPI_MakeThickSolid(myBody, facesToRemove, -myThickness / 50, 1.e-3);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-@section sec4 Building the Threading
-
-
-@subsection OCCT_TUTORIAL_SUB4_1 Creating Surfaces
-
-
-Up to now, you have learned how to create edges out of 3D curves.
-You will now learn how to create an edge out of a 2D curve and a surface.
-To learn this aspect of Open CASCADE Technology, you will build helicoidal profiles out of 2D curves on cylindrical surfaces. The theory is more complex than in previous steps, but applying it is very simple.
-As a first step, you compute these cylindrical surfaces. You are already familiar with curves of the *Geom* package. Now you can create a cylindrical surface (*Geom_CylindricalSurface*) using:
-
-  * a coordinate system;
-  * a radius.
-
-Using the same coordinate system *neckAx2* used to position the neck, you create two cylindrical surfaces *Geom_CylindricalSurface* with the following radii:
-
-@image html /overview/tutorial/images/tutorial_image011.png
-@image latex /overview/tutorial/images/tutorial_image011.png
-
-Notice that one of the cylindrical surfaces is smaller than the neck. There is a good reason for this: after the thread creation, you will fuse it with the neck. So, we must make sure that the two shapes remain in contact.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    Handle(Geom_CylindricalSurface) aCyl1 = new Geom_CylindricalSurface(neckAx2, myNeckRadius * 0.99);
-
-    Handle(Geom_CylindricalSurface) aCyl2 = new Geom_CylindricalSurface(neckAx2, myNeckRadius * 1.05);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-@subsection OCCT_TUTORIAL_SUB4_2 Defining 2D Curves
-
-
-To create the neck of the bottle, you made a solid cylinder based on a cylindrical surface. You will create the profile of threading by creating 2D curves on such a surface.
-All geometries defined in the *Geom* package are parameterized. This means that each curve or surface from Geom is computed with a parametric equation.
-A *Geom_CylindricalSurface* surface is defined with the following parametric equation:
-
-P(U, V) = O + R * (cos(U) * xDir + sin(U) * yDir) + V * zDir, where :
-
-  * P is the point defined by parameters (U, V).
-  * O, *Dir, yDir and zDir are respectively the origin, the X direction, Y direction and Z direction of the cylindrical surface local coordinate system.
-  * R is the radius of the cylindrical surface.
-  * U range is [0, 2PI] and V is infinite.
-
-@image html /overview/tutorial/images/tutorial_image012.png
-@image latex /overview/tutorial/images/tutorial_image012.png
-
-The advantage of having such parameterized geometries is that you can compute, for any (U, V) parameters of the surface:
-
-  * the 3D point;
-  * the derivative vectors of order 1, 2 to N at this point.
-
-There is another advantage of these parametric equations: you can consider a surface as a 2D parametric space defined with a (U, V) coordinate system. For example, consider the parametric ranges of the neck's surface:
-
-@image html /overview/tutorial/images/tutorial_image013.png
-@image latex /overview/tutorial/images/tutorial_image013.png
-
-Suppose that you create a 2D line on this parametric (U, V) space and compute its 3D parametric curve. Depending on the line definition, results are as follows:
-
-| Case          | Parametric Equation                                          | Parametric Curve                                                              |
-| :------------ | :----------------------------------------------------------- | :---------------------------------------------------------------------------- |
-| U = 0         | P(V) = O + V * zDir                                          | Line parallel to the Z direction                                              |
-| V = 0         | P(U) = O + R * (cos(U) * xDir + sin(U) * yDir)               | Circle parallel to the (O, X, Y) plane                                        |
-| U != 0 V != 0 | P(U, V) = O + R * (cos(U) * xDir + sin(U) * yDir) + V * zDir | Helicoidal curve describing the evolution of height and angle on the cylinder |
-
-The helicoidal curve type is exactly what you need. On the neck's surface, the evolution laws of this curve will be:
-
-  * In V parameter: between 0 and myHeighNeck for the height description
-  * In U parameter: between 0 and 2PI for the angle description. But, since a cylindrical surface is U periodic, you can decide to extend this angle evolution to 4PI as shown in the following drawing:
-
-@image html /overview/tutorial/images/tutorial_image014.png
-@image latex /overview/tutorial/images/tutorial_image014.png
-
-In this (U, V) parametric space, you will create a local (X, Y) coordinate system to position the curves to be created. This coordinate system will be defined with:
-
-  * A center located in the middle of the neck's cylinder parametric space at (2*PI, myNeckHeight / 2) in U, V coordinates.
-  * A X direction defined with the (2*PI, myNeckHeight/4) vector in U, V coordinates, so that the curves occupy half of the neck's surfaces.
-  
-@image html /overview/tutorial/images/tutorial_image015.png
-@image latex /overview/tutorial/images/tutorial_image015.png
-  
-To use 2D primitive geometry types of Open CASCADE Technology for defining a point and a coordinate system, you will once again instantiate classes from gp:
-
-  * To define a 2D point from its X and Y coordinates, use the *gp_Pnt2d* class.
-  * To define a 2D direction (unit vector) from its X and Y coordinates, use the gp_Dir2d class. The coordinates will automatically be normalized.
-  * To define a 2D right-handed coordinate system, use the *gp_Ax2d* class, which is computed from a point (origin of the coordinate system) and a direction - the X direction of the coordinate system. The Y direction will be automatically computed.
-  
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    gp_Pnt2d aPnt(2. * M_PI, myNeckHeight / 2.);
-    gp_Dir2d aDir(2. * M_PI, myNeckHeight / 4.);
-    gp_Ax2d anAx2d(aPnt, aDir);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You will now define the curves. As previously mentioned, these thread profiles are computed on two cylindrical surfaces. In the following figure, curves on the left define the base (on *aCyl1* surface) and the curves on the right define the top of the thread's shape (on *aCyl2* surface).
-
-@image html /overview/tutorial/images/tutorial_image016.png
-@image latex /overview/tutorial/images/tutorial_image016.png
-
-You have already used the *Geom* package to define 3D geometric entities. For 2D, you will use the *Geom2d* package. As for *Geom*, all geometries are parameterized. For example, a *Geom2d_Ellipse* ellipse is defined from:
-
-  * a coordinate system whose origin is the ellipse center;
-  * a major radius on the major axis defined by the X direction of the coordinate system;
-  * a minor radius on the minor axis defined by the Y direction of the coordinate system.
-
-Supposing that:
-
-  * Both ellipses have the same major radius of 2*PI,
-  * Minor radius of the first ellipse is myNeckHeight / 10,
-  * And the minor radius value of the second ellipse is a fourth of the first one,
-
-Your ellipses are defined as follows:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    Standard_Real aMajor = 2. * M_PI;
-    Standard_Real aMinor = myNeckHeight / 10;
-    Handle(Geom2d_Ellipse) anEllipse1 = new Geom2d_Ellipse(anAx2d, aMajor, aMinor);
-    Handle(Geom2d_Ellipse) anEllipse2 = new Geom2d_Ellipse(anAx2d, aMajor, aMinor / 4);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To describe portions of curves for the arcs drawn above, you define *Geom2d_TrimmedCurve* trimmed curves out of the created ellipses and two parameters to limit them.
-As the parametric equation of an ellipse is P(U) = O + (MajorRadius * cos(U) * XDirection) + (MinorRadius * sin(U) * YDirection), the ellipses need to be limited between 0 and M_PI.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    Handle(Geom2d_TrimmedCurve) anArc1 = new Geom2d_TrimmedCurve(anEllipse1, 0, M_PI);
-    Handle(Geom2d_TrimmedCurve) anArc2 = new Geom2d_TrimmedCurve(anEllipse2, 0, M_PI);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The last step consists in defining the segment, which is the same for the two profiles: a line limited by the first and the last point of one of the arcs.
-To access the point corresponding to the parameter of a curve or a surface, you use the Value or D0 method (meaning 0th derivative), D1 method is for first derivative, D2 for the second one.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    gp_Pnt2d anEllipsePnt1 = anEllipse1->Value(0);
-    gp_Pnt2d anEllipsePnt2;
-    anEllipse1->D0(M_PI, anEllipsePnt2);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-When creating the bottle's profile, you used classes from the *GC* package, providing algorithms to create elementary geometries.
-In 2D geometry, this kind of algorithms is found in the *GCE2d* package. Class names and behaviors are similar to those in *GC*. For example, to create a 2D segment out of two points:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    Handle(Geom2d_TrimmedCurve) aSegment = GCE2d_MakeSegment(anEllipsePnt1, anEllipsePnt2);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-@subsection OCCT_TUTORIAL_SUB4_3 Building Edges and Wires
-
-
-As you did when creating the base profile of the bottle, you can now:
-
-  * compute the edges of the neck's threading.
-  * compute two wires out of these edges.
-
-@image html /overview/tutorial/images/tutorial_image017.png
-@image latex /overview/tutorial/images/tutorial_image017.png
-
-Previously, you have built:
-
-  * two cylindrical surfaces of the threading
-  * three 2D curves defining the base geometry of the threading
-
-To compute the edges out of these curves, once again use the *BRepBuilderAPI_MakeEdge* class. One of its constructors allows you to build an edge out of a curve described in the 2D parametric space of a surface.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    TopoDS_Edge anEdge1OnSurf1 = BRepBuilderAPI_MakeEdge(anArc1, aCyl1);
-    TopoDS_Edge anEdge2OnSurf1 = BRepBuilderAPI_MakeEdge(aSegment, aCyl1);
-    TopoDS_Edge anEdge1OnSurf2 = BRepBuilderAPI_MakeEdge(anArc2, aCyl2);
-    TopoDS_Edge anEdge2OnSurf2 = BRepBuilderAPI_MakeEdge(aSegment, aCyl2);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Now, you can create the two profiles of the threading, lying on each surface.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-    TopoDS_Wire threadingWire1 = BRepBuilderAPI_MakeWire(anEdge1OnSurf1, anEdge2OnSurf1);
-    TopoDS_Wire threadingWire2 = BRepBuilderAPI_MakeWire(anEdge1OnSurf2, anEdge2OnSurf2);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Remember that these wires were built out of a surface and 2D curves.
-One important data item is missing as far as these wires are concerned: there is no information on the 3D curves. Fortunately, you do not need to compute this yourself, which can be a difficult task since the mathematics can be quite complex.
-When a shape contains all the necessary information except 3D curves, Open CASCADE Technology provides a tool to build them automatically. In the BRepLib tool package, you can use the *BuildCurves3d* method to compute 3D curves for all the edges of a shape.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} 
-    BRepLib::BuildCurves3d(threadingWire1);
-    BRepLib::BuildCurves3d(threadingWire2);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-@subsection OCCT_TUTORIAL_SUB4_4 Creating Threading
-
-
-You have computed the wires of the threading. The threading will be a solid shape, so you must now compute the faces of the wires, the faces allowing you to join the wires, the shell out of these faces and then the solid itself. This can be a lengthy operation.
-There are always faster ways to build a solid when the base topology is defined. You would like to create a solid out of two wires. Open CASCADE Technology provides a quick way to do this by building a loft: a shell or a solid passing through a set of wires in a given sequence.   
-The loft function is implemented in the *BRepOffsetAPI_ThruSections* class, which you use as follows:
-  
-@image html /overview/tutorial/images/tutorial_image018.png
-@image latex /overview/tutorial/images/tutorial_image018.png
-  
-  * Initialize the algorithm by creating an instance of the class. The first parameter of this constructor must be specified if you want to create a solid. By default, *BRepOffsetAPI_ThruSections* builds a shell.
-  * Add the successive wires using the AddWire method.
-  * Use the *CheckCompatibility* method to activate (or deactivate) the option that checks whether the wires have the same number of edges. In this case, wires have two edges each, so you can deactivate this option.
-  * Ask for the resulting loft shape with the Shape method.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} 
-    BRepOffsetAPI_ThruSections aTool(Standard_True);
-    aTool.AddWire(threadingWire1); aTool.AddWire(threadingWire2);
-    aTool.CheckCompatibility(Standard_False);
-    TopoDS_Shape myThreading = aTool.Shape();
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-@section sec5 Building the Resulting Compound
-
-
-You are almost done building the bottle. Use the *TopoDS_Compound* and *BRep_Builder* classes to build single shape from *myBody* and *myThreading*:
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} 
-    TopoDS_Compound aRes;
-    BRep_Builder aBuilder;
-    aBuilder.MakeCompound (aRes);
-    aBuilder.Add (aRes, myBody);
-    aBuilder.Add (aRes, myThreading);
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Congratulations! Your bottle is complete. Here is the result snapshot of the Tutorial application:
-
-@image html /overview/tutorial/images/tutorial_image019.png
-@image latex /overview/tutorial/images/tutorial_image019.png
-
-We hope that this tutorial has provided you with a feel for the industrial strength power of Open CASCADE Technology.
-If you want to know more and develop major projects using Open CASCADE Technology, we invite you to study our training, support, and consulting services on our site at http://www.opencascade.org/support. Our professional services can maximize the power of your Open CASCADE Technology applications.
-
-
-@section sec6 Appendix
-
-
-Complete definition of MakeBottle function (defined in the file src/MakeBottle.cxx of the Tutorial):
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp} 
-    TopoDS_Shape MakeBottle(const Standard_Real myWidth, const Standard_Real myHeight,
-                            const Standard_Real myThickness)
-    {
-        // Profile : Define Support Points
-        gp_Pnt aPnt1(-myWidth / 2., 0, 0);        
-        gp_Pnt aPnt2(-myWidth / 2., -myThickness / 4., 0);
-        gp_Pnt aPnt3(0, -myThickness / 2., 0);
-        gp_Pnt aPnt4(myWidth / 2., -myThickness / 4., 0);
-        gp_Pnt aPnt5(myWidth / 2., 0, 0);
-
-        // Profile : Define the Geometry
-        Handle(Geom_TrimmedCurve) anArcOfCircle = GC_MakeArcOfCircle(aPnt2,aPnt3,aPnt4);
-        Handle(Geom_TrimmedCurve) aSegment1 = GC_MakeSegment(aPnt1, aPnt2);
-        Handle(Geom_TrimmedCurve) aSegment2 = GC_MakeSegment(aPnt4, aPnt5);
-
-        // Profile : Define the Topology
-        TopoDS_Edge anEdge1 = BRepBuilderAPI_MakeEdge(aSegment1);
-        TopoDS_Edge anEdge2 = BRepBuilderAPI_MakeEdge(anArcOfCircle);
-        TopoDS_Edge anEdge3 = BRepBuilderAPI_MakeEdge(aSegment2);
-        TopoDS_Wire aWire  = BRepBuilderAPI_MakeWire(anEdge1, anEdge2, anEdge3);
-
-        // Complete Profile
-        gp_Ax1 xAxis = gp::OX();
-        gp_Trsf aTrsf;
-
-        aTrsf.SetMirror(xAxis);
-        BRepBuilderAPI_Transform aBRepTrsf(aWire, aTrsf);
-        TopoDS_Shape aMirroredShape = aBRepTrsf.Shape();
-        TopoDS_Wire aMirroredWire = TopoDS::Wire(aMirroredShape);
-
-        BRepBuilderAPI_MakeWire mkWire;
-        mkWire.Add(aWire);
-        mkWire.Add(aMirroredWire);
-        TopoDS_Wire myWireProfile = mkWire.Wire();
-
-        // Body : Prism the Profile
-        TopoDS_Face myFaceProfile = BRepBuilderAPI_MakeFace(myWireProfile);
-        gp_Vec aPrismVec(0, 0, myHeight);
-        TopoDS_Shape myBody = BRepPrimAPI_MakePrism(myFaceProfile, aPrismVec);
-
-        // Body : Apply Fillets
-        BRepFilletAPI_MakeFillet mkFillet(myBody);
-        TopExp_Explorer anEdgeExplorer(myBody, TopAbs_EDGE);
-        while(anEdgeExplorer.More()){
-            TopoDS_Edge anEdge = TopoDS::Edge(anEdgeExplorer.Current());
-            //Add edge to fillet algorithm
-            mkFillet.Add(myThickness / 12., anEdge);
-            anEdgeExplorer.Next();
-        }
-
-        myBody = mkFillet.Shape();
-
-        // Body : Add the Neck
-        gp_Pnt neckLocation(0, 0, myHeight);
-        gp_Dir neckAxis = gp::DZ();
-        gp_Ax2 neckAx2(neckLocation, neckAxis);
-
-        Standard_Real myNeckRadius = myThickness / 4.;
-        Standard_Real myNeckHeight = myHeight / 10.;
-
-        BRepPrimAPI_MakeCylinder MKCylinder(neckAx2, myNeckRadius, myNeckHeight);
-        TopoDS_Shape myNeck = MKCylinder.Shape();
-
-        myBody = BRepAlgoAPI_Fuse(myBody, myNeck);
-
-        // Body : Create a Hollowed Solid
-        TopoDS_Face   faceToRemove;
-        Standard_Real zMax = -1;
-
-        for(TopExp_Explorer aFaceExplorer(myBody, TopAbs_FACE); aFaceExplorer.More(); aFaceExplorer.Next()){
-            TopoDS_Face aFace = TopoDS::Face(aFaceExplorer.Current());
-            // Check if <aFace> is the top face of the bottle's neck 
-            Handle(Geom_Surface) aSurface = BRep_Tool::Surface(aFace);
-            if(aSurface->DynamicType() == STANDARD_TYPE(Geom_Plane)){
-                Handle(Geom_Plane) aPlane = Handle(Geom_Plane)::DownCast(aSurface);
-                gp_Pnt aPnt = aPlane->Location();
-                Standard_Real aZ   = aPnt.Z();
-                if(aZ > zMax){
-                    zMax = aZ;
-                    faceToRemove = aFace;
-                }
-            }
-        }
-
-        TopTools_ListOfShape facesToRemove;
-        facesToRemove.Append(faceToRemove);
-        myBody = BRepOffsetAPI_MakeThickSolid(myBody, facesToRemove, -myThickness / 50, 1.e-3);
-        // Threading : Create Surfaces
-        Handle(Geom_CylindricalSurface) aCyl1 = new Geom_CylindricalSurface(neckAx2, myNeckRadius * 0.99);
-        Handle(Geom_CylindricalSurface) aCyl2 = new Geom_CylindricalSurface(neckAx2, myNeckRadius * 1.05);
-
-        // Threading : Define 2D Curves
-        gp_Pnt2d aPnt(2. * M_PI, myNeckHeight / 2.);
-        gp_Dir2d aDir(2. * M_PI, myNeckHeight / 4.);
-        gp_Ax2d anAx2d(aPnt, aDir);
-
-        Standard_Real aMajor = 2. * M_PI;
-        Standard_Real aMinor = myNeckHeight / 10;
-
-        Handle(Geom2d_Ellipse) anEllipse1 = new Geom2d_Ellipse(anAx2d, aMajor, aMinor);
-        Handle(Geom2d_Ellipse) anEllipse2 = new Geom2d_Ellipse(anAx2d, aMajor, aMinor / 4);
-        Handle(Geom2d_TrimmedCurve) anArc1 = new Geom2d_TrimmedCurve(anEllipse1, 0, M_PI);
-        Handle(Geom2d_TrimmedCurve) anArc2 = new Geom2d_TrimmedCurve(anEllipse2, 0, M_PI);
-        gp_Pnt2d anEllipsePnt1 = anEllipse1->Value(0);
-        gp_Pnt2d anEllipsePnt2 = anEllipse1->Value(M_PI);
-
-        Handle(Geom2d_TrimmedCurve) aSegment = GCE2d_MakeSegment(anEllipsePnt1, anEllipsePnt2);
-        // Threading : Build Edges and Wires
-        TopoDS_Edge anEdge1OnSurf1 = BRepBuilderAPI_MakeEdge(anArc1, aCyl1);
-        TopoDS_Edge anEdge2OnSurf1 = BRepBuilderAPI_MakeEdge(aSegment, aCyl1);
-        TopoDS_Edge anEdge1OnSurf2 = BRepBuilderAPI_MakeEdge(anArc2, aCyl2);
-        TopoDS_Edge anEdge2OnSurf2 = BRepBuilderAPI_MakeEdge(aSegment, aCyl2);
-        TopoDS_Wire threadingWire1 = BRepBuilderAPI_MakeWire(anEdge1OnSurf1, anEdge2OnSurf1);
-        TopoDS_Wire threadingWire2 = BRepBuilderAPI_MakeWire(anEdge1OnSurf2, anEdge2OnSurf2);
-        BRepLib::BuildCurves3d(threadingWire1);
-        BRepLib::BuildCurves3d(threadingWire2);
-
-        // Create Threading 
-        BRepOffsetAPI_ThruSections aTool(Standard_True);
-        aTool.AddWire(threadingWire1);
-        aTool.AddWire(threadingWire2);
-        aTool.CheckCompatibility(Standard_False);
-
-        TopoDS_Shape myThreading = aTool.Shape();
-
-        // Building the Resulting Compound 
-        TopoDS_Compound aRes;
-        BRep_Builder aBuilder;
-        aBuilder.MakeCompound (aRes);
-        aBuilder.Add (aRes, myBody);
-        aBuilder.Add (aRes, myThreading);
-
-        return aRes;
-    }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/dox/resources/occ_logo.png b/dox/resources/occ_logo.png
new file mode 100644 (file)
index 0000000..0e5a04c
Binary files /dev/null and b/dox/resources/occ_logo.png differ
index 0e5a04c..e47c657 100644 (file)
Binary files a/dox/resources/occt_logo.png and b/dox/resources/occt_logo.png differ
old mode 100644 (file)
new mode 100755 (executable)
index c44be9f..f0cbedc
@@ -1,5 +1,7 @@
+#!/usr/bin/tclsh
+
 # Command-line starter for occdoc command, use it as follows:
 # tclsh> source dox/start.tcl [arguments]
 
 source [file join [file dirname [info script]] occdoc.tcl]
-occdoc {*}$argv
\ No newline at end of file
+occdoc {*}$::argv
diff --git a/dox/technical_overview/images/technical_overview_buildingmodules.png b/dox/technical_overview/images/technical_overview_buildingmodules.png
new file mode 100644 (file)
index 0000000..5660c92
Binary files /dev/null and b/dox/technical_overview/images/technical_overview_buildingmodules.png differ
diff --git a/dox/technical_overview/images/technical_overview_de.png b/dox/technical_overview/images/technical_overview_de.png
new file mode 100644 (file)
index 0000000..e401c37
Binary files /dev/null and b/dox/technical_overview/images/technical_overview_de.png differ
diff --git a/dox/technical_overview/images/technical_overview_ma.png b/dox/technical_overview/images/technical_overview_ma.png
new file mode 100644 (file)
index 0000000..96bd108
Binary files /dev/null and b/dox/technical_overview/images/technical_overview_ma.png differ
diff --git a/dox/technical_overview/images/technical_overview_md.png b/dox/technical_overview/images/technical_overview_md.png
new file mode 100644 (file)
index 0000000..a04a860
Binary files /dev/null and b/dox/technical_overview/images/technical_overview_md.png differ
diff --git a/dox/technical_overview/images/technical_overview_occ_0005.png b/dox/technical_overview/images/technical_overview_occ_0005.png
new file mode 100644 (file)
index 0000000..6d96ab4
Binary files /dev/null and b/dox/technical_overview/images/technical_overview_occ_0005.png differ
diff --git a/dox/technical_overview/images/technical_overview_occ_0006.png b/dox/technical_overview/images/technical_overview_occ_0006.png
new file mode 100644 (file)
index 0000000..3909f78
Binary files /dev/null and b/dox/technical_overview/images/technical_overview_occ_0006.png differ
diff --git a/dox/technical_overview/images/technical_overview_occ_0007.png b/dox/technical_overview/images/technical_overview_occ_0007.png
new file mode 100644 (file)
index 0000000..a7d2856
Binary files /dev/null and b/dox/technical_overview/images/technical_overview_occ_0007.png differ
diff --git a/dox/technical_overview/images/technical_overview_occ_0008.png b/dox/technical_overview/images/technical_overview_occ_0008.png
new file mode 100644 (file)
index 0000000..b61acb2
Binary files /dev/null and b/dox/technical_overview/images/technical_overview_occ_0008.png differ
diff --git a/dox/technical_overview/images/technical_overview_occ_0068.png b/dox/technical_overview/images/technical_overview_occ_0068.png
new file mode 100644 (file)
index 0000000..32268f4
Binary files /dev/null and b/dox/technical_overview/images/technical_overview_occ_0068.png differ
diff --git a/dox/technical_overview/images/technical_overview_occt_logo.png b/dox/technical_overview/images/technical_overview_occt_logo.png
new file mode 100644 (file)
index 0000000..2afc5aa
Binary files /dev/null and b/dox/technical_overview/images/technical_overview_occt_logo.png differ
diff --git a/dox/technical_overview/images/technical_overview_shapeattrib.png b/dox/technical_overview/images/technical_overview_shapeattrib.png
new file mode 100644 (file)
index 0000000..6add718
Binary files /dev/null and b/dox/technical_overview/images/technical_overview_shapeattrib.png differ
diff --git a/dox/technical_overview/images/technical_overview_viz.png b/dox/technical_overview/images/technical_overview_viz.png
new file mode 100644 (file)
index 0000000..53566b4
Binary files /dev/null and b/dox/technical_overview/images/technical_overview_viz.png differ
index 2aff1fb..a1081e0 100644 (file)
@@ -1,9 +1,11 @@
 Technical Overview {#technical_overview}
 ========================================
 
+@tableofcontents
+
 @section OCCT_TOVW_SECTION_1 Product Overview
 
-Open CASCADE Technology is an object-oriented C++ class librarLzlz ljky designed for rapid production of sophisticated domain-specific design applications. A typical application developed using OCCT deals with two or three-dimensional (2D or 3D) geometric modeling
+Open CASCADE Technology is an object-oriented C++ class library designed for rapid production of sophisticated domain-specific design applications. A typical application developed using OCCT 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. OCCT Object
 Libraries help you to develop your applications significantly faster.
@@ -2730,11 +2732,11 @@ To do that you have to use the <i>Define_Standard_Handle</i> macro which is defi
 
 Here is an example which shows how to define a class <i> SamplePoint </i> manipulated by handle.
 
-~~~~
-
 Sample_Point.hxx:
 ---------------
 
+~~~~
+
     #ifndef _Sample_Point_HeaderFile
     #define _Sample_Point_HeaderFile
     #ifndef _Standard_Macro_HeaderFile
@@ -2773,9 +2775,13 @@ Sample_Point.hxx:
     };
     #endif
 
+~~~~
+
 Sample_Point.cxx:
 ----------------
 
+~~~~
+
     #include <Sample_Point.hxx>
 
     // Implementation of Handle and type mgt
@@ -2882,7 +2888,7 @@ to another place defined by a label.
 ~~~~
 
 The filter is used to forbid copying a specified type of attribute. 
-You can also have a look at <i> TDF_Closure*</i>
+You can also have a look at *TDF_Closure**
 which can be useful to determine the dependencies of the part you want to cut from the document.
 
 @subsection OCCT_TOVW_SECTION_8_7 Platform-related problems 
@@ -2892,11 +2898,11 @@ which can be useful to determine the dependencies of the part you want to cut fr
 Open CASCADE Technology uses a dynamic library loading mode. Sometimes, the error message such as the following appears:
 
 ~~~~
- "cannot map <i>libname.so</i> .. under any of the filenames .."
+ "cannot map libname.so .. under any of the filenames .."
 ~~~~
 
-When this happens, check your <i> PATH </i>under Windows, <i> LD_LIBRARY_PATH</i> under UNIX ,
-<i> SHLIB_PATH </i> under HP-UX or <i> LIBPATH</i> under IBM AIX . 
+When this happens, check your *PATH* under Windows, *LD_LIBRARY_PATH* under UNIX ,
+*SHLIB_PATH* under HP-UX or *LIBPATH* under IBM AIX . 
 It should contain the path where the required dynamic library is located.
 
 ### Running Draw under Windows
@@ -2906,7 +2912,7 @@ When running <i> DRAWEXE</i> and using axo in the Command window you may see the
 
 Make sure that the OCCT directory name does not contain any blank spaces.
 It causes some problems when reading the OCCT description TCL Commands files.
-If you have set <i> DRAWHOME</i> and <i> DRAWDEFAULT</i>, replace \ by / in the variable. 
+If you have set <i> DRAWHOME</i> and <i> DRAWDEFAULT</i>, replace \\ by / in the variable. 
 
 ### Error on application start on Windows
 
@@ -2923,22 +2929,3 @@ If the 3D viewer fails to display the scene properly, or works very slowly, or e
 another problem, make sure to have the latest version of the graphics card driver
 installed. If this is not possible or does not help, try to decrease 
 hardware acceleration level (usually found in Troubleshooting section of the graphics card properties).
-
-### Fatal error during graphic initialization
-
-
-If you get the <b>Fatal error during graphic initialization</b> message when running 
-an Open CASCADE Technology based application, or if the application crashes 
-without displaying error messages, you must set the environment variable <i> CSF_GRAPHICSHR </i> as follows:
-
-  * On Windows, if we suppose that OCCT is installed in <i> D:\OpenCASCADE6.3.0 </i>
-
-~~~~
-    Set CSF_GraphicShr= D:\OpenCASCADE6.3.1\ros\win32\bin\TkOpenGl.dll
-~~~~
-
-  * On Linux or Unix, if we suppose that OCCT is installed in  <i> .../mydisk/ OpenCASCADE6.3.0 </i>
-
-~~~~
-    Setenv CSF_GraphicsShr /mydisk/ OpenCASCADE6.3.0ros/lin/lib/libTKOpenGl.so
-~~~~
\ No newline at end of file
diff --git a/dox/tutorial/images/tutorial_image001.png b/dox/tutorial/images/tutorial_image001.png
new file mode 100644 (file)
index 0000000..5fd0189
Binary files /dev/null and b/dox/tutorial/images/tutorial_image001.png differ
diff --git a/dox/tutorial/images/tutorial_image002.png b/dox/tutorial/images/tutorial_image002.png
new file mode 100644 (file)
index 0000000..801c5ea
Binary files /dev/null and b/dox/tutorial/images/tutorial_image002.png differ
diff --git a/dox/tutorial/images/tutorial_image003.png b/dox/tutorial/images/tutorial_image003.png
new file mode 100644 (file)
index 0000000..b08eeb8
Binary files /dev/null and b/dox/tutorial/images/tutorial_image003.png differ
diff --git a/dox/tutorial/images/tutorial_image004.png b/dox/tutorial/images/tutorial_image004.png
new file mode 100644 (file)
index 0000000..b10ce22
Binary files /dev/null and b/dox/tutorial/images/tutorial_image004.png differ
diff --git a/dox/tutorial/images/tutorial_image005.png b/dox/tutorial/images/tutorial_image005.png
new file mode 100644 (file)
index 0000000..bfbe42c
Binary files /dev/null and b/dox/tutorial/images/tutorial_image005.png differ
diff --git a/dox/tutorial/images/tutorial_image006.png b/dox/tutorial/images/tutorial_image006.png
new file mode 100644 (file)
index 0000000..d5a119f
Binary files /dev/null and b/dox/tutorial/images/tutorial_image006.png differ
diff --git a/dox/tutorial/images/tutorial_image007.png b/dox/tutorial/images/tutorial_image007.png
new file mode 100644 (file)
index 0000000..1391895
Binary files /dev/null and b/dox/tutorial/images/tutorial_image007.png differ
diff --git a/dox/tutorial/images/tutorial_image008.png b/dox/tutorial/images/tutorial_image008.png
new file mode 100644 (file)
index 0000000..85efc0e
Binary files /dev/null and b/dox/tutorial/images/tutorial_image008.png differ
diff --git a/dox/tutorial/images/tutorial_image009.png b/dox/tutorial/images/tutorial_image009.png
new file mode 100644 (file)
index 0000000..3fb60f5
Binary files /dev/null and b/dox/tutorial/images/tutorial_image009.png differ
diff --git a/dox/tutorial/images/tutorial_image010.png b/dox/tutorial/images/tutorial_image010.png
new file mode 100644 (file)
index 0000000..899e224
Binary files /dev/null and b/dox/tutorial/images/tutorial_image010.png differ
diff --git a/dox/tutorial/images/tutorial_image011.png b/dox/tutorial/images/tutorial_image011.png
new file mode 100644 (file)
index 0000000..741a671
Binary files /dev/null and b/dox/tutorial/images/tutorial_image011.png differ
diff --git a/dox/tutorial/images/tutorial_image012.png b/dox/tutorial/images/tutorial_image012.png
new file mode 100644 (file)
index 0000000..4d68528
Binary files /dev/null and b/dox/tutorial/images/tutorial_image012.png differ
diff --git a/dox/tutorial/images/tutorial_image013.png b/dox/tutorial/images/tutorial_image013.png
new file mode 100644 (file)
index 0000000..af84d79
Binary files /dev/null and b/dox/tutorial/images/tutorial_image013.png differ
diff --git a/dox/tutorial/images/tutorial_image014.png b/dox/tutorial/images/tutorial_image014.png
new file mode 100644 (file)
index 0000000..f963517
Binary files /dev/null and b/dox/tutorial/images/tutorial_image014.png differ
diff --git a/dox/tutorial/images/tutorial_image015.png b/dox/tutorial/images/tutorial_image015.png
new file mode 100644 (file)
index 0000000..5dc55b9
Binary files /dev/null and b/dox/tutorial/images/tutorial_image015.png differ
diff --git a/dox/tutorial/images/tutorial_image016.png b/dox/tutorial/images/tutorial_image016.png
new file mode 100644 (file)
index 0000000..8ea559a
Binary files /dev/null and b/dox/tutorial/images/tutorial_image016.png differ
diff --git a/dox/tutorial/images/tutorial_image017.png b/dox/tutorial/images/tutorial_image017.png
new file mode 100644 (file)
index 0000000..5beaf94
Binary files /dev/null and b/dox/tutorial/images/tutorial_image017.png differ
diff --git a/dox/tutorial/images/tutorial_image018.png b/dox/tutorial/images/tutorial_image018.png
new file mode 100644 (file)
index 0000000..0ac10c9
Binary files /dev/null and b/dox/tutorial/images/tutorial_image018.png differ
diff --git a/dox/tutorial/images/tutorial_image019.png b/dox/tutorial/images/tutorial_image019.png
new file mode 100644 (file)
index 0000000..c5e2eed
Binary files /dev/null and b/dox/tutorial/images/tutorial_image019.png differ
diff --git a/dox/tutorial/tutorial.md b/dox/tutorial/tutorial.md
new file mode 100644 (file)
index 0000000..10e43f4
--- /dev/null
@@ -0,0 +1,864 @@
+ Tutorial {#tutorial}
+=======
+
+@tableofcontents
+
+@section sec1 Overview 
+
+
+This tutorial will teach you how to use Open CASCADE Technology services to model a 3D object. The purpose of this tutorial is not to describe all Open CASCADE Technology classes but to help you start thinking in terms of Open CASCADE Technology as a tool. 
+
+
+@subsection OCCT_TUTORIAL_SUB1_1 Prerequisites 
+
+This tutorial assumes that you have experience in using and setting up C++.
+From a programming standpoint, Open CASCADE Technology is designed to enhance your C++ tools with 3D modeling classes, methods and functions. The combination of all these resources will allow you to create substantial applications.
+
+@subsection OCCT_TUTORIAL_SUB1_2 The Model
+
+To illustrate the use of classes provided in the 3D geometric modeling toolkits, you will create a bottle as shown:
+
+@image html /tutorial/images/tutorial_image001.png
+@image latex /tutorial/images/tutorial_image001.png
+
+In the tutorial we will create, step-by-step, a function that will model a bottle as shown above. You will find the complete source code of this tutorial, including the very function *MakeBottle* in the distribution of Open CASCADE Technology. The function body is provided in the file samples/qt/Tutorial/src/MakeBottle.cxx.
+
+@subsection OCCT_TUTORIAL_SUB1_3 Model Specifications
+
+We first define the bottle specifications as follows:
+
+| Object Parameter | Parameter Name | Parameter Value |
+| :--------------: | :------------: | :-------------: |
+| Bottle height    | MyHeight       |         70mm    |
+| Bottle width     | MyWidth        |         50mm    |
+| Bottle thickness | MyThickness    |         30mm    |
+
+In addition, we decide that the bottle's profile (base) will be centered on the origin of the global Cartesian coordinate system.
+
+@image html /tutorial/images/tutorial_image002.png
+@image latex /tutorial/images/tutorial_image002.png
+
+This modeling requires four steps:
+
+  * build the bottle's Profile
+  * build the bottle's Body
+  * build the Threading on the bottle's neck
+  * build the result compound
+
+  
+@section sec2 Building the Profile 
+
+@subsection OCCT_TUTORIAL_SUB2_1 Defining Support Points
+
+To create the bottle's profile, you first create characteristic points with their coordinates as shown below in the (XOY) plane. These points will be the supports that define the geometry of the profile.
+
+@image html /tutorial/images/tutorial_image003.png
+@image latex /tutorial/images/tutorial_image003.png
+
+There are two classes to describe a 3D Cartesian point from its X, Y and Z coordinates in Open CASCADE Technology:
+
+  * the primitive geometric *gp_Pnt* class
+  * the transient *Geom_CartesianPoint* class manipulated by handle
+    
+A handle is a type of smart pointer that provides automatic memory management.
+To choose the best class for this application, consider the following:
+
+  * *gp_Pnt* is manipulated by value. Like all objects of its kind, it will have a limited lifetime.
+  * *Geom_CartesianPoint* is manipulated by handle and may have multiple references and a long lifetime.
+    
+Since all the points you will define are only used to create the profile's curves, an object with a limited lifetime will do. Choose the *gp_Pnt* class.
+To instantiate a *gp_Pnt* object, just specify the X, Y, and Z coordinates of the points in the global cartesian coordinate system:
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
+    gp_Pnt aPnt1(-myWidth / 2., 0, 0);
+    gp_Pnt aPnt2(-myWidth / 2., -myThickness / 4., 0);
+    gp_Pnt aPnt3(0, -myThickness / 2., 0);
+    gp_Pnt aPnt4(myWidth / 2., -myThickness / 4., 0);
+    gp_Pnt aPnt5(myWidth / 2., 0, 0);
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Once your objects are instantiated, you can use methods provided by the class to access and modify its data. For example, to get the X coordinate of a point:
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
+Standard_Real xValue1 = aPnt1.X();
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+@subsection OCCT_TUTORIAL_SUB2_2 Profile: Defining the Geometry
+With the help of the previously defined points, you can compute a part of the bottle's profile geometry. As shown in the figure below, it will consist of two segments and one arc.
+
+@image html /tutorial/images/tutorial_image004.png
+@image latex /tutorial/images/tutorial_image004.png
+
+To create such entities, you need a specific data structure, which implements 3D geometric objects. This can be found in the Geom package of Open CASCADE Technology.
+In Open CASCADE Technology a package is a group of classes providing related functionality. The classes have names that start with the name of a package they belong to. For example, *Geom_Line* and *Geom_Circle* classes belong to the *Geom* package. The *Geom* package implements 3D geometric objects: elementary curves and surfaces are provided as well as more complex ones (such as *Bezier* and *BSpline*).
+However, the *Geom* package provides only the data structure of geometric entities. You can directly instantiate classes belonging to *Geom*, but it is easier to compute elementary curves and surfaces by using the *GC* package. 
+This is because the *GC* provides two algorithm classes which are exactly what is required for our profile:
+
+  * Class *GC_MakeSegment* to create a segment. One of its constructors allows you to define a segment by two end points P1 and P2
+  * Class *GC_MakeArcOfCircle* to create an arc of a circle. A useful constructor creates an arc from two end points P1 and P3 and going through P2.
+
+Both of these classes return a *Geom_TrimmedCurve* manipulated by handle. This entity represents a base curve (line or circle, in our case), limited between two of its parameter values. For example, circle C is parameterized between 0 and 2PI. If you need to create a quarter of a circle, you create a *Geom_TrimmedCurve* on C limited between 0 and M_PI/2.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
+    Handle(Geom_TrimmedCurve) aArcOfCircle = GC_MakeArcOfCircle(aPnt2,aPnt3,aPnt4);
+    Handle(Geom_TrimmedCurve) aSegment1    = GC_MakeSegment(aPnt1, aPnt2);
+    Handle(Geom_TrimmedCurve) aSegment2    = GC_MakeSegment(aPnt4, aPnt5);
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+All *GC* classes provide a casting method to obtain a result automatically with a function-like call. Note that this method will raise an exception if construction has failed. To handle possible errors more explicitly, you may use the *IsDone* and *Value* methods. For example:
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
+    GC_MakeSegment mkSeg (aPnt1, aPnt2);
+    Handle(Geom_TrimmedCurve) aSegment1;
+    if(mkSegment.IsDone()){
+        aSegment1 = mkSeg.Value();
+    }
+    else {
+    // handle error
+    }
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+@subsection OCCT_TUTORIAL_SUB2_3 Profile: Defining the Topology
+
+
+You have created the support geometry of one part of the profile but these curves are independent with no relations between each other.
+To simplify the modeling, it would be right to manipulate these three curves as a single entity.
+This can be done by using the topological data structure of Open CASCADE Technology defined in the *TopoDS* package: it defines relationships between geometric entities which can be linked together to represent complex shapes.
+Each object of the *TopoDS* package, inheriting from the *TopoDS_Shape* class, describes a topological shape as described below:
+
+| Shape     | Open CASCADE Technology Class |                      Description &nb