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.

358 files changed:
README
adm/UDLIST
dox/FILES.txt
dox/LICENSE.md [moved from dox/overview/LICENSE.md with 100% similarity]
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/Overview.md
dox/overview/images/overview_3rdparty.png [new file with mode: 0644]
dox/overview/images/overview_occttransparent.png [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 [moved from dox/overview/tutorial/images/tutorial_image001.png with 100% similarity]
dox/tutorial/images/tutorial_image002.png [moved from dox/overview/tutorial/images/tutorial_image002.png with 100% similarity]
dox/tutorial/images/tutorial_image003.png [moved from dox/overview/tutorial/images/tutorial_image003.png with 100% similarity]
dox/tutorial/images/tutorial_image004.png [moved from dox/overview/tutorial/images/tutorial_image004.png with 100% similarity]
dox/tutorial/images/tutorial_image005.png [moved from dox/overview/tutorial/images/tutorial_image005.png with 100% similarity]
dox/tutorial/images/tutorial_image006.png [moved from dox/overview/tutorial/images/tutorial_image006.png with 100% similarity]
dox/tutorial/images/tutorial_image007.png [moved from dox/overview/tutorial/images/tutorial_image007.png with 100% similarity]
dox/tutorial/images/tutorial_image008.png [moved from dox/overview/tutorial/images/tutorial_image008.png with 100% similarity]
dox/tutorial/images/tutorial_image009.png [moved from dox/overview/tutorial/images/tutorial_image009.png with 100% similarity]
dox/tutorial/images/tutorial_image010.png [moved from dox/overview/tutorial/images/tutorial_image010.png with 100% similarity]
dox/tutorial/images/tutorial_image011.png [moved from dox/overview/tutorial/images/tutorial_image011.png with 100% similarity]
dox/tutorial/images/tutorial_image012.png [moved from dox/overview/tutorial/images/tutorial_image012.png with 100% similarity]
dox/tutorial/images/tutorial_image013.png [moved from dox/overview/tutorial/images/tutorial_image013.png with 100% similarity]
dox/tutorial/images/tutorial_image014.png [moved from dox/overview/tutorial/images/tutorial_image014.png with 100% similarity]
dox/tutorial/images/tutorial_image015.png [moved from dox/overview/tutorial/images/tutorial_image015.png with 100% similarity]
dox/tutorial/images/tutorial_image016.png [moved from dox/overview/tutorial/images/tutorial_image016.png with 100% similarity]
dox/tutorial/images/tutorial_image017.png [moved from dox/overview/tutorial/images/tutorial_image017.png with 100% similarity]
dox/tutorial/images/tutorial_image018.png [moved from dox/overview/tutorial/images/tutorial_image018.png with 100% similarity]
dox/tutorial/images/tutorial_image019.png [moved from dox/overview/tutorial/images/tutorial_image019.png with 100% similarity]
dox/tutorial/tutorial.md [moved from dox/overview/tutorial/tutorial.md with 95% similarity]
dox/user_guides/draw_test_harness.md [moved from dox/user_guides/draw_test_harness/draw_test_harness.md with 83% similarity]
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
similarity index 100%
rename from dox/overview/LICENSE.md
rename to dox/LICENSE.md
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’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.
+  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
 }
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/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
similarity index 95%
rename from dox/overview/tutorial/tutorial.md
rename to dox/tutorial/tutorial.md
index fda8026..10e43f4 100644 (file)
@@ -1,6 +1,8 @@
- Tutorial {#overview__tutorial}
+ Tutorial {#tutorial}
 =======
 
+@tableofcontents
+
 @section sec1 Overview 
 
 
@@ -16,8 +18,8 @@ From a programming standpoint, Open CASCADE Technology is designed to enhance yo
 
 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
+@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.
 
@@ -33,8 +35,8 @@ We first define the bottle specifications as follows:
 
 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
+@image html /tutorial/images/tutorial_image002.png
+@image latex /tutorial/images/tutorial_image002.png
 
 This modeling requires four steps:
 
@@ -50,8 +52,8 @@ This modeling requires four steps:
 
 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
+@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:
 
@@ -84,8 +86,8 @@ 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
+@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*).
@@ -141,8 +143,8 @@ 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
+@image html /tutorial/images/tutorial_image005.png
+@image latex /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:
@@ -180,8 +182,8 @@ Once the first part of your wire is created you need to compute the complete pro
   * 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
+@image html /tutorial/images/tutorial_image006.png
+@image latex /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.
@@ -264,8 +266,8 @@ To compute the main body of the bottle, you need to create a solid shape. The si
 | Face   | Solid              |
 | Shell  | Compound of Solids |
 
-@image html /overview/tutorial/images/tutorial_image007.png
-@image latex /overview/tutorial/images/tutorial_image007.png
+@image html /tutorial/images/tutorial_image007.png
+@image latex /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.
@@ -302,8 +304,8 @@ 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
+@image html /tutorial/images/tutorial_image008.png
+@image latex /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:
 
@@ -359,8 +361,8 @@ Once this is done, you perform the last step of the procedure by asking for the
 
 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
+@image html /tutorial/images/tutorial_image009.png
+@image latex /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:
@@ -402,8 +404,8 @@ In Open CASCADE Technology, a hollowed solid is called a *Thick* *Solid* and is
   * 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
+@image html /tutorial/images/tutorial_image010.png
+@image latex /tutorial/images/tutorial_image010.png
     
 To compute a thick solid, you create an instance of the *BRepOffsetAPI_MakeThickSolid* class by giving the following information:
     
@@ -506,8 +508,8 @@ As a first step, you compute these cylindrical surfaces. You are already familia
 
 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
+@image html /tutorial/images/tutorial_image011.png
+@image latex /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.
 
@@ -532,8 +534,8 @@ P(U, V) = O + R * (cos(U) * xDir + sin(U) * yDir) + V * zDir, where :
   * 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
+@image html /tutorial/images/tutorial_image012.png
+@image latex /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:
 
@@ -542,8 +544,8 @@ The advantage of having such parameterized geometries is that you can compute, f
 
 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
+@image html /tutorial/images/tutorial_image013.png
+@image latex /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:
 
@@ -558,16 +560,16 @@ The helicoidal curve type is exactly what you need. On the neck's surface, the e
   * 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
+@image html /tutorial/images/tutorial_image014.png
+@image latex /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
+@image html /tutorial/images/tutorial_image015.png
+@image latex /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:
 
@@ -583,8 +585,8 @@ To use 2D primitive geometry types of Open CASCADE Technology for defining a poi
 
 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
+@image html /tutorial/images/tutorial_image016.png
+@image latex /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:
 
@@ -640,8 +642,8 @@ 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
+@image html /tutorial/images/tutorial_image017.png
+@image latex /tutorial/images/tutorial_image017.png
 
 Previously, you have built:
 
@@ -681,8 +683,8 @@ You have computed the wires of the threading. The threading will be a solid shap
 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
+@image html /tutorial/images/tutorial_image018.png
+@image latex /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.
@@ -712,8 +714,8 @@ You are almost done building the bottle. Use the *TopoDS_Compound* and *BRep_Bui
 
 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
+@image html /tutorial/images/tutorial_image019.png
+@image latex /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.
@@ -1,14 +1,16 @@
 Draw Test Harness  {#user_guides__test_harness}
 ===============================
+
+@tableofcontents
  
-@section occt_2142243456_1775316760 Introduction
+@section occt_draw_1 Introduction
 
 This manual explains how to use Draw, the test harness for Open CASCADE Technology (**OCCT**). It provides basic documentation on using Draw. For advanced information on Draw and its applications, see our offerings on our web site at <a href="http://www.opencascade.org/support/training">http://www.opencascade.org/support/training</a>  
 
 Draw is a command interpreter based on TCL and a graphical system used to test and demonstrate Open CASCADE Technology modeling libraries. 
 
 
-@subsection occt_2142243456_17753167601 Overview
+@subsection occt_draw_1_1 Overview
 
 Draw is a test harness for Open CASCADE Technology. It provides a flexible and easy to use means of testing and demonstrating the OCCT modeling libraries. 
 
@@ -27,10 +29,14 @@ Draw consists of:
 
 There is also a set of commands for each delivery unit in the modeling libraries: 
 
-GEOMETRY, TOPOLOGY, ADVALGOS, GRAPHIC, PRESENTATION. 
+  * GEOMETRY, 
+  * TOPOLOGY, 
+  * ADVALGOS, 
+  * GRAPHIC, 
+  * PRESENTATION. 
 
 
-@subsection occt_2142243456_17753167602 Contents of this documentation
+@subsection occt_draw_1_2 Contents of this documentation
 
 This documentation describes: 
 
@@ -43,44 +49,43 @@ This documentation describes:
 This document does not describe other sets of commands and does not explain how to extend Draw using C++. 
 
 This document is a reference manual. It contains a full description of each command. All descriptions have the format illustrated below for the exit command. 
-**Example** 
 
-**exit** 
-Syntax: exit 
+~~~~~
+exit
+~~~~~
 
 Terminates the Draw, TCL session. If the commands are read from a file using the source command, this will terminate the file. 
 
-**Example** 
+**Example:** 
 
+~~~~~
 # this is a very short example 
 exit 
+~~~~~
 
 
-
-@subsection occt_2142243456_17753167603 Getting started
+@subsection occt_draw_1_3 Getting started
 
 Install Draw and launch Emacs. Get a command line in Emacs using *Esc x *and key in *woksh*. 
 
-Since version 5.1.1 Open CASCADE Technology introduces a single executable in the DRAW Test Harness that supersedes the several separate executables that existed before. Respectively the user does not need to have his own executables to activate his custom commands. All he needs to do is to implement the commands themselves, they will be activated in the common executable. This executable is now called **DRAWEXE**. 
-
-Commands grouped in toolkits can now be loaded at run-time thereby implementing dynamically loaded plug-ins. Thus, the user can work only with those commands that suit his needs adding these commands dynamically without leaving the Test Harness session. 
+All DRAW Test Harness can be activated in the common executable called **DRAWEXE**. They are grouped in toolkits and can be loaded at run-time thereby implementing dynamically loaded plug-ins. Thus, it is possible to work only with the required commands adding them dynamically without leaving the Test Harness session. 
 
-Declaration of available plug-ins is done through the special resource file(s). 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 new advantages of the plug-in mechanism as well as instructions for extending Test Harness are described below. 
+Declaration of available plug-ins is done through the special resource file(s). The *pload* command loads the plug-in in accordance with the specified resource file and activates the commands implemented in the plug-in. 
 
+@subsubsection occt_draw_1_3_1 Launching DRAW Test Harness
 
-@subsubsection occt_2142243456_177531676031 Launching DRAW Test Harness
+Test Harness executable *DRAWEXE* is located in the <i>$CASROOT/<platform>/bin</i> directory (where <platform> is Win for Windows and Linux for Linux operating systems). Prior to launching it is important to make sure that the environment is correctly set-up (usually this is done automatically after the installation process on Windows or after launching specific scripts on Linux).  
 
-Test Harness executable DRAWEXE is located in the $CASROOT/platform/bin directory (where platform is win32 for Windows, SunOS for Sun Solaris and Linux for Linux operating systems). Prior to launching it is important to make sure the environment is correctly set-up (usually this is done automatically after the installation process on Windows or after launching specific scripts on Unix/Linux) - refer to Technical Documentation for details.  
 
+@subsubsection occt_draw_1_3_2 Plug-in resource file
 
-@subsubsection occt_2142243456_177531676032 Plug-in resource file
+Open CASCADE Technology is shipped with the DrawPlugin resource file located in the <i>$CASROOT/src/DrawResources</i> directory. 
 
-Open CASCADE Technology is shipped with the DrawPlugin resource file located in the $CASROOT/src/DrawResources directory. 
-The format of the file is compliant with standard Open CASCADE Technology resource files (see the Resource_Manager.cdl file for details). 
+The format of the file is compliant with standard Open CASCADE Technology resource files (see the *Resource_Manager.cdl* file for details). 
 
 Each key defines a sequence of either further (nested) keys or a name of the dynamic library. Keys can be nested down to an arbitrary level. However, cyclic dependencies between the keys are not checked. 
-**Example** (excerpt from DrawPlugin): 
+
+**Example:** (excerpt from DrawPlugin): 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 OCAF               : VISUALIZATION, OCAFKERNEL 
 VISUALIZATION      : AISV 
@@ -90,114 +95,38 @@ DCAF               : TKDCAF
 AISV               : TKViewerTest 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-@subsubsection occt_2142243456_177531676033 Activation of commands implemented in the plug-in
+@subsubsection occt_draw_1_3_3 Activation of commands implemented in the plug-in
 
 To load a plug-in declared in the resource file and to activate the commands the following command must be used in Test Harness: 
 
-pload [-PluginFileName] [[Key1] [Key2]...], where: 
+~~~~~
+pload [-PluginFileName] [[Key1] [Key2]...]
+~~~~~
+
+, where: 
 
--PluginFileName        Defines the name of a plug-in resource file (prefix ;-; is mandatory) described above. 
+* *-PluginFileName* - defines the name of a plug-in resource file (prefix "-" is mandatory) described above. 
 If this parameter is omitted then the default name DrawPlugin is used. 
+* *Key…* - defines the key(s) enumerating plug-ins to be loaded. If no keys are specified then the key named *DEFAULT* is used (if there is no such key in the file then no plug-ins are loaded). 
 
-Key…                       Defines the key(s) enumerating plug-ins to be loaded. 
-If no keys are specified then the key named DEFAULT is used (if there is no such key in the file then no plug-ins are loaded). 
-According to the OCCT resource file management rules, to access the resource file the environment variable CSF_PluginFileNameDefaults (and optionally CSF_PluginFileNameUserDefaults) must be set and point to the directory storing the resource file. If it is omitted then the plug-in resource file will be searched in the $CASROOT/src/DrawResources directory. 
-**Examples:** 
+According to the OCCT resource file management rules, to access the resource file the environment variable *CSF_PluginFileNameDefaults* (and optionally *CSF_PluginFileNameUserDefaults*) must be set and point to the directory storing the resource file. If it is omitted then the plug-in resource file will be searched in the <i>$CASROOT/src/DrawResources</i> directory. 
 
+~~~~~
 Draw[]        pload -DrawPlugin OCAF 
-Will search the resource file DrawPlugin using variable CSF_DrawPluginDefaults (and CSF_DrawPluginUserDefaults) and will start with the OCAF key. Since the DrawPlugin is the file shipped with Open CASCADE Technology it will be found in the $CASROOT/src/DrawResources directory (unless this location is redefined by user's variables). The OCAF key will be recursively extracted into two toolkits/plug-ins: TKDCAF and TKViewerTest (e.g. on Windows they correspond to TKDCAF.dll and TKViewerTest.dll). Thus, commands implemented for Visualization and OCAF will be loaded and activated in Test Harness. 
+~~~~~
+This command will search the resource file *DrawPlugin* using variable *CSF_DrawPluginDefaults* (and *CSF_DrawPluginUserDefaults*) and will start with the OCAF key. Since the *DrawPlugin* is the file shipped with Open CASCADE Technology it will be found in the <i>$CASROOT/src/DrawResources</i> directory (unless this location is redefined by user's variables). The OCAF key will be recursively extracted into two toolkits/plug-ins: *TKDCAF* and *TKViewerTest* (e.g. on Windows they correspond to *TKDCAF.dll* and *TKViewerTest.dll*). Thus, commands implemented for Visualization and OCAF will be loaded and activated in Test Harness. 
 
+~~~~~
 Draw[]        pload (equivalent to pload -DrawPlugin DEFAULT). 
-Will find the default DrawPlugin file and the DEFAULT key. The latter finally maps to the TKTopTest toolkit which implements basic modeling commands. 
-
-
-@subsubsection occt_2142243456_177531676034 Mapping between former separate Test Harness executables and the new plug-ins
-
-Before version 5.1.1 Open CASCADE Technology used to be shipped with several separate executables providing different sets of commands. The following table represents the mapping between former executables and new plug-ins. 
-
-
-For instance, in order to activate commands available in the former AISViewer executable, now it is enough to use the command pload VISUALIZATION. 
-
-When you have the tclsh prompt, key in the library references: 
-
-*wokcd MDL:k1deb:ref:DRAWEXE*. At the prompt, key in the environment 
-(*@@ -setenv *in Unix). Draw displays a prompt. Here is a sample session: 
-
-**Example** 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-# create two views, one 2d the other axonometric. Use either the command line or the Draw taskbar (*Views/av2d*). 
-Draw[1]av2d 
-
-# create a 2d circle 
-Draw[2]circle c 0 0 1 0 5 
-# trim the circle and dump it 
-Draw[3] trim c c 0 pi/2 
-Draw[4] dump c 
-==***** Dump of c ***** 
-==Trimmed curve 
-==Parameters : 0 1.5707963267949 
-==Basis curve : 
-==Circle 
-== Center :0, 0 
-== XAxis :1, 0 
-== YAxis :-0, 1 
-== Radius :5 
-# make a 3d circle from it, and turn it into a bspline 
-Draw[6] to3d c1 c 
-Draw[7] fit 
-Draw[8] convert c2 c1 
-Draw[9] dump c2 
-***** Dump of c2 ***** 
-BSplineCurve rational 
-Degree 2, 3 Poles, 2 Knots 
-Poles : 
-1 : 5, 0, 0 1 
-2 : 5, 5, 0 0.707106781186548 
-3 : 3.06161699786838e-16, 5, 0 1 
-Knots : 
-1 : 0 3 
-2 : 1.5707963267949 3 
-
-# make a surface of revolution from the spline 
-Draw[10] fit 
-Draw[11] help rev 
-reverse : reverse name ... 
-revsurf : revsurf name curvename x y z dx dy dz 
-# here you must click on the curve with the mouse 
-Draw[12] revsurf s . 5 5 0 -1 1 0 
-Pick an object 
-Draw[13] fit 
-# rotate the view 
-Draw[14] u 
-Draw[15] erase c 
-# make a bspline surface and intersect with a plane 
-Draw[20] convert s s 
-Draw[21] fit 
-Draw[22] plane p 5 5 5 1 1 1 1 0 0 
-Draw[23] intersect c p s 
-# pick one of the intersection curves 
-# you may get c_2 onstead of c_1 
-Draw[24] whatis . 
-Pick an object 
-c_1 is a a 3d curve 
-Draw[25] clear 
-Draw[27] rename c_1 c 
-Draw[28] fit 
-# save the curve, use datadir (p. 32) to specify the 
-directory you want to save your file in. 
-Draw[29] save c 
-Draw[30] exit 
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-In this example some geometrical operations have been performed. Objects displayed and written to files. 
-@section occt_2142243456_1668530729 The Command Language
-
-
+~~~~~
+This command will find the default DrawPlugin file and the DEFAULT key. The latter finally maps to the TKTopTest toolkit which implements basic modeling commands. 
 
 
+@section occt_draw_2 The Command Language
 
-@subsection occt_2142243456_16685307294 Overview
+@subsection occt_draw_2_1 Overview
 
-The command language used in Draw is Tcl. Tcl<a href="#_ftn1">[1]</a> documentation such as ;TCL and the TK Toolkit; by John K. Ousterhout (Addison-Wesley) will prove useful if you intend to use Draw extensively. 
+The command language used in Draw is Tcl. Tcl documentation such as "TCL and the TK Toolkit" by John K. Ousterhout (Addison-Wesley) will prove useful if you intend to use Draw extensively. 
 
 This chapter is designed to give you a short outline of both the TCL language and some extensions included in Draw. The following topics are covered: 
 
@@ -206,17 +135,18 @@ This chapter is designed to give you a short outline of both the TCL language an
   * Control structures.
   * Procedures.
 
-@subsection occt_2142243456_16685307295 Syntax of TCL
+@subsection occt_draw_2_2 Syntax of TCL
 
 TCL is an interpreted command language, not a structured language like C, Pascal, LISP or Basic. It uses a shell similar to that of csh. TCL is, however, easier to use than csh because control structures and procedures are easier to define. As well, because TCL does not assign a process to each command, it is faster than csh. 
 
 The basic program for TCL is a script. A script consists of one or more commands. Commands are separated by new lines or semicolons. 
-**Example** 
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 set a 24 
 set b 15 
 set a 25; set b 15 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 Each command consists of one or more *words*; the first word is the name of a command and additional words are arguments to that command. 
 
 Words are separated by spaces or tabs. In the preceding example each of the four commands has three words. A command may contain any number of words and each word is a string of arbitrary length. 
@@ -225,8 +155,9 @@ The evaluation of a command by TCL is done in two steps. In the first step, the
 
 The following substitutions are performed by TCL: 
 
-**1. **Variable substitution is triggered by the $ character (as with csh), the content of the variable is substitued; { } may be used as in csh to enclose the name of the variable. 
-**Example** 
+Variable substitution is triggered by the $ character (as with csh), the content of the variable is substitued; { } may be used as in csh to enclose the name of the variable. 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # set a variable value 
 set file documentation 
@@ -243,29 +174,35 @@ set pfile ${file}PS
 # delete files NEWdocumentation and OLDdocumentation 
 foreach prefix {NEW OLD} {rm $prefix$file} 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**2. **Command substitution is triggered by the [ ] characters. The brackets must enclose a valid script. The script is evaluated and the result is substituted. 
+
+Command substitution is triggered by the [ ] characters. The brackets must enclose a valid script. The script is evaluated and the result is substituted. 
+
 Compare command construction in csh. 
 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 set degree 30 
 set pi 3.14159265 
 # expr is a command evaluating a numeric expression 
 set radian [expr $pi*$degree/180] 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**3. **Backslash substitution is triggered by the backslash character. It is used to insert special characters like $, [ , ] , etc. It is also useful to insert a new line, a backslash terminated line is continued on the following line. 
+
+Backslash substitution is triggered by the backslash character. It is used to insert special characters like $, [ , ] , etc. It is also useful to insert a new line, a backslash terminated line is continued on the following line. 
+
 TCL uses two forms of *quoting* to prevent substitution and word breaking. 
 
-**4. **Double quote *quoting* enables the definition of a string with space and tabs as a single word. Substitutions are still performed inside the inverted commas ; ;. 
+Double quote *quoting* enables the definition of a string with space and tabs as a single word. Substitutions are still performed inside the inverted commas " ". 
 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # set msg to ;the price is 12.00; 
 set price 12.00 
 set msg ;the price is $price; 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-**5. **Braces *quoting* prevents all substitutions. Braces are also nested. The main use of braces is to defer evaluation when defining procedures and control structures. Braces are used for a clearer presentation of TCL scripts on several lines. 
-**Example** 
+
+Braces *quoting* prevents all substitutions. Braces are also nested. The main use of braces is to defer evaluation when defining procedures and control structures. Braces are used for a clearer presentation of TCL scripts on several lines. 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 set x 0 
 # this will loop for ever 
@@ -285,17 +222,20 @@ while {$x  3}
 set x [expr $x+1] 
 } 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Comments start with a # character as the first non-blank character in a command. To add a comment at the end of the line, the comment must be preceded by a semi-colon to end the preceding command. 
-**Example** 
+
+Comments start with a \# character as the first non-blank character in a command. To add a comment at the end of the line, the comment must be preceded by a semi-colon to end the preceding command. 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # This is a comment 
 set a 1 # this is not a comment 
 set b 1; # this is a comment 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The number of words is never changed by substitution when parsing in TCL. For example, the result of a substitution is always a single word. This is different from csh but convenient as the behavior of the parser is more predictable. It may sometimes be necessary to force a second round of parsing. **eval **accomplishes this: it accepts several arguments, concatenates them and executes the resulting script. 
 
+The number of words is never changed by substitution when parsing in TCL. For example, the result of a substitution is always a single word. This is different from csh but convenient as the behavior of the parser is more predictable. It may sometimes be necessary to force a second round of parsing. **eval** accomplishes this: it accepts several arguments, concatenates them and executes the resulting script. 
 
-**Example** 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 # I want to delete two files 
 
@@ -309,63 +249,70 @@ exec rm $files
 # a second evaluation will do it 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-@subsection occt_2142243456_16685307296 Accessing variables in TCL and Draw
+@subsection occt_draw_2_3 Accessing variables in TCL and Draw
 
-TCL variables have only string values. Note that even numeric values are stored as string literals, and computations using the **expr **command start by parsing the strings. Draw, however, requires variables with other kinds of values such as curves, surfaces or topological shapes. 
+TCL variables have only string values. Note that even numeric values are stored as string literals, and computations using the **expr** command start by parsing the strings. Draw, however, requires variables with other kinds of values such as curves, surfaces or topological shapes. 
 
 TCL provides a mechanism to link user data to variables. Using this functionality, Draw defines its variables as TCL variables with associated data. 
 
-The string value of a Draw variable is meaningless. It is usually set to the name of the variable itself. Consequently, preceding a Draw variable with a *$ *does not change the result of a command. The content of a Draw variable is accessed using appropriate commands. 
+The string value of a Draw variable is meaningless. It is usually set to the name of the variable itself. Consequently, preceding a Draw variable with a *$* does not change the result of a command. The content of a Draw variable is accessed using appropriate commands. 
 
 There are many kinds of Draw variables, and new ones may be added with C++. Geometric and topological variables are described below. 
 
-Draw numeric variables can be used within an expression anywhere a Draw command requires a numeric value. The **expr **command is useless in this case as the variables are stored not as strings but as floating point values. 
+Draw numeric variables can be used within an expression anywhere a Draw command requires a numeric value. The **expr** command is useless in this case as the variables are stored not as strings but as floating point values. 
 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # dset is used for numeric variables 
 # pi is a predefined Draw variable 
 dset angle pi/3 radius 10 
 point p radius*cos(angle) radius*sin(angle) 0 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-It is recommended that you use TCL variables only for strings and Draw for numerals. That way, you will avoid the **expr **command. As a rule, Geometry and Topology require numbers but no strings. 
+It is recommended that you use TCL variables only for strings and Draw for numerals. That way, you will avoid the **expr** command. As a rule, Geometry and Topology require numbers but no strings. 
+
+@subsubsection occt_draw_2_3_1 set, unset
 
-@subsubsection occt_2142243456_166853072961 set, unset
+Syntax:                  
 
-Syntax:                  set varname [value] 
+~~~~~
+set varname [value] 
 unset varname [varname varname ...] 
+~~~~~
+
+**set** assigns a string value to a variable. If the variable does not already exist, it is created. 
 
-**set **assigns a string value to a variable. If the variable does not already exist, it is ñreated. 
+Without a value, **set** returns the content of the variable. 
 
-Without a value, **set **returns the content of the variable. 
+**unset** deletes variables. It is is also used to delete Draw variables. 
 
-**unset **deletes variables. It is is also used to delete Draw variables. 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-set a ;Hello world; 
-set b ;Goodbye; 
+set a "Hello world"
+set b "Goodbye" 
 set a 
-== ;Hello world; 
+== "Hello world" 
 unset a b 
 set a 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-<h4>NOTE</h4>
-*The set command can set only one variable, unlike the dset command.* 
-
+**Note**, that the *set* command can set only one variable, unlike the *dset* command. 
 
-See also: **dset**, **dval** 
 
+@subsubsection occt_draw_2_3_2 dset, dval
 
-@subsubsection occt_2142243456_166853072962 dset, dval
+Syntax
 
-Syntax                   dset var1 value1 vr2 value2 ... 
+~~~~~
+dset var1 value1 vr2 value2 ... 
 dval name 
+~~~~~
 
-**dset **assigns values to Draw numeric variables. The argument can be any numeric expression including Draw numeric variables. Since all Draw commands expect a numeric expression, there is no need to use $ or **expr**. The **dset **command can assign several variables. If there is an odd number of arguments, the last variable will be assigned a value of 0. If the variable does not exist, it will be created. 
+*dset* assigns values to Draw numeric variables. The argument can be any numeric expression including Draw numeric variables. Since all Draw commands expect a numeric expression, there is no need to use $ or *expr*. The *dset* command can assign several variables. If there is an odd number of arguments, the last variable will be assigned a value of 0. If the variable does not exist, it will be created. 
 
-**dval **evaluates an expression containing Draw numeric variables and returns the result as a string, even in the case of a single variable. This is not used in Draw commands as these usually interpret the expression. It is used for basic TCL commands expecting strings. 
-**Example** 
+*dval* evaluates an expression containing Draw numeric variables and returns the result as a string, even in the case of a single variable. This is not used in Draw commands as these usually interpret the expression. It is used for basic TCL commands expecting strings. 
+
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # z is set to 0 
 dset x 10 y 15 z 
@@ -378,19 +325,17 @@ point p x y z
 puts ;x = [dval x], cos(x/pi) = [dval cos(x/pi)]; 
 == x = 10, cos(x/pi) = -0.99913874099467914 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-<h4>NOTE</h4>
-*In TCL, parentheses are not considered to be special characters. Do not forget to quote an expression if it contains spaces in order to avoid parsing different words. (a + b) is parsed as three words:;(a + b); or (a+b) are correct.* 
 
-See also: **set**, **unset** 
+**Note,** that in TCL, parentheses are not considered to be special characters. Do not forget to quote an expression if it contains spaces in order to avoid parsing different words. <i>(a + b)</i> is parsed as three words: <i>"(a + b)"</i> or <i>(a+b)</i> are correct.* 
 
 
-
-@subsection occt_2142243456_16685307297 lists
+@subsection occt_draw_2_4 lists
 
 TCL uses lists. A list is a string containing elements separated by spaces or tabs. If the string contains braces, the braced part accounts as one element. 
 
 This allows you to insert lists within lists. 
-**Example** 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # a list of 3 strings 
 ;a b c; 
@@ -398,22 +343,30 @@ This allows you to insert lists within lists.
 # a list of two strings the first is a list of 2 
 ;{a b} c; 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Many TCL commands return lists and **foreach **is a useful way to create loops on list elements. 
 
-@subsubsection occt_2142243456_166853072971 Control Structures
+Many TCL commands return lists and **foreach** is a useful way to create loops on list elements. 
+
+@subsubsection occt_draw_2_5 Control Structures
 
 TCL allows looping using control structures. The control structures are implemented by commands and their syntax is very similar to that of their C counterparts (**if**, **while**, **switch**, etc.). In this case, there are two main differences between TCL and C: 
 
-2. You use braces instead of parentheses to enclose conditions. 
-3. You do not start the script on the next line of your command. 
+* You use braces instead of parentheses to enclose conditions. 
+* You do not start the script on the next line of your command. 
+
+
+@subsubsection occt_draw_2_5_1 if
+
+Syntax       
+
+~~~~~
+if condition script [elseif script .... else script] 
+~~~~~
 
+**If** evaluates the condition and the script to see whether the condition is true. 
 
-@subsubsection occt_2142243456_166853072911 if
 
-Syntax       if condition script [elseif script .... else script] 
 
-**If **evaluates the condition and the script to see whether the condition is true. 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 if {$x  0} { 
 puts ;positive; 
@@ -424,14 +377,20 @@ puts ;negative;
 } 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-@subsubsection occt_2142243456_166853072912 while, for, foreach
+@subsubsection occt_draw_2_5_2 while, for, foreach
 
-Syntax:                  while condition script 
+Syntax:                  
+
+
+~~~~~~
+while condition script 
 for init condition reinit script 
 foreach varname list script 
+~~~~~
+
+The three loop structures are similar to their C or csh equivalent. It is important to use braces to delay evaluation. **foreach** will assign the elements of the list to the variable before evaluating the script. \
 
-The three loop structures are similar to their C or csh equivalent. It is important to use braces to delay evaluation. **foreach **will assign the elements of the list to the variable before evaluating the script. 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # while example 
 dset x 1.1 
@@ -448,43 +407,52 @@ for {set i 0} {$i  10} {incr i} {
 # foreach example 
 foreach object {crapo tomson lucas} {display $object} 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-See also: **break**, **continue** 
 
+@subsubsection occt_draw_2_5_3 break, continue
 
-@subsubsection occt_2142243456_166853072913 break, continue
+Syntax:                  
 
-Syntax:                  break 
+~~~~~
+break 
 continue 
+~~~~~
 
-Within loops, the **break **and **continue **commands have the same effect as in C. 
+Within loops, the **break** and **continue** commands have the same effect as in C. 
 
-**break **interrupts the innermost loop and **continue **jumps to the next iteration. 
-**Example** 
+**break** interrupts the innermost loop and **continue** jumps to the next iteration. 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # search the index for which t$i has value ;secret; 
 for {set i 1} {$i = 100} {incr i} { 
   if {[set t$i] == ;secret;} break; 
 } 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-@subsection occt_2142243456_16685307292 Procedures
 
-TCL can be extended by defining procedures using the **proc **command, which sets up a context of local variables, binds arguments and executes a TCL script. 
+@subsection occt_draw_2_6 Procedures
+
+TCL can be extended by defining procedures using the **proc** command, which sets up a context of local variables, binds arguments and executes a TCL script. 
 
 The only problematic aspect of procedures is that variables are strictly local, and as they are implicitly created when used, it may be difficult to detect errors. 
 
-There are two means of accessing a variable outside the scope of the current procedures: **global **declares a global variable (a variable outside all procedures); **upvar **accesses a variable in the scope of the caller. Since arguments in TCL are always string values, the only way to pass Draw variables is by reference, i.e. passing the name of the variable and using the **upvar **command as in the following examples. 
+There are two means of accessing a variable outside the scope of the current procedures: **global** declares a global variable (a variable outside all procedures); **upvar** accesses a variable in the scope of the caller. Since arguments in TCL are always string values, the only way to pass Draw variables is by reference, i.e. passing the name of the variable and using the **upvar** command as in the following examples. 
+
+As TCL is not a strongly typed language it is very difficult to detect programming errors and debugging can be tedious. TCL procedures are, of course, not designed for large scale software development but for testing and simple command or interactive writing. 
 
-As TCL is not a strongly typed language it is very difficult to detect programing errors and debugging can be tedious. TCL procedures are, of course, not designed for large scale software development but for testing and simple command or interactive writing. 
 
+@subsubsection occt_draw_2_6_1 proc
 
-@subsubsection occt_2142243456_166853072921 proc
+Syntax:
 
-Syntax:                  proc argumentlist script 
+~~~~~
+proc argumentlist script 
+~~~~~
 
-**proc **defines a procedure. An argument may have a default value. It is then a list of the form {argument value}. The script is the body of the procedure. 
+**proc** defines a procedure. An argument may have a default value. It is then a list of the form {argument value}. The script is the body of the procedure. 
 
-**return **gives a return value to the procedure. 
-**Example** 
+**return** gives a return value to the procedure. 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # simple procedure 
 proc hello {} { 
@@ -501,22 +469,25 @@ proc fact n {
   } 
 } 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-See also: **global**, **upvar** 
 
 
-@subsubsection occt_2142243456_166853072922 global, upvar
+@subsubsection occt_draw_2_6_2 global, upvar
+
+Syntax:                 
 
-Syntax:                  global varname [varname ...] 
+~~~~~
+global varname [varname ...] 
 upvar varname localname [varname localname ...] 
+~~~~~
 
-**global **accesses high level variables. Unlike C, global variables are not visible in procedures. 
 
-**upvar **gives a local name to a variable in the caller scope. This is useful when an argument is the name of a variable instead of a value. This is a call by reference and is the only way to use Draw variables as arguments. 
+**global** accesses high level variables. Unlike C, global variables are not visible in procedures. 
 
-<h4>NOTE</h4>
-*Note in the following examplesthat the $ character is always* 
-*necessarily used to access the arguments.* 
-**Example** 
+**upvar** gives a local name to a variable in the caller scope. This is useful when an argument is the name of a variable instead of a value. This is a call by reference and is the only way to use Draw variables as arguments. 
+
+**Note** that in the following examples the \$ character is always necessarily used to access the arguments.
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # convert degree to radian 
 # pi is a global variable 
@@ -530,7 +501,7 @@ proc linang {linename x y angle} {
 }
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-@section occt_2142243456_967049381 Basic Commands
+@section occt_draw_3 Basic Commands
 
 This chapter describes all the commands defined in the basic Draw package. Some are TCL commands, but most of them have been formulated in Draw. These commands are found in all Draw applications. The commands are grouped into four sections: 
 
@@ -539,93 +510,121 @@ This chapter describes all the commands defined in the basic Draw package. Some
   * Graphic commands, which are used to manage the graphic system, and so pertain to views.
   * Variable display commands, which are used to manage the display of objects within given views.
 
-Note that Draw also features a GUI taskbar providing an alternative way to give certain general, graphic and display commands 
+Note that Draw also features a GUI task bar providing an alternative way to give certain general, graphic and display commands 
 
 
+@subsection occt_draw_3_1 General commands
 
-@subsection occt_2142243456_9670493811 General commands
+This section describes several useful commands:
 
-This section describes several useful commands: **help **to get information, **source **to eval a script from a file, **spy **to capture the commands in a file, **cpulimit **to limit the process cpu time, **wait **to waste some time, **chrono **to time commands. 
+  * **help** to get information, 
+  * **source** to eval a script from a file, 
+  * **spy** to capture the commands in a file,
+  * **cpulimit** to limit the process cpu time, 
+  * **wait** to waste some time, 
+  * **chrono** to time commands. 
 
+@subsubsection occt_draw_3_1_1 help
 
-@subsubsection occt_2142243456_96704938111 help
+Syntax:                  
 
-Syntax:                  help [command [helpstring group]] 
+~~~~~
+help [command [helpstring group]] 
+~~~~~
 
 Provides help or modifies the help information. 
 
-**help **without arguments lists all groups and the commands in each group. 
+**help** without arguments lists all groups and the commands in each group. 
 
-Specifying the command returns its syntax and in some cases, information on the command, The joker,*, is automatically added at the end so that all completing commands are returned as well. 
-**Example** 
+Specifying the command returns its syntax and in some cases, information on the command, The joker \* is automatically added at the end so that all completing commands are returned as well. 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # Gives help on all commands starting with *a* 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-@subsubsection occt_2142243456_96704938112 source
 
-Syntax:                  source filename 
 
+@subsubsection occt_draw_3_1_2 source
+
+Syntax:
+
+~~~~~
+source filename 
+~~~~~
 Executes a file. 
 
-The **exit **command will terminate the file. 
+The **exit** command will terminate the file. 
 
-See also: exit 
+@subsubsection occt_draw_3_1_3 spy
 
+Syntax:                  
 
-@subsubsection occt_2142243456_96704938113 spy
+~~~~~
+spy [filename] 
+~~~~~
 
-Syntax:                  spy [filename] 
+Saves interactive commands in the file. If spying has already been performed, the current file is closed. **spy** without an argument closes the current file and stops spying. If a file already exists, the file is overwritten. Commands are not appended. 
 
-Saves interactive commands in the file. If spying has already been performed, the current file is closed. **spy **without an argument closes the current file and stops spying. If a file already exists, the file is overwritten. Commands are not appended. 
 If a command returns an error it is saved with a comment mark. 
 
-The file created by **spy **can be executed with the **source **command. 
-**Example** 
+The file created by **spy** can be executed with the **source** command. 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # all commands will be saved in the file ;session; 
 spy session 
 # the file ;session; is closed and commands are not saved 
 spy 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-See also: **source** 
 
 
-@subsubsection occt_2142243456_96704938114 cpulimit
 
-Syntax:                  cpulimit [nbseconds] 
+@subsubsection occt_draw_3_1_4 cpulimit
+
+Syntax:                  
 
-**cpulimit **limits a process after the number of seconds specified in *nbseconds. *It is used in tests to avoid infinite loops. **cpulimit **without arguments removes all existing limits. 
-**Example** 
+~~~~~
+cpulimit [nbseconds] 
+~~~~~
+
+**cpulimit**limits a process after the number of seconds specified in nbseconds. It is used in tests to avoid infinite loops. **cpulimit** without arguments removes all existing limits. 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 #limit cpu to one hour 
 cpulimit 3600 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-@subsubsection occt_2142243456_96704938115 wait
-
-Syntax:                  wait [nbseconds] 
+@subsubsection occt_draw_3_1_5 wait
 
+Syntax:
+~~~~~
+wait [nbseconds] 
+~~~~~
 Suspends execution for the number of seconds specified in *nbseconds*. The default value is ten (10) seconds. This is a useful command for a slide show. 
 
-<h5>Example</h5>
-
+~~~~~
 # You have ten seconds ... 
 wait 
+~~~~~
 
-@subsubsection occt_2142243456_96704938116 chrono
+@subsubsection occt_draw_3_1_6 chrono
 
-Syntax:                  chrono [ name start/stop/reset/show] 
+Syntax:                  
 
-Without arguments, **chrono **activates Draw chronometers. The elapsed time ,cpu system and cpu user times for each command will be printed. 
+~~~~~
+chrono [ name start/stop/reset/show] 
+~~~~~
 
-With arguments, **chrono **is used to manage activated chronometers. You can perform the following actions with a chronometer. 
+Without arguments, **chrono** activates Draw chronometers. The elapsed time ,cpu system and cpu user times for each command will be printed. 
 
+With arguments, **chrono** is used to manage activated chronometers. You can perform the following actions with a chronometer. 
   * run the chronometer (start).
   * stop the chronometer (stop).
   * reset the chronometer to 0 (reset).
   * display the current time (show).
 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 chrono 
 ==Chronometers activated. 
@@ -635,17 +634,21 @@ ptorus t 20 5
 ==CPU system time: 0 seconds 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-@subsection occt_2142243456_9670493812  Variable management commands
+@subsection occt_draw_3_2  Variable management commands
 
-@subsubsection occt_2142243456_96704938121 isdraw, directory
+@subsubsection occt_draw_3_2_1 isdraw, directory
 
-Syntax:                  isdraw varname 
+Syntax:                  
+~~~~~
+isdraw varname 
 directory [pattern] 
+~~~~~
+
+**isdraw** tests to see if a variable is a Draw variable. **isdraw** will return 1 if there is a Draw value attached to the variable. 
 
-**isdraw **tests to see if a variable is a Draw variable. **isdraw **will return 1 if there is a Draw value attached to the variable. 
-Use **directory **to return a list of all Draw global variables matching a pattern. 
+Use **directory** to return a list of all Draw global variables matching a pattern. 
 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 set a 1 
 isdraw a 
@@ -662,19 +665,22 @@ isdraw c
 # to destroy all Draw objects with name containing curve 
 foreach var [directory *curve*] {unset $var} 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-See also: **whatis** 
 
 
-@subsubsection occt_2142243456_96704938122 whatis, dump
+@subsubsection occt_draw_3_2_2 whatis, dump
 
-Syntax:                  whatis varname [varname ...] 
+Syntax:
+
+~~~~~
+whatis varname [varname ...] 
 dump varname [varname ...] 
+~~~~~
 
-**whatis **returns short information about a Draw variable. This is usually the type name. 
+**whatis** returns short information about a Draw variable. This is usually the type name. 
 
-**dump **returns a brief type description, the coordinates, and if need be, the parameters of a Draw variable. 
+**dump** returns a brief type description, the coordinates, and if need be, the parameters of a Draw variable. 
 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 circle c 0 0 1 0 5 
 whatis c 
@@ -689,20 +695,22 @@ XAxis :1, 0
 YAxis :-0, 1 
 Radius :5 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-<h4>NOTE</h4>
-*The behavior of whatis on other variables (not Draw) is not* 
-*excellent.* 
+
+**Note** The behavior of *whatis* on other variables (not Draw) is not excellent. 
 
 
-@subsubsection occt_2142243456_96704938123 rename, copy
+@subsubsection occt_draw_3_2_3 rename, copy
 
-Syntax:      rename varname tovarname [varname tovarname ...] 
+Syntax:      
+~~~~~
+rename varname tovarname [varname tovarname ...] 
 copy varname tovarname [varname tovarname ...] 
+~~~~~
 
-**rename **changes the name of a Draw variable. The original variable will no longer exist. Note that the content is not modified. Only the name is changed. 
+  * **rename** changes the name of a Draw variable. The original variable will no longer exist. Note that the content is not modified. Only the name is changed. 
+  * **copy** creates a new variable with a copy of the content of an existing variable. The exact behavior of **copy** is type dependent; in the case of certain topological variables, the content may still be shared. 
 
-**copy **creates a new variable with a copy of the content of an existing variable. The exact behavior of **copy **is type dependent; in the case of certain topological variables, the content may still be shared. 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 circle c1 0 0 1 0 5 
 rename c1 c2 
@@ -711,22 +719,26 @@ rename c1 c2
 copy c2 c3 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-@subsubsection occt_2142243456_96704938124 datadir, save, restore
+@subsubsection occt_draw_3_2_4 datadir, save, restore
 
-Syntax:                  datadir [directory] 
+Syntax:
+~~~~~
+datadir [directory] 
 save variable [filename] 
 restore filename [variablename] 
+~~~~~
 
-**datadir **without arguments prints the path of the current data directory. 
-**datadir **with an argument sets the data directory path. 
-If the path starts with a dot (.) only the last directory name will be changed in the path. 
+  * **datadir** without arguments prints the path of the current data directory. 
+  * **datadir** with an argument sets the data directory path. \
 
-**save **writes a file in the data directory with the content of a variable. By default the name of the file is the name of the variable. To give a different name use a second argument. 
+If the path starts with a dot (.) only the last directory name will be changed in the path. 
 
-**restore **reads the content of a file in the data directory in a local variable. By default, the name of the variable is the name of the file. To give a different name, use a second argument. 
+  * **save** writes a file in the data directory with the content of a variable. By default the name of the file is the name of the variable. To give a different name use a second argument. 
+  * **restore** reads the content of a file in the data directory in a local variable. By default, the name of the variable is the name of the file. To give a different name, use a second argument. 
 
 The exact content of the file is type-dependent. They are usually ASCII files and so, architecture independent. 
-**Example** 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # note how TCL accesses shell environment variables 
 # using $env() 
@@ -747,17 +759,18 @@ ls [datadir]
 restore theBox 
 == theBox 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-@subsection occt_2142243456_9670493813 User defined commands
 
-DrawTrSurf provides commands to create and display a Draw **geometric **variable from a Geom_Geometry object and also get a Geom_Geometry object from a Draw geometric variable name. 
+@subsection occt_draw_3_3 User defined commands
 
-DBRep provides commands to create and display a Draw **topological **variable from a TopoDS_Shape object and also get a TopoDS_Shape object from a Draw topological variable name. 
+*DrawTrSurf* provides commands to create and display a Draw **geometric** variable from a Geom_Geometry object and also get a Geom_Geometry object from a Draw geometric variable name. 
 
-@subsubsection occt_2142243456_96704938131 set
+*DBRep* provides commands to create and display a Draw **topological** variable from a TopoDS_Shape object and also get a TopoDS_Shape object from a Draw topological variable name. 
 
-**DrawTrSurf Package:** 
-Syntax: 
+@subsubsection occt_draw_3_3_1 set
+
+#### In *DrawTrSurf* package:
 
+~~~~~
 void Set(Standard_CString&amp; Name,const gp_Pnt&amp; G) ; 
 void Set(Standard_CString&amp; Name,const gp_Pnt2d&amp; G) ; 
 void Set(Standard_CString&amp; Name, 
@@ -770,43 +783,51 @@ void Set(Standard_CString&amp; Name,
 const Handle(Poly_Polygon3D)&amp; P) ; 
 void Set(Standard_CString&amp; Name, 
 const Handle(Poly_Polygon2D)&amp; P) ; 
+~~~~~
 
-**DBRep Package:** 
-Syntax: 
+#### In *DBRep* package:
 
+~~~~~
 void Set(const Standard_CString Name, 
 const TopoDS_Shape&amp; S) ; 
+~~~~~
 
-**Example: DrawTrSurf** 
+Example of *DrawTrSurf*
 
+~~~~~
 Handle(Geom2d_Circle) C1 = new Geom2d_Circle 
 (gce_MakeCirc2d (gp_Pnt2d(50,0,) 25)); 
 DrawTrSurf::Set(char*, C1); 
+~~~~~
 
-**Example: DBRep** 
+Example of *DBRep* 
 
+~~~~~
 TopoDS_Solid B; 
 B = BRepPrimAPI_MakeBox (10,10,10); 
 DBRep::Set(char*,B); 
+~~~~~
 
-See also: **get** 
-
-@subsubsection occt_2142243456_96704938132 get
-
-**DrawTrSurf Package:** 
-Syntax: 
+@subsubsection occt_draw_3_3_2 get
 
+#### In *DrawTrSurf* package:
+~~~~~
 Handle_Geom_Geometry Get(Standard_CString&amp; Name) ; 
+~~~~~
 
-**DBRep Package:** 
-Syntax: 
+#### In *DBRep* package:
 
+~~~~~
 TopoDS_Shape Get(Standard_CString&amp; Name, 
 const TopAbs_ShapeEnum Typ = TopAbs_SHAPE, 
 const Standard_Boolean Complain 
 = Standard_True) ; 
-**Example: DrawTrSurf** 
+~~~~~
 
+Example of *DrawTrSurf*
+
+~~~~~
 Standard_Integer MyCommand 
 (Draw_Interpretor&amp; theCommands, 
 Standard_Integer argc, char** argv) 
@@ -815,9 +836,11 @@ Standard_Integer argc, char** argv)
 // name 
 Handle (Geom_Geometry) aGeom= DrawTrSurf::Get(argv[1]); 
 } 
+~~~~~
 
-**Example: DBRep** 
+Example of *DBRep*
 
+~~~~~
 Standard_Integer MyCommand 
 (Draw_Interpretor&amp; theCommands, 
 Standard_Integer argc, char** argv) 
@@ -826,34 +849,38 @@ Standard_Integer argc, char** argv)
 // name 
 TopoDS_Solid B = DBRep::Get(argv[1]); 
 } 
-See also: **set** 
+~~~~~
 
-@section occt_2142243456_445622066 Graphic Commands
+@section occt_draw_4 Graphic Commands
 
 Graphic commands are used to manage the Draw graphic system. Draw provides a 2d and a 3d viewer with up to 30 views. Views are numbered and the index of the view is displayed in the window’s title. Objects are displayed in all 2d views or in all 3d views, depending on their type. 2d objects can only be viewed in 2d views while 3d objects – only in 3d views correspondingly. 
 
-@subsection occt_2142243456_4456220661 Axonometric viewer
+@subsection occt_draw_4_1 Axonometric viewer
 
-@subsubsection occt_2142243456_44562206611 view, delete
+@subsubsection occt_draw_4_1_1 view, delete
 
-Syntax:                  view index type [X Y W H] 
+Syntax:                  
+~~~~~
+view index type [X Y W H] 
 delete [index] 
+~~~~~
 
-**view **is the basic view creation command: it creates a new view with the given index. If a view with this index already exits, it is deleted. The view is created with default parameters and X Y W H are the position and dimensions of the window on the screen. Default values are 0, 0, 500, 500. 
+**view** is the basic view creation command: it creates a new view with the given index. If a view with this index already exits, it is deleted. The view is created with default parameters and X Y W H are the position and dimensions of the window on the screen. Default values are 0, 0, 500, 500. 
 
-As a rule it is far simpler either to use the procedures **axo**, **top**, **left **or to click on the desired view type in the menu under *Views *in the taskbar.. 
+As a rule it is far simpler either to use the procedures **axo**, **top**, **left** or to click on the desired view type in the menu under *Views* in the task bar.. 
 
-**delete **deletes a view. If no index is given, all the views are deleted. 
+**delete** deletes a view. If no index is given, all the views are deleted. 
 
 Type selects from the following range: 
 
-  * AXON: Axonometric view
-  * PERS: Perspective view
-  * +X+Y: View on both axes (i.e. a top view), other codes are -X+Y, +Y-Z etc.
-  * -2D- : 2d view
+  * *AXON* : Axonometric view
+  * *PERS* : Perspective view
+  * *+X+Y* : View on both axes (i.e. a top view), other codes are *-X+Y, +Y-Z*, etc.
+  * *-2D-* : 2d view
 
 The index, the type, the current zoom are displayed in the window title . 
-**Example** 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # this is the content of the mu4 procedure 
 proc mu4 {} { 
@@ -864,66 +891,70 @@ view 3 +Y+Z 728 20 400 400
 view 4 AXON 728 450 400 400 
 } 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 See also: **axo, pers, top, bottom, left, right, front, back, mu4, v2d, av2d, smallview** 
 
-@subsubsection occt_2142243456_44562206612  axo, pers, top, ...
+@subsubsection occt_draw_4_1_2  axo, pers, top, ...
+
+Syntax:      
 
-Syntax:      axo 
+~~~~~
+axo 
 pers 
 ... 
 smallview type 
+~~~~~
 
 All these commands are procedures used to define standard screen layout. They delete all existing views and create new ones. The layout usually complies with the European convention, i.e. a top view is under a front view. 
 
-  * **axo **creates a large window axonometric view.
-  * **pers **creates a large window perspective view.
-  * **top**, **bottom**, **left**, **right**, **front**, **back **create a large window axis view
-  * **mu4 **creates four small window viewsview: front, left, top and axo.
-  * **v2d**: creates a large window 2d view.
-  * **av2d **creates two small window views, one 2d and one axo
-**smallview **creates a view at the bottom right of the screen of the given type. 
+  * **axo** creates a large window axonometric view;
+  * **pers** creates a large window perspective view;
+  * **top**, **bottom**, **left**, **right**, **front**, **back** create a large window axis view;
+  * **mu4** creates four small window views: front, left, top and axo.
+  * **v2d** creates a large window 2d view.
+  * **av2d** creates two small window views, one 2d and one axo
+  * **smallview** creates a view at the bottom right of the screen of the given type. 
 
 See also: **view**, **delete** 
 
+@subsubsection occt_draw_4_1_3 mu, md, 2dmu, 2dmd, zoom, 2dzoom
 
-@subsubsection occt_2142243456_44562206613 mu, md, 2dmu, 2dmd, zoom, 2dzoom
+Syntax:
 
-Syntax:                  mu [index] value 
-2dmu [index] value 
-zoom [index] value 
-wzoom 
+~~~~~
+    mu [index] value 
+    2dmu [index] value 
+    zoom [index] value 
+    wzoom 
+~~~~~
 
-**mu **(magnify up) increases the zoom in one or several views by a factor of 10%. 
-**md **(magnify down) decreases the zoom by the inverse factor. **2dmu **and **2dmd** 
+* **mu** (magnify up) increases the zoom in one or several views by a factor of 10%. 
+* **md** (magnify down) decreases the zoom by the inverse factor. **2dmu** and **2dmd** 
 perform the same on one or all 2d views. 
+* **zoom** and **2dzoom** set the zoom factor to a value specified by you. The current zoom factor is always displayed in the window’s title bar. Zoom 20 represents a full screen view in a large window; zoom 10, a full screen view in a small one. 
+* **wzoom** (window zoom) allows you to select the area you want to zoom in on with the mouse. You will be prompted to give two of the corners of the area that you want to magnify and the rectangle so defined will occupy the window of the view. 
 
-**zoom **and **2dzoom **set the zoom factor to a value specified by you. The current 
-zoom factor is always displayed in the window’s title bar. Zoom 20 represents a 
-full screen view in a large window; zoom 10, a full screen view in a small one. 
-
-**wzoom **(window zoom) allows you to select the area you want to zoom in on with the mouse. You will be prompted to give two of the corners of the area that you want to magnify and the rectangle so defined will occupy the window of the view. 
-
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-# set a zoom of 2.5 
-zoom 2.5 
+    # set a zoom of 2.5 
+    zoom 2.5 
 
-# magnify by 10% 
-mu 1 
+    # magnify by 10% 
+    mu 1 
 
-# magnify by 20% 
+    # magnify by 20% 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 See also: **fit**, **2dfit** 
 
 
-@subsubsection occt_2142243456_44562206614 pu, pd, pl, pr, 2dpu, 2dpd, 2dpl, 2dpr
+@subsubsection occt_draw_4_14 pu, pd, pl, pr, 2dpu, 2dpd, 2dpl, 2dpr
 
 Syntax:                  pu [index] 
 pd [index] 
 
 The **p_ **commands are used to pan. **pu **and **pd **pan up and down respectively;**pl **and **pr **pan left and right respectively. Each time the view is displaced by 40 pixels.When no index is given, all views will pan in the direction specified. 
 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # you have selected one anonometric view 
 pu 
@@ -937,16 +968,20 @@ pu 3
 See also: **fit**, **2dfit** 
 
 
-@subsubsection occt_2142243456_44562206615 fit, 2dfit
+@subsubsection occt_draw_4_1_5 fit, 2dfit
+
+Syntax:      
 
-Syntax:      fit [index] 
+~~~~~
+fit [index] 
 2dfit [index] 
+~~~~~
 
-**fit **computes the best zoom and pans on the content of the view. The content of the view will be centered and fit the whole window. 
+**fit** computes the best zoom and pans on the content of the view. The content of the view will be centered and fit the whole window. 
 
 When fitting all views a unique zoom is computed for all the views. All views are on the same scale. 
 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # fit only view 1 
 fit 1 
@@ -956,84 +991,100 @@ fit 1
 See also: **zoom**, **mu**, **pu** 
 
 
-@subsubsection occt_2142243456_44562206616 u, d, l, r
+@subsubsection occt_draw_4_1_6 u, d, l, r
 
-Syntax:      u [index] 
+Syntax:      
+
+~~~~~
+u [index] 
 d [index] 
 l [index] 
 r [index] 
+~~~~~
 
-**u**, **d**, **l**, **r **Rotate the object in view around its axis by five degrees up, down, left or right respectively. This command is restricted to axonometric and perspective views. 
+**u**, **d**, **l**, **r** Rotate the object in view around its axis by five degrees up, down, left or right respectively. This command is restricted to axonometric and perspective views. 
 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # rotate the view up 
 u 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-@subsubsection occt_2142243456_44562206617 focal, fu, fd
+@subsubsection occt_draw_4_1_7 focal, fu, fd
 
-Syntax:                  focal [f] 
+Syntax:                  
+~~~~~
+focal [f] 
 fu [index] 
 fd [index] 
-**focal **changes the vantage point in perspective views. A low f value increases the perspective effect; a high one give a perspective similar to that of an axonometric view. The default value is 500. 
+~~~~~
+
+* **focal** changes the vantage point in perspective views. A low f value increases the perspective effect; a high one give a perspective similar to that of an axonometric view. The default value is 500. 
+* **fu** and **fd** increase or decrease the focal value by 10%. **fd** makes the eye closer to the object. 
 
-Use **fu **and **fd **to increase or decrease the focal value by 10%. **fd **makes the eye closer to the object. 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 pers 
 repeat 10 fd 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-*NOTE* 
-*Do not use a negative or null focal value.* 
+
+**Note**: Do not use a negative or null focal value. 
 
 See also: **pers** 
 
+@subsubsection occt_draw_4_1_8 color
+
+Syntax: 
 
-@subsubsection occt_2142243456_44562206618 color
+~~~~~
+color index name 
+~~~~~
 
-Syntax: color index name 
+**color** sets the color to a value. The index of the *color* is a value between 0 and 15. The name is an X window color name. The list of these can be found in the file *rgb.txt* in the X library directory. 
 
-**color **sets the color to a value. The index of the color is a value between 0 and 15. The name is an X window color name. The list of these can be found in the file rgb.txt in the X library directory. 
+The default values are: 0 White, 1 Red, 2 Green, 3 Blue, 4 Cyan, 5 Gold, 6 Magenta, 7 Marron, 8 Orange, 9 Pink, 10 Salmon, 11 Violet, 12 Yellow, 13 Khaki, 14 Coral. 
 
-The default values are 0 White, 1 Red, 2 Green, 3 Blue, 4 Cyan, 5 Gold, 6 Magenta, 7 Marron, 8 Orange, 9 Pink, 10 Salmon, 11 Violet, 12 Yellow, 13 Khaki, 14 Coral. 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # change the value of blue 
-color 3 ;navy blue; 
+color 3 "navy blue" 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-<h4>NOTE</h4>
-*The color change will be visible on the next redraw of the* 
-*views, for example after fit or mu, etc.* 
 
 
-@subsubsection occt_2142243456_44562206619 dtext
+**Note** that the color change will be visible on the next redraw of the views, for example, after *fit* or *mu*, etc. 
+
+@subsubsection occt_draw_4_1_9 dtext
 
-Syntax:      dtext [x y [z]] string 
+Syntax:      
+~~~~~
+dtext [x y [z]] string 
+~~~~~
 
-**dtext **displays a string in all 3d or 2d views. If no coordinates are given, a graphic selection is required. If two coordinates are given, the text is created in a 2d view at the position specified. With 3 coordinates, the text is created in a 3d view. 
+**dtext** displays a string in all 3d or 2d views. If no coordinates are given, a graphic selection is required. If two coordinates are given, the text is created in a 2d view at the position specified. With 3 coordinates, the text is created in a 3d view. 
 
 The coordinates are real space coordinates. 
 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # mark the origins 
 dtext 0 0 bebop 
 dtext 0 0 0 bebop 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-@subsubsection occt_2142243456_445622066110 hardcopy, hcolor, xwd
+@subsubsection occt_draw_4_1_10 hardcopy, hcolor, xwd
 
-Syntax:      hardcopy [index] 
+Syntax:      
+~~~~~
+hardcopy [index] 
 hcolor index width gray 
 xwd [index] filename 
+~~~~~
 
-**hardcopy **creates a postcript file called a4.ps in the current directory. This file contains the postscript description of the view index, and will allow you to print the view. 
-
-**hcolor **lets you change the aspect of lines in the postscript file. It allows to specify a width and a gray level for one of the 16 colors. **width **is measured in points with default value as 1, **gray **is the gray level from 0 = black to 1 = white with default value as 0. All colors are bound to the default values at the beginning. 
+* **hardcopy** creates a postcript file called a4.ps in the current directory. This file contains the postscript description of the view index, and will allow you to print the view. 
+* **hcolor** lets you change the aspect of lines in the postscript file. It allows to specify a width and a gray level for one of the 16 colors. **width** is measured in points with default value as 1, **gray** is the gray level from 0 = black to 1 = white with default value as 0. All colors are bound to the default values at the beginning. 
+* **xwd** creates an X window xwd file from an active view. By default, the index is set to1. To visualize an xwd file, use the unix command **xwud**. 
 
-**xwd **creates an X window xwd file from an active view. By default, the index is set to1. To visualize anxwd file, use the unix command **xwud**. 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # all blue lines (color 3) 
 # will be half-width and gray 
@@ -1047,22 +1098,25 @@ lpr a4.ps
 xwd theview 
 xwud -in theview 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-<h4>NOTE</h4>
-*When more than one view is present, specify the index of the view.* 
-*Only use a postscript printer to print postscript files.* 
+
+**Note:** When more than one view is present, specify the index of the view. 
+
+Only use a postscript printer to print postscript files. 
 
 See also: **color** 
 
 
-@subsubsection occt_2142243456_445622066111 wclick, pick
+@subsubsection occt_draw_4_1_11 wclick, pick
 
-Syntax:      wclick 
+Syntax:      
+~~~~~
+wclick 
 pick index X Y Z b [nowait] 
+~~~~~
 
-**wclick **defers an event until the mouse button is clicked. The message ;just click; is displayed. 
-
-Use the **pick **command to get graphic input. The arguments must be names for variables where the results are stored. 
+**wclick** defers an event until the mouse button is clicked. The message <code>just click</code> is displayed. 
 
+Use the **pick** command to get graphic input. The arguments must be names for variables where the results are stored. 
   * index: index of the view where the input was made.
   * X,Y,Z: 3d coordinates in real world.
   * b: b is the mouse button 1,2 or 3.
@@ -1071,9 +1125,9 @@ When there is an extra argument, its value is not used and the command does not
 
 This option is useful for tracking the pointer. 
 
-*NOTE* 
-*The results are stored in Draw numeric variables.* 
-**Example** 
+**Note** that the results are stored in Draw numeric variables.
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # make a circle at mouse location 
 pick index x y z b 
@@ -1093,15 +1147,17 @@ repaint
 See also: **repaint** 
 
 
-Draw provides commands to manage the display of objects. **display**, **donly **are used to display, **erase**, **clear**, **2dclear **to erase. The **autodisplay **command is used to check whether variables are displayed when created. 
-
-The variable name ;.; (dot) has a special status in Draw. Any Draw command expecting a Draw object as argument can be passed a dot. The meaning of the dot is the following. 
+Draw provides commands to manage the display of objects. 
+* **display**, **donly** are used to display, 
+* **erase**, **clear**, **2dclear** to erase. 
+* **autodisplay** command is used to check whether variables are displayed when created. 
 
+The variable name "." (dot) has a special status in Draw. Any Draw command expecting a Draw object as argument can be passed a dot. The meaning of the dot is the following. 
   * If the dot is an input argument, a graphic selection will be made. Instead of getting the object from a variable, Draw will ask you to select an object in a view.
   * If the dot is an output argument, an unnamed object will be created. Of course this makes sense only for graphic objects: if you create an unnamed number you will not be able to access it. This feature is used when you want to create objects for display only.
-  * If you do not see what you expected while executing loops or sourcing files, use the **repaint **and **dflush **commands.
+  * If you do not see what you expected while executing loops or sourcing files, use the **repaint** and **dflush** commands.
 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # OK use dot to dump an object on the screen 
 dump . 
@@ -1126,14 +1182,21 @@ point . x y z
 # give a name to a graphic object 
 rename . x 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-@subsubsection occt_2142243456_445622066112 autodisplay
 
-Syntax:      autodisplay [0/1] 
 
-By default, Draw automatically displays any graphic object as soon as it is created. This behavior known as autodisplay can be removed with the command **autodisplay**. Without arguments, **autodisplay **toggles the autodisplay mode. The command always returns the current mode. 
+@subsubsection occt_draw_4_1_12 autodisplay
 
-When **autodisplay **is off, using the dot return argument is ineffective. 
-**Example** 
+Syntax:      
+
+~~~~~
+autodisplay [0/1] 
+~~~~~
+
+By default, Draw automatically displays any graphic object as soon as it is created. This behavior known as autodisplay can be removed with the command **autodisplay**. Without arguments, **autodisplay** toggles the autodisplay mode. The command always returns the current mode. 
+
+When **autodisplay** is off, using the dot return argument is ineffective. 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # c is displayed 
 circle c 0 0 1 0 5 
@@ -1146,37 +1209,44 @@ circle c 0 0 1 0 5
 # c is erased, but not displayed 
 display c 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-See also: **display** 
 
-@subsubsection occt_2142243456_445622066113 display, donly
+@subsubsection occt_draw_4_1_13 display, donly
 
-Syntax:      display varname [varname ...] 
+Syntax:      
+~~~~~
+display varname [varname ...] 
 donly varname [varname ...] 
+~~~~~
 
-**display **makes objects visible. 
+* **display** makes objects visible. 
+* **donly** *display only* makes objects visible and erases all other objects. It is very useful to extract one object from a messy screen. 
 
-**donly **(*display only*) makes objects visible and erases all other objects. It is very useful to extract one object from a messy screen. 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
-# to see all objects 
+\# to see all objects 
 foreach var [directory] {display $var} 
 
-# to select two objects and erase the other ones 
+\# to select two objects and erase the other ones 
 donly . . 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-See also: **erase** 
 
 
-@subsubsection occt_2142243456_445622066114 erase, clear, 2dclear
+@subsubsection occt_draw_4_1_14 erase, clear, 2dclear
+
+Syntax:      
 
-Syntax:      erase [varname varname ...] 
+~~~~~
+erase [varname varname ...] 
 clear 
 2dclear 
+~~~~~
 
-**erase **removes objects from all views. **erase **without arguments erases everything in 2d and 3d. 
+**erase** removes objects from all views. **erase** without arguments erases everything in 2d and 3d. 
 
-**clear **erases only 3d objects and **2dclear, **only 2d objects. **erase **without arguments is similar to ; clear; 2dclear;. 
-**Example** 
+**clear** erases only 3d objects and **2dclear** only 2d objects. **erase** without arguments is similar to  **clear; 2dclear**.
+
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # erase eveerything with a name starting with c_ 
 foreach var [directory c_*] {erase $var} 
@@ -1184,48 +1254,61 @@ foreach var [directory c_*] {erase $var}
 # clear 2d views 
 2d clear 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-See also: **display** 
-@subsubsection occt_2142243456_445622066115 repaint, dflush
 
-Syntax:      repaint 
-dflush 
+@subsubsection occt_draw_4_1_15 repaint, dflush
 
-**repaint **forces repainting of views. 
 
-**dflush **flushes the graphic buffers. 
+Syntax:
+
+~~~~~
+repaint 
+dflush 
+~~~~~
+
+* **repaint** forces repainting of views. 
+* **dflush** flushes the graphic buffers. 
 
 These commands are useful within loops or in scripts. 
 
-When an object is modified or erased, the whole view must be repainted. To avoid doing this too many times, Draw sets up a flag and delays the repaint to the end of the command in which the new prompt is issued. In a script, you may want to display the result of a change immediately. If the flag is raised, **repaint **will repaint the views and clear the flag. 
+When an object is modified or erased, the whole view must be repainted. To avoid doing this too many times, Draw sets up a flag and delays the repaint to the end of the command in which the new prompt is issued. In a script, you may want to display the result of a change immediately. If the flag is raised, **repaint** will repaint the views and clear the flag. 
+
+Graphic operations are buffered by Draw (and also by the X system). Usually the buffer is flushed at the end of a command and before graphic selection. If you want to flush the buffer from inside a script, use the **dflush** command. 
 
-Graphic operations are buffered by Draw (and also by the X system). Usually the buffer is flushed at the end of a command and before graphic selection. If you want to flush the buffer from inside a script, use the **dflush **command. 
-**Example** 
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 # See the example with the pick command 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 See also: **pick** 
 
-@subsection occt_2142243456_4456220662 AIS viewer – view commands
-
+@subsection occt_draw_4_2 AIS viewer – view commands
 
-@subsubsection occt_2142243456_44562206621 vinit
 
-Syntax:                  vinit 
+@subsubsection occt_draw_4_2_1 vinit
 
+Syntax:                  
+~~~~~
+vinit 
+~~~~~
 Creates the 3D viewer window 
 
-@subsubsection occt_2142243456_44562206622 vhelp
-
-Syntax:                  vhelp 
+@subsubsection occt_draw_4_2_2 vhelp
 
+Syntax:
+~~~~~
+vhelp 
+~~~~~
 Displays help in the 3D viewer window. The help consists in a list of hotkeys and their functionalities. 
 
-@subsubsection occt_2142243456_44562206623 vtop
+@subsubsection occt_draw_4_2_3 vtop
 
-Syntax:                  vtop 
+Syntax:
+~~~~~
+vtop 
+~~~~~
 
 Displays top view in the 3D viewer window. 
-**Example** 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 vinit 
 box b 10 10 10 
@@ -1233,12 +1316,17 @@ vdisplay b
 vfit 
 vtop 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-@subsubsection occt_2142243456_44562206624 vaxo
 
-Syntax:                  vaxo 
+@subsubsection occt_draw_4_2_4 vaxo
+
+Syntax:                  
+~~~~~
+vaxo 
+~~~~~
 
 Displays axonometric view in the 3D viewer window. 
-**Example** 
+
+**Example:** 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
 vinit 
 box b 10 10 10 
@@ -1246,49 +1334,170 @@ vdisplay b
 vfit 
 vaxo 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-@subsubsection occt_2142243456_44562206625 vsetbg
 
-Syntax:                  vsetbg imagefile [filltype] 
+@subsubsection occt_draw_4_2_5 vsetbg
 
-Loads image file as background. **filltype** must be **NONE, CENTERED, TILED or STRETCH**. 
-**Example** 
+Syntax:                  
+~~~~~
+vsetbg imagefile [filltype] 
+~~~~~
 
+Loads image file as background. *filltype* must be NONE, CENTERED, TILED or STRETCH. 
+
+**Example:** 
+~~~~~
 vinit 
 vsetbg myimage.brep CENTERED 
+~~~~~
 
-@subsubsection occt_2142243456_44562206626 vclear
-
-Syntax:                  vclear 
+@subsubsection occt_draw_4_2_6 vclear
 
+Syntax:                  
+~~~~~
+vclear 
+~~~~~
 Removes all objects from the viewer. 
 
-@subsubsection occt_2142243456_44562206627 vrepaint
-
-Syntax:                  vrepaint 
+@subsubsection occt_draw_4_2_7 vrepaint
 
+Syntax:                  
+~~~~~
+vrepaint 
+~~~~~
 Forcedly redisplays the shape in the 3D viewer window. 
 
-@subsubsection occt_2142243456_44562206628 vfit
-
-Syntax:                  vfit 
+@subsubsection occt_draw_4_2_8 vfit
 
+Syntax:                  
+~~~~~
+vfit 
+~~~~~
 Automatic zoom/panning. Objects in the view are visualized to occupy the maximum surface. 
 
-@subsubsection occt_2142243456_44562206629 vzfit
+@subsubsection occt_draw_4_2_9 vzfit
 
-Syntax:                  vzfit 
+Syntax:                  
+~~~~~
+vzfit 
+~~~~~
 
 Automatic depth panning. Objects in the view are visualized to occupy the maximum 3d space. 
 
+@subsubsection occt_draw_4_2_10  vreadpixel
 
-@subsection occt_2142243456_4456220663 AIS viewer – display commands
+Syntax:     
+~~~~~
+vreadpixel xPixel yPixel [{rgb|rgba|depth|hls|rgbf|rgbaf}=rgba] [name] 
+~~~~~
+Read pixel value for active view.
 
-@subsubsection occt_2142243456_44562206631 vdisplay
 
-Syntax:                  vdisplay name1 [name2] … [name n] 
+@subsubsection occt_draw_4_2_11  vselect
+
+Syntax:     
+~~~~~
+vselect x1 y1 [x2 y2 [x3 y3 ... xn yn]] [shift_selection = 0|1]
+~~~~~
+
+Emulates different types of selection:
+
+  * single mouse click selection
+  * selection with a rectangle having the upper left and bottom right corners in *(x1,y1)* and *(x2,y2)* respectively
+  * selection with a polygon having the corners in pixel positions *(x1,y1), (x2,y2),…, (xn,yn)*
+  * any of these selections if shift_selection is set to 1.
+
+@subsubsection occt_draw_4_2_12  vmoveto
+
+Syntax:     
+
+~~~~~
+vmoveto x y
+~~~~~
+Emulates cursor movement to pixel position (x,y).
+
+@subsubsection occt_draw_4_2_13  vviewparams
+
+Syntax:     
+~~~~~
+vviewparams [scale center_X center_Y proj_X proj_Y proj_Z up_X up_Y up_Z at_X at_Y at_Z]
+~~~~~
+Gets or sets the current view characteristics.
+
+@subsubsection occt_draw_4_2_14  vchangeselected
+
+Syntax:     
+~~~~~
+vchangeselected shape
+~~~~~
+Adds a shape to selection or removes one from it.
+
+@subsubsection occt_draw_4_2_15  vzclipping
+
+Syntax:     
+~~~~~
+vzclipping [mode] [depth width]
+~~~~~
+Gets or sets ZClipping mode, width and depth, where
+ - *mode = OFF|BACK|FRONT|SLICE*
+ - *depth* is a real value from segment [0,1]
+ - *width* is a real value from segment [0,1]
+
+@subsubsection occt_draw_4_2_16  vnbselected
+
+Syntax:     
+~~~~~
+vnbselected
+~~~~~
+Returns the number of selected objects in the interactive context.
+
+@subsubsection occt_draw_4_2_17  vantialiasing
+
+Syntax:     
+~~~~~
+valntialiasing 1|0
+~~~~~
+Sets antialiasing if the command is called with 1 or unsets otherwise.
+
+@subsubsection occt_draw_4_2_18  vpurgedisplay
+
+Syntax:     
+~~~~~
+vpurgedisplay [CollectorToo = 0|1]
+~~~~~
+Removes structures which do not belong to objects displayed in neutral point.
+
+@subsubsection occt_draw_4_2_19  vhlr
+
+Syntax:     
+~~~~~
+vhlr is_enabled={on|off}
+~~~~~
+Switches hidden line removal (computed) mode on/off.
+
+@subsubsection occt_draw_4_2_20  vhlrtype
+
+Syntax:     
+~~~~~
+vhlrtype  algo_type={algo|polyalgo} [shape_1 ... shape_n]
+~~~~~
+
+Changes the type of HLR algorithm used for shapes.
+If the algo_type is algo, the exact HLR algorithm is used, otherwise the polygonal algorithm is used for defined shapes. 
+
+If no shape is specified through the command arguments, the given HLR algorithm_type is applied to all *AIS_Shape* isntances in the current context, and the command also changes the default HLR algorithm type.
+
+**Note** that this command works with instances of *AIS_Shape* or derived classes only, other interactive object types are ignored.
+
+
+@subsection occt_draw_4_3 AIS viewer – display commands
+
+@subsubsection occt_draw_4_3_1 vdisplay
+
+Syntax:                  
+vdisplay name1 [name2] … [name n] 
 
 Displays named objects. 
-**Example** 
+**Example:** 
 
 vinit 
 box b 40 40 40 10 10 10 
@@ -1297,36 +1506,36 @@ vdisplay s b
 vfit 
 
 
-@subsubsection occt_2142243456_44562206632 vdonly
+@subsubsection occt_draw_4_32 vdonly
 
 Syntax:                  vdonly [name1] … [name n] 
 
 Displays only selected or named objects. If there are no selected or named objects, nothing is done. 
-**Example** 
+**Example:** 
 
 vinit 
 box b 40 40 40 10 10 10 
 psphere s 20 
 vdonly b 
 vfit 
-@subsubsection occt_2142243456_44562206633 vdisplayall
+@subsubsection occt_draw_4_33 vdisplayall
 
 Syntax:                  vdisplayall 
 
 Displays all created objects. 
-**Example** 
+**Example:** 
 
 vinit 
 box b 40 40 40 10 10 10 
 psphere s 20 
 vdisplayall 
 vfit 
-@subsubsection occt_2142243456_44562206634 verase
+@subsubsection occt_draw_4_34 verase
 
 Syntax:                  verase [name1] [name2] … [name n] 
 
 Erases some selected or named objects. If there are no selected or named objects, the whole viewer is erased. 
-**Example** 
+**Example:** 
 
 vinit 
 box b1 40 40 40 10 10 10 
@@ -1338,12 +1547,12 @@ vfit
 verase b1 
 # erase second box and sphere 
 verase 
-@subsubsection occt_2142243456_44562206635 veraseall
+@subsubsection occt_draw_4_35 veraseall
 
 Syntax:                  veraseall 
 
 Erases all objects displayed in the viewer. 
-**Example** 
+**Example:** 
 vinit 
 box b1 40 40 40 10 10 10 
 box b2 -40 -40 -40 10 10 10 
@@ -1355,60 +1564,60 @@ verase b1
 # erase second box and sphere 
 verseall 
 
-@subsubsection occt_2142243456_44562206636 vsetdispmode
+@subsubsection occt_draw_4_36 vsetdispmode
 
 Syntax:                  vsetdispmode [name] mode(0,1,2,3) 
 
 Sets display mode for all, selected or named objects. 
 **mode** is **0** (**WireFrame**), **1** (**Shading**), **2** (**Quick HideLineremoval**), **3** (**Exact HideLineremoval**). 
-**Example** 
+**Example:** 
 
 vinit 
 box b 10 10 10 
 vdisplay b 
 vsetdispmode 1 
 vfit 
-@subsubsection occt_2142243456_44562206637 vdisplaytype
+@subsubsection occt_draw_4_37 vdisplaytype
 
 Syntax:                  vdisplaytype type 
 
 Displays all objects of a given type. 
 Possible **type**s are **;Point;, ;Axis;, ;Trihedron;, ;PlaneTrihedron;, ;Line;, ;Circle;, ;Plane;, ;Shape;, ;ConnectedShape;, ;MultiConn.Shape;, ;ConnectedInter.;, ;MultiConn.;, ;Constraint; **and** ;Dimension; **(see **vtypes**). 
 
-@subsubsection occt_2142243456_44562206638 verasetype
+@subsubsection occt_draw_4_38 verasetype
 
 Syntax:                  verasetype type 
 
 Erases all objects of a given type. 
 Possible** type**s are **;Point;, ;Axis;, ;Trihedron;, ;PlaneTrihedron;, ;Line;, ;Circle;, ;Plane;, ;Shape;, ;ConnectedShape;, ;MultiConn.Shape;, ;ConnectedInter.;, ;MultiConn.;, ;Constraint; **and **;Dimension; **(see **vtypes**). 
 
-@subsubsection occt_2142243456_44562206639 vtypes
+@subsubsection occt_draw_4_39 vtypes
 
 Syntax:                  vtypes 
 
 Makes a list of known types and signatures in AIS. 
 
-@subsubsection occt_2142243456_445622066310 vsetcolor
+@subsubsection occt_draw_4_310 vsetcolor
 
 Syntax:                  vsetcolor [shapename] colorname 
 
 Sets color for all, selected or named shapes. 
-Possible **colorname**s are **;BLACK;, ;MATRAGRAY;, ;MATRABLUE;, ;ALICEBLUE;, ;ANTIQUEWHITE;, ;ANTIQUEWHITE1;, ;ANTIQUEWHITE2;, ;ANTIQUEWHITE3;, ;ANTIQUEWHITE4;, ;AQUAMARINE1;, ;AQUAMARINE2;, ;AQUAMARINE4;, ;AZURE;, ;AZURE2;, ;AZURE3;, ;AZURE4;, ;BEIGE;, ;BISQUE;, ;BISQUE2;, ;BISQUE3;, ;BISQUE4;, ;BLANCHEDALMOND;, ;BLUE1;, ;BLUE2;, ;BLUE3;, ;BLUE4;, ;BLUEVIOLET;, ;BROWN;, ;BROWN1;, ;BROWN2;, ;BROWN3;, ;BROWN4;, ;BURLYWOOD;, ;BURLYWOOD1;, ;BURLYWOOD2;, ;BURLYWOOD3;, ;BURLYWOOD4;, ;CADETBLUE;, ;CADETBLUE1;, ;CADETBLUE2;, ;CADETBLUE3;, ;CADETBLUE4;, ;CHARTREUSE;, ;CHARTREUSE1;, ;CHARTREUSE2;, ;CHARTREUSE3;, ;CHARTREUSE4;, ;CHOCOLATE;, ;CHOCOLATE1;, ;CHOCOLATE2;, ;CHOCOLATE3;, ;CHOCOLATE4;, ;CORAL;, ;CORAL1;, ;CORAL2;, ;CORAL3;, ;CORAL4;, ;CORNFLOWERBLUE;, ;CORNSILK1;, ;CORNSILK2;, ;CORNSILK3;, ;CORNSILK4;