Salome HOME
This commit was generated by cvs2git to create branch 'WPdev'.
authoradmin <salome-admin@opencascade.com>
Thu, 8 Jun 2006 14:05:11 +0000 (14:05 +0000)
committeradmin <salome-admin@opencascade.com>
Thu, 8 Jun 2006 14:05:11 +0000 (14:05 +0000)
Cherrypick from master 2006-06-08 14:05:08 UTC jfa <jfa@opencascade.com> 'Warn about direct SMESH idl usage: smesh python package have to be used where it is possible.':
    SMESH_version.h.in
    adm_local/Makefile.in
    adm_local/unix/config_files/check_SMESH.m4
    bin/VERSION.in
    doc/salome/gui/SMESH/adding_quadratic_nodes_and_elements.htm
    doc/salome/gui/SMESH/files/vtk_3d_viewer.htm
    doc/salome/gui/SMESH/image142.gif
    doc/salome/gui/SMESH/image143.gif
    doc/salome/gui/SMESH/image144.gif
    doc/salome/gui/SMESH/image145.gif
    doc/salome/gui/SMESH/image146.gif
    doc/salome/gui/SMESH/image147.gif
    doc/salome/gui/SMESH/image148.gif
    doc/salome/gui/SMESH/image15.jpg
    doc/salome/gui/SMESH/image151.gif
    doc/salome/gui/SMESH/image152.gif
    doc/salome/gui/SMESH/index.htm
    doc/salome/gui/SMESH/index_csh.htm
    doc/salome/gui/SMESH/index_rhc.htm
    doc/salome/gui/SMESH/merge_elements.htm
    doc/salome/gui/SMESH/mesh.htm
    doc/salome/gui/SMESH/pics/advanced_mesh_infos.png
    doc/salome/gui/SMESH/pics/aqt.png
    doc/salome/gui/SMESH/pics/automaticlength.png
    doc/salome/gui/SMESH/pics/createmesh-inv.png
    doc/salome/gui/SMESH/pics/createmesh-inv2.png
    doc/salome/gui/SMESH/pics/createmesh-inv3.png
    doc/salome/gui/SMESH/pics/distributionwithanalyticdensity.png
    doc/salome/gui/SMESH/pics/distributionwithtabledensity.png
    doc/salome/gui/SMESH/pics/graduatedaxes1.png
    doc/salome/gui/SMESH/pics/image100.gif
    doc/salome/gui/SMESH/pics/image102.gif
    doc/salome/gui/SMESH/pics/image107.gif
    doc/salome/gui/SMESH/pics/image108.gif
    doc/salome/gui/SMESH/pics/image109.gif
    doc/salome/gui/SMESH/pics/image138.gif
    doc/salome/gui/SMESH/pics/image139.gif
    doc/salome/gui/SMESH/pics/image21.gif
    doc/salome/gui/SMESH/pics/image23.gif
    doc/salome/gui/SMESH/pics/image27.gif
    doc/salome/gui/SMESH/pics/image77.gif
    doc/salome/gui/SMESH/pics/image78.gif
    doc/salome/gui/SMESH/pics/image89.gif
    doc/salome/gui/SMESH/pics/image91.gif
    doc/salome/gui/SMESH/pics/image96.gif
    doc/salome/gui/SMESH/pics/image97.gif
    doc/salome/gui/SMESH/pics/image98.gif
    doc/salome/gui/SMESH/pics/image99.gif
    doc/salome/gui/SMESH/pics/length-crit.png
    doc/salome/gui/SMESH/pics/mergeelems.png
    doc/salome/gui/SMESH/pics/meshexportmesh.png
    doc/salome/gui/SMESH/pics/meshimportmesh.png
    doc/salome/gui/SMESH/pics/meshtrianglemergeelem1.png
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh.html
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Algorithm.html
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Algorithm__inherit__graph.jpg
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron.html
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron__inherit__graph.jpg
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Netgen.html
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Netgen__inherit__graph.jpg
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Quadrangle.html
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Quadrangle__inherit__graph.jpg
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment.html
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__Python.html
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__Python__inherit__graph.jpg
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__inherit__graph.jpg
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Tetrahedron.html
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Tetrahedron__inherit__graph.jpg
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Triangle.html
    doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Triangle__inherit__graph.jpg
    doc/salome/gui/SMESH/smeshpy_doc/doxygen.css
    doc/salome/gui/SMESH/smeshpy_doc/namespacesmesh.html
    doc/salome/gui/SMESH/volume.htm
    doc/salome/gui/SMESH/whd_dpns.htm
    doc/salome/gui/SMESH/whd_hide0.gif
    doc/salome/gui/SMESH/whd_hide1.gif
    doc/salome/gui/SMESH/whd_hide2.gif
    doc/salome/gui/SMESH/whd_next0.gif
    doc/salome/gui/SMESH/whd_next1.gif
    doc/salome/gui/SMESH/whd_next2.gif
    doc/salome/gui/SMESH/whd_nvp10.htm
    doc/salome/gui/SMESH/whd_nvp20.htm
    doc/salome/gui/SMESH/whd_prev0.gif
    doc/salome/gui/SMESH/whd_prev1.gif
    doc/salome/gui/SMESH/whd_prev2.gif
    doc/salome/gui/SMESH/whd_show0.gif
    doc/salome/gui/SMESH/whd_show1.gif
    doc/salome/gui/SMESH/whd_show2.gif
    doc/salome/gui/SMESH/whd_sync0.gif
    doc/salome/gui/SMESH/whd_sync1.gif
    doc/salome/gui/SMESH/whd_sync2.gif
    doc/salome/gui/SMESH/whd_tab0.gif
    doc/salome/gui/SMESH/whd_tab1.gif
    doc/salome/gui/SMESH/whd_tab2.gif
    doc/salome/gui/SMESH/whd_tab3.gif
    doc/salome/gui/SMESH/whd_tab4.gif
    doc/salome/gui/SMESH/whd_tab5.gif
    doc/salome/gui/SMESH/whd_tab6.gif
    doc/salome/gui/SMESH/whd_tab7.gif
    doc/salome/gui/SMESH/whd_tab8.gif
    doc/salome/gui/SMESH/whd_tabs.htm
    doc/salome/gui/SMESH/whd_toc1.gif
    doc/salome/gui/SMESH/whd_toc2.gif
    doc/salome/gui/SMESH/whd_toc3.gif
    doc/salome/gui/SMESH/whd_toc4.gif
    doc/salome/gui/SMESH/whd_topic.xml
    doc/salome/gui/SMESH/whd_wbsh0.gif
    doc/salome/gui/SMESH/whd_wbsh1.gif
    doc/salome/gui/SMESH/whd_wbsh2.gif
    doc/salome/gui/SMESH/whgdata/whlstf13.htm
    doc/salome/tui/SMESH/doxyfile.in
    doc/salome/tui/SMESH/doxyfile_py.in
    doc/salome/tui/SMESH/sources/footer.html
    doc/salome/tui/SMESH/sources/static/tree.js.in
    resources/SMESHCatalog.xml.in
    resources/SalomeApp.xml
    resources/mesh_conv_to_quad.png
    resources/mesh_tree_algo_netgen_2d.png
    resources/mesh_tree_algo_netgen_2d3d.png
    resources/mesh_tree_hypo_netgen.png
    resources/mesh_tree_hypo_netgen_2d.png
    src/DriverUNV/UNV2417_Structure.cxx
    src/DriverUNV/UNV2417_Structure.hxx
    src/SMDS/SMDS_QuadraticEdge.cxx
    src/SMDS/SMDS_QuadraticEdge.hxx
    src/SMDS/SMDS_QuadraticFaceOfNodes.cxx
    src/SMDS/SMDS_QuadraticFaceOfNodes.hxx
    src/SMDS/SMDS_QuadraticVolumeOfNodes.cxx
    src/SMDS/SMDS_QuadraticVolumeOfNodes.hxx
    src/SMDS/SMDS_SetIterator.hxx
    src/SMESH/SMESH_MesherHelper.cxx
    src/SMESH/SMESH_MesherHelper.hxx
    src/SMESHClient/Makefile.in
    src/SMESHClient/SMESHClientBin.cxx
    src/SMESHClient/SMESH_Client.cxx
    src/SMESHClient/SMESH_Client.hxx
    src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx
    src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.h
    src/SMESHGUI/SMESHGUI_ConvToQuadDlg.cxx
    src/SMESHGUI/SMESHGUI_ConvToQuadDlg.h
    src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx
    src/SMESHGUI/SMESHGUI_ConvToQuadOp.h
    src/SMESH_SWIG/SMESH_AdvancedEditor.py
    src/SMESH_SWIG/SMESH_fixation_netgen.py
    src/SMESH_SWIG/SMESH_mechanic_netgen.py
    src/SMESH_SWIG/ex21_lamp.py
    src/StdMeshers/StdMeshers_QuadraticMesh.cxx
    src/StdMeshers/StdMeshers_QuadraticMesh.hxx
    src/StdMeshers_I/StdMeshers_QuadraticMesh_i.cxx
    src/StdMeshers_I/StdMeshers_QuadraticMesh_i.hxx

150 files changed:
SMESH_version.h.in [new file with mode: 0644]
adm_local/Makefile.in [new file with mode: 0644]
adm_local/unix/config_files/check_SMESH.m4 [new file with mode: 0644]
bin/VERSION.in [new file with mode: 0755]
doc/salome/gui/SMESH/adding_quadratic_nodes_and_elements.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/vtk_3d_viewer.htm [new file with mode: 0755]
doc/salome/gui/SMESH/image142.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image143.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image144.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image145.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image146.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image147.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image148.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image15.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image151.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image152.gif [new file with mode: 0755]
doc/salome/gui/SMESH/index.htm [new file with mode: 0755]
doc/salome/gui/SMESH/index_csh.htm [new file with mode: 0755]
doc/salome/gui/SMESH/index_rhc.htm [new file with mode: 0755]
doc/salome/gui/SMESH/merge_elements.htm [new file with mode: 0755]
doc/salome/gui/SMESH/mesh.htm [new file with mode: 0755]
doc/salome/gui/SMESH/pics/advanced_mesh_infos.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/aqt.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/automaticlength.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/createmesh-inv.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/createmesh-inv2.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/createmesh-inv3.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/distributionwithanalyticdensity.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/distributionwithtabledensity.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/graduatedaxes1.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image100.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image102.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image107.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image108.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image109.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image138.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image139.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image21.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image23.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image27.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image77.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image78.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image89.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image91.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image96.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image97.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image98.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image99.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/length-crit.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/mergeelems.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/meshexportmesh.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/meshimportmesh.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/meshtrianglemergeelem1.png [new file with mode: 0755]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Algorithm.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Algorithm__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Netgen.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Netgen__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Quadrangle.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Quadrangle__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__Python.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__Python__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Tetrahedron.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Tetrahedron__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Triangle.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Triangle__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/doxygen.css [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/namespacesmesh.html [new file with mode: 0644]
doc/salome/gui/SMESH/volume.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whd_dpns.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whd_hide0.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_hide1.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_hide2.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_next0.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_next1.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_next2.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_nvp10.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whd_nvp20.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whd_prev0.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_prev1.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_prev2.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_show0.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_show1.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_show2.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_sync0.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_sync1.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_sync2.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_tab0.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_tab1.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_tab2.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_tab3.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_tab4.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_tab5.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_tab6.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_tab7.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_tab8.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_tabs.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whd_toc1.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_toc2.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_toc3.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_toc4.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_topic.xml [new file with mode: 0755]
doc/salome/gui/SMESH/whd_wbsh0.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_wbsh1.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whd_wbsh2.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstf13.htm [new file with mode: 0755]
doc/salome/tui/SMESH/doxyfile.in [new file with mode: 0755]
doc/salome/tui/SMESH/doxyfile_py.in [new file with mode: 0755]
doc/salome/tui/SMESH/sources/footer.html [new file with mode: 0755]
doc/salome/tui/SMESH/sources/static/tree.js.in [new file with mode: 0755]
resources/SMESHCatalog.xml.in [new file with mode: 0644]
resources/SalomeApp.xml [new file with mode: 0644]
resources/mesh_conv_to_quad.png [new file with mode: 0755]
resources/mesh_tree_algo_netgen_2d.png [new file with mode: 0755]
resources/mesh_tree_algo_netgen_2d3d.png [new file with mode: 0644]
resources/mesh_tree_hypo_netgen.png [new file with mode: 0644]
resources/mesh_tree_hypo_netgen_2d.png [new file with mode: 0644]
src/DriverUNV/UNV2417_Structure.cxx [new file with mode: 0644]
src/DriverUNV/UNV2417_Structure.hxx [new file with mode: 0644]
src/SMDS/SMDS_QuadraticEdge.cxx [new file with mode: 0644]
src/SMDS/SMDS_QuadraticEdge.hxx [new file with mode: 0644]
src/SMDS/SMDS_QuadraticFaceOfNodes.cxx [new file with mode: 0644]
src/SMDS/SMDS_QuadraticFaceOfNodes.hxx [new file with mode: 0644]
src/SMDS/SMDS_QuadraticVolumeOfNodes.cxx [new file with mode: 0644]
src/SMDS/SMDS_QuadraticVolumeOfNodes.hxx [new file with mode: 0644]
src/SMDS/SMDS_SetIterator.hxx [new file with mode: 0644]
src/SMESH/SMESH_MesherHelper.cxx [new file with mode: 0644]
src/SMESH/SMESH_MesherHelper.hxx [new file with mode: 0644]
src/SMESHClient/Makefile.in [new file with mode: 0644]
src/SMESHClient/SMESHClientBin.cxx [new file with mode: 0644]
src/SMESHClient/SMESH_Client.cxx [new file with mode: 0644]
src/SMESHClient/SMESH_Client.hxx [new file with mode: 0644]
src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx [new file with mode: 0644]
src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.h [new file with mode: 0644]
src/SMESHGUI/SMESHGUI_ConvToQuadDlg.cxx [new file with mode: 0644]
src/SMESHGUI/SMESHGUI_ConvToQuadDlg.h [new file with mode: 0644]
src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx [new file with mode: 0644]
src/SMESHGUI/SMESHGUI_ConvToQuadOp.h [new file with mode: 0644]
src/SMESH_SWIG/SMESH_AdvancedEditor.py [new file with mode: 0644]
src/SMESH_SWIG/SMESH_fixation_netgen.py [new file with mode: 0644]
src/SMESH_SWIG/SMESH_mechanic_netgen.py [new file with mode: 0644]
src/SMESH_SWIG/ex21_lamp.py [new file with mode: 0644]
src/StdMeshers/StdMeshers_QuadraticMesh.cxx [new file with mode: 0644]
src/StdMeshers/StdMeshers_QuadraticMesh.hxx [new file with mode: 0644]
src/StdMeshers_I/StdMeshers_QuadraticMesh_i.cxx [new file with mode: 0644]
src/StdMeshers_I/StdMeshers_QuadraticMesh_i.hxx [new file with mode: 0644]

diff --git a/SMESH_version.h.in b/SMESH_version.h.in
new file mode 100644 (file)
index 0000000..85259c4
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
+//  File   : SMESH_version.h
+//  Author : Vadim SANDLER
+//  Module : SALOME
+
+#if !defined(__SMESH_VERSION_H__)
+#define __SMESH_VERSION_H__
+
+/*
+  SMESH_VERSION is (major << 16) + (minor << 8) + patch.
+*/
+
+#define SMESH_VERSION_STR "@VERSION@"
+#define SMESH_VERSION     @XVERSION@
+
+#endif // __SMESH_VERSION_H__
diff --git a/adm_local/Makefile.in b/adm_local/Makefile.in
new file mode 100644 (file)
index 0000000..e2133b4
--- /dev/null
@@ -0,0 +1,60 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# source path
+top_srcdir=@top_srcdir@
+top_builddir=..
+srcdir=@srcdir@
+VPATH=.:$(srcdir)/adm_local
+
+
+all: resources
+
+install:
+       cp -rf @top_srcdir@/adm_local @prefix@
+
+bin:
+
+resources :
+       cp -rf @top_srcdir@/adm_local $(top_builddir)
+
+inc:
+
+lib:
+
+depend:
+
+depend_idl:
+
+install-end:
+
+install-include:
+
+install-bin:
+
+uninstall:
+
+uninstall-idl:
+
+distclean:
+
+clean:
+
+distclean-other:
+
diff --git a/adm_local/unix/config_files/check_SMESH.m4 b/adm_local/unix/config_files/check_SMESH.m4
new file mode 100644 (file)
index 0000000..f1dbf22
--- /dev/null
@@ -0,0 +1,63 @@
+# Check availability of SMesh binary distribution
+#
+# Author : Nicolas REJNERI (OPEN CASCADE, 2003)
+#
+
+AC_DEFUN([CHECK_SMESH],[
+
+AC_CHECKING(for SMesh)
+
+SMesh_ok=no
+
+SMESH_LDFLAGS=""
+SMESH_CXXFLAGS=""
+
+AC_ARG_WITH(smesh,
+           [  --with-smesh=DIR root directory path of SMESH installation ],
+           SMESH_DIR="$withval",SMESH_DIR="")
+
+if test "x$SMESH_DIR" == "x" ; then
+
+# no --with-smesh option used
+
+   if test "x$SMESH_ROOT_DIR" != "x" ; then
+
+    # SMESH_ROOT_DIR environment variable defined
+      SMESH_DIR=$SMESH_ROOT_DIR
+
+   else
+
+    # search SMESH binaries in PATH variable
+      AC_PATH_PROG(TEMP, libSMESH_Swig.py)
+      if test "x$TEMP" != "x" ; then
+         SMESH_BIN_DIR=`dirname $TEMP`
+         SMESH_DIR=`dirname $SMESH_BIN_DIR`
+      fi
+      
+   fi
+# 
+fi
+
+if test -f ${SMESH_DIR}/bin/salome/libSMESH_Swig.py ; then
+   SMesh_ok=yes
+   AC_MSG_RESULT(Using SMesh module distribution in ${SMESH_DIR})
+
+   if test "x$SMESH_ROOT_DIR" == "x" ; then
+      SMESH_ROOT_DIR=${SMESH_DIR}
+   fi
+   AC_SUBST(SMESH_ROOT_DIR)
+
+   SMESH_LDFLAGS=-L${SMESH_DIR}/lib${LIB_LOCATION_SUFFIX}/salome
+   SMESH_CXXFLAGS=-I${SMESH_DIR}/include/salome
+
+   AC_SUBST(SMESH_LDFLAGS)
+   AC_SUBST(SMESH_CXXFLAGS)   
+
+else
+   AC_MSG_WARN("Cannot find compiled SMesh module distribution")
+fi
+
+AC_MSG_RESULT(for SMesh: $SMesh_ok)
+])dnl
diff --git a/bin/VERSION.in b/bin/VERSION.in
new file mode 100755 (executable)
index 0000000..fa49d30
--- /dev/null
@@ -0,0 +1 @@
+THIS IS SALOME - SMESH VERSION: @VERSION@
diff --git a/doc/salome/gui/SMESH/adding_quadratic_nodes_and_elements.htm b/doc/salome/gui/SMESH/adding_quadratic_nodes_and_elements.htm
new file mode 100755 (executable)
index 0000000..86db258
--- /dev/null
@@ -0,0 +1,124 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>Adding Quadratic Nodes and Elements</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
+<!--\r
+p.whs1 { margin-left:40px; }\r
+img_whs2 { border:none; width:148px; height:168px; border-style:none; }\r
+img_whs3 { border:none; width:332px; height:350px; float:none; border-style:none; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+p.WebHelpNavBar { text-align:right; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.setRelStartPage)\r
+       {\r
+       addTocInfo("MESH module\nModifying meshes\nAdding quadratic elements");\r
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
+\r
+       }\r
+\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("index.htm");\r
+\r
+               autoSync(1);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+\r
+}\r
+else\r
+       if (window.gbIE4)\r
+               document.location.reload();\r
+//-->\r
+</script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(4);\r
+//-->\r
+</script>\r
+<h1>Adding Quadratic Elements</h1>\r
+\r
+<p>MESH modules allows you to work with <span style="font-weight: bold;"><B>Quadratic \r
+ Elements</B></span>.</p>\r
+\r
+<p>Quadratic Edge in not a straight but a broken line and can be defined \r
+ by three points: first, middle and last. All more complex <span style="font-weight: bold;"><B>Quadratic \r
+ Elements</B></span> differ from ordinary ones in that they consist of Quadratic \r
+ Edges.</p>\r
+\r
+<p class=TODO\r
+       style="font-family: 'Arial Black', sans-serif; font-style: italic;">To \r
+ add a quadratic element to your mesh:</p>\r
+\r
+<p class="whs1">1. Select your mesh in the Object Browser \r
+ or in the 3D viewer.</p>\r
+\r
+<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Add </B></span>item \r
+ and select one of the following: </p>\r
+\r
+<p class="whs1"><img src="image152.gif" width="148px" height="168px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs1">To create any <span style="font-weight: bold;"><B>Quadratic \r
+ Element </B></span>specify the nodes which will form your triangle by selecting \r
+ them in the 3D viewer with pressed Shift button. Their numbers will appear \r
+ in the dialog box as <span style="font-weight: bold;"><B>Corner Nodes</B></span> \r
+ (alternatively you can just input numbers in this field without selection).The \r
+ edges formed by the corner nodes will appear in the table. To define the \r
+ middle nodes for each edge double-click on the respective field and input \r
+ the number of the node. All edges and the object formed by them will be \r
+ displayed in the Object browser. When all edges are defined you will be \r
+ able to click <span style="font-weight: bold;"><B>OK</B></span> or <span style="font-weight: bold;"><B>Apply</B></span> \r
+ button to add the element to the mesh. </p>\r
+\r
+<p class="whs1">&nbsp;<img src="pics/aqt.png" x-maintain-ratio="TRUE" width="332px" height="350px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1"><span style="font-weight: bold;"><B>Reverse</B></span> \r
+ button for Quadratic Edges switches the first and the last nodes. <span \r
+ style="margin-left: 40px;">For all other elements it reverses the element. \r
+ </span></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/vtk_3d_viewer.htm b/doc/salome/gui/SMESH/files/vtk_3d_viewer.htm
new file mode 100755 (executable)
index 0000000..e8ce541
--- /dev/null
@@ -0,0 +1,229 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>VTK 3D Viewer</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
+<!--\r
+p.whs1 { margin-top:0pt; margin-bottom:0pt; }\r
+p.whs2 { margin-top:0pt; margin-bottom:0pt; margin-left:48px; }\r
+img_whs3 { border:none; width:249px; height:29px; float:none; border-style:none; }\r
+ul.whs4 { list-style:disc; }\r
+img_whs5 { border:none; width:26px; height:25px; float:none; border-style:none; }\r
+img_whs6 { border:none; width:27px; height:25px; float:none; border-style:none; }\r
+img_whs7 { border:none; width:24px; height:23px; float:none; border-style:none; }\r
+img_whs8 { border:none; width:24px; height:24px; float:none; border-style:none; }\r
+img_whs9 { border:none; width:25px; height:24px; float:none; border-style:none; }\r
+img_whs10 { border:none; width:23px; height:23px; float:none; border-style:none; }\r
+img_whs11 { border:none; width:26px; height:26px; float:none; border-style:none; }\r
+img_whs12 { border:none; width:78px; height:147px; float:none; border-style:none; }\r
+img_whs13 { border:none; width:28px; height:25px; float:none; border-style:none; }\r
+img_whs14 { border:none; width:27px; height:27px; float:none; border-style:none; }\r
+p.whs15 { font-weight:bold; margin-left:80px; margin-top:0pt; margin-bottom:0pt; }\r
+img_whs16 { border:none; width:350px; height:453px; float:none; border-style:none; }\r
+p.whs17 { font-weight:bold; margin-top:0pt; margin-bottom:0pt; }\r
+p.whs18 { font-weight:bold; margin-left:36px; margin-top:0pt; margin-bottom:0pt; }\r
+p.whs19 { font-weight:bold; margin-left:0px; margin-top:0pt; margin-bottom:0pt; }\r
+p.whs20 { margin-left:0px; font-weight:bold; margin-top:0pt; margin-bottom:0pt; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs15 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs17 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs18 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs19 {margin-left:1pt;margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs20 {margin-left:1pt;margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+p.WebHelpNavBar { text-align:right; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.setRelStartPage)\r
+       {\r
+       addTocInfo("MESH module\nViewing meshes\nVTK 3D Viewer");\r
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");\r
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");\r
+\r
+       }\r
+\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../index.htm");\r
+\r
+               autoSync(1);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+\r
+}\r
+else\r
+       if (window.gbIE4)\r
+               document.location.reload();\r
+//-->\r
+</script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(4);\r
+//-->\r
+</script>\r
+<h1>VTK 3D Viewer</h1>\r
+\r
+<p class="whs1"><span style="font-weight: bold;"><B>VTK \r
+ 3D viewer</B></span> is the default viewer for Mesh Module, allowing to visualize \r
+ meshes. It is also used in Post-Pro module for all 3D presentations except \r
+ for Gauss Points.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">The functionalities of \r
+ VTK viewer are available via its Viewer Toolbar. Buttons marked with small \r
+ downward triangles have extended functionality which can be accessed by \r
+ locking on them with left mouse button. &nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs2"><img src="../pics/image107.gif" x-maintain-ratio="TRUE" width="249px" height="29px" border="0" class="img_whs3"></p>\r
+\r
+<ul type="disc" class="whs4">\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image77.gif" x-maintain-ratio="TRUE" width="26px" height="25px" border="0" class="img_whs5"> <span style="font-weight: bold;"><B>Dump View</B></span> - exports \r
+ an object from the viewer in bmp, png, jpg or jpeg image format. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image78.gif" x-maintain-ratio="TRUE" width="27px" height="25px" border="0" class="img_whs6"> <span style="font-weight: bold;"><B>Show/Hide Trihedron</B></span> \r
+ - shows or hides coordinate axes. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image96.gif" x-maintain-ratio="TRUE" width="24px" height="23px" border="0" class="img_whs7"> &nbsp;<span style="font-weight: bold;"><B>Fit \r
+ all - </B></span>allows to select a point to be the center of a scene representing \r
+ all displayed objects in the visible area.<span style="font-weight: bold;"> \r
+ <B></B></span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">&nbsp;<img src="../pics/image97.gif" x-maintain-ratio="TRUE" width="24px" height="24px" border="0" class="img_whs8"> <span style="font-weight: bold;"><B>Fit area</B></span> - resizes \r
+ the view to place in the visible area only the contents of a frame drawn \r
+ with pressed left mouse button.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image98.gif" x-maintain-ratio="TRUE" width="25px" height="24px" border="0" class="img_whs9"> <span style="font-weight: bold;"><B>Zoom</B></span> - &nbsp;allows \r
+ to zoom in and out. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image99.gif" x-maintain-ratio="TRUE" width="23px" height="23px" border="0" class="img_whs10"> <span style="font-weight: bold;"><B>Panning</B></span> - if the \r
+ represented objects are greater that the visible area and you don't wish \r
+ to use <span style="font-weight: bold;"><B>Fit all</B></span> functionality, \r
+ click on this button and you'll be able to drag the scene to see its remote \r
+ parts. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image100.gif" x-maintain-ratio="TRUE" width="24px" height="24px" border="0" class="img_whs8"> <span style="font-weight: bold;"><B>Global panning</B></span> - \r
+ represents all displayed objects in the visible area. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image89.gif" x-maintain-ratio="TRUE" width="26px" height="26px" border="0" class="img_whs11"> <span style="font-weight: bold;"><B>Rotation</B></span> - allows \r
+ to rotate the selected object using the mouse. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image102.gif" x-maintain-ratio="TRUE" width="78px" height="147px" border="0" class="img_whs12"> These buttons orientate the scene strictly about coordinate \r
+ axes.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image91.gif" x-maintain-ratio="TRUE" width="26px" height="26px" border="0" class="img_whs11"> <span style="font-weight: bold;"><B>Reset</B></span> - restores \r
+ the default position (isometric) of objects in the scene.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image108.gif" x-maintain-ratio="TRUE" width="28px" height="25px" border="0" class="img_whs13"> <span style="font-weight: bold;"><B>Scaling</B></span> - represents \r
+ objects deformed (stretched or stuffed) along the axes of coordinates</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">&nbsp;<span \r
+ style="font-weight: bold;\r
+               margin-top: 0pt;\r
+               margin-bottom: 0pt;"><B><img src="../pics/image109.gif" x-maintain-ratio="TRUE" width="27px" height="27px" border="0" class="img_whs14">Graduated axes - </B></span><span style="margin-top: 0pt;\r
+                                                                                                       margin-bottom: 0pt;\r
+                                                                                                       font-weight: normal;">allows \r
+ to define parameters of axes and graduate them.</span></p></li>\r
+</ul>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs15"><img src="../pics/graduatedaxes1.png" x-maintain-ratio="TRUE" width="350px" height="453px" border="0" class="img_whs16"></p>\r
+\r
+<ul type="disc" class="whs4">\r
+       \r
+       <li class=kadov-p><p class="whs17">Axis name </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Is visible - <span \r
+ style="font-weight: normal;">if checked the axis name is displayed in \r
+ the viewer.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Name<span style="font-weight: normal;"> \r
+ - allows to redefine the name of the axis.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Font<span style="font-weight: normal;"> \r
+ - allows to define color and properties of the font of axis name. </span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs19">Labels<span style="font-weight: normal;"> \r
+ </span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Is visible - <span \r
+ style="font-weight: normal;">if checked the labels are displayed in the \r
+ viewer.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Number<span style="font-weight: normal;"> \r
+ - allows to define the number of labels.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Offset<span style="font-weight: normal;"> \r
+ - allows to define the distance between labels.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Font<span style="font-weight: normal;"> \r
+ - allows to define color and properties of the font of labels names.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs20">Tick marks </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Is visible - <span \r
+ style="font-weight: normal;">if checked the tick marks are displayed in \r
+ the viewer.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Length<span style="font-weight: normal;"> \r
+ - allows to define the length of tick marks</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs20">Is visible <span style="font-weight: normal;">if \r
+ checked the axis is displayed in the viewer.</span></p></li>\r
+</ul>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/image142.gif b/doc/salome/gui/SMESH/image142.gif
new file mode 100755 (executable)
index 0000000..2f411e5
Binary files /dev/null and b/doc/salome/gui/SMESH/image142.gif differ
diff --git a/doc/salome/gui/SMESH/image143.gif b/doc/salome/gui/SMESH/image143.gif
new file mode 100755 (executable)
index 0000000..de9df14
Binary files /dev/null and b/doc/salome/gui/SMESH/image143.gif differ
diff --git a/doc/salome/gui/SMESH/image144.gif b/doc/salome/gui/SMESH/image144.gif
new file mode 100755 (executable)
index 0000000..3dffd53
Binary files /dev/null and b/doc/salome/gui/SMESH/image144.gif differ
diff --git a/doc/salome/gui/SMESH/image145.gif b/doc/salome/gui/SMESH/image145.gif
new file mode 100755 (executable)
index 0000000..8005557
Binary files /dev/null and b/doc/salome/gui/SMESH/image145.gif differ
diff --git a/doc/salome/gui/SMESH/image146.gif b/doc/salome/gui/SMESH/image146.gif
new file mode 100755 (executable)
index 0000000..18f2224
Binary files /dev/null and b/doc/salome/gui/SMESH/image146.gif differ
diff --git a/doc/salome/gui/SMESH/image147.gif b/doc/salome/gui/SMESH/image147.gif
new file mode 100755 (executable)
index 0000000..7b9a354
Binary files /dev/null and b/doc/salome/gui/SMESH/image147.gif differ
diff --git a/doc/salome/gui/SMESH/image148.gif b/doc/salome/gui/SMESH/image148.gif
new file mode 100755 (executable)
index 0000000..0ef4147
Binary files /dev/null and b/doc/salome/gui/SMESH/image148.gif differ
diff --git a/doc/salome/gui/SMESH/image15.jpg b/doc/salome/gui/SMESH/image15.jpg
new file mode 100755 (executable)
index 0000000..15edee5
Binary files /dev/null and b/doc/salome/gui/SMESH/image15.jpg differ
diff --git a/doc/salome/gui/SMESH/image151.gif b/doc/salome/gui/SMESH/image151.gif
new file mode 100755 (executable)
index 0000000..5c4a20e
Binary files /dev/null and b/doc/salome/gui/SMESH/image151.gif differ
diff --git a/doc/salome/gui/SMESH/image152.gif b/doc/salome/gui/SMESH/image152.gif
new file mode 100755 (executable)
index 0000000..2005d3f
Binary files /dev/null and b/doc/salome/gui/SMESH/image152.gif differ
diff --git a/doc/salome/gui/SMESH/index.htm b/doc/salome/gui/SMESH/index.htm
new file mode 100755 (executable)
index 0000000..767e2b7
--- /dev/null
@@ -0,0 +1,180 @@
+<html>\r
+<head>\r
+<title>Mesh Module Reference Manual</title>\r
+\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name="description" content="WebHelp 5.50">\r
+</head>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whstub.js"></script><script language="javascript1.2" src="whstart.js"></script>\r
+<script language="javascript">\r
+<!--\r
+var strDefaultTopic = "about:blank";\r
+var nWebhelpNavPaneMode = 1;                   //1: DHTML 2:Applet 3:PureHTML 4:Noframeset\r
+var bNoApplet  = false;\r
+var strPaneDHTML  = "whd_nvp10.htm";           //whd_nvp10.htm  if tab enabled, whnframe.htm if tab disabled.\r
+var strPaneApplet = "whd_nvp20.htm";\r
+var strPaneList   = "whgdata/whnvp30.htm";\r
+\r
+var strHTML = "";\r
+var strPane = "";\r
+var nViewFrameType = -1;\r
+\r
+function CMRServer()\r
+{\r
+  this.m_cAgents = new Array;\r
+}\r
+var cMRServer = new CMRServer;\r
+\r
+//figure out which mode is the best\r
+if (!window.gAgent)\r
+{\r
+       // low end browser, we don't even try to determine it.\r
+       document.location = "whnjs.htm";\r
+}\r
+else\r
+{\r
+       if (!gbNav4&&!gbIE4&&!gbOpera7&&!gbSafari)\r
+               document.location = "whnjs.htm";\r
+       else if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))\r
+               document.location = "whnjs.htm";\r
+       else if (gbMac && gbIE4 && !gbIE5)\r
+               document.location = "whnjs.htm";\r
+       //figure out which mode is the best\r
+       else \r
+       {\r
+               nViewFrameType=nWebhelpNavPaneMode;\r
+               if (nWebhelpNavPaneMode==1||nWebhelpNavPaneMode == 2)\r
+               {\r
+                       var gbDHTML=(nWebhelpNavPaneMode==1);\r
+                       if (gbNav4)                                                                             nViewFrameType = 2;\r
+                       if (gbNav4&&(gnVerMinor < 4.1))                                         nViewFrameType = 3;\r
+                       if (gbNav4&&(gnVerMinor == 4.6))                                        nViewFrameType = 3;\r
+                       if (gbIE4&&gbDHTML)                                                                     nViewFrameType = 1;\r
+                       if (gbIE4&&gbSunOS&&nWebhelpNavPaneMode==2)                     nViewFrameType = 3;\r
+                       if (gbNav6&&gbDHTML)                                                            nViewFrameType = 1;\r
+                       if (gbNav6&&!gbNav61&&nWebhelpNavPaneMode == 2)         nViewFrameType = 3;\r
+                       if (gbMac)                                                                                      nViewFrameType = 3;\r
+                       if (gbOpera7&&nViewFrameType == 2)                                      nViewFrameType = 3;\r
+                       if ((bNoApplet)&&(nViewFrameType == 2))                         nViewFrameType = 3;\r
+               }\r
+       }\r
+}\r
+\r
+if (nViewFrameType!=-1)\r
+{\r
+       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));\r
+       //The colordepth of the 16 color on Windows is 1. \r
+       if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))\r
+       {\r
+          alert("WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors.");\r
+          nViewFrameType = 3;\r
+       }\r
+\r
+       //figure out which one is navpane\r
+       if (nViewFrameType == 1)\r
+               strPane = strPaneDHTML;\r
+       else if (nViewFrameType == 2)\r
+               strPane = strPaneApplet;\r
+       else \r
+               strPane = strPaneList;\r
+\r
+       var oParam = new Object();\r
+       oParam.sTopic = "";\r
+       var oMsg = new whMessage(WH_MSG_GETDEFAULTTOPIC, window, 1, oParam);\r
+       if (SendMessage(oMsg) && oParam.sTopic != "")\r
+               strDefaultTopic =  oParam.sTopic;\r
+\r
+\r
+       if (nViewFrameType == 1)\r
+       {\r
+               //DHTML (iframe or xml based)\r
+               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" frameborder=\"1\">";\r
+               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane + "\" scrolling=\"no\"></frame>";\r
+               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";\r
+       }\r
+       else if (nViewFrameType == 2)\r
+       {\r
+               //applet (xml based)\r
+               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" framespacing=\"0\" frameborder=\"0\" border=\"0\">";\r
+               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane+ "\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\"></frame>";\r
+               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";\r
+       }\r
+       else if (nViewFrameType == 3)\r
+       {\r
+               //generic html (pure html based)\r
+               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\">";\r
+               strHTML += "<frame title=\"navigation frame\" src=\"" + strPane + "\" name=\"bsscleft\"  scrolling=\"no\"></frame>";\r
+               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" scrolling=\"auto\"></frame>";\r
+               strHTML += "</frameset>";\r
+       } \r
+       else if (nViewFrameType == 4)\r
+       {\r
+               //no navipane at all\r
+               strHTML += "<frameset  id=\"whPfset\" border=\"0\" cols=\"100%,*\">";\r
+               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" framespacing=\"0\" frameborder=\"0\" border=\"0\" scrolling=\"auto\">";\r
+               strHTML += "</frameset>";\r
+       }\r
+\r
+       document.write(strHTML);\r
+\r
+       RegisterListener2(window, WH_MSG_SHOWPANE);\r
+       RegisterListener2(window, WH_MSG_HIDEPANE);\r
+       RegisterListener2(window, WH_MSG_ISPANEVISIBLE);\r
+       window.onunload = window_unload;\r
+}\r
+\r
+function window_unload()\r
+{\r
+       UnRegisterListener2(window, WH_MSG_SHOWPANE);\r
+       UnRegisterListener2(window, WH_MSG_HIDEPANE);\r
+       UnRegisterListener2(window, WH_MSG_ISPANEVISIBLE);\r
+}\r
+\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       var nMsgId = oMsg.nMessageId;\r
+       if (nMsgId == WH_MSG_SHOWPANE)\r
+       {\r
+               getElement("whPfset").cols = "260,*";\r
+               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");\r
+               SendMessage(onMsg);\r
+               onMsg = new whMessage(WH_MSG_GETPANEINFO, this, 1, "");\r
+               if (SendMessage(onMsg))\r
+               {\r
+                       onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, onMsg.oParam);\r
+                       SendMessage(onMsg);\r
+               }\r
+               return false;\r
+       }\r
+       else if (nMsgId == WH_MSG_HIDEPANE)\r
+       {\r
+               getElement("whPfset").cols = "0,*";\r
+               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "invisible");\r
+               SendMessage(onMsg);\r
+               onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, "");\r
+               SendMessage(onMsg);\r
+               return false;\r
+       }\r
+       else if (nMsgId == WH_MSG_ISPANEVISIBLE)\r
+       {\r
+               var n = parseInt(getElement("whPfset").cols);\r
+               if (n > 0)\r
+               {\r
+                       oMsg.oParam.bVisible = true;\r
+               }\r
+               return false;\r
+       }\r
+       return true;\r
+}\r
+//-->\r
+</script>\r
+<body>\r
+<noscript>\r
+       <p> It seems javascript is disabled in your browser, please enable it and reload again, or click <a href="whnjs.htm">here</a> to view without javascript</p>\r
+</noscript>\r
+</body>\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/index_csh.htm b/doc/salome/gui/SMESH/index_csh.htm
new file mode 100755 (executable)
index 0000000..2bd1f63
--- /dev/null
@@ -0,0 +1,106 @@
+<html>\r
+<head>\r
+<title>Mesh Module Reference Manual</title>\r
+\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name="description" content="WebHelp 5.50">\r
+<script language="javascript" src="whutils.js"></script>\r
+<script language="javascript">\r
+<!--\r
+var gCSHFileName   = "whc_data.htm";\r
+var gCSHSuffixName1 = "_csh.html";\r
+var gCSHSuffixName2 = "_csh.htm";\r
+//-->\r
+</script>\r
+<script language="javascript">\r
+<!--\r
+gCSHFileName="cshdat_webhelp.htm";\r
+//-->\r
+</script>\r
+<script language="javascript">\r
+<!--\r
+var gasProj = new Array();\r
+gasProj[0] = _getPath(document.location.href);\r
+var gCurrent = 0;\r
+\r
+function addProject(strProj)\r
+{\r
+       var len  = gasProj.length;\r
+       if (strProj)\r
+       {\r
+               strProj = _replaceSlash(strProj);\r
+               if (strProj.lastIndexOf("/") != strProj.length - 1)\r
+                       strProj += "/";\r
+               var strPPath = _getFullPath(_getPath(document.location.href), strProj);\r
+               var bFound = false;\r
+               for (var i = 0; i < len; i ++)\r
+               {\r
+                       if (isSamePath(gasProj[i], strPPath))\r
+                       {\r
+                               bFound = true;\r
+                               break;\r
+                       }\r
+               }\r
+               if (!bFound)\r
+                       gasProj[len] = strPPath;\r
+       }\r
+}\r
+\r
+function isSamePath(strPath1, strPath2)\r
+{\r
+       return strPath1.toLowerCase() == strPath2.toLowerCase();\r
+}\r
+\r
+function goNext()\r
+{\r
+       gCurrent ++;\r
+       var len = gasProj.length;\r
+       if (gCurrent >= len)\r
+               return getHomePage()\r
+       else\r
+               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;\r
+       return "";\r
+}\r
+\r
+function getRelHomePage(strLocation)\r
+{\r
+       var strCurPPath = _getPath(strLocation);\r
+       var strOriPPath = _getPath(getHomePage());\r
+       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);\r
+       var strURL = getHomePage() + "#" + strRelPath;\r
+       return strURL;\r
+}\r
+\r
+function getHomePage()\r
+{\r
+       var strHomePage;\r
+       var strTmp = location.toString();\r
+       var nPos = strTmp.indexOf("#");\r
+       if (nPos != -1)\r
+       {\r
+          strHomePage = strTmp.substring(0, nPos);\r
+       }\r
+       else\r
+       {\r
+          strHomePage = strTmp;\r
+       }\r
+       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);\r
+       var nPos = strHomePage.indexOf(gCSHSuffixName2);\r
+       if (nPos != -1)\r
+       {\r
+          strHomePage = strHomePage.substring(0,nPos);\r
+          if (nPos1 != -1)\r
+            strHomePage += ".html";\r
+          else\r
+            strHomePage += ".htm";\r
+       }\r
+       return strHomePage;\r
+}\r
+//-->\r
+</script>\r
+</head>\r
+<frameset rows="1,*">\r
+<frame name="dumb" src="about:blank"></frame>\r
+<frame name="csh" src="cshdat_webhelp.htm"></frame>            \r
+</frameset>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/index_rhc.htm b/doc/salome/gui/SMESH/index_rhc.htm
new file mode 100755 (executable)
index 0000000..4e87239
--- /dev/null
@@ -0,0 +1,106 @@
+<html>\r
+<head>\r
+<title>Mesh Module Reference Manual</title>\r
+\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name="description" content="WebHelp 5.50">\r
+<script language="javascript" src="whutils.js"></script>\r
+<script language="javascript">\r
+<!--\r
+var gCSHFileName   = "whc_data.htm";\r
+var gCSHSuffixName1 = "_rhc.html";\r
+var gCSHSuffixName2 = "_rhc.htm";\r
+//-->\r
+</script>\r
+<script language="javascript">\r
+<!--\r
+gCSHFileName="cshdat_robohelp.htm";\r
+//-->\r
+</script>\r
+<script language="javascript">\r
+<!--\r
+var gasProj = new Array();\r
+gasProj[0] = _getPath(document.location.href);\r
+var gCurrent = 0;\r
+\r
+function addProject(strProj)\r
+{\r
+       var len  = gasProj.length;\r
+       if (strProj)\r
+       {\r
+               strProj = _replaceSlash(strProj);\r
+               if (strProj.lastIndexOf("/") != strProj.length - 1)\r
+                       strProj += "/";\r
+               var strPPath = _getFullPath(_getPath(document.location.href), strProj);\r
+               var bFound = false;\r
+               for (var i = 0; i < len; i ++)\r
+               {\r
+                       if (isSamePath(gasProj[i], strPPath))\r
+                       {\r
+                               bFound = true;\r
+                               break;\r
+                       }\r
+               }\r
+               if (!bFound)\r
+                       gasProj[len] = strPPath;\r
+       }\r
+}\r
+\r
+function isSamePath(strPath1, strPath2)\r
+{\r
+       return strPath1.toLowerCase() == strPath2.toLowerCase();\r
+}\r
+\r
+function goNext()\r
+{\r
+       gCurrent ++;\r
+       var len = gasProj.length;\r
+       if (gCurrent >= len)\r
+               return getHomePage()\r
+       else\r
+               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;\r
+       return "";\r
+}\r
+\r
+function getRelHomePage(strLocation)\r
+{\r
+       var strCurPPath = _getPath(strLocation);\r
+       var strOriPPath = _getPath(getHomePage());\r
+       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);\r
+       var strURL = getHomePage() + "#" + strRelPath;\r
+       return strURL;\r
+}\r
+\r
+function getHomePage()\r
+{\r
+       var strHomePage;\r
+       var strTmp = location.toString();\r
+       var nPos = strTmp.indexOf("#");\r
+       if (nPos != -1)\r
+       {\r
+          strHomePage = strTmp.substring(0, nPos);\r
+       }\r
+       else\r
+       {\r
+          strHomePage = strTmp;\r
+       }\r
+       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);\r
+       var nPos = strHomePage.indexOf(gCSHSuffixName2);\r
+       if (nPos != -1)\r
+       {\r
+          strHomePage = strHomePage.substring(0,nPos);\r
+          if (nPos1 != -1)\r
+            strHomePage += ".html";\r
+          else\r
+            strHomePage += ".htm";\r
+       }\r
+       return strHomePage;\r
+}\r
+//-->\r
+</script>\r
+</head>\r
+<frameset rows="1,*">\r
+<frame name="dumb" src="about:blank"></frame>\r
+<frame name="csh" src="cshdat_robohelp.htm"></frame>           \r
+</frameset>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/merge_elements.htm b/doc/salome/gui/SMESH/merge_elements.htm
new file mode 100755 (executable)
index 0000000..32b5ebf
--- /dev/null
@@ -0,0 +1,101 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>Merge Elements</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
+<!--\r
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
+img_whs2 { border:none; width:313px; height:221px; float:none; border-style:none; }\r
+img_whs3 { border:none; width:235px; height:150px; float:none; border-style:none; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+p.WebHelpNavBar { text-align:right; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.setRelStartPage)\r
+       {\r
+       addTocInfo("MESH module\nModifying meshes\nTransforming meshes\nMerging Elements");\r
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
+\r
+       }\r
+\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("index.htm");\r
+\r
+               autoSync(1);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+\r
+}\r
+else\r
+       if (window.gbIE4)\r
+               document.location.reload();\r
+//-->\r
+</script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(4);\r
+//-->\r
+</script>\r
+<h1>Merging Elements</h1>\r
+\r
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This functionality allows to merge coincident elements \r
+ of a mesh selectable in the dialog box. </p>\r
+\r
+<p><img src="pics/mergeelems.png" x-maintain-ratio="TRUE" width="313px" height="221px" border="0" class="img_whs2"></p>\r
+\r
+<p>In this picture you see a triangle which coincides with one of the elements \r
+ of the mesh. After we apply <span style="font-weight: bold;"><B>Merge Elements</B></span> \r
+ functionality, the triangle will be completely merged with the mesh. </p>\r
+\r
+<p><img src="pics/meshtrianglemergeelem1.png" x-maintain-ratio="TRUE" width="235px" height="150px" border="0" class="img_whs3"></p>\r
+\r
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See \r
+ Also</B></span> a sample TUI Script of a <a href="transforming_meshes.htm#bookmark8">Merge \r
+ Elements</a> operation. &nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/mesh.htm b/doc/salome/gui/SMESH/mesh.htm
new file mode 100755 (executable)
index 0000000..be7069d
--- /dev/null
@@ -0,0 +1,216 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>mesh</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
+<!--\r
+h1.whs1 { margin-top:0pt; margin-bottom:0pt; font-size:24pt; }\r
+p.whs2 { margin-top:0pt; margin-bottom:0pt; }\r
+img_whs3 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
+ul.whs4 { list-style:disc; }\r
+ul.whs5 { list-style:circle; }\r
+p.whs6 { margin-left:40px; margin-top:0pt; margin-bottom:0pt; }\r
+img_whs7 { border:none; width:472px; height:355px; border-style:none; float:right; }\r
+p.whs8 { margin-left:40px; font-weight:bold; margin-top:0pt; margin-bottom:0pt; }\r
+ol.whs9 { list-style:disc; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "h1.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs8 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+p.WebHelpNavBar { text-align:right; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.setRelStartPage)\r
+       {\r
+       addTocInfo("MESH module\nIntroduction to Mesh");\r
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
+\r
+       }\r
+\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("index.htm");\r
+\r
+               autoSync(1);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+\r
+}\r
+else\r
+       if (window.gbIE4)\r
+               document.location.reload();\r
+//-->\r
+</script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(4);\r
+//-->\r
+</script>\r
+<h1 class="whs1">Introduction to MESH</h1>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2"><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs3"><span style="font-weight: bold;"><B>MESH</B></span> \r
+ module of SALOME is destined for: </p>\r
+\r
+<ul type="disc" class="whs4">\r
+       \r
+       <li class=kadov-p><p class="whs2"><a href="files/importing_and_exporting_meshes.htm">import and export of meshes \r
+ in MED format</a>,</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs2"><a href="files/constructing_meshes.htm">meshing geometrical models</a> previously \r
+ created or imported by the GEOM component. MESH module allows to apply \r
+ 1D, 2D, 3D meshing algorithms and a set of hypotheses:</p></li>\r
+       \r
+       <ul type="circle" class="whs5">\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#arithmetic_1D">Arithmetic 1D</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#Average_length">Average Length</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#deflection_1D">Deflection 1D </a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#Number_of_elements">Number of segments</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#start_and_end_length">Start and end length</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#automatic_length">Automatic Length</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#max_element_area">Max Element \r
+ Area</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#length_from_edges">Length \r
+ from Edges</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#quadrangle preference">Quadrangle \r
+ Preference</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/max._element_volume_hypothsis.htm">Max Element Volume</a></p></li>\r
+       </ul>\r
+       \r
+       <li class=kadov-p><p class="whs2">modification \r
+ of locally generated meshes by</p></li>\r
+       \r
+       <ul type="circle" class="whs5">\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/adding_nodes_and_elements.htm">Addition</a> of nodes and elements</p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/removing_nodes_and_elements.htm">Removal</a> of nodes and \r
+ elements</p></li>\r
+       </ul>\r
+       \r
+       <li class=kadov-p><p class="whs2"><a href="files/creating_groups.htm">grouping mesh elements</a> and <a href="files/using_operations_on_groups.htm">performing \r
+ operations on these groups</a> </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs2"><a href="files/about_quality_controls.htm">quality control</a> of meshes \r
+ basing on a set of definite criteria -</p></li>\r
+</ul>\r
+\r
+<p class="whs6"><img src="image7.jpg" x-maintain-ratio="TRUE" width="472px" height="355px" align="right" border="0" class="img_whs7"></p>\r
+\r
+<p class="whs8">for edges:</p>\r
+\r
+<ol type="disc" class="whs9">\r
+       \r
+       <ul type="circle" class="whs5">\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="length.htm">Length of edges</a> </p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="borders_at_multi-connection.htm">Borders at multi-connection</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="free_borders.htm">Free borders</a></p></li>\r
+       </ul>\r
+</ol>\r
+\r
+<p class="whs8">for faces:</p>\r
+\r
+<ol type="disc" class="whs9">\r
+       \r
+       <ul type="circle" class="whs5">\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/area_of_elements.htm">Area</a> </p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="free_edges.htm">Free edges</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="borders_at_multiconnection_2d.htm">Borders at multi-connection 2D</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/length_of_edges.htm">Length 2D</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/minimum_angle.htm">Minimum angle</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/taper.htm">Taper</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/aspect_ratio.htm">Aspect Ratio</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/warp.htm">Warping</a> </p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="files/skew.htm">Skew</a></p></li>\r
+       </ul>\r
+</ol>\r
+\r
+<p class="whs8">for solids:</p>\r
+\r
+<ol type="disc" class="whs9">\r
+       \r
+       <ul type="circle" class="whs5">\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="aspect_ratio_3d.htm">Aspect ratio 3D</a></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs2"><a href="volume.htm">Volume</a></p></li>\r
+       </ul>\r
+</ol>\r
+\r
+<p class="whs2">.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/pics/advanced_mesh_infos.png b/doc/salome/gui/SMESH/pics/advanced_mesh_infos.png
new file mode 100755 (executable)
index 0000000..f8341e8
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/advanced_mesh_infos.png differ
diff --git a/doc/salome/gui/SMESH/pics/aqt.png b/doc/salome/gui/SMESH/pics/aqt.png
new file mode 100755 (executable)
index 0000000..32e36bd
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/aqt.png differ
diff --git a/doc/salome/gui/SMESH/pics/automaticlength.png b/doc/salome/gui/SMESH/pics/automaticlength.png
new file mode 100755 (executable)
index 0000000..d96ffc8
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/automaticlength.png differ
diff --git a/doc/salome/gui/SMESH/pics/createmesh-inv.png b/doc/salome/gui/SMESH/pics/createmesh-inv.png
new file mode 100755 (executable)
index 0000000..9ed8a62
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/createmesh-inv.png differ
diff --git a/doc/salome/gui/SMESH/pics/createmesh-inv2.png b/doc/salome/gui/SMESH/pics/createmesh-inv2.png
new file mode 100755 (executable)
index 0000000..f73e1df
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/createmesh-inv2.png differ
diff --git a/doc/salome/gui/SMESH/pics/createmesh-inv3.png b/doc/salome/gui/SMESH/pics/createmesh-inv3.png
new file mode 100755 (executable)
index 0000000..6c9da9c
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/createmesh-inv3.png differ
diff --git a/doc/salome/gui/SMESH/pics/distributionwithanalyticdensity.png b/doc/salome/gui/SMESH/pics/distributionwithanalyticdensity.png
new file mode 100755 (executable)
index 0000000..87ebc5f
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/distributionwithanalyticdensity.png differ
diff --git a/doc/salome/gui/SMESH/pics/distributionwithtabledensity.png b/doc/salome/gui/SMESH/pics/distributionwithtabledensity.png
new file mode 100755 (executable)
index 0000000..9ea6cab
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/distributionwithtabledensity.png differ
diff --git a/doc/salome/gui/SMESH/pics/graduatedaxes1.png b/doc/salome/gui/SMESH/pics/graduatedaxes1.png
new file mode 100755 (executable)
index 0000000..cf021ba
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/graduatedaxes1.png differ
diff --git a/doc/salome/gui/SMESH/pics/image100.gif b/doc/salome/gui/SMESH/pics/image100.gif
new file mode 100755 (executable)
index 0000000..c44d68f
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image100.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image102.gif b/doc/salome/gui/SMESH/pics/image102.gif
new file mode 100755 (executable)
index 0000000..3507814
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image102.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image107.gif b/doc/salome/gui/SMESH/pics/image107.gif
new file mode 100755 (executable)
index 0000000..ae9d7f1
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image107.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image108.gif b/doc/salome/gui/SMESH/pics/image108.gif
new file mode 100755 (executable)
index 0000000..bec69e6
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image108.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image109.gif b/doc/salome/gui/SMESH/pics/image109.gif
new file mode 100755 (executable)
index 0000000..5dbba46
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image109.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image138.gif b/doc/salome/gui/SMESH/pics/image138.gif
new file mode 100755 (executable)
index 0000000..1659aab
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image138.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image139.gif b/doc/salome/gui/SMESH/pics/image139.gif
new file mode 100755 (executable)
index 0000000..0394383
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image139.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image21.gif b/doc/salome/gui/SMESH/pics/image21.gif
new file mode 100755 (executable)
index 0000000..5dbd121
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image21.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image23.gif b/doc/salome/gui/SMESH/pics/image23.gif
new file mode 100755 (executable)
index 0000000..5a1216d
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image23.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image27.gif b/doc/salome/gui/SMESH/pics/image27.gif
new file mode 100755 (executable)
index 0000000..6c8485c
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image27.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image77.gif b/doc/salome/gui/SMESH/pics/image77.gif
new file mode 100755 (executable)
index 0000000..ef7a62f
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image77.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image78.gif b/doc/salome/gui/SMESH/pics/image78.gif
new file mode 100755 (executable)
index 0000000..9466aa6
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image78.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image89.gif b/doc/salome/gui/SMESH/pics/image89.gif
new file mode 100755 (executable)
index 0000000..373a6c0
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image89.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image91.gif b/doc/salome/gui/SMESH/pics/image91.gif
new file mode 100755 (executable)
index 0000000..9e93c1c
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image91.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image96.gif b/doc/salome/gui/SMESH/pics/image96.gif
new file mode 100755 (executable)
index 0000000..4580d5b
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image96.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image97.gif b/doc/salome/gui/SMESH/pics/image97.gif
new file mode 100755 (executable)
index 0000000..1d78de1
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image97.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image98.gif b/doc/salome/gui/SMESH/pics/image98.gif
new file mode 100755 (executable)
index 0000000..6519dbb
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image98.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image99.gif b/doc/salome/gui/SMESH/pics/image99.gif
new file mode 100755 (executable)
index 0000000..3711be8
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image99.gif differ
diff --git a/doc/salome/gui/SMESH/pics/length-crit.png b/doc/salome/gui/SMESH/pics/length-crit.png
new file mode 100755 (executable)
index 0000000..96836cd
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/length-crit.png differ
diff --git a/doc/salome/gui/SMESH/pics/mergeelems.png b/doc/salome/gui/SMESH/pics/mergeelems.png
new file mode 100755 (executable)
index 0000000..9314da8
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/mergeelems.png differ
diff --git a/doc/salome/gui/SMESH/pics/meshexportmesh.png b/doc/salome/gui/SMESH/pics/meshexportmesh.png
new file mode 100755 (executable)
index 0000000..a84b252
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/meshexportmesh.png differ
diff --git a/doc/salome/gui/SMESH/pics/meshimportmesh.png b/doc/salome/gui/SMESH/pics/meshimportmesh.png
new file mode 100755 (executable)
index 0000000..f87250b
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/meshimportmesh.png differ
diff --git a/doc/salome/gui/SMESH/pics/meshtrianglemergeelem1.png b/doc/salome/gui/SMESH/pics/meshtrianglemergeelem1.png
new file mode 100755 (executable)
index 0000000..0f9bd52
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/meshtrianglemergeelem1.png differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh.html
new file mode 100644 (file)
index 0000000..b997839
--- /dev/null
@@ -0,0 +1,1004 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>SALOME - SMESH - v.version: smesh.Mesh Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.6 -->
+<h1>smesh.Mesh Class Reference</h1><!-- doxytag: class="smesh::Mesh" -->Class to define a mesh.  
+<a href="#_details">More...</a>
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#2f592ce85252933c16d53b2233326e78">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor.  <a href="#2f592ce85252933c16d53b2233326e78"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#dbacc8ea6620b9d3f75c78ccd01447f5">GetMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method that returns the mesh.  <a href="#dbacc8ea6620b9d3f75c78ccd01447f5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#8cd4dd97fd482c2dc9366831d9edfade">GetShape</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method that returns the shape associated to the mesh.  <a href="#8cd4dd97fd482c2dc9366831d9edfade"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#06348840fb6e34f96868289711e081b8">MeshDimension</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns mesh dimension depending on shape one.  <a href="#06348840fb6e34f96868289711e081b8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#c482d4a5eb26a6215d5da9b368e19c45">Segment</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a segment discretization 1D algorithm.  <a href="#c482d4a5eb26a6215d5da9b368e19c45"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#0670294973fa7bfe28b9011e0f09f6a1">Triangle</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a triangle 2D algorithm for faces.  <a href="#0670294973fa7bfe28b9011e0f09f6a1"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#4ca1886a1ff06e16c670f1675c5a573b">Quadrangle</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a quadrangle 2D algorithm for faces.  <a href="#4ca1886a1ff06e16c670f1675c5a573b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#25ec76b72df8bebc8a612910a0318620">Tetrahedron</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a tetrahedron 3D algorithm for solids.  <a href="#25ec76b72df8bebc8a612910a0318620"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#21ec3ac09ca0ad1a9fdc6935654893fd">Hexahedron</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a hexahedron 3D algorithm for solids.  <a href="#21ec3ac09ca0ad1a9fdc6935654893fd"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#27c0aef5694eea45b0670207d5580bc6">Netgen</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a NETGEN-based 2D or 3D independent algorithm (i.e.  <a href="#27c0aef5694eea45b0670207d5580bc6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#ed26e60b9561403c1966a8a4aac5f512">Compute</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute the mesh and return the status of the computation.  <a href="#ed26e60b9561403c1966a8a4aac5f512"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#d23d8a7c9fc382821d4016774fa9e98d">AutomaticTetrahedralization</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute tetrahedral mesh using AutomaticLength + MEFISTO + NETGEN The parameter <em>fineness</em> [0.  <a href="#d23d8a7c9fc382821d4016774fa9e98d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#1c78238cdf0aad20ab2d6eef4a184799">AutomaticHexahedralization</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute hexahedral mesh using AutomaticLength + Quadrangle + Hexahedron The parameter <em>fineness</em> [0.  <a href="#1c78238cdf0aad20ab2d6eef4a184799"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#95d999f08f0aaef05f6dcdb8292e00e0">RemoveGlobalHypotheses</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes all global hypotheses.  <a href="#95d999f08f0aaef05f6dcdb8292e00e0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#6deeda0a7c76698bdf314b7c81b15c0f">Group</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a mesh group based on geometric object <em>grp</em> and give a <em>name</em>, if this parameter is not defined the name is the same as the geometric group name.  <a href="#6deeda0a7c76698bdf314b7c81b15c0f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#36933e515825d7d1c62863686546a84f">ExportToMED</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Export the mesh in a file with the MED format and choice the <em>version</em> of MED format.  <a href="#36933e515825d7d1c62863686546a84f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#a86bdbce4f2f57e951bcea9ab1986ecb">ExportMED</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Export the mesh in a file with the MED format.  <a href="#a86bdbce4f2f57e951bcea9ab1986ecb"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#5db000b98b9608f1f3384a4b09b35f58">ExportDAT</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Export the mesh in a file with the DAT format.  <a href="#5db000b98b9608f1f3384a4b09b35f58"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#c008bc59ddf84fb975ea54fdd9c5b20e">ExportUNV</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Export the mesh in a file with the UNV format.  <a href="#c008bc59ddf84fb975ea54fdd9c5b20e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#5f0cfa067db19492048fc67f9214a938">ExportSTL</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Export the mesh in a file with the STL format.  <a href="#5f0cfa067db19492048fc67f9214a938"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#eb2e95e036f629d22802fe1caa0dea77">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#d4c31f83ccca912b41330a80953b19e2">mesh</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#f3e48df7fb0b782b294824894c7c5589">geom</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#05914b93aefd09a1702655e3eebde220">mesh</a> = 0</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+More details. 
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="2f592ce85252933c16d53b2233326e78"></a><!-- doxytag: member="smesh::Mesh::__init__" ref="2f592ce85252933c16d53b2233326e78" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.__init__           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>name</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Creates mesh on the shape <em>geom</em>, sets GUI name of this mesh to <em>name</em>. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>geom</em>&nbsp;</td><td>Shape to be meshed </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Study name of the mesh </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="dbacc8ea6620b9d3f75c78ccd01447f5"></a><!-- doxytag: member="smesh::Mesh::GetMesh" ref="dbacc8ea6620b9d3f75c78ccd01447f5" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.GetMesh           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="8cd4dd97fd482c2dc9366831d9edfade"></a><!-- doxytag: member="smesh::Mesh::GetShape" ref="8cd4dd97fd482c2dc9366831d9edfade" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.GetShape           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="06348840fb6e34f96868289711e081b8"></a><!-- doxytag: member="smesh::Mesh::MeshDimension" ref="06348840fb6e34f96868289711e081b8" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.MeshDimension           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="c482d4a5eb26a6215d5da9b368e19c45"></a><!-- doxytag: member="smesh::Mesh::Segment" ref="c482d4a5eb26a6215d5da9b368e19c45" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.Segment           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>algo</em> = <code><a class="el" href="namespacesmesh.html#85f3ed596d91251bfa3b2d2ac4151739">REGULAR</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+If the optional <em>algo</em> parameter is not sets, this algorithm is REGULAR. If the optional <em>geom</em> parameter is not sets, this algorithm is global. Otherwise, this algorithm define a submesh based on <em>geom</em> subshape. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>algo</em>&nbsp;</td><td>values are <a class="el" href="namespacesmesh.html#85f3ed596d91251bfa3b2d2ac4151739">smesh.REGULAR</a> or <a class="el" href="namespacesmesh.html#40eed802c94269a68ec2194609fac2f0">smesh.PYTHON</a> for discretization via python function </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>geom</em>&nbsp;</td><td>If defined, subshape to be meshed </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="0670294973fa7bfe28b9011e0f09f6a1"></a><!-- doxytag: member="smesh::Mesh::Triangle" ref="0670294973fa7bfe28b9011e0f09f6a1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.Triangle           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+If the optional <em>geom</em> parameter is not sets, this algorithm is global. Otherwise, this algorithm define a submesh based on <em>geom</em> subshape. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>geom</em>&nbsp;</td><td>If defined, subshape to be meshed </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="4ca1886a1ff06e16c670f1675c5a573b"></a><!-- doxytag: member="smesh::Mesh::Quadrangle" ref="4ca1886a1ff06e16c670f1675c5a573b" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.Quadrangle           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+If the optional <em>geom</em> parameter is not sets, this algorithm is global. Otherwise, this algorithm define a submesh based on <em>geom</em> subshape. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>geom</em>&nbsp;</td><td>If defined, subshape to be meshed </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="25ec76b72df8bebc8a612910a0318620"></a><!-- doxytag: member="smesh::Mesh::Tetrahedron" ref="25ec76b72df8bebc8a612910a0318620" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.Tetrahedron           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>algo</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+The parameter <em>algo</em> permits to choice the algorithm: NETGEN or GHS3D If the optional <em>geom</em> parameter is not sets, this algorithm is global. Otherwise, this algorithm define a submesh based on <em>geom</em> subshape. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>algo</em>&nbsp;</td><td>values are: <a class="el" href="namespacesmesh.html#72b65da5195aa8d71574f95e5533d612">smesh.NETGEN</a>, <a class="el" href="namespacesmesh.html#bf6aaa2e2cf565cbe3ae34954dee8926">smesh.GHS3D</a> </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>geom</em>&nbsp;</td><td>If defined, subshape to be meshed </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="21ec3ac09ca0ad1a9fdc6935654893fd"></a><!-- doxytag: member="smesh::Mesh::Hexahedron" ref="21ec3ac09ca0ad1a9fdc6935654893fd" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.Hexahedron           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+If the optional <em>geom</em> parameter is not sets, this algorithm is global. Otherwise, this algorithm define a submesh based on <em>geom</em> subshape. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>geom</em>&nbsp;</td><td>If defined, subshape to be meshed </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="27c0aef5694eea45b0670207d5580bc6"></a><!-- doxytag: member="smesh::Mesh::Netgen" ref="27c0aef5694eea45b0670207d5580bc6" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.Netgen           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>is3D</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+needs no discrete boundary). If the optional <em>geom</em> parameter is not sets, this algorithm is global. Otherwise, this algorithm defines a submesh based on <em>geom</em> subshape. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>is3D</em>&nbsp;</td><td>If 0 then algorithm is 2D, otherwise 3D </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>geom</em>&nbsp;</td><td>If defined, subshape to be meshed </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ed26e60b9561403c1966a8a4aac5f512"></a><!-- doxytag: member="smesh::Mesh::Compute" ref="ed26e60b9561403c1966a8a4aac5f512" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.Compute           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="d23d8a7c9fc382821d4016774fa9e98d"></a><!-- doxytag: member="smesh::Mesh::AutomaticTetrahedralization" ref="d23d8a7c9fc382821d4016774fa9e98d" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.AutomaticTetrahedralization           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>fineness</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+-1.] defines mesh fineness     </td>
+  </tr>
+</table>
+<a class="anchor" name="1c78238cdf0aad20ab2d6eef4a184799"></a><!-- doxytag: member="smesh::Mesh::AutomaticHexahedralization" ref="1c78238cdf0aad20ab2d6eef4a184799" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.AutomaticHexahedralization           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>fineness</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+-1.] defines mesh fineness     </td>
+  </tr>
+</table>
+<a class="anchor" name="95d999f08f0aaef05f6dcdb8292e00e0"></a><!-- doxytag: member="smesh::Mesh::RemoveGlobalHypotheses" ref="95d999f08f0aaef05f6dcdb8292e00e0" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.RemoveGlobalHypotheses           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="6deeda0a7c76698bdf314b7c81b15c0f"></a><!-- doxytag: member="smesh::Mesh::Group" ref="6deeda0a7c76698bdf314b7c81b15c0f" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.Group           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>grp</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>name</em> = <code>&quot;&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>grp</em>&nbsp;</td><td>is a geometric group, a vertex, an edge, a face or a solid </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>is the name of the mesh group </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="36933e515825d7d1c62863686546a84f"></a><!-- doxytag: member="smesh::Mesh::ExportToMED" ref="36933e515825d7d1c62863686546a84f" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.ExportToMED           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>f</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>version</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>opt</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>is the file name </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>version</em>&nbsp;</td><td>values are SMESH.MED_V2_1, SMESH.MED_V2_2 </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="a86bdbce4f2f57e951bcea9ab1986ecb"></a><!-- doxytag: member="smesh::Mesh::ExportMED" ref="a86bdbce4f2f57e951bcea9ab1986ecb" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.ExportMED           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>f</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>opt</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>is the file name </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="5db000b98b9608f1f3384a4b09b35f58"></a><!-- doxytag: member="smesh::Mesh::ExportDAT" ref="5db000b98b9608f1f3384a4b09b35f58" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.ExportDAT           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>f</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>is the file name </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="c008bc59ddf84fb975ea54fdd9c5b20e"></a><!-- doxytag: member="smesh::Mesh::ExportUNV" ref="c008bc59ddf84fb975ea54fdd9c5b20e" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.ExportUNV           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>f</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>is the file name </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="5f0cfa067db19492048fc67f9214a938"></a><!-- doxytag: member="smesh::Mesh::ExportSTL" ref="5f0cfa067db19492048fc67f9214a938" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh.ExportSTL           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>f</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>ascii</em> = <code>1</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>is the file name </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>ascii</em>&nbsp;</td><td>defined the kind of file contents </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="f3e48df7fb0b782b294824894c7c5589"></a><!-- doxytag: member="smesh::Mesh::geom" ref="f3e48df7fb0b782b294824894c7c5589" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh.html#f3e48df7fb0b782b294824894c7c5589">smesh.Mesh.geom</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="05914b93aefd09a1702655e3eebde220"></a><!-- doxytag: member="smesh::Mesh::mesh" ref="05914b93aefd09a1702655e3eebde220" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh.html#05914b93aefd09a1702655e3eebde220">smesh.Mesh.mesh</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="eb2e95e036f629d22802fe1caa0dea77"></a><!-- doxytag: member="smesh::Mesh::geom" ref="eb2e95e036f629d22802fe1caa0dea77" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh.html#f3e48df7fb0b782b294824894c7c5589">smesh.Mesh.geom</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="d4c31f83ccca912b41330a80953b19e2"></a><!-- doxytag: member="smesh::Mesh::mesh" ref="d4c31f83ccca912b41330a80953b19e2" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh.html#05914b93aefd09a1702655e3eebde220">smesh.Mesh.mesh</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Algorithm.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Algorithm.html
new file mode 100644 (file)
index 0000000..97d0e0e
--- /dev/null
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>SALOME - SMESH - v.version: smesh.Mesh_Algorithm Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.6 -->
+<h1>smesh.Mesh_Algorithm Class Reference</h1><!-- doxytag: class="smesh::Mesh_Algorithm" -->Mother class to define algorithm, recommended to don't use directly.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smesh.Mesh_Algorithm:<p><center><img src="classsmesh_1_1Mesh__Algorithm__inherit__graph.jpg" border="0" usemap="#smesh_8Mesh__Algorithm__inherit__map" alt="Inheritance graph"></center>
+<map name="smesh_8Mesh__Algorithm__inherit__map">
+<area href="classsmesh_1_1Mesh__Hexahedron.html" shape="rect" coords="219,8,395,32" alt="">
+<area href="classsmesh_1_1Mesh__Netgen.html" shape="rect" coords="234,56,381,80" alt="">
+<area href="classsmesh_1_1Mesh__Quadrangle.html" shape="rect" coords="221,104,394,128" alt="">
+<area href="classsmesh_1_1Mesh__Segment.html" shape="rect" coords="229,152,386,176" alt="">
+<area href="classsmesh_1_1Mesh__Tetrahedron.html" shape="rect" coords="219,200,395,224" alt="">
+<area href="classsmesh_1_1Mesh__Triangle.html" shape="rect" coords="231,248,383,272" alt="">
+</map>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#39dd34eb5db727c1ff2b69a84df18394">GetSubMesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#8451e22abaaba662c00052d95f47f7b0">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#8451e22abaaba662c00052d95f47f7b0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#cb3346c2c3cd4334e82c951e2b4929ec">TreatHypoStatus</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#cb3346c2c3cd4334e82c951e2b4929ec"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b0ee92d94d1907fc263864b727685187">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#b0ee92d94d1907fc263864b727685187"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e6c4621e95fa72626c26a320a53c5929">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#e6c4621e95fa72626c26a320a53c5929"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#a2388901def73df05eabdc3dd0aeb876">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b637c67f711a33b32c3b56073a65db52">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e31641d994477ff6913cef21bc8eed50">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#169100dea59b37e7e9a0d155b7208fc8">algo</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">mesh</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">geom</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">subm</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">algo</a> = 0</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+More details. 
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="39dd34eb5db727c1ff2b69a84df18394"></a><!-- doxytag: member="smesh::Mesh_Algorithm::GetSubMesh" ref="39dd34eb5db727c1ff2b69a84df18394" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetSubMesh           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="8451e22abaaba662c00052d95f47f7b0"></a><!-- doxytag: member="smesh::Mesh_Algorithm::GetAlgorithm" ref="8451e22abaaba662c00052d95f47f7b0" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetAlgorithm           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="cb3346c2c3cd4334e82c951e2b4929ec"></a><!-- doxytag: member="smesh::Mesh_Algorithm::TreatHypoStatus" ref="cb3346c2c3cd4334e82c951e2b4929ec" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.TreatHypoStatus           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geomName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>isAlgo</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Print error message if a hypothesis was not assigned.     </td>
+  </tr>
+</table>
+<a class="anchor" name="b0ee92d94d1907fc263864b727685187"></a><!-- doxytag: member="smesh::Mesh_Algorithm::Create" ref="b0ee92d94d1907fc263864b727685187" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Create           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e6c4621e95fa72626c26a320a53c5929"></a><!-- doxytag: member="smesh::Mesh_Algorithm::Hypothesis" ref="e6c4621e95fa72626c26a320a53c5929" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Hypothesis           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="47bfe89357342e4a889d4723518288e1"></a><!-- doxytag: member="smesh::Mesh_Algorithm::mesh" ref="47bfe89357342e4a889d4723518288e1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="f6608d059606200dce0679f3367112d1"></a><!-- doxytag: member="smesh::Mesh_Algorithm::geom" ref="f6608d059606200dce0679f3367112d1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="981bc18824369ac623f4527b7ddddaf5"></a><!-- doxytag: member="smesh::Mesh_Algorithm::subm" ref="981bc18824369ac623f4527b7ddddaf5" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ae7e23c67b8497a4b5bbf0cc53ac6693"></a><!-- doxytag: member="smesh::Mesh_Algorithm::algo" ref="ae7e23c67b8497a4b5bbf0cc53ac6693" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="a2388901def73df05eabdc3dd0aeb876"></a><!-- doxytag: member="smesh::Mesh_Algorithm::mesh" ref="a2388901def73df05eabdc3dd0aeb876" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="b637c67f711a33b32c3b56073a65db52"></a><!-- doxytag: member="smesh::Mesh_Algorithm::geom" ref="b637c67f711a33b32c3b56073a65db52" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e31641d994477ff6913cef21bc8eed50"></a><!-- doxytag: member="smesh::Mesh_Algorithm::subm" ref="e31641d994477ff6913cef21bc8eed50" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="169100dea59b37e7e9a0d155b7208fc8"></a><!-- doxytag: member="smesh::Mesh_Algorithm::algo" ref="169100dea59b37e7e9a0d155b7208fc8" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Algorithm__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Algorithm__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..39dd1dd
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Algorithm__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron.html
new file mode 100644 (file)
index 0000000..d177efa
--- /dev/null
@@ -0,0 +1,502 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>SALOME - SMESH - v.version: smesh.Mesh_Hexahedron Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.6 -->
+<h1>smesh.Mesh_Hexahedron Class Reference</h1><!-- doxytag: class="smesh::Mesh_Hexahedron" --><!-- doxytag: inherits="smesh::Mesh_Algorithm" -->Class to define a hexahedron 3D algorithm.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smesh.Mesh_Hexahedron:<p><center><img src="classsmesh_1_1Mesh__Hexahedron__inherit__graph.jpg" border="0" usemap="#smesh_8Mesh__Hexahedron__inherit__map" alt="Inheritance graph"></center>
+<map name="smesh_8Mesh__Hexahedron__inherit__map">
+<area href="classsmesh_1_1Mesh__Algorithm.html" shape="rect" coords="16,9,176,33" alt="">
+</map>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Hexahedron.html#d65de99b0553d2994bf93b9bc4194fba">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#d65de99b0553d2994bf93b9bc4194fba"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#39dd34eb5db727c1ff2b69a84df18394">GetSubMesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#8451e22abaaba662c00052d95f47f7b0">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#8451e22abaaba662c00052d95f47f7b0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#cb3346c2c3cd4334e82c951e2b4929ec">TreatHypoStatus</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#cb3346c2c3cd4334e82c951e2b4929ec"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b0ee92d94d1907fc263864b727685187">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#b0ee92d94d1907fc263864b727685187"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e6c4621e95fa72626c26a320a53c5929">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#e6c4621e95fa72626c26a320a53c5929"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#a2388901def73df05eabdc3dd0aeb876">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b637c67f711a33b32c3b56073a65db52">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e31641d994477ff6913cef21bc8eed50">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#169100dea59b37e7e9a0d155b7208fc8">algo</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">mesh</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">geom</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">subm</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">algo</a> = 0</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+More details. 
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="d65de99b0553d2994bf93b9bc4194fba"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::__init__" ref="d65de99b0553d2994bf93b9bc4194fba" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Hexahedron.__init__           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="39dd34eb5db727c1ff2b69a84df18394"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::GetSubMesh" ref="39dd34eb5db727c1ff2b69a84df18394" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetSubMesh           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="8451e22abaaba662c00052d95f47f7b0"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::GetAlgorithm" ref="8451e22abaaba662c00052d95f47f7b0" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetAlgorithm           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="cb3346c2c3cd4334e82c951e2b4929ec"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::TreatHypoStatus" ref="cb3346c2c3cd4334e82c951e2b4929ec" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.TreatHypoStatus           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geomName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>isAlgo</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Print error message if a hypothesis was not assigned.     </td>
+  </tr>
+</table>
+<a class="anchor" name="b0ee92d94d1907fc263864b727685187"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::Create" ref="b0ee92d94d1907fc263864b727685187" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Create           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e6c4621e95fa72626c26a320a53c5929"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::Hypothesis" ref="e6c4621e95fa72626c26a320a53c5929" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Hypothesis           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="47bfe89357342e4a889d4723518288e1"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::mesh" ref="47bfe89357342e4a889d4723518288e1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="a2388901def73df05eabdc3dd0aeb876"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::mesh" ref="a2388901def73df05eabdc3dd0aeb876" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="f6608d059606200dce0679f3367112d1"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::geom" ref="f6608d059606200dce0679f3367112d1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="b637c67f711a33b32c3b56073a65db52"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::geom" ref="b637c67f711a33b32c3b56073a65db52" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="981bc18824369ac623f4527b7ddddaf5"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::subm" ref="981bc18824369ac623f4527b7ddddaf5" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e31641d994477ff6913cef21bc8eed50"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::subm" ref="e31641d994477ff6913cef21bc8eed50" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ae7e23c67b8497a4b5bbf0cc53ac6693"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::algo" ref="ae7e23c67b8497a4b5bbf0cc53ac6693" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="169100dea59b37e7e9a0d155b7208fc8"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::algo" ref="169100dea59b37e7e9a0d155b7208fc8" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..4d1e65a
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Netgen.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Netgen.html
new file mode 100644 (file)
index 0000000..cab8462
--- /dev/null
@@ -0,0 +1,590 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>SALOME - SMESH - v.version: smesh.Mesh_Netgen Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.6 -->
+<h1>smesh.Mesh_Netgen Class Reference</h1><!-- doxytag: class="smesh::Mesh_Netgen" --><!-- doxytag: inherits="smesh::Mesh_Algorithm" -->Class to define a NETGEN-based 2D or 3D algorithm that need no discrete boundary (i.e.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smesh.Mesh_Netgen:<p><center><img src="classsmesh_1_1Mesh__Netgen__inherit__graph.jpg" border="0" usemap="#smesh_8Mesh__Netgen__inherit__map" alt="Inheritance graph"></center>
+<map name="smesh_8Mesh__Netgen__inherit__map">
+<area href="classsmesh_1_1Mesh__Algorithm.html" shape="rect" coords="8,9,168,33" alt="">
+</map>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Netgen.html#18bbc559d35c96498968cca5a6a489e2">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#18bbc559d35c96498968cca5a6a489e2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Netgen.html#0620ef2bccc9c400fb193dfd28fb0a26">Parameters</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define hypothesis containing parameters of the algorithm.  <a href="#0620ef2bccc9c400fb193dfd28fb0a26"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#39dd34eb5db727c1ff2b69a84df18394">GetSubMesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#8451e22abaaba662c00052d95f47f7b0">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#8451e22abaaba662c00052d95f47f7b0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#cb3346c2c3cd4334e82c951e2b4929ec">TreatHypoStatus</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#cb3346c2c3cd4334e82c951e2b4929ec"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b0ee92d94d1907fc263864b727685187">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#b0ee92d94d1907fc263864b727685187"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e6c4621e95fa72626c26a320a53c5929">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#e6c4621e95fa72626c26a320a53c5929"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Netgen.html#021b44db5124e62363500490c9b2cb33">is3D</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#a2388901def73df05eabdc3dd0aeb876">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b637c67f711a33b32c3b56073a65db52">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e31641d994477ff6913cef21bc8eed50">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#169100dea59b37e7e9a0d155b7208fc8">algo</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Netgen.html#ffe45db8ad553008d544a5aaf0ca980d">is3D</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">mesh</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">geom</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">subm</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">algo</a> = 0</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+independent)<p>
+More details. 
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="18bbc559d35c96498968cca5a6a489e2"></a><!-- doxytag: member="smesh::Mesh_Netgen::__init__" ref="18bbc559d35c96498968cca5a6a489e2" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Netgen.__init__           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>is3D</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="0620ef2bccc9c400fb193dfd28fb0a26"></a><!-- doxytag: member="smesh::Mesh_Netgen::Parameters" ref="0620ef2bccc9c400fb193dfd28fb0a26" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Netgen.Parameters           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="39dd34eb5db727c1ff2b69a84df18394"></a><!-- doxytag: member="smesh::Mesh_Netgen::GetSubMesh" ref="39dd34eb5db727c1ff2b69a84df18394" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetSubMesh           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="8451e22abaaba662c00052d95f47f7b0"></a><!-- doxytag: member="smesh::Mesh_Netgen::GetAlgorithm" ref="8451e22abaaba662c00052d95f47f7b0" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetAlgorithm           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="cb3346c2c3cd4334e82c951e2b4929ec"></a><!-- doxytag: member="smesh::Mesh_Netgen::TreatHypoStatus" ref="cb3346c2c3cd4334e82c951e2b4929ec" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.TreatHypoStatus           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geomName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>isAlgo</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Print error message if a hypothesis was not assigned.     </td>
+  </tr>
+</table>
+<a class="anchor" name="b0ee92d94d1907fc263864b727685187"></a><!-- doxytag: member="smesh::Mesh_Netgen::Create" ref="b0ee92d94d1907fc263864b727685187" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Create           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e6c4621e95fa72626c26a320a53c5929"></a><!-- doxytag: member="smesh::Mesh_Netgen::Hypothesis" ref="e6c4621e95fa72626c26a320a53c5929" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Hypothesis           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="ffe45db8ad553008d544a5aaf0ca980d"></a><!-- doxytag: member="smesh::Mesh_Netgen::is3D" ref="ffe45db8ad553008d544a5aaf0ca980d" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Netgen.html#ffe45db8ad553008d544a5aaf0ca980d">smesh.Mesh_Netgen.is3D</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="021b44db5124e62363500490c9b2cb33"></a><!-- doxytag: member="smesh::Mesh_Netgen::is3D" ref="021b44db5124e62363500490c9b2cb33" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Netgen.html#ffe45db8ad553008d544a5aaf0ca980d">smesh.Mesh_Netgen.is3D</a>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="47bfe89357342e4a889d4723518288e1"></a><!-- doxytag: member="smesh::Mesh_Netgen::mesh" ref="47bfe89357342e4a889d4723518288e1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="a2388901def73df05eabdc3dd0aeb876"></a><!-- doxytag: member="smesh::Mesh_Netgen::mesh" ref="a2388901def73df05eabdc3dd0aeb876" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="f6608d059606200dce0679f3367112d1"></a><!-- doxytag: member="smesh::Mesh_Netgen::geom" ref="f6608d059606200dce0679f3367112d1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="b637c67f711a33b32c3b56073a65db52"></a><!-- doxytag: member="smesh::Mesh_Netgen::geom" ref="b637c67f711a33b32c3b56073a65db52" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="981bc18824369ac623f4527b7ddddaf5"></a><!-- doxytag: member="smesh::Mesh_Netgen::subm" ref="981bc18824369ac623f4527b7ddddaf5" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e31641d994477ff6913cef21bc8eed50"></a><!-- doxytag: member="smesh::Mesh_Netgen::subm" ref="e31641d994477ff6913cef21bc8eed50" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ae7e23c67b8497a4b5bbf0cc53ac6693"></a><!-- doxytag: member="smesh::Mesh_Netgen::algo" ref="ae7e23c67b8497a4b5bbf0cc53ac6693" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="169100dea59b37e7e9a0d155b7208fc8"></a><!-- doxytag: member="smesh::Mesh_Netgen::algo" ref="169100dea59b37e7e9a0d155b7208fc8" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Netgen__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Netgen__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..d82cacd
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Netgen__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Quadrangle.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Quadrangle.html
new file mode 100644 (file)
index 0000000..8febcc8
--- /dev/null
@@ -0,0 +1,533 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>SALOME - SMESH - v.version: smesh.Mesh_Quadrangle Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.6 -->
+<h1>smesh.Mesh_Quadrangle Class Reference</h1><!-- doxytag: class="smesh::Mesh_Quadrangle" --><!-- doxytag: inherits="smesh::Mesh_Algorithm" -->Class to define a quadrangle 2D algorithm.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smesh.Mesh_Quadrangle:<p><center><img src="classsmesh_1_1Mesh__Quadrangle__inherit__graph.jpg" border="0" usemap="#smesh_8Mesh__Quadrangle__inherit__map" alt="Inheritance graph"></center>
+<map name="smesh_8Mesh__Quadrangle__inherit__map">
+<area href="classsmesh_1_1Mesh__Algorithm.html" shape="rect" coords="14,9,174,33" alt="">
+</map>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Quadrangle.html#5e71a8605f4a289ce099d399d33d362e">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#5e71a8605f4a289ce099d399d33d362e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Quadrangle.html#21ffcfa5246f721b875247de6b6b70cf">QuadranglePreference</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "QuadranglePreference" hypothesis, forcing construction of quadrangles if the number of nodes on opposite edges is not the same in the case where the global number of nodes on edges is even.  <a href="#21ffcfa5246f721b875247de6b6b70cf"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#39dd34eb5db727c1ff2b69a84df18394">GetSubMesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#8451e22abaaba662c00052d95f47f7b0">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#8451e22abaaba662c00052d95f47f7b0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#cb3346c2c3cd4334e82c951e2b4929ec">TreatHypoStatus</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#cb3346c2c3cd4334e82c951e2b4929ec"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b0ee92d94d1907fc263864b727685187">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#b0ee92d94d1907fc263864b727685187"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e6c4621e95fa72626c26a320a53c5929">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#e6c4621e95fa72626c26a320a53c5929"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#a2388901def73df05eabdc3dd0aeb876">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b637c67f711a33b32c3b56073a65db52">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e31641d994477ff6913cef21bc8eed50">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#169100dea59b37e7e9a0d155b7208fc8">algo</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">mesh</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">geom</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">subm</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">algo</a> = 0</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+More details. 
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="5e71a8605f4a289ce099d399d33d362e"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::__init__" ref="5e71a8605f4a289ce099d399d33d362e" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Quadrangle.__init__           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="21ffcfa5246f721b875247de6b6b70cf"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::QuadranglePreference" ref="21ffcfa5246f721b875247de6b6b70cf" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Quadrangle.QuadranglePreference           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="39dd34eb5db727c1ff2b69a84df18394"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::GetSubMesh" ref="39dd34eb5db727c1ff2b69a84df18394" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetSubMesh           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="8451e22abaaba662c00052d95f47f7b0"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::GetAlgorithm" ref="8451e22abaaba662c00052d95f47f7b0" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetAlgorithm           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="cb3346c2c3cd4334e82c951e2b4929ec"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::TreatHypoStatus" ref="cb3346c2c3cd4334e82c951e2b4929ec" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.TreatHypoStatus           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geomName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>isAlgo</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Print error message if a hypothesis was not assigned.     </td>
+  </tr>
+</table>
+<a class="anchor" name="b0ee92d94d1907fc263864b727685187"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::Create" ref="b0ee92d94d1907fc263864b727685187" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Create           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e6c4621e95fa72626c26a320a53c5929"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::Hypothesis" ref="e6c4621e95fa72626c26a320a53c5929" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Hypothesis           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="47bfe89357342e4a889d4723518288e1"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::mesh" ref="47bfe89357342e4a889d4723518288e1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="a2388901def73df05eabdc3dd0aeb876"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::mesh" ref="a2388901def73df05eabdc3dd0aeb876" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="f6608d059606200dce0679f3367112d1"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::geom" ref="f6608d059606200dce0679f3367112d1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="b637c67f711a33b32c3b56073a65db52"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::geom" ref="b637c67f711a33b32c3b56073a65db52" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="981bc18824369ac623f4527b7ddddaf5"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::subm" ref="981bc18824369ac623f4527b7ddddaf5" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e31641d994477ff6913cef21bc8eed50"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::subm" ref="e31641d994477ff6913cef21bc8eed50" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ae7e23c67b8497a4b5bbf0cc53ac6693"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::algo" ref="ae7e23c67b8497a4b5bbf0cc53ac6693" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="169100dea59b37e7e9a0d155b7208fc8"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::algo" ref="169100dea59b37e7e9a0d155b7208fc8" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Quadrangle__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Quadrangle__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..38172d2
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Quadrangle__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment.html
new file mode 100644 (file)
index 0000000..53ca6c9
--- /dev/null
@@ -0,0 +1,858 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>SALOME - SMESH - v.version: smesh.Mesh_Segment Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.6 -->
+<h1>smesh.Mesh_Segment Class Reference</h1><!-- doxytag: class="smesh::Mesh_Segment" --><!-- doxytag: inherits="smesh::Mesh_Algorithm" -->Class to define a segment 1D algorithm for discretization.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smesh.Mesh_Segment:<p><center><img src="classsmesh_1_1Mesh__Segment__inherit__graph.jpg" border="0" usemap="#smesh_8Mesh__Segment__inherit__map" alt="Inheritance graph"></center>
+<map name="smesh_8Mesh__Segment__inherit__map">
+<area href="classsmesh_1_1Mesh__Segment__Python.html" shape="rect" coords="8,158,216,182" alt="">
+<area href="classsmesh_1_1Mesh__Algorithm.html" shape="rect" coords="32,9,192,33" alt="">
+</map>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#3028b681627a583d99eee297936d2d8e">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#3028b681627a583d99eee297936d2d8e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#474a476f4ee613be478c94398202c6ad">LocalLength</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "LocalLength" hypothesis to cut an edge in several segments with the same length.  <a href="#474a476f4ee613be478c94398202c6ad"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#f562aced3f41d5dec7c344c78a21ff3b">NumberOfSegments</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "NumberOfSegments" hypothesis to cut an edge in several fixed number of segments.  <a href="#f562aced3f41d5dec7c344c78a21ff3b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#54cb7674f55ecb828ecadb1f3408b95f">Arithmetic1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Arithmetic1D" hypothesis to cut an edge in several segments with arithmetic length increasing.  <a href="#54cb7674f55ecb828ecadb1f3408b95f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#8824c58a068d8ebb6dfafe276cc45b6a">StartEndLength</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "StartEndLength" hypothesis to cut an edge in several segments with geometric length increasing.  <a href="#8824c58a068d8ebb6dfafe276cc45b6a"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#7bfa579e708b6c7558183fe50e414668">Deflection1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Deflection1D" hypothesis.  <a href="#7bfa579e708b6c7558183fe50e414668"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#e5d33518995c1ea6c97a4ae364841730">Propagation</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Propagation" hypothesis that propagate all other hypothesis on all others edges that are in the opposite side in the case of quadrangular faces.  <a href="#e5d33518995c1ea6c97a4ae364841730"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#7a7aff5f8542efaee0115e90f2dff9c8">AutomaticLength</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "AutomaticLength" hypothesis.  <a href="#7a7aff5f8542efaee0115e90f2dff9c8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#7e99441cd6f8b7be3888663345ce8f20">QuadraticMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "QuadraticMesh" hypothesis, forcing construction of quadratic edges.  <a href="#7e99441cd6f8b7be3888663345ce8f20"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#39dd34eb5db727c1ff2b69a84df18394">GetSubMesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#8451e22abaaba662c00052d95f47f7b0">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#8451e22abaaba662c00052d95f47f7b0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#cb3346c2c3cd4334e82c951e2b4929ec">TreatHypoStatus</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#cb3346c2c3cd4334e82c951e2b4929ec"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b0ee92d94d1907fc263864b727685187">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#b0ee92d94d1907fc263864b727685187"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e6c4621e95fa72626c26a320a53c5929">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#e6c4621e95fa72626c26a320a53c5929"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#a2388901def73df05eabdc3dd0aeb876">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b637c67f711a33b32c3b56073a65db52">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e31641d994477ff6913cef21bc8eed50">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#169100dea59b37e7e9a0d155b7208fc8">algo</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">mesh</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">geom</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">subm</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">algo</a> = 0</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+More details. 
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="3028b681627a583d99eee297936d2d8e"></a><!-- doxytag: member="smesh::Mesh_Segment::__init__" ref="3028b681627a583d99eee297936d2d8e" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.__init__           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment__Python.html#fc80535134635f793e2b3b2aa31a8277">smesh.Mesh_Segment_Python</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="474a476f4ee613be478c94398202c6ad"></a><!-- doxytag: member="smesh::Mesh_Segment::LocalLength" ref="474a476f4ee613be478c94398202c6ad" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.LocalLength           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>l</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>l</em>&nbsp;</td><td>for the length of segments that cut an edge </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="f562aced3f41d5dec7c344c78a21ff3b"></a><!-- doxytag: member="smesh::Mesh_Segment::NumberOfSegments" ref="f562aced3f41d5dec7c344c78a21ff3b" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.NumberOfSegments           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>n</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>s</em> = <code>[]</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>for the number of segments that cut an edge </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>for the scale factor (optional) </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="54cb7674f55ecb828ecadb1f3408b95f"></a><!-- doxytag: member="smesh::Mesh_Segment::Arithmetic1D" ref="54cb7674f55ecb828ecadb1f3408b95f" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.Arithmetic1D           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>start</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>end</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>for the length of the first segment </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>end</em>&nbsp;</td><td>for the length of the last segment </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="8824c58a068d8ebb6dfafe276cc45b6a"></a><!-- doxytag: member="smesh::Mesh_Segment::StartEndLength" ref="8824c58a068d8ebb6dfafe276cc45b6a" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.StartEndLength           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>start</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>end</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>for the length of the first segment </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>end</em>&nbsp;</td><td>for the length of the last segment </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="7bfa579e708b6c7558183fe50e414668"></a><!-- doxytag: member="smesh::Mesh_Segment::Deflection1D" ref="7bfa579e708b6c7558183fe50e414668" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.Deflection1D           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>d</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>d</em>&nbsp;</td><td>for the deflection </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e5d33518995c1ea6c97a4ae364841730"></a><!-- doxytag: member="smesh::Mesh_Segment::Propagation" ref="e5d33518995c1ea6c97a4ae364841730" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.Propagation           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="7a7aff5f8542efaee0115e90f2dff9c8"></a><!-- doxytag: member="smesh::Mesh_Segment::AutomaticLength" ref="7a7aff5f8542efaee0115e90f2dff9c8" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.AutomaticLength           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>fineness</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>fineness</em>&nbsp;</td><td>for the fineness [0-1] </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="7e99441cd6f8b7be3888663345ce8f20"></a><!-- doxytag: member="smesh::Mesh_Segment::QuadraticMesh" ref="7e99441cd6f8b7be3888663345ce8f20" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.QuadraticMesh           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+If the 2D mesher sees that all boundary edges are quadratic ones, it generates quadratic faces, else it generates linear faces using medium nodes as if they were vertex ones. The 3D mesher generates quadratic volumes only if all boundary faces are quadratic ones, else it fails.     </td>
+  </tr>
+</table>
+<a class="anchor" name="39dd34eb5db727c1ff2b69a84df18394"></a><!-- doxytag: member="smesh::Mesh_Segment::GetSubMesh" ref="39dd34eb5db727c1ff2b69a84df18394" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetSubMesh           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="8451e22abaaba662c00052d95f47f7b0"></a><!-- doxytag: member="smesh::Mesh_Segment::GetAlgorithm" ref="8451e22abaaba662c00052d95f47f7b0" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetAlgorithm           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="cb3346c2c3cd4334e82c951e2b4929ec"></a><!-- doxytag: member="smesh::Mesh_Segment::TreatHypoStatus" ref="cb3346c2c3cd4334e82c951e2b4929ec" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.TreatHypoStatus           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geomName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>isAlgo</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Print error message if a hypothesis was not assigned.     </td>
+  </tr>
+</table>
+<a class="anchor" name="b0ee92d94d1907fc263864b727685187"></a><!-- doxytag: member="smesh::Mesh_Segment::Create" ref="b0ee92d94d1907fc263864b727685187" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Create           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e6c4621e95fa72626c26a320a53c5929"></a><!-- doxytag: member="smesh::Mesh_Segment::Hypothesis" ref="e6c4621e95fa72626c26a320a53c5929" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Hypothesis           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="47bfe89357342e4a889d4723518288e1"></a><!-- doxytag: member="smesh::Mesh_Segment::mesh" ref="47bfe89357342e4a889d4723518288e1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="a2388901def73df05eabdc3dd0aeb876"></a><!-- doxytag: member="smesh::Mesh_Segment::mesh" ref="a2388901def73df05eabdc3dd0aeb876" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="f6608d059606200dce0679f3367112d1"></a><!-- doxytag: member="smesh::Mesh_Segment::geom" ref="f6608d059606200dce0679f3367112d1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="b637c67f711a33b32c3b56073a65db52"></a><!-- doxytag: member="smesh::Mesh_Segment::geom" ref="b637c67f711a33b32c3b56073a65db52" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="981bc18824369ac623f4527b7ddddaf5"></a><!-- doxytag: member="smesh::Mesh_Segment::subm" ref="981bc18824369ac623f4527b7ddddaf5" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e31641d994477ff6913cef21bc8eed50"></a><!-- doxytag: member="smesh::Mesh_Segment::subm" ref="e31641d994477ff6913cef21bc8eed50" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ae7e23c67b8497a4b5bbf0cc53ac6693"></a><!-- doxytag: member="smesh::Mesh_Segment::algo" ref="ae7e23c67b8497a4b5bbf0cc53ac6693" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="169100dea59b37e7e9a0d155b7208fc8"></a><!-- doxytag: member="smesh::Mesh_Segment::algo" ref="169100dea59b37e7e9a0d155b7208fc8" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__Python.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__Python.html
new file mode 100644 (file)
index 0000000..230c9c2
--- /dev/null
@@ -0,0 +1,910 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>SALOME - SMESH - v.version: smesh.Mesh_Segment_Python Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.6 -->
+<h1>smesh.Mesh_Segment_Python Class Reference</h1><!-- doxytag: class="smesh::Mesh_Segment_Python" --><!-- doxytag: inherits="smesh::Mesh_Segment" -->Class to define a segment 1D algorithm for discretization with python function.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smesh.Mesh_Segment_Python:<p><center><img src="classsmesh_1_1Mesh__Segment__Python__inherit__graph.jpg" border="0" usemap="#smesh_8Mesh__Segment__Python__inherit__map" alt="Inheritance graph"></center>
+<map name="smesh_8Mesh__Segment__Python__inherit__map">
+<area href="classsmesh_1_1Mesh__Segment.html" shape="rect" coords="33,84,190,108" alt="">
+<area href="classsmesh_1_1Mesh__Algorithm.html" shape="rect" coords="32,9,192,33" alt="">
+</map>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment__Python.html#fc80535134635f793e2b3b2aa31a8277">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#fc80535134635f793e2b3b2aa31a8277"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment__Python.html#f76e302de7146a1af9ad154f37108b6f">PythonSplit1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "PythonSplit1D" hypothesis based on the Erwan Adam patch, awaiting equivalent SALOME functionality.  <a href="#f76e302de7146a1af9ad154f37108b6f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#474a476f4ee613be478c94398202c6ad">LocalLength</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "LocalLength" hypothesis to cut an edge in several segments with the same length.  <a href="#474a476f4ee613be478c94398202c6ad"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#f562aced3f41d5dec7c344c78a21ff3b">NumberOfSegments</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "NumberOfSegments" hypothesis to cut an edge in several fixed number of segments.  <a href="#f562aced3f41d5dec7c344c78a21ff3b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#54cb7674f55ecb828ecadb1f3408b95f">Arithmetic1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Arithmetic1D" hypothesis to cut an edge in several segments with arithmetic length increasing.  <a href="#54cb7674f55ecb828ecadb1f3408b95f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#8824c58a068d8ebb6dfafe276cc45b6a">StartEndLength</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "StartEndLength" hypothesis to cut an edge in several segments with geometric length increasing.  <a href="#8824c58a068d8ebb6dfafe276cc45b6a"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#7bfa579e708b6c7558183fe50e414668">Deflection1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Deflection1D" hypothesis.  <a href="#7bfa579e708b6c7558183fe50e414668"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#e5d33518995c1ea6c97a4ae364841730">Propagation</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Propagation" hypothesis that propagate all other hypothesis on all others edges that are in the opposite side in the case of quadrangular faces.  <a href="#e5d33518995c1ea6c97a4ae364841730"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#7a7aff5f8542efaee0115e90f2dff9c8">AutomaticLength</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "AutomaticLength" hypothesis.  <a href="#7a7aff5f8542efaee0115e90f2dff9c8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html#7e99441cd6f8b7be3888663345ce8f20">QuadraticMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "QuadraticMesh" hypothesis, forcing construction of quadratic edges.  <a href="#7e99441cd6f8b7be3888663345ce8f20"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#39dd34eb5db727c1ff2b69a84df18394">GetSubMesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#8451e22abaaba662c00052d95f47f7b0">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#8451e22abaaba662c00052d95f47f7b0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#cb3346c2c3cd4334e82c951e2b4929ec">TreatHypoStatus</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#cb3346c2c3cd4334e82c951e2b4929ec"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b0ee92d94d1907fc263864b727685187">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#b0ee92d94d1907fc263864b727685187"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e6c4621e95fa72626c26a320a53c5929">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#e6c4621e95fa72626c26a320a53c5929"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#a2388901def73df05eabdc3dd0aeb876">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b637c67f711a33b32c3b56073a65db52">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e31641d994477ff6913cef21bc8eed50">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#169100dea59b37e7e9a0d155b7208fc8">algo</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">mesh</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">geom</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">subm</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">algo</a> = 0</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+More details. 
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="fc80535134635f793e2b3b2aa31a8277"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::__init__" ref="fc80535134635f793e2b3b2aa31a8277" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment_Python.__init__           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="classsmesh_1_1Mesh__Segment.html#3028b681627a583d99eee297936d2d8e">smesh.Mesh_Segment</a>.    </td>
+  </tr>
+</table>
+<a class="anchor" name="f76e302de7146a1af9ad154f37108b6f"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::PythonSplit1D" ref="f76e302de7146a1af9ad154f37108b6f" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment_Python.PythonSplit1D           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>n</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>func</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>for the number of segments that cut an edge </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>for the python function that calculate the length of all segments </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="474a476f4ee613be478c94398202c6ad"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::LocalLength" ref="474a476f4ee613be478c94398202c6ad" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.LocalLength           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>l</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>l</em>&nbsp;</td><td>for the length of segments that cut an edge </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="f562aced3f41d5dec7c344c78a21ff3b"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::NumberOfSegments" ref="f562aced3f41d5dec7c344c78a21ff3b" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.NumberOfSegments           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>n</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>s</em> = <code>[]</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>for the number of segments that cut an edge </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>for the scale factor (optional) </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="54cb7674f55ecb828ecadb1f3408b95f"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::Arithmetic1D" ref="54cb7674f55ecb828ecadb1f3408b95f" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.Arithmetic1D           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>start</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>end</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>for the length of the first segment </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>end</em>&nbsp;</td><td>for the length of the last segment </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="8824c58a068d8ebb6dfafe276cc45b6a"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::StartEndLength" ref="8824c58a068d8ebb6dfafe276cc45b6a" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.StartEndLength           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>start</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>end</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>for the length of the first segment </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>end</em>&nbsp;</td><td>for the length of the last segment </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="7bfa579e708b6c7558183fe50e414668"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::Deflection1D" ref="7bfa579e708b6c7558183fe50e414668" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.Deflection1D           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>d</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>d</em>&nbsp;</td><td>for the deflection </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e5d33518995c1ea6c97a4ae364841730"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::Propagation" ref="e5d33518995c1ea6c97a4ae364841730" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.Propagation           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="7a7aff5f8542efaee0115e90f2dff9c8"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::AutomaticLength" ref="7a7aff5f8542efaee0115e90f2dff9c8" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.AutomaticLength           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>fineness</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>fineness</em>&nbsp;</td><td>for the fineness [0-1] </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="7e99441cd6f8b7be3888663345ce8f20"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::QuadraticMesh" ref="7e99441cd6f8b7be3888663345ce8f20" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Segment.QuadraticMesh           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+If the 2D mesher sees that all boundary edges are quadratic ones, it generates quadratic faces, else it generates linear faces using medium nodes as if they were vertex ones. The 3D mesher generates quadratic volumes only if all boundary faces are quadratic ones, else it fails.     </td>
+  </tr>
+</table>
+<a class="anchor" name="39dd34eb5db727c1ff2b69a84df18394"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::GetSubMesh" ref="39dd34eb5db727c1ff2b69a84df18394" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetSubMesh           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="8451e22abaaba662c00052d95f47f7b0"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::GetAlgorithm" ref="8451e22abaaba662c00052d95f47f7b0" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetAlgorithm           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="cb3346c2c3cd4334e82c951e2b4929ec"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::TreatHypoStatus" ref="cb3346c2c3cd4334e82c951e2b4929ec" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.TreatHypoStatus           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geomName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>isAlgo</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Print error message if a hypothesis was not assigned.     </td>
+  </tr>
+</table>
+<a class="anchor" name="b0ee92d94d1907fc263864b727685187"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::Create" ref="b0ee92d94d1907fc263864b727685187" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Create           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e6c4621e95fa72626c26a320a53c5929"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::Hypothesis" ref="e6c4621e95fa72626c26a320a53c5929" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Hypothesis           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="47bfe89357342e4a889d4723518288e1"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::mesh" ref="47bfe89357342e4a889d4723518288e1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="a2388901def73df05eabdc3dd0aeb876"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::mesh" ref="a2388901def73df05eabdc3dd0aeb876" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="f6608d059606200dce0679f3367112d1"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::geom" ref="f6608d059606200dce0679f3367112d1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="b637c67f711a33b32c3b56073a65db52"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::geom" ref="b637c67f711a33b32c3b56073a65db52" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="981bc18824369ac623f4527b7ddddaf5"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::subm" ref="981bc18824369ac623f4527b7ddddaf5" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e31641d994477ff6913cef21bc8eed50"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::subm" ref="e31641d994477ff6913cef21bc8eed50" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ae7e23c67b8497a4b5bbf0cc53ac6693"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::algo" ref="ae7e23c67b8497a4b5bbf0cc53ac6693" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="169100dea59b37e7e9a0d155b7208fc8"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::algo" ref="169100dea59b37e7e9a0d155b7208fc8" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__Python__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__Python__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..68ae8f3
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__Python__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..a5de471
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Tetrahedron.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Tetrahedron.html
new file mode 100644 (file)
index 0000000..e0064ee
--- /dev/null
@@ -0,0 +1,553 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>SALOME - SMESH - v.version: smesh.Mesh_Tetrahedron Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.6 -->
+<h1>smesh.Mesh_Tetrahedron Class Reference</h1><!-- doxytag: class="smesh::Mesh_Tetrahedron" --><!-- doxytag: inherits="smesh::Mesh_Algorithm" -->Class to define a tetrahedron 3D algorithm.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smesh.Mesh_Tetrahedron:<p><center><img src="classsmesh_1_1Mesh__Tetrahedron__inherit__graph.jpg" border="0" usemap="#smesh_8Mesh__Tetrahedron__inherit__map" alt="Inheritance graph"></center>
+<map name="smesh_8Mesh__Tetrahedron__inherit__map">
+<area href="classsmesh_1_1Mesh__Algorithm.html" shape="rect" coords="16,9,176,33" alt="">
+</map>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Tetrahedron.html#4f6c4b76dac2b592bb1a035f59662e86">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#4f6c4b76dac2b592bb1a035f59662e86"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Tetrahedron.html#b00ebafde33e06e82ec0d156891a83be">MaxElementVolume</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "MaxElementVolume" hypothesis to give the maximun volume of each tetrahedral.  <a href="#b00ebafde33e06e82ec0d156891a83be"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#39dd34eb5db727c1ff2b69a84df18394">GetSubMesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#8451e22abaaba662c00052d95f47f7b0">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#8451e22abaaba662c00052d95f47f7b0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#cb3346c2c3cd4334e82c951e2b4929ec">TreatHypoStatus</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#cb3346c2c3cd4334e82c951e2b4929ec"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b0ee92d94d1907fc263864b727685187">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#b0ee92d94d1907fc263864b727685187"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e6c4621e95fa72626c26a320a53c5929">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#e6c4621e95fa72626c26a320a53c5929"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#a2388901def73df05eabdc3dd0aeb876">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b637c67f711a33b32c3b56073a65db52">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e31641d994477ff6913cef21bc8eed50">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#169100dea59b37e7e9a0d155b7208fc8">algo</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">mesh</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">geom</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">subm</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">algo</a> = 0</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+More details. 
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="4f6c4b76dac2b592bb1a035f59662e86"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::__init__" ref="4f6c4b76dac2b592bb1a035f59662e86" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Tetrahedron.__init__           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>algo</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="b00ebafde33e06e82ec0d156891a83be"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::MaxElementVolume" ref="b00ebafde33e06e82ec0d156891a83be" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Tetrahedron.MaxElementVolume           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>vol</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>vol</em>&nbsp;</td><td>for the maximum volume of each tetrahedral </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="39dd34eb5db727c1ff2b69a84df18394"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::GetSubMesh" ref="39dd34eb5db727c1ff2b69a84df18394" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetSubMesh           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="8451e22abaaba662c00052d95f47f7b0"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::GetAlgorithm" ref="8451e22abaaba662c00052d95f47f7b0" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetAlgorithm           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="cb3346c2c3cd4334e82c951e2b4929ec"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::TreatHypoStatus" ref="cb3346c2c3cd4334e82c951e2b4929ec" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.TreatHypoStatus           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geomName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>isAlgo</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Print error message if a hypothesis was not assigned.     </td>
+  </tr>
+</table>
+<a class="anchor" name="b0ee92d94d1907fc263864b727685187"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::Create" ref="b0ee92d94d1907fc263864b727685187" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Create           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e6c4621e95fa72626c26a320a53c5929"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::Hypothesis" ref="e6c4621e95fa72626c26a320a53c5929" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Hypothesis           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="47bfe89357342e4a889d4723518288e1"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::mesh" ref="47bfe89357342e4a889d4723518288e1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="a2388901def73df05eabdc3dd0aeb876"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::mesh" ref="a2388901def73df05eabdc3dd0aeb876" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="f6608d059606200dce0679f3367112d1"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::geom" ref="f6608d059606200dce0679f3367112d1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="b637c67f711a33b32c3b56073a65db52"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::geom" ref="b637c67f711a33b32c3b56073a65db52" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="981bc18824369ac623f4527b7ddddaf5"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::subm" ref="981bc18824369ac623f4527b7ddddaf5" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e31641d994477ff6913cef21bc8eed50"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::subm" ref="e31641d994477ff6913cef21bc8eed50" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ae7e23c67b8497a4b5bbf0cc53ac6693"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::algo" ref="ae7e23c67b8497a4b5bbf0cc53ac6693" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="169100dea59b37e7e9a0d155b7208fc8"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::algo" ref="169100dea59b37e7e9a0d155b7208fc8" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Tetrahedron__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Tetrahedron__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..78d01b1
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Tetrahedron__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Triangle.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Triangle.html
new file mode 100644 (file)
index 0000000..718cfc3
--- /dev/null
@@ -0,0 +1,578 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>SALOME - SMESH - v.version: smesh.Mesh_Triangle Class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.6 -->
+<h1>smesh.Mesh_Triangle Class Reference</h1><!-- doxytag: class="smesh::Mesh_Triangle" --><!-- doxytag: inherits="smesh::Mesh_Algorithm" -->Class to define a triangle 2D algorithm.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smesh.Mesh_Triangle:<p><center><img src="classsmesh_1_1Mesh__Triangle__inherit__graph.jpg" border="0" usemap="#smesh_8Mesh__Triangle__inherit__map" alt="Inheritance graph"></center>
+<map name="smesh_8Mesh__Triangle__inherit__map">
+<area href="classsmesh_1_1Mesh__Algorithm.html" shape="rect" coords="8,9,168,33" alt="">
+</map>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Triangle.html#d7de151c483aa4ccc41757e1986718b0">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#d7de151c483aa4ccc41757e1986718b0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Triangle.html#9fe448143f3fa207b3d46536b30342ec">MaxElementArea</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "MaxElementArea" hypothesis to give the maximun area of each triangles.  <a href="#9fe448143f3fa207b3d46536b30342ec"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Triangle.html#d2b41cafc2001c01d19619ce21379760">LengthFromEdges</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "LengthFromEdges" hypothesis to build triangles based on the length of the edges taken from the wire.  <a href="#d2b41cafc2001c01d19619ce21379760"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#39dd34eb5db727c1ff2b69a84df18394">GetSubMesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#8451e22abaaba662c00052d95f47f7b0">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#8451e22abaaba662c00052d95f47f7b0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#cb3346c2c3cd4334e82c951e2b4929ec">TreatHypoStatus</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#cb3346c2c3cd4334e82c951e2b4929ec"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b0ee92d94d1907fc263864b727685187">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#b0ee92d94d1907fc263864b727685187"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e6c4621e95fa72626c26a320a53c5929">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#e6c4621e95fa72626c26a320a53c5929"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#a2388901def73df05eabdc3dd0aeb876">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#b637c67f711a33b32c3b56073a65db52">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#e31641d994477ff6913cef21bc8eed50">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#169100dea59b37e7e9a0d155b7208fc8">algo</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">mesh</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">geom</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">subm</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">algo</a> = 0</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+More details. 
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="d7de151c483aa4ccc41757e1986718b0"></a><!-- doxytag: member="smesh::Mesh_Triangle::__init__" ref="d7de151c483aa4ccc41757e1986718b0" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Triangle.__init__           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em> = <code>0</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="9fe448143f3fa207b3d46536b30342ec"></a><!-- doxytag: member="smesh::Mesh_Triangle::MaxElementArea" ref="9fe448143f3fa207b3d46536b30342ec" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Triangle.MaxElementArea           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>area</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>area</em>&nbsp;</td><td>for the maximum area of each triangles </td></tr>
+  </table>
+</dl>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="d2b41cafc2001c01d19619ce21379760"></a><!-- doxytag: member="smesh::Mesh_Triangle::LengthFromEdges" ref="d2b41cafc2001c01d19619ce21379760" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Triangle.LengthFromEdges           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="39dd34eb5db727c1ff2b69a84df18394"></a><!-- doxytag: member="smesh::Mesh_Triangle::GetSubMesh" ref="39dd34eb5db727c1ff2b69a84df18394" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetSubMesh           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="8451e22abaaba662c00052d95f47f7b0"></a><!-- doxytag: member="smesh::Mesh_Triangle::GetAlgorithm" ref="8451e22abaaba662c00052d95f47f7b0" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.GetAlgorithm           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>self</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="cb3346c2c3cd4334e82c951e2b4929ec"></a><!-- doxytag: member="smesh::Mesh_Triangle::TreatHypoStatus" ref="cb3346c2c3cd4334e82c951e2b4929ec" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.TreatHypoStatus           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geomName</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>isAlgo</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Print error message if a hypothesis was not assigned.     </td>
+  </tr>
+</table>
+<a class="anchor" name="b0ee92d94d1907fc263864b727685187"></a><!-- doxytag: member="smesh::Mesh_Triangle::Create" ref="b0ee92d94d1907fc263864b727685187" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Create           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e6c4621e95fa72626c26a320a53c5929"></a><!-- doxytag: member="smesh::Mesh_Triangle::Hypothesis" ref="e6c4621e95fa72626c26a320a53c5929" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.Mesh_Algorithm.Hypothesis           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"><code> [inherited]</code></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="47bfe89357342e4a889d4723518288e1"></a><!-- doxytag: member="smesh::Mesh_Triangle::mesh" ref="47bfe89357342e4a889d4723518288e1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="a2388901def73df05eabdc3dd0aeb876"></a><!-- doxytag: member="smesh::Mesh_Triangle::mesh" ref="a2388901def73df05eabdc3dd0aeb876" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#47bfe89357342e4a889d4723518288e1">smesh.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="f6608d059606200dce0679f3367112d1"></a><!-- doxytag: member="smesh::Mesh_Triangle::geom" ref="f6608d059606200dce0679f3367112d1" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="b637c67f711a33b32c3b56073a65db52"></a><!-- doxytag: member="smesh::Mesh_Triangle::geom" ref="b637c67f711a33b32c3b56073a65db52" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="981bc18824369ac623f4527b7ddddaf5"></a><!-- doxytag: member="smesh::Mesh_Triangle::subm" ref="981bc18824369ac623f4527b7ddddaf5" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="e31641d994477ff6913cef21bc8eed50"></a><!-- doxytag: member="smesh::Mesh_Triangle::subm" ref="e31641d994477ff6913cef21bc8eed50" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#981bc18824369ac623f4527b7ddddaf5">smesh.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="ae7e23c67b8497a4b5bbf0cc53ac6693"></a><!-- doxytag: member="smesh::Mesh_Triangle::algo" ref="ae7e23c67b8497a4b5bbf0cc53ac6693" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a> = 0<code> [static, inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="169100dea59b37e7e9a0d155b7208fc8"></a><!-- doxytag: member="smesh::Mesh_Triangle::algo" ref="169100dea59b37e7e9a0d155b7208fc8" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html#ae7e23c67b8497a4b5bbf0cc53ac6693">smesh.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Triangle__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Triangle__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..30692a1
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Triangle__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/doxygen.css b/doc/salome/gui/SMESH/smeshpy_doc/doxygen.css
new file mode 100644 (file)
index 0000000..dc9da52
--- /dev/null
@@ -0,0 +1,218 @@
+H1 {
+       text-align: center;
+       font-family: Geneva, Arial, Helvetica, sans-serif;
+}
+H2 {
+       font-family: Geneva, Arial, Helvetica, sans-serif;
+}
+CAPTION { font-weight: bold }
+DIV.qindex {
+       width: 100%;
+       background-color: #eeeeff;
+       border: 1px solid #B0B0B0;
+       text-align: center;
+       margin: 2px;
+       padding: 2px;
+       line-height: 120%;
+}
+A.qindex {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D;
+       padding: 2px;
+}
+A.qindex:visited {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D
+       padding: 2px;
+}
+A.qindex:hover {
+       text-decoration: none;
+       background-color: #ddddff;
+       padding: 2px;
+}
+A.qindexHL {
+       text-decoration: none;
+       font-weight: bold;
+       background-color: #6666cc;
+       color: #ffffff;
+       padding: 2px 6px;
+       border: 1px double #9295C2;
+}
+A.qindexHL:hover {
+       text-decoration: none;
+       background-color: #6666cc;
+       color: #ffffff;
+       padding: 2px 6px;
+}
+A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
+A.el { text-decoration: none; font-weight: bold }
+A.elRef { font-weight: bold }
+A.code { text-decoration: none; font-weight: normal; color: #1A419D}
+A.codeRef { font-weight: normal; color: #1A419D}
+A:hover { text-decoration: none; background-color: #f2f2ff }
+DL.el { margin-left: -1cm }
+PRE.fragment {
+       border: 1px solid #CCCCCC;
+       background-color: #f5f5f5;
+       margin-top: 4px;
+       margin-bottom: 4px;
+       margin-left: 2px;
+       margin-right: 8px;
+       padding-left: 6px;
+       padding-right: 6px;
+       padding-top: 4px;
+       padding-bottom: 4px;
+}
+DIV.fragment {
+       border: 1px solid #CCCCCC;
+       background-color: #f5f5f5;
+       padding: 6px;
+}
+DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
+TD.md { background-color: #F4F4FB; font-weight: bold; }
+TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; }
+TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; }
+DIV.groupHeader {
+       margin-left: 16px;
+       margin-top: 12px;
+       margin-bottom: 6px;
+       font-weight: bold;
+       font-family: Geneva, Arial, Helvetica, sans-serif;
+}
+DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller }
+BODY {
+       background: white;
+       color: black;
+       margin-right: 20px;
+       margin-left: 20px;
+}
+TD.indexkey {
+       background-color: #eeeeff;
+       font-weight: bold;
+       padding-right  : 10px;
+       padding-top    : 2px;
+       padding-left   : 10px;
+       padding-bottom : 2px;
+       margin-left    : 0px;
+       margin-right   : 0px;
+       margin-top     : 2px;
+       margin-bottom  : 2px;
+       border: 1px solid #CCCCCC;
+}
+TD.indexvalue {
+       background-color: #eeeeff;
+       font-style: italic;
+       padding-right  : 10px;
+       padding-top    : 2px;
+       padding-left   : 10px;
+       padding-bottom : 2px;
+       margin-left    : 0px;
+       margin-right   : 0px;
+       margin-top     : 2px;
+       margin-bottom  : 2px;
+       border: 1px solid #CCCCCC;
+}
+TR.memlist {
+   background-color: #f0f0f0; 
+}
+P.formulaDsp { text-align: center; }
+IMG.formulaDsp { }
+IMG.formulaInl { vertical-align: middle; }
+SPAN.keyword       { color: #008000 }
+SPAN.keywordtype   { color: #604020 }
+SPAN.keywordflow   { color: #e08000 }
+SPAN.comment       { color: #800000 }
+SPAN.preprocessor  { color: #806020 }
+SPAN.stringliteral { color: #002080 }
+SPAN.charliteral   { color: #008080 }
+.mdTable {
+       border: 1px solid #868686;
+       background-color: #F4F4FB;
+}
+.mdRow {
+       padding: 8px 10px;
+}
+.mdescLeft {
+       font-size: smaller;
+       font-style: italic;
+       background-color: #FAFAFA;
+       padding-left: 8px;
+       border-top: 1px none #E0E0E0;
+       border-right: 1px none #E0E0E0;
+       border-bottom: 1px none #E0E0E0;
+       border-left: 1px none #E0E0E0;
+       margin: 0px;
+}
+.mdescRight {
+       font-size: smaller;
+       font-style: italic;
+       background-color: #FAFAFA;
+       padding-left: 4px;
+       border-top: 1px none #E0E0E0;
+       border-right: 1px none #E0E0E0;
+       border-bottom: 1px none #E0E0E0;
+       border-left: 1px none #E0E0E0;
+       margin: 0px;
+       padding-bottom: 0px;
+       padding-right: 8px;
+}
+.memItemLeft {
+       padding: 1px 0px 0px 8px;
+       margin: 4px;
+       border-top-width: 1px;
+       border-right-width: 1px;
+       border-bottom-width: 1px;
+       border-left-width: 1px;
+       border-top-style: solid;
+       border-top-color: #E0E0E0;
+       border-right-color: #E0E0E0;
+       border-bottom-color: #E0E0E0;
+       border-left-color: #E0E0E0;
+       border-right-style: none;
+       border-bottom-style: none;
+       border-left-style: none;
+       background-color: #FAFAFA;
+       font-family: Geneva, Arial, Helvetica, sans-serif;
+       font-size: 12px;
+}
+.memItemRight {
+       padding: 1px 0px 0px 8px;
+       margin: 4px;
+       border-top-width: 1px;
+       border-right-width: 1px;
+       border-bottom-width: 1px;
+       border-left-width: 1px;
+       border-top-style: solid;
+       border-top-color: #E0E0E0;
+       border-right-color: #E0E0E0;
+       border-bottom-color: #E0E0E0;
+       border-left-color: #E0E0E0;
+       border-right-style: none;
+       border-bottom-style: none;
+       border-left-style: none;
+       background-color: #FAFAFA;
+       font-family: Geneva, Arial, Helvetica, sans-serif;
+       font-size: 13px;
+}
+.search     { color: #003399;
+              font-weight: bold;
+}
+FORM.search {
+              margin-bottom: 0px;
+              margin-top: 0px;
+}
+INPUT.search { font-size: 75%;
+               color: #000080;
+               font-weight: normal;
+               background-color: #eeeeff;
+}
+TD.tiny      { font-size: 75%;
+}
+a {
+       color: #252E78;
+}
+a:visited {
+       color: #3D2185;
+}
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/namespacesmesh.html b/doc/salome/gui/SMESH/smeshpy_doc/namespacesmesh.html
new file mode 100644 (file)
index 0000000..130b888
--- /dev/null
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>SALOME - SMESH - v.version: Package smesh</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.6 -->
+<h1>Package smesh</h1>
+<p>
+Python package smesh defines several classes, destined for easy and clear mesh creation and edition.
+<p class="whs2"><a href="../smesh_py_introduction.htm">Example.</a></p>
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Algorithm.html">Mesh_Algorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Mother class to define algorithm, recommended to don't use directly.  <a href="classsmesh_1_1Mesh__Algorithm.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment.html">Mesh_Segment</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a segment 1D algorithm for discretization.  <a href="classsmesh_1_1Mesh__Segment.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Segment__Python.html">Mesh_Segment_Python</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a segment 1D algorithm for discretization with python function.  <a href="classsmesh_1_1Mesh__Segment__Python.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Triangle.html">Mesh_Triangle</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a triangle 2D algorithm.  <a href="classsmesh_1_1Mesh__Triangle.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Quadrangle.html">Mesh_Quadrangle</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a quadrangle 2D algorithm.  <a href="classsmesh_1_1Mesh__Quadrangle.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Tetrahedron.html">Mesh_Tetrahedron</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a tetrahedron 3D algorithm.  <a href="classsmesh_1_1Mesh__Tetrahedron.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Hexahedron.html">Mesh_Hexahedron</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a hexahedron 3D algorithm.  <a href="classsmesh_1_1Mesh__Hexahedron.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh__Netgen.html">Mesh_Netgen</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a NETGEN-based 2D or 3D algorithm that need no discrete boundary (i.e.  <a href="classsmesh_1_1Mesh__Netgen.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html">Mesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a mesh.  <a href="classsmesh_1_1Mesh.html#_details">More...</a><br></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmesh.html#78d19ec2e8b9d0290e401878b14ade9c">GetName</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmesh.html#79291ef16549a9ea4338f6515d2a3347">SetName</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmesh.html#85f3ed596d91251bfa3b2d2ac4151739">REGULAR</a> = 1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmesh.html#40eed802c94269a68ec2194609fac2f0">PYTHON</a> = 2</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmesh.html#72b65da5195aa8d71574f95e5533d612">NETGEN</a> = 3</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmesh.html#bf6aaa2e2cf565cbe3ae34954dee8926">GHS3D</a> = 4</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">tuple&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmesh.html#6e041b9ca898fefe3ea0abafeed4aff2">smesh</a> = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, &quot;SMESH&quot;)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmesh.html#d821cab222bc6c9405a89a6c6082d388">NO_NAME</a> = &quot;NoName&quot;</td></tr>
+
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="78d19ec2e8b9d0290e401878b14ade9c"></a><!-- doxytag: member="smesh::GetName" ref="78d19ec2e8b9d0290e401878b14ade9c" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.GetName           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>obj</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="79291ef16549a9ea4338f6515d2a3347"></a><!-- doxytag: member="smesh::SetName" ref="79291ef16549a9ea4338f6515d2a3347" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">def smesh.SetName           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">&nbsp;</td>
+          <td class="mdname" nowrap> <em>obj</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>&nbsp;</td>
+          <td class="mdname" nowrap> <em>name</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="85f3ed596d91251bfa3b2d2ac4151739"></a><!-- doxytag: member="smesh::REGULAR" ref="85f3ed596d91251bfa3b2d2ac4151739" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="namespacesmesh.html#85f3ed596d91251bfa3b2d2ac4151739">smesh.REGULAR</a> = 1<code> [static]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="40eed802c94269a68ec2194609fac2f0"></a><!-- doxytag: member="smesh::PYTHON" ref="40eed802c94269a68ec2194609fac2f0" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="namespacesmesh.html#40eed802c94269a68ec2194609fac2f0">smesh.PYTHON</a> = 2<code> [static]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="72b65da5195aa8d71574f95e5533d612"></a><!-- doxytag: member="smesh::NETGEN" ref="72b65da5195aa8d71574f95e5533d612" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="namespacesmesh.html#72b65da5195aa8d71574f95e5533d612">smesh.NETGEN</a> = 3<code> [static]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="bf6aaa2e2cf565cbe3ae34954dee8926"></a><!-- doxytag: member="smesh::GHS3D" ref="bf6aaa2e2cf565cbe3ae34954dee8926" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">int <a class="el" href="namespacesmesh.html#bf6aaa2e2cf565cbe3ae34954dee8926">smesh.GHS3D</a> = 4<code> [static]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="6e041b9ca898fefe3ea0abafeed4aff2"></a><!-- doxytag: member="smesh::smesh" ref="6e041b9ca898fefe3ea0abafeed4aff2" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">tuple <a class="el" href="namespacesmesh.html#6e041b9ca898fefe3ea0abafeed4aff2">smesh.smesh</a> = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, &quot;SMESH&quot;)<code> [static]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+<a class="anchor" name="d821cab222bc6c9405a89a6c6082d388"></a><!-- doxytag: member="smesh::NO_NAME" ref="d821cab222bc6c9405a89a6c6082d388" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">string <a class="el" href="namespacesmesh.html#d821cab222bc6c9405a89a6c6082d388">smesh.NO_NAME</a> = &quot;NoName&quot;<code> [static]</code>          </td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+    </td>
+  </tr>
+</table>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/volume.htm b/doc/salome/gui/SMESH/volume.htm
new file mode 100755 (executable)
index 0000000..f55993e
--- /dev/null
@@ -0,0 +1,123 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>Volume</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
+<!--\r
+h1.whs1 { font-size:24pt; }\r
+img_whs2 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
+p.whs3 { margin-left:40px; }\r
+img_whs4 { border:none; width:164px; height:199px; border-style:none; }\r
+img_whs5 { border:none; width:23px; height:25px; border-style:none; }\r
+p.whs6 { margin-left:0px; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs6 {margin-left:1pt; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+p.WebHelpNavBar { text-align:right; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.setRelStartPage)\r
+       {\r
+       addTocInfo("MESH module\nQuality controls\nVolume");\r
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
+\r
+       }\r
+\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("index.htm");\r
+\r
+               autoSync(1);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+\r
+}\r
+else\r
+       if (window.gbIE4)\r
+               document.location.reload();\r
+//-->\r
+</script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(4);\r
+//-->\r
+</script>\r
+<h1 class="whs1">Volume</h1>\r
+\r
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> <span style="font-weight: bold;"><B>Volume</B></span> mesh quality \r
+ criterion reflects the volume of meshes of a 3D object. </p>\r
+\r
+<p class="whs3"><img src="image143.gif" width="164px" height="199px" border="0" class="img_whs4"></p>\r
+\r
+<p class=TODO\r
+       style="font-family: 'Arial Black', sans-serif; font-style: italic;">To \r
+ apply the Volume quality criterion to your mesh:</p>\r
+\r
+<p class="whs3">1. Display your mesh in the viewer.</p>\r
+\r
+<p class="whs3">2. Choose <span style="font-weight: bold;"><B>Controls \r
+ &gt; Volume </B></span>or click <img src="image145.gif" width="23px" height="25px" border="0" class="img_whs5"> button in the toolbar. Your \r
+ mesh will be displayed in the viewer with its elements colored according \r
+ to the applied mesh quality control criterion:</p>\r
+\r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark12"><span \r
+ style="font-weight: bold;"><B>Volume</B></span> quality control</a> operation. \r
+ &nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/whd_dpns.htm b/doc/salome/gui/SMESH/whd_dpns.htm
new file mode 100755 (executable)
index 0000000..1bca236
--- /dev/null
@@ -0,0 +1,43 @@
+<html>\r
+<head>\r
+<title>Navigator Pane</title>\r
+\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name="description" content="WebHelp 5.50">\r
+</head>\r
+<body border=0 topmargin=0 bottommargin=0 rightmargin=0 leftmargin=0 scroll=no>\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whmozemu.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whphost.js"></script>\r
+<script language="javascript1.2">\r
+<!--\r
+var gsNavReDirect="whgdata/whnvp30.htm";\r
+var gbReDirectThis=false;\r
+  var bPreferXML             = false;\r
+  var strProjectFileXML =  "whproj.xml";\r
+  var strProjectFileHTM =  "whproj.htm";       \r
+if(window.gbWhPHost)\r
+{\r
+         addProject(bPreferXML, strProjectFileXML, strProjectFileHTM);\r
+         addPane("toc","whtdhtml.htm");\r
+  addPane("fts","whfdhtml.htm");\r
+  addPane("glo","whgdhtml.htm");\r
+  setShowPane("toc");\r
+\r
+}\r
+else\r
+       document.location.reload();\r
+\r
+if (window.gbNav6)\r
+{\r
+       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+//-->\r
+</script>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whd_hide0.gif b/doc/salome/gui/SMESH/whd_hide0.gif
new file mode 100755 (executable)
index 0000000..97ea0bb
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_hide0.gif differ
diff --git a/doc/salome/gui/SMESH/whd_hide1.gif b/doc/salome/gui/SMESH/whd_hide1.gif
new file mode 100755 (executable)
index 0000000..97ea0bb
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_hide1.gif differ
diff --git a/doc/salome/gui/SMESH/whd_hide2.gif b/doc/salome/gui/SMESH/whd_hide2.gif
new file mode 100755 (executable)
index 0000000..97ea0bb
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_hide2.gif differ
diff --git a/doc/salome/gui/SMESH/whd_next0.gif b/doc/salome/gui/SMESH/whd_next0.gif
new file mode 100755 (executable)
index 0000000..d92dda5
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_next0.gif differ
diff --git a/doc/salome/gui/SMESH/whd_next1.gif b/doc/salome/gui/SMESH/whd_next1.gif
new file mode 100755 (executable)
index 0000000..d92dda5
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_next1.gif differ
diff --git a/doc/salome/gui/SMESH/whd_next2.gif b/doc/salome/gui/SMESH/whd_next2.gif
new file mode 100755 (executable)
index 0000000..d92dda5
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_next2.gif differ
diff --git a/doc/salome/gui/SMESH/whd_nvp10.htm b/doc/salome/gui/SMESH/whd_nvp10.htm
new file mode 100755 (executable)
index 0000000..a57fe1e
--- /dev/null
@@ -0,0 +1,15 @@
+<html>\r
+<head>\r
+<title>Navigation Pane</title>\r
+\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name="description" content="WebHelp 5.50">\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+</head>\r
+<frameset rows="30, *" border="0" frameborder="0">\r
+       <frame name="navtabs" title="tab selection frame" src="whd_tabs.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
+       <frame name="navpane" title="navigation frame" src="whd_dpns.htm" ></frame>\r
+</frameset>\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/whd_nvp20.htm b/doc/salome/gui/SMESH/whd_nvp20.htm
new file mode 100755 (executable)
index 0000000..c5754bc
--- /dev/null
@@ -0,0 +1,334 @@
+<html>\r
+<head>\r
+<title>navigation pane</title>\r
+\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name="description" content="WebHelp 5.50">\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2">\r
+<!--\r
+var gsInitPane="toc";\r
+var gsCurrentPane="";\r
+var gbLoading = "unknown";\r
+var gbTryTime = 0;\r
+var gbMaxTryTime = 6;\r
+var gbPassPhase0 = 0;\r
+var gbretried = 0;\r
+var gbmaxretry = 3;\r
+var gbretrytime = new Array();\r
+\r
+var origWidth = 0;\r
+var origHeight = 0;\r
+\r
+gbretrytime[0]= 5000;\r
+gbretrytime[1]= 30000;\r
+gbretrytime[2]= 60000;\r
+\r
+function addPane(sName, sFile)\r
+{\r
+}\r
+\r
+function setShowPane(sName)\r
+{\r
+       gsInitPane=sName;\r
+}\r
+\r
+  addPane("toc","whtdhtml.htm");\r
+  addPane("fts","whfdhtml.htm");\r
+  addPane("glo","whgdhtml.htm");\r
+  setShowPane("toc");\r
+\r
+\r
+function window_unload()\r
+{\r
+       UnRegisterListener2(this, WH_MSG_SHOWTOC);\r
+       UnRegisterListener2(this, WH_MSG_SHOWIDX);\r
+       UnRegisterListener2(this, WH_MSG_SHOWFTS);\r
+       UnRegisterListener2(this, WH_MSG_SHOWGLO);\r
+       UnRegisterListener2(this, WH_MSG_SYNCTOC);\r
+       UnRegisterListener2(this, WH_MSG_SEARCHTHIS);\r
+       UnRegisterListener2(this, WH_MSG_GETPANEINFO);\r
+}\r
+\r
+function window_OnLoad()\r
+{\r
+       var bHidePane=false;\r
+       var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);\r
+       if (SendMessage(oMsg))\r
+       {\r
+               if(oMsg.oParam>0)\r
+               {\r
+                       if(oMsg.oParam==1)\r
+                               gsInitPane="toc";\r
+                       else if(oMsg.oParam==2)\r
+                               gsInitPane="idx";\r
+                       else if(oMsg.oParam==3)\r
+                               gsInitPane="fts";\r
+                       else if(oMsg.oParam==4)\r
+                               gsInitPane="glo";\r
+               }\r
+               else if(oMsg.oParam==0)\r
+               {\r
+                       bHidePane=true;\r
+               }\r
+       }\r
+       if (bHidePane)\r
+       {\r
+               oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null)\r
+               SendMessage(oMsg);\r
+       }\r
+       else if (gsInitPane == "toc")\r
+       {\r
+               oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)\r
+               SendMessage(oMsg);      \r
+       }\r
+       else if (gsInitPane=="idx")\r
+       {\r
+               oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)\r
+               SendMessage(oMsg);      \r
+       }\r
+       else if (gsInitPane=="fts")\r
+       {\r
+               oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)\r
+               SendMessage(oMsg);      \r
+       }\r
+       else if (gsInitPane=="glo")\r
+       {\r
+               oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)\r
+               SendMessage(oMsg);      \r
+       }\r
+}\r
+\r
+function CheckLoadingPhase0()\r
+{\r
+       if (!gbPassPhase0) {\r
+               setTimeout("CheckLoadingPhase0()", 1000);\r
+               document.applets[0];\r
+               gbPassPhase0 = 1;\r
+       }\r
+       else {\r
+               CheckLoadingPhase1();\r
+       }\r
+}\r
+\r
+function CheckLoadingPhase1()\r
+{\r
+       if (gbNav4) {\r
+               if ("unknown" == gbLoading && document.readystate < 4) {\r
+                       setTimeout("CheckLoadingPhase1()", 1000);\r
+               }\r
+               else if ("unknown" == gbLoading) {\r
+                       CheckLoadingPhase2();\r
+               }\r
+       }\r
+}\r
+\r
+function CheckLoadingPhase2()\r
+{\r
+       if (gbNav4) {\r
+               gbTryTime ++;\r
+               if ("unknown" == gbLoading) {\r
+                       if (gbTryTime <= gbMaxTryTime )\r
+                               setTimeout("CheckLoadingPhase2()", 1000);\r
+                       else {\r
+                               if (gnVerMinor != 4.60) {\r
+                                       alert("Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited.");\r
+                               }\r
+                       }       \r
+               }\r
+       }\r
+}\r
+\r
+function CheckAppletLoaded()\r
+{\r
+       if (typeof(document.webhelp) == "undefined")\r
+       {\r
+               document.location.reload();\r
+               if (gbretried < gbmaxretry)\r
+               {\r
+                       gbretried ++;\r
+                       setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);\r
+               }\r
+       }\r
+}\r
+\r
+function reDo() \r
+{\r
+       if (innerWidth != origWidth || innerHeight != origHeight)  \r
+       {\r
+               //reloaded applet if nessary\r
+               gbretried = 0;\r
+\r
+               if (gnVerMinor == 4.60) \r
+               {\r
+                       //reload the applet again.\r
+                       document.location.reload();\r
+                       gbretried ++;\r
+               }\r
+               setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);\r
+       }\r
+}\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       if (oMsg)\r
+       {       \r
+               var nMsgId = oMsg.nMessageId;\r
+               var WebHelpApplet = null;\r
+               if (gbNav4)\r
+               {\r
+                       WebHelpApplet = document.applets["WebHelp"];\r
+                       if (!WebHelpApplet.Command)\r
+                               document.location="whgdata/whnvp30.htm";\r
+               }\r
+               else\r
+                       WebHelpApplet = WebHelp;\r
+\r
+               if(nMsgId==WH_MSG_GETPANEINFO)\r
+               {\r
+                       oMsg.oParam=gsCurrentPane;\r
+                       return false;\r
+               }\r
+               else if (gbLoading!="unknown"||gbNav6)\r
+               {\r
+                       if (nMsgId == WH_MSG_SHOWTOC)\r
+                       {\r
+                               gsCurrentPane="toc";\r
+                               WebHelpApplet .Command("Contents", null);\r
+                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");\r
+                               SendMessage(onMsg);\r
+                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                               SendMessage(onMsg);\r
+                       }\r
+                       else if (nMsgId == WH_MSG_SHOWIDX)\r
+                       {\r
+                               gsCurrentPane="idx";\r
+                               WebHelpApplet .Command("Index", null);\r
+                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");\r
+                               SendMessage(onMsg);\r
+                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                               SendMessage(onMsg);\r
+                       }\r
+                       else if (nMsgId == WH_MSG_SHOWFTS)\r
+                       {\r
+                               gsCurrentPane="fts";\r
+                               WebHelpApplet .Command("Search", null);\r
+                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");\r
+                               SendMessage(onMsg);\r
+                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                               SendMessage(onMsg);\r
+                       }\r
+                       else if (nMsgId == WH_MSG_SHOWGLO)\r
+                       {\r
+                               gsCurrentPane="glo";\r
+                               WebHelpApplet .Command("Glossary", null);\r
+                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");\r
+                               SendMessage(onMsg);\r
+                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                               SendMessage(onMsg);\r
+                       }\r
+                       else if (nMsgId == WH_MSG_SYNCTOC)\r
+                       {\r
+                               gsCurrentPane="toc";\r
+                               var oTopicParam = oMsg.oParam;\r
+                               if (oTopicParam && oTopicParam.aPaths && oTopicParam.aPaths.length > 0 && oTopicParam.sPPath)\r
+                               {\r
+                                       var sPPath = _browserStringToText(oTopicParam.sPPath);\r
+                                       var sParam = "";\r
+                                       for (var i = 0; i < oTopicParam.aPaths.length; i ++)\r
+                                       {\r
+                                               sParam += oTopicParam.aPaths[i] + "\r\r";\r
+                                       }\r
+                                       WebHelpApplet.Command("SyncToc", sPPath,  sParam);\r
+                               }\r
+                       }\r
+                       else if(nMsgId==WH_MSG_SEARCHTHIS)\r
+                       {\r
+                               gsCurrentPane="fts";\r
+                               WebHelpApplet .Command("Search", oMsg.oParam);\r
+                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");\r
+                               SendMessage(onMsg);\r
+                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
+                               SendMessage(onMsg);\r
+                       }\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+function getInitTocInfo()\r
+{\r
+       // send message ask for the first time sync toc info.\r
+       var oParam = new Object();\r
+       oParam.oTocInfo = null;\r
+       var oMsg = new whMessage(WH_MSG_GETTOCPATHS, this, 1, oParam);\r
+       if (SendMessage(oMsg ))\r
+       {\r
+               var oTopicParam = oMsg.oParam.oTocInfo;\r
+               if (oTopicParam && oTopicParam.aPaths && oTopicParam.aPaths.length > 0 && oTopicParam.sPPath)\r
+               {\r
+                       var sPPath = _browserStringToText(oTopicParam.sPPath);\r
+                       var sParam = "";\r
+                       for (var i = 0; i < oTopicParam.aPaths.length; i ++)\r
+                       {\r
+                               sParam += oTopicParam.aPaths[i] + "\r\r";\r
+                       }\r
+                       var WebHelpApplet;\r
+                       if (gbNav4)\r
+                               WebHelpApplet = document.applets["WebHelp"];\r
+                       else\r
+                               WebHelpApplet = WebHelp;\r
+                       WebHelpApplet.Command("SyncToc", sPPath,  sParam);\r
+               }\r
+       }\r
+}\r
+\r
+if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
+{\r
+       RegisterListener2(this, WH_MSG_SHOWTOC);\r
+       RegisterListener2(this, WH_MSG_SHOWIDX);\r
+       RegisterListener2(this, WH_MSG_SHOWFTS);\r
+       RegisterListener2(this, WH_MSG_SHOWGLO);\r
+       RegisterListener2(this, WH_MSG_SYNCTOC);\r
+       RegisterListener2(this, WH_MSG_SEARCHTHIS);\r
+       RegisterListener2(this, WH_MSG_GETPANEINFO);\r
+\r
+       window.onunload = window_unload;\r
+       window.onload=window_OnLoad;\r
+       window.onerror = null;\r
+       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));\r
+\r
+       if (gbNav4 && !gbNav6 && gbWindows) {\r
+               setTimeout("CheckLoadingPhase0()", 1000);\r
+       }\r
+\r
+       if (gbNav4) \r
+       {\r
+               origWidth = innerWidth;\r
+               origHeight = innerHeight;\r
+               onresize = reDo;\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+\r
+if (window.gbNav6)\r
+{\r
+       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);\r
+       SendMessage(oMsg);\r
+}\r
+\r
+//-->\r
+</script>\r
+</head>\r
+<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" bgcolor="c0c0c0">\r
+<applet code=WebHelp.class name=WebHelp  archive=webhelp.jar width=100% height=100% MAYSCRIPT hspace=0 vspace=0>\r
+<PARAM name=ProjectFile value=whproj.xml><PARAM name=ResourceFile value=whres.xml>\r
+<PARAM name=Frame value=bsscright>\r
+<PARAM name=cabbase value=webhelp.cab>\r
+</applet>\r
+</body>\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/whd_prev0.gif b/doc/salome/gui/SMESH/whd_prev0.gif
new file mode 100755 (executable)
index 0000000..518561a
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_prev0.gif differ
diff --git a/doc/salome/gui/SMESH/whd_prev1.gif b/doc/salome/gui/SMESH/whd_prev1.gif
new file mode 100755 (executable)
index 0000000..518561a
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_prev1.gif differ
diff --git a/doc/salome/gui/SMESH/whd_prev2.gif b/doc/salome/gui/SMESH/whd_prev2.gif
new file mode 100755 (executable)
index 0000000..518561a
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_prev2.gif differ
diff --git a/doc/salome/gui/SMESH/whd_show0.gif b/doc/salome/gui/SMESH/whd_show0.gif
new file mode 100755 (executable)
index 0000000..60e8e68
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_show0.gif differ
diff --git a/doc/salome/gui/SMESH/whd_show1.gif b/doc/salome/gui/SMESH/whd_show1.gif
new file mode 100755 (executable)
index 0000000..60e8e68
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_show1.gif differ
diff --git a/doc/salome/gui/SMESH/whd_show2.gif b/doc/salome/gui/SMESH/whd_show2.gif
new file mode 100755 (executable)
index 0000000..60e8e68
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_show2.gif differ
diff --git a/doc/salome/gui/SMESH/whd_sync0.gif b/doc/salome/gui/SMESH/whd_sync0.gif
new file mode 100755 (executable)
index 0000000..1a9785c
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_sync0.gif differ
diff --git a/doc/salome/gui/SMESH/whd_sync1.gif b/doc/salome/gui/SMESH/whd_sync1.gif
new file mode 100755 (executable)
index 0000000..1a9785c
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_sync1.gif differ
diff --git a/doc/salome/gui/SMESH/whd_sync2.gif b/doc/salome/gui/SMESH/whd_sync2.gif
new file mode 100755 (executable)
index 0000000..1a9785c
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_sync2.gif differ
diff --git a/doc/salome/gui/SMESH/whd_tab0.gif b/doc/salome/gui/SMESH/whd_tab0.gif
new file mode 100755 (executable)
index 0000000..955c42f
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_tab0.gif differ
diff --git a/doc/salome/gui/SMESH/whd_tab1.gif b/doc/salome/gui/SMESH/whd_tab1.gif
new file mode 100755 (executable)
index 0000000..b3ec41d
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_tab1.gif differ
diff --git a/doc/salome/gui/SMESH/whd_tab2.gif b/doc/salome/gui/SMESH/whd_tab2.gif
new file mode 100755 (executable)
index 0000000..08fb0ce
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_tab2.gif differ
diff --git a/doc/salome/gui/SMESH/whd_tab3.gif b/doc/salome/gui/SMESH/whd_tab3.gif
new file mode 100755 (executable)
index 0000000..1819c8e
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_tab3.gif differ
diff --git a/doc/salome/gui/SMESH/whd_tab4.gif b/doc/salome/gui/SMESH/whd_tab4.gif
new file mode 100755 (executable)
index 0000000..1a6fc4f
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_tab4.gif differ
diff --git a/doc/salome/gui/SMESH/whd_tab5.gif b/doc/salome/gui/SMESH/whd_tab5.gif
new file mode 100755 (executable)
index 0000000..9340192
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_tab5.gif differ
diff --git a/doc/salome/gui/SMESH/whd_tab6.gif b/doc/salome/gui/SMESH/whd_tab6.gif
new file mode 100755 (executable)
index 0000000..fe312d2
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_tab6.gif differ
diff --git a/doc/salome/gui/SMESH/whd_tab7.gif b/doc/salome/gui/SMESH/whd_tab7.gif
new file mode 100755 (executable)
index 0000000..3b95ae2
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_tab7.gif differ
diff --git a/doc/salome/gui/SMESH/whd_tab8.gif b/doc/salome/gui/SMESH/whd_tab8.gif
new file mode 100755 (executable)
index 0000000..c80acc8
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_tab8.gif differ
diff --git a/doc/salome/gui/SMESH/whd_tabs.htm b/doc/salome/gui/SMESH/whd_tabs.htm
new file mode 100755 (executable)
index 0000000..1568f57
--- /dev/null
@@ -0,0 +1,533 @@
+<HTML>\r
+<HEAD>\r
+<TITLE>WebHelp Tabs Frame in Navigation Pane</TITLE>\r
+\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name="description" content="WebHelp 5.50">\r
+<!-- WebHelp version 5.10 -->\r
+</HEAD>\r
+<script language="javascript" src="whver.js"></script>\r
+<script language="javascript1.2" src="whmsg.js"></script>\r
+<script language="javascript1.2" src="whproxy.js"></script>\r
+<script language="javascript1.2" src="whutils.js"></script>\r
+<script language="javascript1.2">\r
+<!--\r
+var gsBgColor="#c0c0c0"\r
+var gsBgImage="";\r
+var gnCurPane=0;\r
+var gsFirstPane="";\r
+var goTocFont=null;\r
+var goIdxFont=null;\r
+var goFtsFont=null;\r
+var goGloFont=null;\r
+var gPane=new Array();\r
+var gShowFirst=0;\r
+var gnTabType=0;\r
+\r
+function window_unload()\r
+{\r
+       UnRegisterListener2(this,WH_MSG_SHOWTOC);\r
+       UnRegisterListener2(this,WH_MSG_SHOWIDX);\r
+       UnRegisterListener2(this,WH_MSG_SHOWFTS);\r
+       UnRegisterListener2(this,WH_MSG_SHOWGLO);\r
+}\r
+\r
+\r
+function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
+{\r
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
+       if(sType=="Toc") goTocFont=vFont;\r
+       else if(sType=="Idx") goIdxFont=vFont;\r
+       else if(sType=="Fts") goFtsFont=vFont;\r
+       else if(sType=="Glo") goGloFont=vFont;\r
+}\r
+\r
+function TocWriteClassStyle()\r
+{\r
+       var sStyle="<STYLE TYPE='text/css'>";\r
+       sStyle+=".TextTabToc {"+getFontStyle(goTocFont)+"}";\r
+       sStyle+=".TextTabIdx {"+getFontStyle(goIdxFont)+"}";\r
+       sStyle+=".TextTabFts {"+getFontStyle(goFtsFont)+"}";\r
+       sStyle+=".TextTabGlo {"+getFontStyle(goGloFont)+"}";\r
+       sStyle+="A:hover {text-decoration:underline;}";\r
+       sStyle+="</STYLE>";\r
+       document.write(sStyle);\r
+}\r
+\r
+function setBackgroundcolor(sBgColor)\r
+{\r
+       if(sBgColor!=null&&sBgColor.length>0)\r
+               gsBgColor=sBgColor;\r
+}\r
+\r
+function setBackground(sBgImage)\r
+{\r
+       if(sBgImage!=null&&sBgImage.length>0)\r
+               gsBgImage=sBgImage;\r
+}\r
+\r
+function selectToc()\r
+{\r
+       var oMessage=new whMessage(WH_MSG_SHOWTOC,this,1,null);\r
+       SendMessage(oMessage);\r
+}\r
+\r
+function selectIdx()\r
+{\r
+       var oMessage=new whMessage(WH_MSG_SHOWIDX,this,1,null);\r
+       SendMessage(oMessage);\r
+}\r
+function selectFts()\r
+{\r
+       var oMessage=new whMessage(WH_MSG_SHOWFTS,this,1,null);\r
+       SendMessage(oMessage);\r
+}\r
+\r
+function selectGlo()\r
+{\r
+       var oMessage=new whMessage(WH_MSG_SHOWGLO,this,1,null);\r
+       SendMessage(oMessage);\r
+}\r
+\r
+\r
+function onSendMessage(oMsg)\r
+{\r
+       if(oMsg)\r
+       {\r
+               var nMsgId=oMsg.nMessageId;\r
+               if(nMsgId==WH_MSG_SHOWTOC)\r
+               {\r
+                       setTimeout("showTabByName(\"toc\");",1);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWIDX)\r
+               {\r
+                       setTimeout("showTabByName(\"idx\");",1);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWFTS)\r
+               {\r
+                       setTimeout("showTabByName(\"fts\");",1);\r
+               }\r
+               else if(nMsgId==WH_MSG_SHOWGLO)\r
+               {\r
+                       setTimeout("showTabByName(\"glo\");",1);\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+function showTabByName(sTabName)\r
+{\r
+       for(var i=0;i<gPane.length;i++)\r
+       {\r
+               if(gPane[i]==sTabName)\r
+               {\r
+                       showTab(i);\r
+                       break;\r
+               }\r
+       }\r
+}\r
+\r
+function showTab(n)\r
+{\r
+       gnCurPane=n;\r
+       if(gnTabType==0)\r
+       {\r
+               if(n<gPane.length)\r
+               {\r
+                       if(document.images["TocTab"]&&document.images["TocTab"]!=null){\r
+                               if(gPane[n]=="toc")\r
+                                       document.images["TocTab"].src=getBtnImage("toc",1);\r
+                               else\r
+                                       document.images["TocTab"].src=getBtnImage("toc",0);\r
+                       }\r
+                       if(document.images["IndexTab"]&&document.images["IndexTab"]!=null){\r
+                               if(gPane[n]=="idx")\r
+                                       document.images["IndexTab"].src=getBtnImage("idx",1);\r
+                               else\r
+                                       document.images["IndexTab"].src=getBtnImage("idx",0);\r
+                       }\r
+                       if(document.images["FtsTab"]&&document.images["FtsTab"]!=null){\r
+                               if(gPane[n]=="fts")\r
+                                       document.images["FtsTab"].src=getBtnImage("fts",1);\r
+                               else\r
+                                       document.images["FtsTab"].src=getBtnImage("fts",0);\r
+                       }\r
+                       if(document.images["GloTab"]&&document.images["GloTab"]!=null){\r
+                               if(gPane[n]=="glo")\r
+                                       document.images["GloTab"].src=getBtnImage("glo",1);\r
+                               else\r
+                                       document.images["GloTab"].src=getBtnImage("glo",0);\r
+                       }\r
+               }\r
+       }\r
+       else if(gnTabType==1)\r
+       {\r
+       }\r
+       else if(gnTabType==2)\r
+       {\r
+               if(n<gPane.length)\r
+               {\r
+                       if(document.images["tabSelection"]!=null)\r
+                               document.images["tabSelection"].src=getMapImage(gPane[n]);\r
+               }\r
+       }\r
+}\r
+\r
+function addPane(sName)\r
+{\r
+       gPane[gPane.length]=sName;\r
+}\r
+\r
+function setShowPane(sName)\r
+{\r
+       if(gsFirstPane!="")\r
+               sName=gsFirstPane;\r
+       for(var i=0;i<gPane.length;i++)\r
+       {\r
+               if(gPane[i]==sName)\r
+                       gShowFirst=i;\r
+       }\r
+}\r
+\r
+function selectDefaultTab()\r
+{\r
+       showTab(gShowFirst);\r
+       if(document.body)\r
+       {\r
+               if(gsBgImage&&gsBgImage.length>0)\r
+               {\r
+                       document.body.background=gsBgImage;\r
+               }\r
+               if(gsBgColor&&gsBgColor.length>0)\r
+               {\r
+                       document.body.bgColor=gsBgColor;\r
+               }\r
+       }\r
+}\r
+\r
+function getTabsHTML()\r
+{\r
+       var sHTML="";\r
+       for(var i=0;i<gPane.length;i++)\r
+       {\r
+               if(gnTabType==0)\r
+                       sHTML+=getTabHTML(gPane[i]);\r
+               else if(gnTabType==1)\r
+               {\r
+                       if(sHTML.length>0)\r
+                       {\r
+                               sHTML+=getSeparator();\r
+                       }\r
+                       sHTML+=getTabHTMLText(gPane[i]);\r
+               }\r
+\r
+       }\r
+       return sHTML;\r
+}\r
+\r
+function getSeparator()\r
+{\r
+       var sSep="";\r
+       \r
+       return sSep;\r
+}\r
+\r
+function getTabHTML(sTabName)\r
+{\r
+       if (sTabName == "toc")\r
+               return "<a title=\"Contents\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\" onmouseover=\"mouseOverToc();\" onmouseout=\"mouseOutToc();\"><img name=\"TocTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";\r
+       else if (sTabName =="idx")\r
+               return "<a title=\"Index\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\" onmouseover=\"mouseOverIdx();\" onmouseout=\"mouseOutIdx();\"><img name=\"IndexTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";\r
+       else if (sTabName == "fts")\r
+               return "<a title=\"Search\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\" onmouseover=\"mouseOverFts();\" onmouseout=\"mouseOutFts();\"><img name=\"FtsTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";\r
+       else if (sTabName == "glo")\r
+               return "<a title=\"Glossary\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\"onmouseover=\"mouseOverGlo();\" onmouseout=\"mouseOutGlo();\"><img name=\"GloTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";\r
+       return "";\r
+}\r
+\r
+function mouseOverToc()\r
+{\r
+       var sImg = "";\r
+       if (gPane[gnCurPane] == "toc")\r
+       {\r
+               sImg = getBtnImage("toc", 3);\r
+       }\r
+       else\r
+       {\r
+               sImg = getBtnImage("toc", 2);\r
+       }\r
+       if (sImg.length > 0)\r
+               document.images["TocTab"].src = sImg;\r
+}\r
+\r
+function mouseOverIdx()\r
+{\r
+       var sImg = "";\r
+       if (gPane[gnCurPane] == "idx")\r
+       {\r
+               sImg = getBtnImage("idx", 3);\r
+       }\r
+       else\r
+       {\r
+               sImg = getBtnImage("idx", 2);\r
+       }\r
+       if (sImg.length > 0)\r
+               document.images["IndexTab"].src = sImg;\r
+}\r
+\r
+function mouseOverFts()\r
+{\r
+       var sImg = "";\r
+       if (gPane[gnCurPane] == "fts")\r
+       {\r
+               sImg = getBtnImage("fts", 3);\r
+       }\r
+       else\r
+       {\r
+               sImg = getBtnImage("fts", 2);\r
+       }\r
+       if (sImg.length > 0)\r
+               document.images["FtsTab"].src = sImg;\r
+}\r
+\r
+function mouseOverGlo()\r
+{\r
+       var sImg = "";\r
+       if (gPane[gnCurPane] == "glo")\r
+       {\r
+               sImg = getBtnImage("glo", 3);\r
+       }\r
+       else\r
+       {\r
+               sImg = getBtnImage("glo", 2);\r
+       }\r
+       if (sImg.length > 0)\r
+               document.images["GloTab"].src = sImg;\r
+}\r
+\r
+function mouseOutToc()\r
+{\r
+       var sImg = "";\r
+       if (gPane[gnCurPane] == "toc")\r
+       {\r
+               sImg = getBtnImage("toc", 1);\r
+       }\r
+       else\r
+       {\r
+               sImg = getBtnImage("toc", 0);\r
+       }\r
+       if (sImg.length > 0)\r
+               document.images["TocTab"].src = sImg;\r
+}\r
+\r
+function mouseOutIdx()\r
+{\r
+       var sImg = "";\r
+       if (gPane[gnCurPane] == "idx")\r
+       {\r
+               sImg = getBtnImage("idx", 1);\r
+       }\r
+       else\r
+       {\r
+               sImg = getBtnImage("idx", 0);\r
+       }\r
+       if (sImg.length > 0)\r
+               document.images["IndexTab"].src = sImg;\r
+}\r
+\r
+function mouseOutFts()\r
+{\r
+       var sImg = "";\r
+       if (gPane[gnCurPane] == "fts")\r
+       {\r
+               sImg = getBtnImage("fts", 1);\r
+       }\r
+       else\r
+       {\r
+               sImg = getBtnImage("fts", 0);\r
+       }\r
+       if (sImg.length > 0)\r
+               document.images["FtsTab"].src = sImg;\r
+}\r
+\r
+function mouseOutGlo()\r
+{\r
+       var sImg = "";\r
+       if (gPane[gnCurPane] == "glo")\r
+       {\r
+               sImg = getBtnImage("glo", 1);\r
+       }\r
+       else\r
+       {\r
+               sImg = getBtnImage("glo", 0);\r
+       }\r
+       if (sImg.length > 0)\r
+               document.images["GloTab"].src = sImg;\r
+}\r
+\r
+function getTabHTMLText(sTabName)\r
+{\r
+       if (sTabName == "toc")\r
+               return "<a class=\"TextTabToc\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\">Contents</a>&nbsp;";\r
+       else if (sTabName =="idx")\r
+               return "<a class=\"TextTabIdx\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\">Index</a>&nbsp;";\r
+       else if (sTabName == "fts")\r
+               return "<a class=\"TextTabFts\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\">Search</a>&nbsp;";\r
+       else if (sTabName == "glo")\r
+               return "<a class=\"TextTabGlo\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\">Glossary</a>&nbsp;";\r
+       return "";\r
+}\r
+\r
+function getImageMap()\r
+{\r
+       var sHTML = "<map name=\"tabSelectionMap\">";\r
+       for (var i = 0; i < gPane.length; i ++)\r
+       {\r
+               sHTML += getMapArea(gPane[i]);\r
+       }\r
+       sHTML += "</map>";\r
+       return sHTML;\r
+}\r
+\r
+function getMapArea(sTabName)\r
+{\r
+       if (sTabName == "toc")\r
+               return "<area title=\"Contents\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\">";\r
+       else if (sTabName =="idx")\r
+               return "<area title=\"Index\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\">";\r
+       else if (sTabName == "fts")\r
+               return "<area title=\"Search\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\">";\r
+       else if (sTabName == "glo")\r
+               return "<area title=\"Glossary\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\">";\r
+       return "";\r
+}\r
+\r
+function getBtnImage(sTabName, nStatus)\r
+{\r
+       if (sTabName == "toc")\r
+       {\r
+               if (nStatus == 0)\r
+                       return "whd_tab2.gif";\r
+               else if (nStatus == 1)\r
+                       return "whd_tab1.gif";\r
+               else if (nStatus == 2)\r
+                       return "";\r
+               else if (nStatus == 3)\r
+                       return "";\r
+       }\r
+       else if (sTabName =="idx")\r
+       {\r
+               if (nStatus == 0)\r
+                       return "whd_tab4.gif";\r
+               else if (nStatus == 1)\r
+                       return "whd_tab3.gif";\r
+               else if (nStatus == 2)\r
+                       return "";\r
+               else if (nStatus == 3)\r
+                       return "";\r
+       }\r
+       else if (sTabName == "fts")\r
+       {\r
+               if (nStatus == 0)\r
+                       return "whd_tab6.gif";\r
+               else if (nStatus == 1)\r
+                       return "whd_tab5.gif";\r
+               else if (nStatus == 2)\r
+                       return "";\r
+               else if (nStatus == 3)\r
+                       return "";\r
+       }\r
+       else if (sTabName == "glo")\r
+       {\r
+               if (nStatus == 0)\r
+                       return "whd_tab8.gif";\r
+               else if (nStatus == 1)\r
+                       return "whd_tab7.gif";\r
+               else if (nStatus == 2)\r
+                       return "";\r
+               else if (nStatus == 3)\r
+                       return "";\r
+       }\r
+       return "";\r
+}\r
+\r
+function getMapImage(sTabName)\r
+{\r
+       if (sTabName == "toc")\r
+               return "";\r
+       else if (sTabName =="idx")\r
+               return "";\r
+       else if (sTabName == "fts")\r
+               return "";\r
+       else if (sTabName == "glo")\r
+               return "";\r
+       return "";\r
+}\r
+\r
+if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
+{\r
+       window.onload = selectDefaultTab;\r
+       RegisterListener2(this, WH_MSG_SHOWTOC);\r
+       RegisterListener2(this, WH_MSG_SHOWIDX);\r
+       RegisterListener2(this, WH_MSG_SHOWFTS);\r
+       RegisterListener2(this, WH_MSG_SHOWGLO);\r
+       window.onunload = window_unload;\r
+       goTocFont=new whFont("Arial","9pt","#000000","normal","normal","none");\r
+       goIdxFont=new whFont("Arial","9pt","#000000","normal","normal","none");\r
+       goFtsFont=new whFont("Arial","9pt","#000000","normal","normal","none");\r
+       goGloFont=new whFont("Arial","9pt","#000000","normal","normal","none");\r
+\r
+       if (navigator.currentNavPen)\r
+               gsFirstPane = navigator.currentNavPen;\r
+\r
+       setBackgroundcolor("");\r
+       setBackground("whd_tab0.gif");\r
+       \r
+       \r
+       \r
+       \r
+         addPane("toc","whtdhtml.htm");\r
+  addPane("fts","whfdhtml.htm");\r
+  addPane("glo","whgdhtml.htm");\r
+  setShowPane("toc");\r
+\r
+\r
+       gnTabType = 0; // 0 button. // 1 text. // 2 image mapping.\r
+       TocWriteClassStyle();\r
+       var sHTML = "<body scroll=\"no\" bgcolor=\"#c0c0c0\"    background=\"whd_tab0.gif\" style=\"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0\">";\r
+       if (gPane.length > 0)\r
+       {\r
+               if (gnTabType == 0 || gnTabType == 1)\r
+               {\r
+                       sHTML += "<table width=\"100%\">";\r
+                       sHTML += "<tr>";\r
+                       sHTML += "<td>";\r
+                       sHTML += "<nobr>";\r
+                       sHTML += getTabsHTML();\r
+                       sHTML += "</nobr></td></tr>";\r
+                       sHTML += " <tr><td height=\"2\"></td></tr>";\r
+                       sHTML += "</table>";\r
+               }\r
+               else if (gnTabType == 2)\r
+               {\r
+                       sHTML += getImageMap();\r
+                       sHTML +="<img name=\"tabSelection\" src=\"" + getMapImage(gPane[0]) + "\" x-maintain-ratio=\"true\" usemap=\"#tabSelectionMap\"";\r
+                       if (gbIE)\r
+                               sHTML +=" style=\"border: none; width:px; height:px; float: none;\"";\r
+                       sHTML +=" width=\"\" height=\"\" border=\"0\">";\r
+               }\r
+       }\r
+       sHTML += "</body>";\r
+       document.write(sHTML);\r
+}\r
+else\r
+       document.location.reload();\r
+\r
+if (window.gbNav6)\r
+{\r
+       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);\r
+       SendMessage(oMsg);\r
+}\r
+//-->\r
+</script>\r
+</HTML>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whd_toc1.gif b/doc/salome/gui/SMESH/whd_toc1.gif
new file mode 100755 (executable)
index 0000000..1101725
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_toc1.gif differ
diff --git a/doc/salome/gui/SMESH/whd_toc2.gif b/doc/salome/gui/SMESH/whd_toc2.gif
new file mode 100755 (executable)
index 0000000..975e5f6
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_toc2.gif differ
diff --git a/doc/salome/gui/SMESH/whd_toc3.gif b/doc/salome/gui/SMESH/whd_toc3.gif
new file mode 100755 (executable)
index 0000000..4b8122f
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_toc3.gif differ
diff --git a/doc/salome/gui/SMESH/whd_toc4.gif b/doc/salome/gui/SMESH/whd_toc4.gif
new file mode 100755 (executable)
index 0000000..3f9a036
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_toc4.gif differ
diff --git a/doc/salome/gui/SMESH/whd_topic.xml b/doc/salome/gui/SMESH/whd_topic.xml
new file mode 100755 (executable)
index 0000000..a1b0320
--- /dev/null
@@ -0,0 +1,85 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>\r
+<topictemplate>\r
+ <topic type="normal">\r
+  <add tag="head" pos="endbefore" >\r
+   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_PROXY_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.setRelStartPage)\r
+       {\r
+       ";\r
+         OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");\r
+         OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");\r
+         OutputInTopicNavBarDataButtons("addButton(\"%s\",%s, \"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",%d,%d);\r\n");\r
+       "\r
+       }\r
+\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       ";\r
+         OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");\r
+         OutputInTopicNavBarDataWebSearch.href("addSearchFormHref(\"%s\");\r\n");\r
+       "\r
+               autoSync(";WH_USER_OPTIONS.autosync_toc;");\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+\r
+}\r
+else\r
+       if (window.gbIE4)\r
+               document.location.reload();\r
+//-->\r
+</script>\r
+"]]>\r
+  </add>\r
+  <add tag="body" pos="beginafter">\r
+    <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(";WH_WEBSKIN.topic.bar.top.pos;");\r
+//-->\r
+</script>"]]>  \r
+  </add>\r
+  <add tag="body" pos="endbefore">\r
+   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(";WH_WEBSKIN.topic.bar.bottom.pos;");\r
+//-->\r
+</script>";\r
+OutputInTopicNavBarDataWebSearch.form();]]>    \r
+  </add>\r
+ </topic>\r
+ <topic type="frameset">\r
+  <add tag="head" pos="endbefore" >\r
+   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_FRAMESET_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>\r
+<script type=\"text/javascript\" language=\"javascript1.2\">\r
+<!--\r
+if (window.setRelStartPage)\r
+{\r
+";\r
+  OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");\r
+  OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");\r
+  OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");\r
+"\r
+if (window.autoSync)\r
+       autoSync(1);\r
+}\r
+//-->\r
+</script>\r
+"]]>\r
+  </add>\r
+ </topic>\r
+</topictemplate>\r
diff --git a/doc/salome/gui/SMESH/whd_wbsh0.gif b/doc/salome/gui/SMESH/whd_wbsh0.gif
new file mode 100755 (executable)
index 0000000..383688e
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_wbsh0.gif differ
diff --git a/doc/salome/gui/SMESH/whd_wbsh1.gif b/doc/salome/gui/SMESH/whd_wbsh1.gif
new file mode 100755 (executable)
index 0000000..383688e
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_wbsh1.gif differ
diff --git a/doc/salome/gui/SMESH/whd_wbsh2.gif b/doc/salome/gui/SMESH/whd_wbsh2.gif
new file mode 100755 (executable)
index 0000000..383688e
Binary files /dev/null and b/doc/salome/gui/SMESH/whd_wbsh2.gif differ
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf13.htm b/doc/salome/gui/SMESH/whgdata/whlstf13.htm
new file mode 100755 (executable)
index 0000000..8275a92
--- /dev/null
@@ -0,0 +1,46 @@
+<html>\r
+<head>\r
+<title>Search Words List</title>\r
+\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name="description" content="WebHelp 5.50">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } \r
+\r
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } \r
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } \r
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } \r
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:#cccccc; } \r
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
+<p class="ftsbody" align="center"><a href="whlstf12.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
+<p class="ftsbody" >\r
+<nobr><a name="bms_WI"></a><a name="subkey_WI"></a>will <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>7</b></a> <a href="../about_viewing_meshes.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_groups.htm"><b>11</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>12</b></a> <a href="../files/displacing_nodes.htm"><b>13</b></a> <a href="../files/cutting_quadrangles.htm"><b>14</b></a> <a href="../files/creating_groups.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>18</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>19</b></a> <a href="../files/aspect_ratio.htm"><b>20</b></a> <a href="../files/arithmetic_1d.htm"><b>21</b></a> <a href="../files/area_of_elements.htm"><b>22</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>23</b></a> <a href="../files/taper.htm"><b>24</b></a> <a href="../files/smoothing.htm"><b>25</b></a> <a href="../files/skew.htm"><b>26</b></a> <a href="../files/sewing_meshes.htm"><b>27</b></a> <a href="../files/running_smesh_module.htm"><b>28</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>29</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>30</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>31</b></a> <a href="../files/minimum_angle.htm"><b>32</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>33</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../modifying_meshes.htm"><b>36</b></a> <a href="../merge_elements.htm"><b>37</b></a> <a href="../files/warp.htm"><b>38</b></a> <a href="../files/viewing_mesh_info.htm"><b>39</b></a> <a href="../files/using_operations_on_groups.htm"><b>40</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>41</b></a> <a href="../volume.htm"><b>42</b></a> <a href="../transparency.htm"><b>43</b></a> <a href="../selection_filter_library.htm"><b>44</b></a> <a href="../revolution.htm"><b>45</b></a> </nobr><br><a href="../clipping.htm"><b>window</b></a> <br><nobr>wire <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>wire_discretisation</b></a> <br><nobr>wireframe <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../presentation.htm"><b>3</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>wires</b></a> <br><nobr>wish <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><nobr>within <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>without <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> </nobr><br><a name="bms_WO"></a><a name="subkey_WO"></a><a href="../files/arithmetic_1d.htm"><b>words</b></a> <br><a href="../adding_quadratic_nodes_and_elements.htm"><b>work</b></a> <br><a href="../extrusion_along_a_path.htm"><b>works</b></a> <br><a href="../files/aspect_ratio.htm"><b>worst</b></a> <br><nobr>would <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_WW"></a><a name="subkey_WW"></a><a href="../defining_hypotheses_tui.htm"><b>ww</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_X"></a><a name="subkey_X{"></a>x <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>x0</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_Y"></a><a name="subkey_Y{"></a>y <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>y0</b></a> <br><nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../about_viewing_meshes.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>9</b></a> <a href="../files/editing_groups.htm"><b>10</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>11</b></a> <a href="../files/displacing_nodes.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>16</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>17</b></a> <a href="../files/aspect_ratio.htm"><b>18</b></a> <a href="../files/arithmetic_1d.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>21</b></a> <a href="../files/translation.htm"><b>22</b></a> <a href="../files/taper.htm"><b>23</b></a> <a href="../files/symmetry.htm"><b>24</b></a> <a href="../files/smoothing.htm"><b>25</b></a> <a href="../files/skew.htm"><b>26</b></a> <a href="../files/rotation.htm"><b>27</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>28</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>29</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>30</b></a> <a href="../files/minimum_angle.htm"><b>31</b></a> <a href="../files/merging_nodes.htm"><b>32</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>33</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>34</b></a> <a href="../presentation.htm"><b>35</b></a> <a href="../pattern_mapping.htm"><b>36</b></a> <a href="../files/warp.htm"><b>37</b></a> <a href="../files/viewing_mesh_info.htm"><b>38</b></a> <a href="../volume.htm"><b>39</b></a> <a href="../selection_filter_library.htm"><b>40</b></a> </nobr><br>\r
+<br><br>\r
+<nobr><a name="bm_Z"></a><a name="subkey_Z{"></a>z <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>z0</b></a> <br><a name="bms_ZE"></a><a name="subkey_ZE"></a><a href="../pattern_mapping.htm"><b>zero</b></a> <br><a name="bms_ZO"></a><a name="subkey_ZO"></a><a href="../files/vtk_3d_viewer.htm"><b>zoom</b></a> <br><br><br></p>\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/tui/SMESH/doxyfile.in b/doc/salome/tui/SMESH/doxyfile.in
new file mode 100755 (executable)
index 0000000..e9705fd
--- /dev/null
@@ -0,0 +1,242 @@
+# Doxyfile 1.4.6
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = "SALOME - SMESH - v.@VERSION@"
+PROJECT_NUMBER         = 
+OUTPUT_DIRECTORY       = ../
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = NO
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = NO
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = YES
+INLINE_INHERITED_MEMB  = YES
+FULL_PATH_NAMES        = YES
+STRIP_FROM_PATH        = ../../../share/salome \
+                        ../../../build/salome
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = YES
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+SEPARATE_MEMBER_PAGES  = NO
+TAB_SIZE               = 5
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = YES
+BUILTIN_STL_SUPPORT    = NO
+DISTRIBUTE_GROUP_DOC   = NO
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = YES
+EXTRACT_STATIC         = YES
+EXTRACT_LOCAL_CLASSES  = YES
+EXTRACT_LOCAL_METHODS  = YES
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = YES
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = NO
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = YES
+GENERATE_TESTLIST      = YES
+GENERATE_BUGLIST       = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 25
+SHOW_USED_FILES        = NO
+SHOW_DIRECTORIES       = NO
+FILE_VERSION_FILTER    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = log.txt
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = ../../../share/salome/src \
+                        ../../../share/salome/idl \
+                        ../../../build/salome/bin
+FILE_PATTERNS          = *.hxx *.cxx *.h *.c *.hh *.cc *.idl python_extension_must_be_here
+RECURSIVE              = YES
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = 
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = sources/
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION    = YES
+USE_HTAGS              = NO
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = YES
+COLS_IN_ALPHA_INDEX    = 3
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = YES
+HTML_OUTPUT            = SMESH
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = sources/myheader.html
+HTML_FOOTER            = sources/footer.html
+HTML_STYLESHEET        = sources/static/doxygen.css
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = NO
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = YES
+TOC_EXPAND             = YES
+DISABLE_INDEX          = NO
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = NO
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = NO
+RTF_OUTPUT             = rtf
+COMPACT_RTF            = NO
+RTF_HYPERLINKS         = NO
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = NO
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = 
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = NO
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = NO
+HAVE_DOT               = YES
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = NO
+GROUP_GRAPHS           = NO
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = NO
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = jpg
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1200
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = NO
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
diff --git a/doc/salome/tui/SMESH/doxyfile_py.in b/doc/salome/tui/SMESH/doxyfile_py.in
new file mode 100755 (executable)
index 0000000..78d1407
--- /dev/null
@@ -0,0 +1,242 @@
+# Doxyfile 1.4.6
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = "SALOME - SMESH - v.@VERSION@"
+PROJECT_NUMBER         = 
+OUTPUT_DIRECTORY       = ../
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = NO
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = NO
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = YES
+INLINE_INHERITED_MEMB  = YES
+FULL_PATH_NAMES        = YES
+STRIP_FROM_PATH        = ../../../share/salome \
+                        ../../../build/salome
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = YES
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+SEPARATE_MEMBER_PAGES  = NO
+TAB_SIZE               = 5
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = YES
+BUILTIN_STL_SUPPORT    = NO
+DISTRIBUTE_GROUP_DOC   = NO
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = YES
+EXTRACT_STATIC         = YES
+EXTRACT_LOCAL_CLASSES  = YES
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = YES
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = NO
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = YES
+GENERATE_TESTLIST      = YES
+GENERATE_BUGLIST       = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 25
+SHOW_USED_FILES        = NO
+SHOW_DIRECTORIES       = NO
+FILE_VERSION_FILTER    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = log.txt
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = ../../../share/salome/src \
+                        ../../../share/salome/idl \
+                        ../../../build/salome/bin
+FILE_PATTERNS          = *.hxx *.cxx *.h *.c *.hh *.cc *.idl python_extension_must_be_here
+RECURSIVE              = YES
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = 
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = sources/
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION    = YES
+USE_HTAGS              = NO
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = YES
+COLS_IN_ALPHA_INDEX    = 3
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = YES
+HTML_OUTPUT            = SMESH
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = sources/myheader.html
+HTML_FOOTER            = sources/footer.html
+HTML_STYLESHEET        = sources/static/doxygen.css
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = NO
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = YES
+TOC_EXPAND             = YES
+DISABLE_INDEX          = NO
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = NO
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = NO
+RTF_OUTPUT             = rtf
+COMPACT_RTF            = NO
+RTF_HYPERLINKS         = NO
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = NO
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = 
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = NO
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = NO
+HAVE_DOT               = YES
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = NO
+GROUP_GRAPHS           = NO
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = NO
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = jpg
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1200
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = NO
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
diff --git a/doc/salome/tui/SMESH/sources/footer.html b/doc/salome/tui/SMESH/sources/footer.html
new file mode 100755 (executable)
index 0000000..cb55f39
--- /dev/null
@@ -0,0 +1,5 @@
+</DIV>
+<DIV class="div-footer">
+Generated on $datetime for $projectname by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> $doxygenversion</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/tui/SMESH/sources/static/tree.js.in b/doc/salome/tui/SMESH/sources/static/tree.js.in
new file mode 100755 (executable)
index 0000000..36d021f
--- /dev/null
@@ -0,0 +1,29 @@
+foldersTree = gFld("<b>SALOME v.@VERSION@ </b>", "", "")
+     insDoc(foldersTree, gLnk("Main Page", "", "main.html"))
+
+aux1 = insFld(foldersTree, gFld("TUI Reference Guide", ""))
+  aux2 = insFld(aux1, gFld("Modules", ""))
+    aux3 = insFld(aux2, gFld("SALOME SMESH module", ""))
+/*!             insDoc(aux3, gLnk("Overview", "", "overview_SMESH.html"))*/
+      aux4 = insFld(aux3, gFld("Packages", ""))                
+               insDoc(aux4, gLnk("SMESH", "", "namespaceSMESH.html"))
+/*!             insDoc(aux3, gLnk("Examples", "", "examples_SMESH.html"))
+*/
+
+         insDoc(aux1, gLnk("Data Structures", "", "annotated.html"))
+         insDoc(aux1, gLnk("Class Hierarchy", "", "hierarchy.html"))
+         insDoc(aux1, gLnk("Class methods list", "", "functions.html"))
+         insDoc(aux1, gLnk("Namespace Members", "", "namespacemembers.html"))
+         insDoc(aux1, gLnk("File List", "", "files.html"))
+
+aux1 = insFld(foldersTree, gFld("IDL/Python mapping", ""))
+         insDoc(aux1, gLnk("Mapping of SMESH IDL definitions to Python language", "", "page2.html"))
+
+aux1 = insFld(foldersTree, gFld("Python Commands", "", "meshpy_doc/main.html"))
+         insDoc(aux1, gLnk("Package List", "", "meshpy_doc/namespaces.html"))
+         insDoc(aux1, gLnk("Data Structures", "", "meshpy_doc/annotated.html"))
+         insDoc(aux1, gLnk("Namespace Members", "", "meshpy_doc/namespacemembers.html"))
+         insDoc(aux1, gLnk("File List", "", "meshpy_doc/files.html"))
+
+aux1 = insFld(foldersTree, gFld("Adding meshers in SMESH", ""))
+        insDoc(aux1, gLnk("Using Plugin mechanism in SMESH", "", "PluginMeshers.html"))
diff --git a/resources/SMESHCatalog.xml.in b/resources/SMESHCatalog.xml.in
new file mode 100644 (file)
index 0000000..d5d2bb0
--- /dev/null
@@ -0,0 +1,171 @@
+<?xml version='1.0' encoding='us-ascii' ?>
+<!-- XML component catalog -->
+<begin-catalog>
+
+<!-- Path prefix information -->
+
+<path-prefix-list>
+</path-prefix-list>
+
+<!-- Component list -->
+<component-list>
+       <component>
+               <!-- Component identification -->
+               <component-name>SMESH</component-name>
+               <component-username>Mesh</component-username>
+               <component-type>MESH</component-type>
+               <component-author>NRI</component-author>
+               <component-version>@VERSION@</component-version>
+               <component-comment>Mesh component</component-comment>
+               <component-multistudy>1</component-multistudy>
+               <component-icone>ModuleMesh.png</component-icone>
+               <component-impltype>1</component-impltype>
+
+            <component-interface-list>
+                <component-interface-name>SMESH</component-interface-name>
+                <component-interface-comment></component-interface-comment>
+                <component-service-list>
+                    <component-service>
+                        <service-name>CreateHypothesis</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment></service-comment>
+                        <service-by-default>1</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-name>anHyp</inParameter-name>
+                                <inParameter-comment></inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-name>studyId</inParameter-name>
+                                <inParameter-comment></inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                           <outParameter>
+                                <outParameter-type>SMESH_Hypothesis</outParameter-type>
+                                <outParameter-name>aHyp</outParameter-name>
+                                <outParameter-comment></outParameter-comment>
+                           </outParameter>
+                       </outParameter-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>Init</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment></service-comment>
+                        <service-by-default>1</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-type>GEOM_Gen</inParameter-type>
+                                <inParameter-name>geomEngine</inParameter-name>
+                                <inParameter-comment></inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-type>long</inParameter-type>
+                                <inParameter-name>studyId</inParameter-name>
+                                <inParameter-comment></inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-type>GEOM_Shape</inParameter-type>
+                                <inParameter-name>aShape</inParameter-name>
+                                <inParameter-comment></inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                           <outParameter>
+                               <outParameter-type>SMESH_Mesh</outParameter-type>
+                               <outParameter-name>aMesh</outParameter-name>
+                               <outParameter-comment></outParameter-comment>
+                           </outParameter>
+                       </outParameter-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>Compute</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment></service-comment>
+                        <service-by-default>1</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-type>SMESH_Mesh</inParameter-type>
+                                <inParameter-name>aMesh</inParameter-name>
+                                <inParameter-comment></inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-type>GEOM_Shape</inParameter-type>
+                                <inParameter-name>aSubShape</inParameter-name>
+                                <inParameter-comment></inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-type>boolean</outParameter-type>
+                                <outParameter-name>res</outParameter-name>
+                                <outParameter-comment>Result</outParameter-comment>
+                            </outParameter>
+                       </outParameter-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>IsReadyToCompute</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment></service-comment>
+                        <service-by-default>1</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-type>SMESH_Mesh</inParameter-type>
+                                <inParameter-name>aMesh</inParameter-name>
+                                <inParameter-comment></inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-type>GEOM_Shape</inParameter-type>
+                                <inParameter-name>aSubShape</inParameter-name>
+                                <inParameter-comment></inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                                <outParameter-type>boolean</outParameter-type>
+                                <outParameter-name>res</outParameter-name>
+                                <outParameter-comment>Result</outParameter-comment>
+                       </outParameter-list>
+                    </component-service>
+                </component-service-list>
+                <component-interface-name>SMESH_Mesh</component-interface-name>
+                <component-interface-comment></component-interface-comment>
+                <component-service-list>
+                    <component-service>
+                        <service-name>AddHypothesis</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment></service-comment>
+                        <service-by-default>1</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-type>GEOM_Shape</inParameter-type>
+                                <inParameter-name>aSubShape</inParameter-name>
+                                <inParameter-comment></inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-type>SMESH_Hypothesis</inParameter-type>
+                                <inParameter-name>aHyp</inParameter-name>
+                                <inParameter-comment></inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-type>boolean</outParameter-type>
+                                <outParameter-name>res</outParameter-name>
+                                <outParameter-comment>Result</outParameter-comment>
+                            </outParameter>
+                       </outParameter-list>
+                    </component-service>
+                </component-service-list>
+            </component-interface-list>
+       <constraint>hostname = localhost</constraint>
+       </component>
+</component-list>
+</begin-catalog>
diff --git a/resources/SalomeApp.xml b/resources/SalomeApp.xml
new file mode 100644 (file)
index 0000000..3b4db83
--- /dev/null
@@ -0,0 +1,47 @@
+<document>
+  <section name="SMESH">
+    <!-- Major module parameters -->
+    <parameter name="name" value="Mesh"/>
+    <parameter name="icon" value="ModuleMesh.png"/>
+    <!-- Other module preferences -->
+    <parameter name="node_color"                   value="255, 0,   0"/>
+    <parameter name="fill_color"                   value="0, 170, 255"/>
+    <parameter name="outline_color"                value="0, 170, 255"/>
+    <parameter name="backface_color"               value="0, 0,   255"/>
+    <parameter name="highlight_color"              value="0, 255, 255"/>
+    <parameter name="node_size"                    value="3" />
+    <parameter name="element_width"                value="1" />
+    <parameter name="shrink_coeff"                 value="75"/>
+    <parameter name="selection_element_color"      value="255, 255,   0"/>
+    <parameter name="selection_object_color"       value="255, 255, 255"/>
+    <parameter name="selection_precision_element"  value="0.005"/>
+    <parameter name="selection_precision_node"     value="0.005"/>
+    <parameter name="selection_width"              value="5"/>
+    <parameter name="highlight_width"              value="5"/>
+    <parameter name="controls_precision"           value="0"/>
+    <parameter name="scalar_bar_horizontal_height" value="0.05"/>
+    <parameter name="scalar_bar_horizontal_width"  value="0.5" />
+    <parameter name="scalar_bar_horizontal_x"      value="0.01"/>
+    <parameter name="scalar_bar_horizontal_y"      value="0.01"/>
+    <parameter name="scalar_bar_label_color"       value="255, 255, 255"/>
+    <parameter name="scalar_bar_label_font"        value="Arial,12"     />
+    <parameter name="scalar_bar_num_colors"        value="64"/>
+    <parameter name="scalar_bar_num_labels"        value="5" />
+    <parameter name="scalar_bar_orientation"       value="0" />
+    <parameter name="scalar_bar_title_color"       value="255, 255, 255"/>
+    <parameter name="scalar_bar_title_font"        value="Arial,12"     />
+    <parameter name="scalar_bar_vertical_height"   value="0.5"  />
+    <parameter name="scalar_bar_vertical_width"    value="0.05" />
+    <parameter name="scalar_bar_vertical_x"        value="0.01" />
+    <parameter name="scalar_bar_vertical_y"        value="0.01" />
+    <parameter name="DisplayMode"                  value="true" />
+    <parameter name="auto_update"                  value="true" />
+    <parameter name="display_mode"                 value="1"    />
+    <parameter name="auto_groups"                  value="false"/>
+  </section>
+  <section name="resources">
+    <!-- Module resources -->
+    <parameter name="SMESH"      value="${SMESH_ROOT_DIR}/share/salome/resources"/>
+    <parameter name="StdMeshers" value="${SMESH_ROOT_DIR}/share/salome/resources"/>
+  </section>
+</document>
diff --git a/resources/mesh_conv_to_quad.png b/resources/mesh_conv_to_quad.png
new file mode 100755 (executable)
index 0000000..ae39c7e
Binary files /dev/null and b/resources/mesh_conv_to_quad.png differ
diff --git a/resources/mesh_tree_algo_netgen_2d.png b/resources/mesh_tree_algo_netgen_2d.png
new file mode 100755 (executable)
index 0000000..092eae3
Binary files /dev/null and b/resources/mesh_tree_algo_netgen_2d.png differ
diff --git a/resources/mesh_tree_algo_netgen_2d3d.png b/resources/mesh_tree_algo_netgen_2d3d.png
new file mode 100644 (file)
index 0000000..eeaf98a
Binary files /dev/null and b/resources/mesh_tree_algo_netgen_2d3d.png differ
diff --git a/resources/mesh_tree_hypo_netgen.png b/resources/mesh_tree_hypo_netgen.png
new file mode 100644 (file)
index 0000000..ad5e9f3
Binary files /dev/null and b/resources/mesh_tree_hypo_netgen.png differ
diff --git a/resources/mesh_tree_hypo_netgen_2d.png b/resources/mesh_tree_hypo_netgen_2d.png
new file mode 100644 (file)
index 0000000..cd813c8
Binary files /dev/null and b/resources/mesh_tree_hypo_netgen_2d.png differ
diff --git a/src/DriverUNV/UNV2417_Structure.cxx b/src/DriverUNV/UNV2417_Structure.cxx
new file mode 100644 (file)
index 0000000..67d2cbe
--- /dev/null
@@ -0,0 +1,184 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+#include "UNV2417_Structure.hxx"
+#include "UNV_Utilities.hxx"
+
+#include <fstream>     
+#include <iomanip>
+
+using namespace std;
+using namespace UNV;
+using namespace UNV2417;
+
+#ifdef _DEBUG_
+static int MYDEBUG = 0;
+#else
+static int MYDEBUG = 0;
+#endif
+
+
+static string _group_labels[] = {"2417", "2429", "2430", "2432", "2435", "2452", "2467"};
+#define NBGROUP 7
+
+static string _label_dataset = "2467";
+
+void UNV2417::Read(std::ifstream& in_stream, TDataSet& theDataSet)
+{
+  if(!in_stream.good())
+    EXCEPTION(runtime_error,"ERROR: Input file not good.");
+
+  std::string olds, news;
+  
+  while(true){
+    in_stream >> olds >> news;
+    /*
+     * a "-1" followed by a number means the beginning of a dataset
+     * stop combing at the end of the file
+     */
+    while( ((olds != "-1") || (news == "-1") ) && !in_stream.eof() ){    
+      olds = news;
+      in_stream >> news;
+    }
+    if(in_stream.eof())
+      return;
+    for (int i = 0; i < NBGROUP; i++) {
+      if (news == _group_labels[i]) {
+       ReadGroup(news, in_stream, theDataSet);
+      }
+    }
+  }
+}
+
+
+
+void UNV2417::ReadGroup(const std::string& myGroupLabel, std::ifstream& in_stream, TDataSet& theDataSet)
+{
+  TGroupId aId;
+  for(; !in_stream.eof();){
+    in_stream >> aId ;
+    if(aId == -1){
+      // end of dataset is reached
+      break;
+    }
+
+    int n_nodes;
+    TRecord aRec;
+    int aTmp;
+    in_stream>>aTmp; // miss not necessary values
+    in_stream>>aTmp;
+    in_stream>>aTmp;
+    in_stream>>aTmp;
+    in_stream>>aTmp;
+    in_stream>>aTmp;
+    in_stream>>n_nodes;
+
+    std::getline(in_stream, aRec.GroupName, '\n'); // Finalise previous reading
+    std::getline(in_stream, aRec.GroupName, '\n');
+    
+    int aElType;
+    int aElId;
+    int aNum;
+    for(int j=0; j < n_nodes; j++){
+      in_stream>>aElType;
+      in_stream>>aElId;
+      if ((myGroupLabel.compare("2435") == 0) || (myGroupLabel.compare("2452") == 0) || (myGroupLabel.compare("2467") == 0)) {
+       in_stream>>aTmp;
+       in_stream>>aTmp;
+      }
+      switch (aElType) {
+      case 7: // Nodes
+       aNum = aRec.NodeList.size();
+       aRec.NodeList.resize(aNum + 1);
+       aRec.NodeList[aNum] = aElId;
+       break;
+      case 8: // Elements
+       aNum = aRec.ElementList.size();
+       aRec.ElementList.resize(aNum + 1);
+       aRec.ElementList[aNum] = aElId;
+       break;
+      }
+    }
+    theDataSet.insert(TDataSet::value_type(aId,aRec));
+  }
+
+}
+
+
+void UNV2417::Write(std::ofstream& out_stream, const TDataSet& theDataSet)
+{
+  if(!out_stream.good())
+    EXCEPTION(runtime_error,"ERROR: Output file not good.");
+  
+  /*
+   * Write beginning of dataset
+   */
+  out_stream<<"    -1\n";
+  out_stream<<"  "<<_label_dataset<<"\n";
+
+  TDataSet::const_iterator anIter = theDataSet.begin();
+  for(; anIter != theDataSet.end(); anIter++){
+    const TGroupId& aLabel = anIter->first;
+    const TRecord& aRec = anIter->second;
+    int aNbNodes = aRec.NodeList.size();
+    int aNbElements = aRec.ElementList.size();
+    int aNbRecords = aNbNodes + aNbElements;
+
+    out_stream<<std::setw(10)<<aLabel;  /* group ID */
+    out_stream<<std::setw(10)<<0;  
+    out_stream<<std::setw(10)<<0;
+    out_stream<<std::setw(10)<<0;
+    out_stream<<std::setw(10)<<0;
+    out_stream<<std::setw(10)<<0;
+    out_stream<<std::setw(10)<<0;
+    out_stream<<std::setw(10)<<aNbRecords<<std::endl; 
+
+    out_stream<<aRec.GroupName<<std::endl;
+    int aRow = 0;
+    int i;
+    for (i = 0; i < aNbNodes; i++) {
+      if (aRow == 2) {
+       out_stream<<std::endl; 
+       aRow = 0;
+      }
+      out_stream<<std::setw(10)<<7;
+      out_stream<<std::setw(10)<<aRec.NodeList[i];
+      out_stream<<std::setw(10)<<0;
+      out_stream<<std::setw(10)<<0;
+      aRow++;
+    }
+    for (i = 0; i < aNbElements; i++) {
+      if (aRow == 2) {
+       out_stream<<std::endl; 
+       aRow = 0;
+      }
+      out_stream<<std::setw(10)<<8;
+      out_stream<<std::setw(10)<<aRec.ElementList[i];
+      out_stream<<std::setw(10)<<0;
+      out_stream<<std::setw(10)<<0;
+      aRow++;
+    }
+    out_stream<<std::endl; 
+  }
+
+  /*
+   * Write end of dataset
+   */
+  out_stream<<"    -1\n";
+}
diff --git a/src/DriverUNV/UNV2417_Structure.hxx b/src/DriverUNV/UNV2417_Structure.hxx
new file mode 100644 (file)
index 0000000..516e747
--- /dev/null
@@ -0,0 +1,49 @@
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+
+#ifndef UNV2417_Structure_HeaderFile
+#define UNV2417_Structure_HeaderFile
+
+#include <map>
+#include <vector>
+#include <fstream>     
+#include <string>      
+
+
+namespace UNV2417{
+
+  typedef std::vector<int> TListOfId; // Nodal connectivitiesList of Id
+
+  struct TRecord{
+    std::string    GroupName;
+    TListOfId NodeList;
+    TListOfId ElementList;
+  };
+
+  typedef int TGroupId; // type of element label
+  typedef std::map<TGroupId, TRecord> TDataSet;
+
+  void Read(std::ifstream& in_stream, TDataSet& theDataSet);
+  void ReadGroup(const std::string& myGroupLabel, std::ifstream& in_stream, TDataSet& theDataSet);
+
+  void Write(std::ofstream& out_stream, const TDataSet& theDataSet);
+};
+
+
+#endif
diff --git a/src/SMDS/SMDS_QuadraticEdge.cxx b/src/SMDS/SMDS_QuadraticEdge.cxx
new file mode 100644 (file)
index 0000000..1dac4ef
--- /dev/null
@@ -0,0 +1,187 @@
+//  SMESH SMDS : implementaion of Salome mesh data structure
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+// File:      SMDS_QuadraticEdge.cxx
+// Created:   16.01.06 16:25:42
+// Author:    Sergey KUUL
+
+
+#include "SMDS_QuadraticEdge.hxx"
+
+#include "SMDS_SetIterator.hxx"
+#include "SMDS_IteratorOfElements.hxx"
+#include "SMDS_MeshNode.hxx"
+
+using namespace std;
+
+//=======================================================================
+//function : SMDS_QuadraticEdge
+//purpose  : 
+//=======================================================================
+
+SMDS_QuadraticEdge::SMDS_QuadraticEdge(const SMDS_MeshNode * node1,
+                                       const SMDS_MeshNode * node2,
+                                       const SMDS_MeshNode * node12)
+     :SMDS_MeshEdge(node1,node2)
+{      
+  myNodes[2]=node12;
+}
+
+
+//=======================================================================
+//function : Print
+//purpose  : 
+//=======================================================================
+
+void SMDS_QuadraticEdge::Print(ostream & OS) const
+{
+  OS << "quadratic edge <" << GetID() << "> : ( first-" << myNodes[0]
+     << " , last-" << myNodes[1] << " , medium-" << myNodes[2] << ") " << endl;
+}
+
+
+//=======================================================================
+//function : NbNodes
+//purpose  : 
+//=======================================================================
+
+int SMDS_QuadraticEdge::NbNodes() const
+{
+  return 3;
+}
+
+//=======================================================================
+//function : ChangeNodes
+//purpose  : 
+//=======================================================================
+
+bool SMDS_QuadraticEdge::ChangeNodes(const SMDS_MeshNode * node1,
+                                     const SMDS_MeshNode * node2,
+                                     const SMDS_MeshNode * node12)
+{
+  myNodes[0]=node1;
+  myNodes[1]=node2;
+  myNodes[2]=node12;
+  return true;
+}
+
+//=======================================================================
+//function : IsMediumNode
+//purpose  : 
+//=======================================================================
+
+bool SMDS_QuadraticEdge::IsMediumNode(const SMDS_MeshNode * node) const
+{
+  return (myNodes[2]==node);
+}
+
+namespace
+{
+  //=======================================================================
+  //class : _MyInterlacedNodeIterator
+  //purpose  : 
+  //=======================================================================
+
+  class _MyInterlacedNodeIterator: public SMDS_NodeArrayIterator
+  {
+    const SMDS_MeshNode * myNodes[3];
+  public:
+    _MyInterlacedNodeIterator(const SMDS_MeshNode * const * nodes):
+      SMDS_NodeArrayIterator( myNodes, & myNodes[3] )
+    {
+      myNodes[0] = nodes[0];
+      myNodes[1] = nodes[2];
+      myNodes[2] = nodes[1];
+    }
+  };
+
+  //=======================================================================
+  //class : _MyInterlacedNodeElemIterator
+  //purpose  : 
+  //=======================================================================
+
+  class _MyInterlacedNodeElemIterator : public SMDS_ElemIterator
+  {
+    SMDS_NodeIteratorPtr myItr;
+  public:
+    _MyInterlacedNodeElemIterator(SMDS_NodeIteratorPtr interlacedNodeItr):
+      myItr( interlacedNodeItr ) {}
+    bool more()                    { return myItr->more(); }
+    const SMDS_MeshElement* next() { return myItr->next(); }
+  };
+
+  //=======================================================================
+  //class : _MyNodeIterator
+  //purpose  : 
+  //=======================================================================
+
+  class _MyNodeIterator:public SMDS_NodeArrayElemIterator
+  {
+  public:
+    _MyNodeIterator(const SMDS_MeshNode * const * nodes):
+      SMDS_NodeArrayElemIterator( nodes, & nodes[3] ) {}
+  };
+}
+
+//=======================================================================
+//function : interlacedNodesIterator
+//purpose  : 
+//=======================================================================
+
+SMDS_NodeIteratorPtr SMDS_QuadraticEdge::interlacedNodesIterator() const
+{
+  return SMDS_NodeIteratorPtr (new _MyInterlacedNodeIterator (myNodes));
+}
+
+
+//=======================================================================
+//function : interlacedNodesElemIterator
+//purpose  : 
+//=======================================================================
+
+SMDS_ElemIteratorPtr SMDS_QuadraticEdge::interlacedNodesElemIterator() const
+{
+  return SMDS_ElemIteratorPtr
+    (new _MyInterlacedNodeElemIterator ( interlacedNodesIterator() ));
+}
+
+//=======================================================================
+//function : elementsIterator
+//purpose  : 
+//=======================================================================
+
+SMDS_ElemIteratorPtr SMDS_QuadraticEdge::elementsIterator(SMDSAbs_ElementType type) const
+{
+  switch(type)
+  {
+  case SMDSAbs_Edge:
+    return SMDS_MeshElement::elementsIterator(SMDSAbs_Edge); 
+  case SMDSAbs_Node:
+    return SMDS_ElemIteratorPtr(new _MyNodeIterator(myNodes));
+  default:
+    return SMDS_ElemIteratorPtr
+      (new SMDS_IteratorOfElements
+       (this,type, SMDS_ElemIteratorPtr(new _MyNodeIterator(myNodes))));
+  }
+}
+
diff --git a/src/SMDS/SMDS_QuadraticEdge.hxx b/src/SMDS/SMDS_QuadraticEdge.hxx
new file mode 100644 (file)
index 0000000..6c60996
--- /dev/null
@@ -0,0 +1,62 @@
+//  SMESH SMDS : implementaion of Salome mesh data structure
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : SMDS_QuadraticEdge.hxx
+//  Module : SMESH
+
+#ifndef _SMDS_QuadraticEdge_HeaderFile
+#define _SMDS_QuadraticEdge_HeaderFile
+
+#include "SMDS_MeshEdge.hxx"
+#include <iostream>
+
+class SMDS_WNT_EXPORT SMDS_QuadraticEdge: public SMDS_MeshEdge
+{
+
+public:
+  SMDS_QuadraticEdge(const SMDS_MeshNode * node1,
+                     const SMDS_MeshNode * node2,
+                     const SMDS_MeshNode * node12);
+
+  bool ChangeNodes(const SMDS_MeshNode * node1,
+                   const SMDS_MeshNode * node2,
+                   const SMDS_MeshNode * node12);
+
+  void Print(std::ostream & OS) const;
+
+  int NbNodes() const;
+
+  virtual bool IsQuadratic() const { return true; }
+
+  virtual bool IsMediumNode(const SMDS_MeshNode* node) const;
+
+  SMDS_NodeIteratorPtr interlacedNodesIterator() const;
+
+  SMDS_ElemIteratorPtr interlacedNodesElemIterator() const;
+
+protected:
+  SMDS_ElemIteratorPtr
+  elementsIterator(SMDSAbs_ElementType type) const;
+
+};
+#endif
diff --git a/src/SMDS/SMDS_QuadraticFaceOfNodes.cxx b/src/SMDS/SMDS_QuadraticFaceOfNodes.cxx
new file mode 100644 (file)
index 0000000..fa4249e
--- /dev/null
@@ -0,0 +1,281 @@
+//  SMESH SMDS : implementaion of Salome mesh data structure
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+// File:      SMDS_QuadraticFaceOfNodes.cxx
+// Created:   16.01.06 17:12:58
+// Author:    Sergey KUUL
+
+#include "SMDS_QuadraticFaceOfNodes.hxx"
+
+#include "SMDS_SetIterator.hxx"
+#include "SMDS_IteratorOfElements.hxx"
+#include "SMDS_MeshNode.hxx"
+
+#include "utilities.h"
+
+using namespace std;
+
+
+//=======================================================================
+//function : SMDS_QuadraticFaceOfNodes()
+//purpose  : Constructor
+//=======================================================================
+
+SMDS_QuadraticFaceOfNodes::SMDS_QuadraticFaceOfNodes(const SMDS_MeshNode * n1,
+                                                     const SMDS_MeshNode * n2,
+                                                     const SMDS_MeshNode * n3,
+                                                     const SMDS_MeshNode * n12,
+                                                     const SMDS_MeshNode * n23,
+                                                     const SMDS_MeshNode * n31)
+{
+  myNodes.resize( 6 );
+  myNodes[ 0 ] = n1;
+  myNodes[ 1 ] = n2;
+  myNodes[ 2 ] = n3;
+  myNodes[ 3 ] = n12;
+  myNodes[ 4 ] = n23;
+  myNodes[ 5 ] = n31;
+}
+
+
+//=======================================================================
+//function : SMDS_QuadraticFaceOfNodes()
+//purpose  : Constructor
+//=======================================================================
+
+SMDS_QuadraticFaceOfNodes::SMDS_QuadraticFaceOfNodes(const SMDS_MeshNode * n1,
+                                                     const SMDS_MeshNode * n2,
+                                                     const SMDS_MeshNode * n3,
+                                                     const SMDS_MeshNode * n4,
+                                                     const SMDS_MeshNode * n12,
+                                                     const SMDS_MeshNode * n23,
+                                                     const SMDS_MeshNode * n34,
+                                                     const SMDS_MeshNode * n41)
+{
+  myNodes.resize( 8 );
+  myNodes[ 0 ] = n1;
+  myNodes[ 1 ] = n2;
+  myNodes[ 2 ] = n3;
+  myNodes[ 3 ] = n4;
+  myNodes[ 4 ] = n12;
+  myNodes[ 5 ] = n23;
+  myNodes[ 6 ] = n34;
+  myNodes[ 7 ] = n41;
+}
+
+
+//=======================================================================
+//function : IsMediumNode
+//purpose  : 
+//=======================================================================
+
+bool SMDS_QuadraticFaceOfNodes::IsMediumNode(const SMDS_MeshNode * node) const
+{
+  int i=NbNodes()/2;
+  for(; i<NbNodes(); i++) {
+    if(myNodes[i]==node) return true;
+  }
+  return false;
+}
+
+
+//=======================================================================
+//function : ChangeNodes
+//purpose  : 
+//=======================================================================
+
+bool SMDS_QuadraticFaceOfNodes::ChangeNodes(const SMDS_MeshNode* nodes[],
+                                            const int            nbNodes)
+{
+  if( nbNodes==6 || nbNodes==8 ) {
+    myNodes.resize(nbNodes);
+    int i=0;
+    for(; i<nbNodes; i++) {
+      myNodes[i] = nodes[i];
+    }
+    return true;
+  }
+  return false;
+}
+
+
+//=======================================================================
+//function : NbNodes
+//purpose  : 
+//=======================================================================
+int SMDS_QuadraticFaceOfNodes::NbNodes() const
+{
+  return myNodes.size();
+}
+
+
+//=======================================================================
+//function : NbEdges
+//purpose  : 
+//=======================================================================
+int SMDS_QuadraticFaceOfNodes::NbEdges() const
+{
+  return NbNodes()/2;
+}
+
+
+//=======================================================================
+//function : NbFaces
+//purpose  : 
+//=======================================================================
+int SMDS_QuadraticFaceOfNodes::NbFaces() const
+{
+  return 1;
+}
+
+//=======================================================================
+//function : Print
+//purpose  : 
+//=======================================================================
+void SMDS_QuadraticFaceOfNodes::Print(ostream & OS) const
+{
+  OS << "quadratic face <" << GetID() << " > : ";
+  int i, nbNodes = myNodes.size();
+  for (i = 0; i < nbNodes - 1; i++)
+    OS << myNodes[i] << ",";
+  OS << myNodes[i] << ") " << endl;
+}
+
+namespace {
+
+  //=======================================================================
+  //class : _MyInterlacedNodeIterator
+  //purpose  : 
+  //=======================================================================
+
+  class _MyInterlacedNodeIterator:public SMDS_NodeIterator
+  {
+    const vector<const SMDS_MeshNode *>& mySet;
+    int myIndex;
+    const int * myInterlace;
+  public:
+    _MyInterlacedNodeIterator(const vector<const SMDS_MeshNode *>& s,
+                              const int * interlace):
+      mySet(s),myIndex(0),myInterlace(interlace) {}
+
+    bool more()
+    {
+      return myIndex < mySet.size();
+    }
+
+    const SMDS_MeshNode* next()
+    {
+      return mySet[ myInterlace[ myIndex++ ]];
+    }
+  };
+
+  //=======================================================================
+  //class : _MyInterlacedNodeElemIterator
+  //purpose  : 
+  //=======================================================================
+
+  class _MyInterlacedNodeElemIterator : public SMDS_ElemIterator
+  {
+    SMDS_NodeIteratorPtr myItr;
+  public:
+    _MyInterlacedNodeElemIterator(SMDS_NodeIteratorPtr interlacedNodeItr):
+      myItr( interlacedNodeItr ) {}
+    bool more()                    { return myItr->more(); }
+    const SMDS_MeshElement* next() { return myItr->next(); }
+  };
+
+  //=======================================================================
+  //class : _MyNodeIterator
+  //purpose  : 
+  //=======================================================================
+
+  class _MyNodeIterator : public SMDS_NodeVectorElemIterator
+  {
+  public:
+    _MyNodeIterator(const vector<const SMDS_MeshNode *>& s):
+      SMDS_NodeVectorElemIterator( s.begin(), s.end() ) {}
+  };
+  
+}
+
+//=======================================================================
+//function : interlacedNodesIterator
+//purpose  : 
+//=======================================================================
+
+SMDS_NodeIteratorPtr SMDS_QuadraticFaceOfNodes::interlacedNodesIterator() const
+{
+  static int triaInterlace [] = { 0, 3, 1, 4, 2, 5 };
+  static int quadInterlace [] = { 0, 4, 1, 5, 2, 6, 3, 7 };
+  return SMDS_NodeIteratorPtr
+    (new _MyInterlacedNodeIterator (myNodes, myNodes.size()==6 ? triaInterlace : quadInterlace));
+}
+
+//=======================================================================
+//function : interlacedNodesElemIterator
+//purpose  : 
+//=======================================================================
+
+SMDS_ElemIteratorPtr SMDS_QuadraticFaceOfNodes::interlacedNodesElemIterator() const
+{
+  return SMDS_ElemIteratorPtr
+    (new _MyInterlacedNodeElemIterator ( interlacedNodesIterator() ));
+}
+
+//=======================================================================
+//function : elementsIterator
+//purpose  : 
+//=======================================================================
+
+SMDS_ElemIteratorPtr SMDS_QuadraticFaceOfNodes::elementsIterator
+                                         (SMDSAbs_ElementType type) const
+{
+  switch(type)
+  {
+  case SMDSAbs_Face:
+    return SMDS_MeshElement::elementsIterator(SMDSAbs_Face);
+  case SMDSAbs_Node:
+    return SMDS_ElemIteratorPtr(new _MyNodeIterator(myNodes));
+  case SMDSAbs_Edge:
+    MESSAGE("Error : edge iterator for SMDS_QuadraticFaceOfNodes not implemented");
+    break;
+  default:
+    return SMDS_ElemIteratorPtr
+      (new SMDS_IteratorOfElements
+       (this,type,SMDS_ElemIteratorPtr (new _MyNodeIterator(myNodes))));
+  }
+  return SMDS_ElemIteratorPtr();
+}
+
+/*!
+ * \brief Return node by its index
+ * \param ind - node index
+ * \retval const SMDS_MeshNode* - the node
+ * 
+ * Index is wrapped if it is out of a valid range
+ */
+const SMDS_MeshNode* SMDS_QuadraticFaceOfNodes::GetNode(const int ind) const
+{
+  return myNodes[ WrappedIndex( ind )];
+}
+
diff --git a/src/SMDS/SMDS_QuadraticFaceOfNodes.hxx b/src/SMDS/SMDS_QuadraticFaceOfNodes.hxx
new file mode 100644 (file)
index 0000000..d174e81
--- /dev/null
@@ -0,0 +1,84 @@
+//  SMESH SMDS : implementaion of Salome mesh data structure
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : SMDS_QuadraticVolumeOfNodes.hxx
+//  Module : SMESH
+
+#ifndef _SMDS_QuadraticFaceOfNodes_HeaderFile
+#define _SMDS_QuadraticFaceOfNodes_HeaderFile
+
+#include "SMDS_MeshFace.hxx"
+
+class SMDS_WNT_EXPORT SMDS_QuadraticFaceOfNodes:public SMDS_MeshFace
+{
+public:
+  SMDS_QuadraticFaceOfNodes (const SMDS_MeshNode * n1,
+                             const SMDS_MeshNode * n2,
+                             const SMDS_MeshNode * n3,
+                             const SMDS_MeshNode * n12,
+                             const SMDS_MeshNode * n23,
+                             const SMDS_MeshNode * n31);
+
+  SMDS_QuadraticFaceOfNodes(const SMDS_MeshNode * n1,
+                            const SMDS_MeshNode * n2,
+                            const SMDS_MeshNode * n3,
+                            const SMDS_MeshNode * n4,
+                            const SMDS_MeshNode * n12,
+                            const SMDS_MeshNode * n23,
+                            const SMDS_MeshNode * n34,
+                            const SMDS_MeshNode * n41);
+
+  virtual bool IsQuadratic() const { return true; }
+
+  virtual bool IsMediumNode(const SMDS_MeshNode* node) const;
+
+  bool ChangeNodes(const SMDS_MeshNode* nodes[],
+                   const int            nbNodes);
+
+  virtual int NbNodes() const;
+  virtual int NbEdges() const;
+  virtual int NbFaces() const;
+
+  virtual void Print (std::ostream & OS) const;
+
+  SMDS_NodeIteratorPtr interlacedNodesIterator() const;
+
+  SMDS_ElemIteratorPtr interlacedNodesElemIterator() const;
+
+  /*!
+   * \brief Return node by its index
+    * \param ind - node index
+    * \retval const SMDS_MeshNode* - the node
+   * 
+   * Index is wrapped if it is out of a valid range
+   */
+  virtual const SMDS_MeshNode* GetNode(const int ind) const;
+
+protected:
+  virtual SMDS_ElemIteratorPtr elementsIterator (SMDSAbs_ElementType type) const;
+
+ private:
+  std::vector<const SMDS_MeshNode *> myNodes;
+};
+
+#endif
diff --git a/src/SMDS/SMDS_QuadraticVolumeOfNodes.cxx b/src/SMDS/SMDS_QuadraticVolumeOfNodes.cxx
new file mode 100644 (file)
index 0000000..ce14ecc
--- /dev/null
@@ -0,0 +1,347 @@
+//  SMESH SMDS : implementaion of Salome mesh data structure
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+// File:      SMDS_QuadraticVolumeOfNodes.cxx
+// Created:   17.01.06 09:46:11
+// Author:    Sergey KUUL
+
+#include "SMDS_QuadraticVolumeOfNodes.hxx"
+
+#include "SMDS_IteratorOfElements.hxx"
+#include "SMDS_MeshNode.hxx"
+#include "SMDS_SetIterator.hxx"
+
+#include "utilities.h"
+
+using namespace std;
+
+
+//=======================================================================
+//function : SMDS_QuadraticVolumeOfNodes()
+//purpose  : Constructor tetrahedron of 10 nodes
+//=======================================================================
+
+SMDS_QuadraticVolumeOfNodes::SMDS_QuadraticVolumeOfNodes
+                                               (const SMDS_MeshNode * n1,
+                                                const SMDS_MeshNode * n2,
+                                                const SMDS_MeshNode * n3,
+                                                const SMDS_MeshNode * n4,
+                                                const SMDS_MeshNode * n12,
+                                                const SMDS_MeshNode * n23,
+                                                const SMDS_MeshNode * n31,
+                                                const SMDS_MeshNode * n14, 
+                                                const SMDS_MeshNode * n24,
+                                                const SMDS_MeshNode * n34)
+{
+  myNodes.resize( 10 );
+  myNodes[ 0 ] = n1;
+  myNodes[ 1 ] = n2;
+  myNodes[ 2 ] = n3;
+  myNodes[ 3 ] = n4;
+  myNodes[ 4 ] = n12;
+  myNodes[ 5 ] = n23;
+  myNodes[ 6 ] = n31;
+  myNodes[ 7 ] = n14;
+  myNodes[ 8 ] = n24;
+  myNodes[ 9 ] = n34;
+}
+
+
+//=======================================================================
+//function : SMDS_QuadraticVolumeOfNodes()
+//purpose  : Constructor pyramid of 13 nodes
+//=======================================================================
+
+SMDS_QuadraticVolumeOfNodes::SMDS_QuadraticVolumeOfNodes
+                                               (const SMDS_MeshNode * n1,
+                                                const SMDS_MeshNode * n2,
+                                                const SMDS_MeshNode * n3,
+                                                const SMDS_MeshNode * n4,
+                                                const SMDS_MeshNode * n5,
+                                                const SMDS_MeshNode * n12,
+                                                const SMDS_MeshNode * n23,
+                                                const SMDS_MeshNode * n34,
+                                                const SMDS_MeshNode * n41, 
+                                                const SMDS_MeshNode * n15,
+                                                const SMDS_MeshNode * n25,
+                                                const SMDS_MeshNode * n35,
+                                                const SMDS_MeshNode * n45)
+{
+  myNodes.resize( 13 );
+  myNodes[ 0 ] = n1;
+  myNodes[ 1 ] = n2;
+  myNodes[ 2 ] = n3;
+  myNodes[ 3 ] = n4;
+  myNodes[ 4 ] = n5;
+  myNodes[ 5 ] = n12;
+  myNodes[ 6 ] = n23;
+  myNodes[ 7 ] = n34;
+  myNodes[ 8 ] = n41;
+  myNodes[ 9 ] = n15;
+  myNodes[ 10 ] = n25;
+  myNodes[ 11 ] = n35;
+  myNodes[ 12 ] = n45;
+}
+
+
+//=======================================================================
+//function : SMDS_QuadraticVolumeOfNodes()
+//purpose  : Constructor Pentahedron with 15 nodes
+//=======================================================================
+
+SMDS_QuadraticVolumeOfNodes::SMDS_QuadraticVolumeOfNodes
+                                               (const SMDS_MeshNode * n1,
+                                                const SMDS_MeshNode * n2,
+                                                const SMDS_MeshNode * n3,
+                                                const SMDS_MeshNode * n4,
+                                                const SMDS_MeshNode * n5,
+                                                const SMDS_MeshNode * n6, 
+                                                const SMDS_MeshNode * n12,
+                                                const SMDS_MeshNode * n23,
+                                                const SMDS_MeshNode * n31, 
+                                                const SMDS_MeshNode * n45,
+                                                const SMDS_MeshNode * n56,
+                                                const SMDS_MeshNode * n64, 
+                                                const SMDS_MeshNode * n14,
+                                                const SMDS_MeshNode * n25,
+                                                const SMDS_MeshNode * n36)
+{
+  myNodes.resize( 15 );
+  myNodes[ 0 ] = n1;
+  myNodes[ 1 ] = n2;
+  myNodes[ 2 ] = n3;
+  myNodes[ 3 ] = n4;
+  myNodes[ 4 ] = n5;
+  myNodes[ 5 ] = n6;
+  myNodes[ 6 ] = n12;
+  myNodes[ 7 ] = n23;
+  myNodes[ 8 ] = n31;
+  myNodes[ 9 ] = n45;
+  myNodes[ 10 ] = n56;
+  myNodes[ 11 ] = n64;
+  myNodes[ 12 ] = n14;
+  myNodes[ 13 ] = n25;
+  myNodes[ 14 ] = n36;
+}
+
+
+//=======================================================================
+//function : SMDS_QuadraticVolumeOfNodes()
+//purpose  : Constructor Hexahedrons with 20 nodes
+//=======================================================================
+
+SMDS_QuadraticVolumeOfNodes::SMDS_QuadraticVolumeOfNodes
+                                               (const SMDS_MeshNode * n1,
+                                                const SMDS_MeshNode * n2,
+                                                const SMDS_MeshNode * n3,
+                                                const SMDS_MeshNode * n4,
+                                                const SMDS_MeshNode * n5,
+                                                const SMDS_MeshNode * n6,
+                                                const SMDS_MeshNode * n7,
+                                                const SMDS_MeshNode * n8, 
+                                                const SMDS_MeshNode * n12,
+                                                const SMDS_MeshNode * n23,
+                                                const SMDS_MeshNode * n34,
+                                                const SMDS_MeshNode * n41, 
+                                                const SMDS_MeshNode * n56,
+                                                const SMDS_MeshNode * n67,
+                                                const SMDS_MeshNode * n78,
+                                                const SMDS_MeshNode * n85, 
+                                                const SMDS_MeshNode * n15,
+                                                const SMDS_MeshNode * n26,
+                                                const SMDS_MeshNode * n37,
+                                                const SMDS_MeshNode * n48)
+{
+  myNodes.resize( 20 );
+  myNodes[ 0 ] = n1;
+  myNodes[ 1 ] = n2;
+  myNodes[ 2 ] = n3;
+  myNodes[ 3 ] = n4;
+  myNodes[ 4 ] = n5;
+  myNodes[ 5 ] = n6;
+  myNodes[ 6 ] = n7;
+  myNodes[ 7 ] = n8;
+  myNodes[ 8 ] = n12;
+  myNodes[ 9 ] = n23;
+  myNodes[ 10 ] = n34;
+  myNodes[ 11 ] = n41;
+  myNodes[ 12 ] = n56;
+  myNodes[ 13 ] = n67;
+  myNodes[ 14 ] = n78;
+  myNodes[ 15 ] = n85;
+  myNodes[ 16 ] = n15;
+  myNodes[ 17 ] = n26;
+  myNodes[ 18 ] = n37;
+  myNodes[ 19 ] = n48;
+}
+
+
+//=======================================================================
+//function : IsMediumNode
+//purpose  : 
+//=======================================================================
+
+bool SMDS_QuadraticVolumeOfNodes::IsMediumNode(const SMDS_MeshNode* node) const
+{
+  int nbCorners = 0;
+  switch (myNodes.size()) {
+  case 10: nbCorners = 4; break;
+  case 13: nbCorners = 5; break;
+  case 15: nbCorners = 6; break;
+  default: nbCorners = 8;
+  }
+  for ( int i = nbCorners; i<myNodes.size(); i++) {
+    if(myNodes[i]==node) return true;
+  }
+  return false;
+}
+
+
+//=======================================================================
+//function : ChangeNodes
+//purpose  : 
+//=======================================================================
+
+bool SMDS_QuadraticVolumeOfNodes::ChangeNodes(const SMDS_MeshNode* nodes[],
+                                              const int            nbNodes)
+{
+  if( nbNodes==10 || nbNodes==13 || nbNodes==15 || nbNodes==20 ) {
+    myNodes.resize(nbNodes);
+    int i=0;
+    for(; i<nbNodes; i++) {
+      myNodes[i] = nodes[i];
+    }
+    return true;
+  }
+  return false;
+}
+
+
+//=======================================================================
+//function : NbNodes
+//purpose  : 
+//=======================================================================
+int SMDS_QuadraticVolumeOfNodes::NbNodes() const
+{
+  return myNodes.size();
+}
+
+
+//=======================================================================
+//function : NbEdges
+//purpose  : 
+//=======================================================================
+int SMDS_QuadraticVolumeOfNodes::NbEdges() const
+{
+  if(myNodes.size()==10)
+    return 6;
+  else if(myNodes.size()==13)
+    return 8;
+  else if(myNodes.size()==15)
+    return 9;
+  else
+    return 12;
+}
+
+
+//=======================================================================
+//function : NbFaces
+//purpose  : 
+//=======================================================================
+int SMDS_QuadraticVolumeOfNodes::NbFaces() const
+{
+  if(myNodes.size()==10)
+    return 4;
+  else if(myNodes.size()==20)
+    return 6;
+  else
+    return 5;
+}
+
+//=======================================================================
+//function : Print
+//purpose  : 
+//=======================================================================
+void SMDS_QuadraticVolumeOfNodes::Print(ostream & OS) const
+{
+  OS << "quadratic volume <" << GetID() << " > : ";
+  int i, nbNodes = myNodes.size();
+  for (i = 0; i < nbNodes - 1; i++)
+    OS << myNodes[i] << ",";
+  OS << myNodes[i] << ") " << endl;
+}
+
+
+//=======================================================================
+//private class : SMDS_QuadraticVolumeOfNodes_MyIterator
+//purpose  : 
+//=======================================================================
+
+class SMDS_QuadraticVolumeOfNodes_MyIterator : public SMDS_NodeVectorElemIterator
+{
+public:
+  SMDS_QuadraticVolumeOfNodes_MyIterator(const vector<const SMDS_MeshNode *>& s):
+    SMDS_NodeVectorElemIterator( s.begin(), s.end() ) {}
+};
+
+//=======================================================================
+//function : elementsIterator
+//purpose  : 
+//=======================================================================
+
+SMDS_ElemIteratorPtr SMDS_QuadraticVolumeOfNodes::elementsIterator
+                                         (SMDSAbs_ElementType type) const
+{
+  switch(type)
+  {
+  case SMDSAbs_Volume:
+    return SMDS_MeshElement::elementsIterator(SMDSAbs_Volume);
+  case SMDSAbs_Node:
+    return SMDS_ElemIteratorPtr(new SMDS_QuadraticVolumeOfNodes_MyIterator(myNodes));
+  case SMDSAbs_Edge:
+    MESSAGE("Error : edge iterator for SMDS_QuadraticVolumeOfNodes not implemented");
+    break;
+  case SMDSAbs_Face:
+    MESSAGE("Error : face iterator for SMDS_QuadraticVolumeOfNodes not implemented");
+    break;
+  default:
+    return SMDS_ElemIteratorPtr
+      (new SMDS_IteratorOfElements
+       (this,type,SMDS_ElemIteratorPtr
+        (new SMDS_QuadraticVolumeOfNodes_MyIterator(myNodes))));
+  }
+  return SMDS_ElemIteratorPtr();
+}
+
+/*!
+ * \brief Return node by its index
+ * \param ind - node index
+ * \retval const SMDS_MeshNode* - the node
+ * 
+ * Index is wrapped if it is out of a valid range
+ */
+const SMDS_MeshNode* SMDS_QuadraticVolumeOfNodes::GetNode(const int ind) const
+{
+  return myNodes[ WrappedIndex( ind )];
+}
+
diff --git a/src/SMDS/SMDS_QuadraticVolumeOfNodes.hxx b/src/SMDS/SMDS_QuadraticVolumeOfNodes.hxx
new file mode 100644 (file)
index 0000000..23f4369
--- /dev/null
@@ -0,0 +1,130 @@
+//  SMESH SMDS : implementaion of Salome mesh data structure
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : SMDS_QuadraticVolumeOfNodes.hxx
+//  Module : SMESH
+
+#ifndef _SMDS_QuadraticVolumeOfNodes_HeaderFile
+#define _SMDS_QuadraticVolumeOfNodes_HeaderFile
+
+#include "SMDS_MeshVolume.hxx"
+
+class SMDS_WNT_EXPORT SMDS_QuadraticVolumeOfNodes: public SMDS_MeshVolume
+{
+public:
+  // tetrahedron of 10 nodes
+  SMDS_QuadraticVolumeOfNodes (const SMDS_MeshNode * n1,
+                               const SMDS_MeshNode * n2,
+                               const SMDS_MeshNode * n3,
+                               const SMDS_MeshNode * n4,
+                               const SMDS_MeshNode * n12,
+                               const SMDS_MeshNode * n23,
+                               const SMDS_MeshNode * n31,
+                               const SMDS_MeshNode * n14, 
+                               const SMDS_MeshNode * n24,
+                               const SMDS_MeshNode * n34);
+
+  // pyramid of 13 nodes
+  SMDS_QuadraticVolumeOfNodes(const SMDS_MeshNode * n1,
+                              const SMDS_MeshNode * n2,
+                              const SMDS_MeshNode * n3,
+                              const SMDS_MeshNode * n4,
+                              const SMDS_MeshNode * n5,
+                              const SMDS_MeshNode * n12,
+                              const SMDS_MeshNode * n23,
+                              const SMDS_MeshNode * n34,
+                              const SMDS_MeshNode * n41, 
+                              const SMDS_MeshNode * n15,
+                              const SMDS_MeshNode * n25,
+                              const SMDS_MeshNode * n35,
+                              const SMDS_MeshNode * n45);
+
+  //  Pentahedron with 15 nodes
+  SMDS_QuadraticVolumeOfNodes(const SMDS_MeshNode * n1,
+                              const SMDS_MeshNode * n2,
+                              const SMDS_MeshNode * n3,
+                              const SMDS_MeshNode * n4,
+                              const SMDS_MeshNode * n5,
+                              const SMDS_MeshNode * n6, 
+                              const SMDS_MeshNode * n12,
+                              const SMDS_MeshNode * n23,
+                              const SMDS_MeshNode * n31, 
+                              const SMDS_MeshNode * n45,
+                              const SMDS_MeshNode * n56,
+                              const SMDS_MeshNode * n64, 
+                              const SMDS_MeshNode * n14,
+                              const SMDS_MeshNode * n25,
+                              const SMDS_MeshNode * n36);
+
+  // Hexahedrons with 20 nodes
+  SMDS_QuadraticVolumeOfNodes(const SMDS_MeshNode * n1,
+                              const SMDS_MeshNode * n2,
+                              const SMDS_MeshNode * n3,
+                              const SMDS_MeshNode * n4,
+                              const SMDS_MeshNode * n5,
+                              const SMDS_MeshNode * n6,
+                              const SMDS_MeshNode * n7,
+                              const SMDS_MeshNode * n8, 
+                              const SMDS_MeshNode * n12,
+                              const SMDS_MeshNode * n23,
+                              const SMDS_MeshNode * n34,
+                              const SMDS_MeshNode * n41, 
+                              const SMDS_MeshNode * n56,
+                              const SMDS_MeshNode * n67,
+                              const SMDS_MeshNode * n78,
+                              const SMDS_MeshNode * n85, 
+                              const SMDS_MeshNode * n15,
+                              const SMDS_MeshNode * n26,
+                              const SMDS_MeshNode * n37,
+                              const SMDS_MeshNode * n48);
+
+  virtual bool IsQuadratic() const { return true; }
+
+  virtual bool IsMediumNode(const SMDS_MeshNode* node) const;
+
+  bool ChangeNodes(const SMDS_MeshNode* nodes[],
+                   const int            nbNodes);
+
+  virtual int NbNodes() const;
+  virtual int NbEdges() const;
+  virtual int NbFaces() const;
+
+  virtual void Print (std::ostream & OS) const;
+
+  /*!
+   * \brief Return node by its index
+    * \param ind - node index
+    * \retval const SMDS_MeshNode* - the node
+   * 
+   * Index is wrapped if it is out of a valid range
+   */
+  virtual const SMDS_MeshNode* GetNode(const int ind) const;
+
+ protected:
+  virtual SMDS_ElemIteratorPtr elementsIterator (SMDSAbs_ElementType type) const;
+
+ private:
+  std::vector<const SMDS_MeshNode *> myNodes;
+};
+
+#endif
diff --git a/src/SMDS/SMDS_SetIterator.hxx b/src/SMDS/SMDS_SetIterator.hxx
new file mode 100644 (file)
index 0000000..05fa6c0
--- /dev/null
@@ -0,0 +1,101 @@
+//  SMESH SMDS : implementaion of Salome mesh data structure
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+// File      : SMDS_SetIterator.hxx
+// Created   : Mon Feb 27 16:57:43 2006
+// Author    : Edward AGAPOV (eap)
+
+
+#ifndef SMDS_SetIterator_HeaderFile
+#define SMDS_SetIterator_HeaderFile
+
+#include "SMDS_Iterator.hxx"
+
+///////////////////////////////////////////////////////////////////////////////
+/// specific SMDS_Iterator iterating over abstract set of values like STL containers
+///
+/// BE CAREFUL: iterator pointed value is static_cast'ed to VALUE
+///
+///////////////////////////////////////////////////////////////////////////////
+
+template<typename VALUE, typename VALUE_SET_ITERATOR>
+class SMDS_SetIterator : public SMDS_Iterator<VALUE>
+{
+protected:
+  VALUE_SET_ITERATOR _beg, _end;
+public:
+  SMDS_SetIterator(const VALUE_SET_ITERATOR & begin,
+                   const VALUE_SET_ITERATOR & end)
+  { init ( begin, end ); }
+
+  /// Initialization
+  virtual void init(const VALUE_SET_ITERATOR & begin,
+                    const VALUE_SET_ITERATOR & end)
+  { _beg = begin; _end = end; }
+
+  /// Return true if and only if there are other object in this iterator
+  virtual bool more() { return _beg != _end; }
+
+  /// Return the current object and step to the next one
+  virtual VALUE next() { return static_cast<VALUE>( *_beg++ ); }
+
+};
+
+// useful specifications
+
+#include <vector>
+
+class SMDS_MeshElement;
+class SMDS_MeshNode;
+
+typedef const SMDS_MeshElement* SMDS_pElement;
+typedef const SMDS_MeshNode*    SMDS_pNode;
+
+// element iterators
+
+typedef SMDS_SetIterator< SMDS_pElement, std::vector< SMDS_pElement >::const_iterator>
+SMDS_ElementVectorIterator;
+
+
+typedef SMDS_SetIterator< SMDS_pElement, SMDS_pElement const *>
+SMDS_ElementArrayIterator;
+
+
+typedef SMDS_SetIterator< SMDS_pElement, std::vector< SMDS_pNode >::const_iterator>
+SMDS_NodeVectorElemIterator;
+
+
+typedef SMDS_SetIterator< SMDS_pElement, SMDS_pNode const * >
+SMDS_NodeArrayElemIterator;
+
+// node iterators
+
+typedef SMDS_SetIterator< SMDS_pNode, std::vector< SMDS_pNode >::const_iterator >
+SMDS_NodeVectorIterator;
+
+
+typedef SMDS_SetIterator< SMDS_pNode, SMDS_pNode const * >
+SMDS_NodeArrayIterator;
+
+
+#endif
diff --git a/src/SMESH/SMESH_MesherHelper.cxx b/src/SMESH/SMESH_MesherHelper.cxx
new file mode 100644 (file)
index 0000000..fd0a0dc
--- /dev/null
@@ -0,0 +1,698 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+// File:      SMESH_MesherHelper.cxx
+// Created:   15.02.06 15:22:41
+// Author:    Sergey KUUL
+// Copyright: Open CASCADE 2006
+
+
+#include "SMESH_MesherHelper.hxx"
+
+#include "SMDS_FacePosition.hxx" 
+#include "SMDS_EdgePosition.hxx"
+#include "SMESH_MeshEditor.hxx"
+
+#include <BRepAdaptor_Surface.hxx>
+#include <BRepTools.hxx>
+#include <BRep_Tool.hxx>
+#include <Geom2d_Curve.hxx>
+#include <Geom_Curve.hxx>
+#include <Geom_Surface.hxx>
+#include <TopExp_Explorer.hxx>
+#include <TopTools_MapOfShape.hxx>
+#include <gp_Pnt2d.hxx>
+#include <ShapeAnalysis.hxx>
+
+//=======================================================================
+//function : CheckShape
+//purpose  : 
+//=======================================================================
+
+bool SMESH_MesherHelper::IsQuadraticSubMesh(const TopoDS_Shape& aSh)
+{
+  SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
+  // we can create quadratic elements only if all elements
+  // created on subshapes of given shape are quadratic
+  // also we have to fill myNLinkNodeMap
+  myCreateQuadratic = true;
+  mySeamShapeIds.clear();
+  TopAbs_ShapeEnum subType( aSh.ShapeType()==TopAbs_FACE ? TopAbs_EDGE : TopAbs_FACE );
+  SMDSAbs_ElementType elemType( subType==TopAbs_FACE ? SMDSAbs_Face : SMDSAbs_Edge );
+
+  TopExp_Explorer exp( aSh, subType );
+  for (; exp.More() && myCreateQuadratic; exp.Next()) {
+    if ( SMESHDS_SubMesh * subMesh = meshDS->MeshElements( exp.Current() )) {
+      if ( SMDS_ElemIteratorPtr it = subMesh->GetElements() ) {
+        while(it->more()) {
+          const SMDS_MeshElement* e = it->next();
+          if ( e->GetType() != elemType || !e->IsQuadratic() ) {
+            myCreateQuadratic = false;
+            break;
+          }
+          else {
+            // fill NLinkNodeMap
+            switch ( e->NbNodes() ) {
+            case 3:
+              AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(2)); break;
+            case 6:
+              AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(3));
+              AddNLinkNode(e->GetNode(1),e->GetNode(2),e->GetNode(4));
+              AddNLinkNode(e->GetNode(2),e->GetNode(0),e->GetNode(5)); break;
+            case 8:
+              AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(4));
+              AddNLinkNode(e->GetNode(1),e->GetNode(2),e->GetNode(5));
+              AddNLinkNode(e->GetNode(2),e->GetNode(3),e->GetNode(6));
+              AddNLinkNode(e->GetNode(3),e->GetNode(0),e->GetNode(7));
+              break;
+            default:
+              myCreateQuadratic = false;
+              break;
+            }
+          }
+        }
+      }
+    }
+  }
+
+  if(!myCreateQuadratic) {
+    myNLinkNodeMap.clear();
+  }
+  else {
+    SetSubShape( aSh );
+  }
+  return myCreateQuadratic;
+}
+
+//================================================================================
+/*!
+ * \brief Set geomerty to make elements on
+  * \param aSh - geomertic shape
+ */
+//================================================================================
+
+void SMESH_MesherHelper::SetSubShape(const int aShID)
+{
+  if ( aShID == myShapeID )
+    return;
+  if ( aShID > 1 )
+    SetSubShape( GetMesh()->GetMeshDS()->IndexToShape( aShID ));
+  else
+    SetSubShape( TopoDS_Shape() );
+}
+
+//================================================================================
+/*!
+ * \brief Set geomerty to make elements on
+  * \param aSh - geomertic shape
+ */
+//================================================================================
+
+void SMESH_MesherHelper::SetSubShape(const TopoDS_Shape& aSh)
+{
+  if ( !myShape.IsNull() && !aSh.IsNull() && myShape.IsSame( aSh ))
+    return;
+
+  myShape = aSh;
+  mySeamShapeIds.clear();
+
+  if ( myShape.IsNull() ) {
+    myShapeID  = -1;
+    return;
+  }
+  SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
+  myShapeID = meshDS->ShapeToIndex(aSh);
+
+  // treatment of periodic faces
+  if ( aSh.ShapeType() == TopAbs_FACE )
+  {
+    const TopoDS_Face& face = TopoDS::Face( aSh );
+    BRepAdaptor_Surface surface( face );
+    if ( surface.IsUPeriodic() || surface.IsVPeriodic() )
+    {
+      // look for a seam edge
+      for ( TopExp_Explorer exp( face, TopAbs_EDGE ); exp.More(); exp.Next()) {
+        const TopoDS_Edge& edge = TopoDS::Edge( exp.Current() );
+        if ( BRep_Tool::IsClosed( edge, face )) {
+          // initialize myPar1, myPar2 and myParIndex
+          if ( mySeamShapeIds.empty() ) {
+            gp_Pnt2d uv1, uv2;
+            BRep_Tool::UVPoints( edge, face, uv1, uv2 );
+            if ( Abs( uv1.Coord(1) - uv2.Coord(1) ) < Abs( uv1.Coord(2) - uv2.Coord(2) ))
+            {
+              myParIndex = 1; // U periodic
+              myPar1 = surface.FirstUParameter();
+              myPar2 = surface.LastUParameter();
+            }
+            else {
+              myParIndex = 2;  // V periodic
+              myPar1 = surface.FirstVParameter();
+              myPar2 = surface.LastVParameter();
+            }
+          }
+          // store shapes indices
+          mySeamShapeIds.insert( meshDS->ShapeToIndex( exp.Current() ));
+          for ( TopExp_Explorer v( exp.Current(), TopAbs_VERTEX ); v.More(); v.Next() )
+            mySeamShapeIds.insert( meshDS->ShapeToIndex( v.Current() ));
+        }
+      }
+    }
+  }
+}
+
+//================================================================================
+  /*!
+   * \brief Check if inFaceNode argument is necessary for call GetNodeUV(F,..)
+    * \param F - the face
+    * \retval bool - return true if the face is periodic
+   */
+//================================================================================
+
+bool SMESH_MesherHelper::GetNodeUVneedInFaceNode(const TopoDS_Face& F) const
+{
+  if ( F.IsNull() ) return !mySeamShapeIds.empty();
+
+  if ( !F.IsNull() && !myShape.IsNull() && myShape.IsSame( F ))
+    return !mySeamShapeIds.empty();
+
+  Handle(Geom_Surface) aSurface = BRep_Tool::Surface( F );
+  if ( !aSurface.IsNull() )
+    return ( aSurface->IsUPeriodic() || aSurface->IsVPeriodic() );
+
+  return false;
+}
+
+//=======================================================================
+//function : IsMedium
+//purpose  : 
+//=======================================================================
+
+bool SMESH_MesherHelper::IsMedium(const SMDS_MeshNode*      node,
+                                 const SMDSAbs_ElementType typeToCheck)
+{
+  return SMESH_MeshEditor::IsMedium( node, typeToCheck );
+}
+
+//=======================================================================
+//function : AddNLinkNode
+//purpose  : 
+//=======================================================================
+/*!
+ * Auxilary function for filling myNLinkNodeMap
+ */
+void SMESH_MesherHelper::AddNLinkNode(const SMDS_MeshNode* n1,
+                                     const SMDS_MeshNode* n2,
+                                     const SMDS_MeshNode* n12)
+{
+  NLink link( n1, n2 );
+  if ( n1 > n2 ) link = NLink( n2, n1 );
+  // add new record to map
+  myNLinkNodeMap.insert( make_pair(link,n12));
+}
+
+//=======================================================================
+/*!
+ * \brief Select UV on either of 2 pcurves of a seam edge, closest to the given UV
+ * \param uv1 - UV on the seam
+ * \param uv2 - UV within a face
+ * \retval gp_Pnt2d - selected UV
+ */
+//=======================================================================
+
+gp_Pnt2d SMESH_MesherHelper::GetUVOnSeam( const gp_Pnt2d& uv1, const gp_Pnt2d& uv2 ) const
+{
+  double p1 = uv1.Coord( myParIndex );
+  double p2 = uv2.Coord( myParIndex );
+  double p3 = ( Abs( p1 - myPar1 ) < Abs( p1 - myPar2 )) ? myPar2 : myPar1;
+  if ( Abs( p2 - p1 ) > Abs( p2 - p3 ))
+    p1 = p3;
+  gp_Pnt2d result = uv1;
+  result.SetCoord( myParIndex, p1 );
+  return result;
+}
+
+//=======================================================================
+/*!
+ * \brief Return node UV on face
+ * \param F - the face
+ * \param n - the node
+ * \param n2 - a node of element being created located inside a face
+ * \retval gp_XY - resulting UV
+ * 
+ * Auxilary function called form GetMediumNode()
+ */
+//=======================================================================
+
+gp_XY SMESH_MesherHelper::GetNodeUV(const TopoDS_Face&   F,
+                                    const SMDS_MeshNode* n,
+                                    const SMDS_MeshNode* n2)
+{
+  gp_Pnt2d uv;
+  const SMDS_PositionPtr Pos = n->GetPosition();
+  if(Pos->GetTypeOfPosition()==SMDS_TOP_FACE) {
+    // node has position on face
+    const SMDS_FacePosition* fpos =
+      static_cast<const SMDS_FacePosition*>(n->GetPosition().get());
+    uv = gp_Pnt2d(fpos->GetUParameter(),fpos->GetVParameter());
+  }
+  else if(Pos->GetTypeOfPosition()==SMDS_TOP_EDGE) {
+    // node has position on edge => it is needed to find
+    // corresponding edge from face, get pcurve for this
+    // edge and recieve value from this pcurve
+    const SMDS_EdgePosition* epos =
+      static_cast<const SMDS_EdgePosition*>(n->GetPosition().get());
+    SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
+    int edgeID = Pos->GetShapeId();
+    TopoDS_Edge E = TopoDS::Edge(meshDS->IndexToShape(edgeID));
+    double f, l;
+    TopLoc_Location loc;
+    Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
+    uv = C2d->Value( epos->GetUParameter() );
+    // for a node on a seam edge select one of UVs on 2 pcurves
+    if ( n2 && mySeamShapeIds.find( edgeID ) != mySeamShapeIds.end() )
+      uv = GetUVOnSeam( uv, GetNodeUV( F, n2, 0 ));
+  }
+  else if(Pos->GetTypeOfPosition()==SMDS_TOP_VERTEX) {
+    SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+    int vertexID = n->GetPosition()->GetShapeId();
+    const TopoDS_Vertex& V = TopoDS::Vertex(meshDS->IndexToShape(vertexID));
+    uv = BRep_Tool::Parameters( V, F );
+    if ( n2 && mySeamShapeIds.find( vertexID ) != mySeamShapeIds.end() )
+      uv = GetUVOnSeam( uv, GetNodeUV( F, n2, 0 ));
+  }
+  return uv.XY();
+}
+
+//=======================================================================
+/*!
+ * \brief Return node U on edge
+ * \param E - the Edge
+ * \param n - the node
+ * \retval double - resulting U
+ * 
+ * Auxilary function called form GetMediumNode()
+ */
+//=======================================================================
+
+double SMESH_MesherHelper::GetNodeU(const TopoDS_Edge&   E,
+                                    const SMDS_MeshNode* n)
+{
+  double param = 0;
+  const SMDS_PositionPtr Pos = n->GetPosition();
+  if(Pos->GetTypeOfPosition()==SMDS_TOP_EDGE) {
+    const SMDS_EdgePosition* epos =
+      static_cast<const SMDS_EdgePosition*>(n->GetPosition().get());
+    param =  epos->GetUParameter();
+  }
+  else if(Pos->GetTypeOfPosition()==SMDS_TOP_VERTEX) {
+    SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+    int vertexID = n->GetPosition()->GetShapeId();
+    const TopoDS_Vertex& V = TopoDS::Vertex(meshDS->IndexToShape(vertexID));
+    param =  BRep_Tool::Parameter( V, E );
+  }
+  return param;
+}
+
+//=======================================================================
+//function : GetMediumNode
+//purpose  : 
+//=======================================================================
+/*!
+ * Special function for search or creation medium node
+ */
+const SMDS_MeshNode* SMESH_MesherHelper::GetMediumNode(const SMDS_MeshNode* n1,
+                                                       const SMDS_MeshNode* n2,
+                                                       bool force3d)
+{
+  TopAbs_ShapeEnum shapeType = myShape.IsNull() ? TopAbs_SHAPE : myShape.ShapeType();
+
+  NLink link(( n1 < n2 ? n1 : n2 ), ( n1 < n2 ? n2 : n1 ));
+  ItNLinkNode itLN = myNLinkNodeMap.find( link );
+  if ( itLN != myNLinkNodeMap.end() ) {
+    return (*itLN).second;
+  }
+  else {
+    // create medium node
+    SMDS_MeshNode* n12;
+    SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
+    int faceID = -1, edgeID = -1;
+    const SMDS_PositionPtr Pos1 = n1->GetPosition();
+    const SMDS_PositionPtr Pos2 = n2->GetPosition();
+  
+    if( myShape.IsNull() )
+    {
+      if( Pos1->GetTypeOfPosition()==SMDS_TOP_FACE ) {
+        faceID = Pos1->GetShapeId();
+      }
+      else if( Pos2->GetTypeOfPosition()==SMDS_TOP_FACE ) {
+        faceID = Pos2->GetShapeId();
+      }
+
+      if( Pos1->GetTypeOfPosition()==SMDS_TOP_EDGE ) {
+        edgeID = Pos1->GetShapeId();
+      }
+      if( Pos2->GetTypeOfPosition()==SMDS_TOP_EDGE ) {
+        edgeID = Pos2->GetShapeId();
+      }
+    }
+
+    if(!force3d) {
+      // we try to create medium node using UV parameters of
+      // nodes, else - medium between corresponding 3d points
+      if(faceID>-1 || shapeType == TopAbs_FACE) {
+       // obtaining a face and 2d points for nodes
+       TopoDS_Face F;
+       if( myShape.IsNull() )
+          F = TopoDS::Face(meshDS->IndexToShape(faceID));
+       else {
+          F = TopoDS::Face(myShape);
+          faceID = myShapeID;
+        }
+
+       gp_XY p1 = GetNodeUV(F,n1,n2);
+        gp_XY p2 = GetNodeUV(F,n2,n1);
+
+       //checking if surface is periodic
+       Handle(Geom_Surface) S = BRep_Tool::Surface(F);
+       Standard_Real UF,UL,VF,VL;
+       S->Bounds(UF,UL,VF,VL);
+
+       Standard_Real u,v;
+       Standard_Boolean isUPeriodic = S->IsUPeriodic();
+       if(isUPeriodic) {
+         Standard_Real UPeriod = S->UPeriod();
+         Standard_Real p2x = p2.X()+ShapeAnalysis::AdjustByPeriod(p2.X(),p1.X(),UPeriod);
+         Standard_Real pmid = (p1.X()+p2x)/2.;
+         u = pmid+ShapeAnalysis::AdjustToPeriod(pmid,UF,UL);
+       }
+       else 
+         u= (p1.X()+p2.X())/2.;
+
+       Standard_Boolean isVPeriodic = S->IsVPeriodic();
+       if(isVPeriodic) {
+         Standard_Real VPeriod = S->VPeriod();
+         Standard_Real p2y = p2.Y()+ShapeAnalysis::AdjustByPeriod(p2.Y(),p1.Y(),VPeriod);
+         Standard_Real pmid = (p1.Y()+p2y)/2.;
+         v = pmid+ShapeAnalysis::AdjustToPeriod(pmid,VF,VL);
+       }
+       else
+         v = (p1.Y()+p2.Y())/2.;
+
+        gp_Pnt P = S->Value(u, v);
+        n12 = meshDS->AddNode(P.X(), P.Y(), P.Z());
+        meshDS->SetNodeOnFace(n12, faceID, u, v);
+        myNLinkNodeMap.insert(NLinkNodeMap::value_type(link,n12));
+        return n12;
+      }
+      if (edgeID>-1 || shapeType == TopAbs_EDGE) {
+
+       TopoDS_Edge E;
+       if( myShape.IsNull() )
+          E = TopoDS::Edge(meshDS->IndexToShape(edgeID));
+       else {
+          E = TopoDS::Edge(myShape);
+          edgeID = myShapeID;
+        }
+
+       double p1 = GetNodeU(E,n1);
+       double p2 = GetNodeU(E,n2);
+
+       double f,l;
+       Handle(Geom_Curve) C = BRep_Tool::Curve(E, f, l);
+       if(!C.IsNull()) {
+
+         Standard_Boolean isPeriodic = C->IsPeriodic();
+         double u;
+         if(isPeriodic) {
+           Standard_Real Period = C->Period();
+           Standard_Real p = p2+ShapeAnalysis::AdjustByPeriod(p2,p1,Period);
+           Standard_Real pmid = (p1+p)/2.;
+           u = pmid+ShapeAnalysis::AdjustToPeriod(pmid,C->FirstParameter(),C->LastParameter());
+         }
+         else
+           u = (p1+p2)/2.;
+
+          gp_Pnt P = C->Value( u );
+          n12 = meshDS->AddNode(P.X(), P.Y(), P.Z());
+          meshDS->SetNodeOnEdge(n12, edgeID, u);
+          myNLinkNodeMap.insert(NLinkNodeMap::value_type(link,n12));
+          return n12;
+       }
+      }
+    }
+    // 3d variant
+    double x = ( n1->X() + n2->X() )/2.;
+    double y = ( n1->Y() + n2->Y() )/2.;
+    double z = ( n1->Z() + n2->Z() )/2.;
+    n12 = meshDS->AddNode(x,y,z);
+    if(edgeID>-1)
+        meshDS->SetNodeOnEdge(n12, edgeID);
+    else if(faceID>-1)
+        meshDS->SetNodeOnFace(n12, faceID);
+    else
+      meshDS->SetNodeInVolume(n12, myShapeID);
+    myNLinkNodeMap.insert(NLinkNodeMap::value_type(link,n12));
+    return n12;
+  }
+}
+
+//=======================================================================
+//function : AddQuadraticEdge
+//purpose  : 
+//=======================================================================
+/**
+ * Special function for creation quadratic edge
+ */
+SMDS_QuadraticEdge* SMESH_MesherHelper::AddQuadraticEdge(const SMDS_MeshNode* n1,
+                                                         const SMDS_MeshNode* n2,
+                                                         const int id,
+                                                        const bool force3d)
+{
+  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+  
+  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+  
+  myCreateQuadratic = true;
+
+  if(id)
+    return  (SMDS_QuadraticEdge*)(meshDS->AddEdgeWithID(n1, n2, n12, id));
+  else
+    return  (SMDS_QuadraticEdge*)(meshDS->AddEdge(n1, n2, n12));
+}
+
+//=======================================================================
+//function : AddFace
+//purpose  : 
+//=======================================================================
+/*!
+ * Special function for creation quadratic triangle
+ */
+SMDS_MeshFace* SMESH_MesherHelper::AddFace(const SMDS_MeshNode* n1,
+                                           const SMDS_MeshNode* n2,
+                                           const SMDS_MeshNode* n3,
+                                           const int id,
+                                          const bool force3d)
+{
+  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+  if(!myCreateQuadratic) {
+    if(id)
+      return  meshDS->AddFaceWithID(n1, n2, n3, id);
+    else
+      return  meshDS->AddFace(n1, n2, n3);
+  }
+
+  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+  const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,force3d);
+
+  if(id)
+    return  meshDS->AddFaceWithID(n1, n2, n3, n12, n23, n31, id);
+  else
+    return  meshDS->AddFace(n1, n2, n3, n12, n23, n31);
+}
+
+
+//=======================================================================
+//function : AddFace
+//purpose  : 
+//=======================================================================
+/*!
+ * Special function for creation quadratic quadrangle
+ */
+SMDS_MeshFace* SMESH_MesherHelper::AddFace(const SMDS_MeshNode* n1,
+                                           const SMDS_MeshNode* n2,
+                                           const SMDS_MeshNode* n3,
+                                           const SMDS_MeshNode* n4,
+                                           const int id,
+                                          const bool force3d)
+{
+  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+  if(!myCreateQuadratic) {
+    if(id)
+      return  meshDS->AddFaceWithID(n1, n2, n3, n4, id);
+    else
+      return  meshDS->AddFace(n1, n2, n3, n4);
+  }
+
+  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+  const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,force3d);
+  const SMDS_MeshNode* n41 = GetMediumNode(n4,n1,force3d);
+
+  if(id)
+    return  meshDS->AddFaceWithID(n1, n2, n3, n4, n12, n23, n34, n41, id);
+  else
+    return  meshDS->AddFace(n1, n2, n3, n4, n12, n23, n34, n41);
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+/*!
+ * Special function for creation quadratic volume
+ */
+SMDS_MeshVolume* SMESH_MesherHelper::AddVolume(const SMDS_MeshNode* n1,
+                                               const SMDS_MeshNode* n2,
+                                               const SMDS_MeshNode* n3,
+                                               const SMDS_MeshNode* n4,
+                                               const SMDS_MeshNode* n5,
+                                               const SMDS_MeshNode* n6,
+                                               const int id,
+                                              const bool force3d)
+{
+  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+  if(!myCreateQuadratic) {
+    if(id)
+      return meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6, id);
+    else
+      return meshDS->AddVolume(n1, n2, n3, n4, n5, n6);
+  }
+
+  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+  const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,force3d);
+
+  const SMDS_MeshNode* n45 = GetMediumNode(n4,n5,force3d);
+  const SMDS_MeshNode* n56 = GetMediumNode(n5,n6,force3d);
+  const SMDS_MeshNode* n64 = GetMediumNode(n6,n4,force3d);
+
+  const SMDS_MeshNode* n14 = GetMediumNode(n1,n4,force3d);
+  const SMDS_MeshNode* n25 = GetMediumNode(n2,n5,force3d);
+  const SMDS_MeshNode* n36 = GetMediumNode(n3,n6,force3d);
+
+  if(id)
+    return meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6, 
+                                   n12, n23, n31, n45, n56, n64, n14, n25, n36, id);
+  else
+    return meshDS->AddVolume(n1, n2, n3, n4, n5, n6,
+                             n12, n23, n31, n45, n56, n64, n14, n25, n36);
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+/*!
+ * Special function for creation quadratic volume
+ */
+SMDS_MeshVolume* SMESH_MesherHelper::AddVolume(const SMDS_MeshNode* n1,
+                                               const SMDS_MeshNode* n2,
+                                               const SMDS_MeshNode* n3,
+                                               const SMDS_MeshNode* n4,
+                                               const int id, 
+                                              const bool force3d)
+{
+  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+  if(!myCreateQuadratic) {
+    if(id)
+      return meshDS->AddVolumeWithID(n1, n2, n3, n4, id);
+    else
+      return meshDS->AddVolume(n1, n2, n3, n4);
+  }
+
+  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+  const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,force3d);
+
+  const SMDS_MeshNode* n14 = GetMediumNode(n1,n4,force3d);
+  const SMDS_MeshNode* n24 = GetMediumNode(n2,n4,force3d);
+  const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,force3d);
+
+  if(id)
+    return meshDS->AddVolumeWithID(n1, n2, n3, n4, n12, n23, n31, n14, n24, n34, id);
+  else
+    return meshDS->AddVolume(n1, n2, n3, n4, n12, n23, n31, n14, n24, n34);
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+/*!
+ * Special function for creation quadratic volume
+ */
+SMDS_MeshVolume* SMESH_MesherHelper::AddVolume(const SMDS_MeshNode* n1,
+                                               const SMDS_MeshNode* n2,
+                                               const SMDS_MeshNode* n3,
+                                               const SMDS_MeshNode* n4,
+                                               const SMDS_MeshNode* n5,
+                                               const SMDS_MeshNode* n6,
+                                               const SMDS_MeshNode* n7,
+                                               const SMDS_MeshNode* n8,
+                                               const int id,
+                                              const bool force3d)
+{
+  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+  if(!myCreateQuadratic) {
+    if(id)
+      return meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6, n7, n8, id);
+    else
+      return meshDS->AddVolume(n1, n2, n3, n4, n5, n6, n7, n8);
+  }
+
+  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+  const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,force3d);
+  const SMDS_MeshNode* n41 = GetMediumNode(n4,n1,force3d);
+
+  const SMDS_MeshNode* n56 = GetMediumNode(n5,n6,force3d);
+  const SMDS_MeshNode* n67 = GetMediumNode(n6,n7,force3d);
+  const SMDS_MeshNode* n78 = GetMediumNode(n7,n8,force3d);
+  const SMDS_MeshNode* n85 = GetMediumNode(n8,n5,force3d);
+
+  const SMDS_MeshNode* n15 = GetMediumNode(n1,n5,force3d);
+  const SMDS_MeshNode* n26 = GetMediumNode(n2,n6,force3d);
+  const SMDS_MeshNode* n37 = GetMediumNode(n3,n7,force3d);
+  const SMDS_MeshNode* n48 = GetMediumNode(n4,n8,force3d);
+
+  if(id)
+    return meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6, n7, n8,
+                                   n12, n23, n34, n41, n56, n67,
+                                   n78, n85, n15, n26, n37, n48, id);
+  else
+    return meshDS->AddVolume(n1, n2, n3, n4, n5, n6, n7, n8,
+                             n12, n23, n34, n41, n56, n67,
+                             n78, n85, n15, n26, n37, n48);
+}
+
+
diff --git a/src/SMESH/SMESH_MesherHelper.hxx b/src/SMESH/SMESH_MesherHelper.hxx
new file mode 100644 (file)
index 0000000..4ae2101
--- /dev/null
@@ -0,0 +1,265 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+// File:      SMESH_MesherHelper.hxx
+// Created:   15.02.06 14:48:09
+// Author:    Sergey KUUL
+// Copyright: Open CASCADE 2006
+
+
+#ifndef SMESH_MesherHelper_HeaderFile
+#define SMESH_MesherHelper_HeaderFile
+
+#include <SMESH_Mesh.hxx>
+#include <TopoDS_Shape.hxx>
+#include <SMDS_MeshNode.hxx>
+#include <TopoDS_Face.hxx>
+#include <gp_Pnt2d.hxx>
+#include <SMDS_QuadraticEdge.hxx>
+
+#include <map>
+
+typedef pair<const SMDS_MeshNode*, const SMDS_MeshNode*> NLink;
+typedef map<NLink, const SMDS_MeshNode*> NLinkNodeMap;
+typedef map<NLink, const SMDS_MeshNode*>::iterator ItNLinkNode;
+
+/*!
+ * \brief It helps meshers to add elements
+ *
+ * It allow meshers not to care about creation of medium nodes
+ * when filling a quadratic mesh. Helper does it itself.
+ * It defines degree of elements to create when IsQuadraticSubMesh()
+ * is called.
+ */
+
+class SMESH_MesherHelper
+{
+ public:
+  // ---------- PUBLIC METHODS ----------
+
+  /// Empty constructor
+  SMESH_MesherHelper(SMESH_Mesh& theMesh)
+    { myMesh=(void *)&theMesh; myCreateQuadratic = false; myShapeID=-1;}
+
+  SMESH_Mesh* GetMesh() const
+    { return (SMESH_Mesh*)myMesh; }
+    
+  /// Copy constructor
+  //Standard_EXPORT SMESH_MesherHelper (const SMESH_MesherHelper& theOther);
+
+  /// Destructor
+  //Standard_EXPORT virtual ~SMESH_MesherHelper ();
+
+  /**
+   * Check submesh for given shape
+   * Check if all elements on this shape
+   * are quadratic, if yes => set true to myCreateQuadratic 
+   * (default value is false). Also fill myNLinkNodeMap
+   * Returns myCreateQuadratic
+   */
+  bool IsQuadraticSubMesh(const TopoDS_Shape& theShape);
+
+  /*!
+   * \brief Returns true if given node is medium
+    * \param n - node to check
+    * \param typeToCheck - type of elements containing the node to ask about node status
+    * \retval bool - check result
+   */
+  static bool IsMedium(const SMDS_MeshNode*      node,
+                       const SMDSAbs_ElementType typeToCheck = SMDSAbs_All);
+
+  /**
+   * Auxilary function for filling myNLinkNodeMap
+   */
+  void AddNLinkNode(const SMDS_MeshNode* n1,
+                    const SMDS_MeshNode* n2,
+                    const SMDS_MeshNode* n12);
+
+  /**
+   * Auxilary function for filling myNLinkNodeMap
+   */
+  void AddNLinkNodeMap(const NLinkNodeMap& aMap)
+    { myNLinkNodeMap.insert(aMap.begin(), aMap.end()); }
+
+  /**
+   * Returns myNLinkNodeMap
+   */
+  const NLinkNodeMap& GetNLinkNodeMap() { return myNLinkNodeMap; }
+
+  /*!
+   * \brief Return node UV on face
+    * \param F - the face
+    * \param n - the node
+    * \param inFaceNode - a node of element being created located inside a face
+    * \retval gp_XY - resulting UV
+   * 
+   * Auxilary function called form GetMediumNode()
+   */
+  gp_XY GetNodeUV(const TopoDS_Face&   F,
+                  const SMDS_MeshNode* n,
+                  const SMDS_MeshNode* inFaceNode=0);
+
+  /*!
+   * \brief Check if inFaceNode argument is necessary for call GetNodeUV(F,..)
+    * \param F - the face
+    * \retval bool - return true if the face is periodic
+    *
+    * if F is Null, answer about subshape set through IsQuadraticSubMesh() or
+    * SetSubShape()
+   */
+  bool GetNodeUVneedInFaceNode(const TopoDS_Face& F = TopoDS_Face()) const;
+
+  /*!
+   * \brief Return  U on edge
+    * \param F - the edge
+    * \param n - the node
+    * \retval double - resulting U
+   * 
+   * Auxilary function called from GetMediumNode()
+   */
+  double GetNodeU(const TopoDS_Edge&  E,
+                  const SMDS_MeshNode* n);
+
+
+  /**
+   * Special function for search or creation medium node
+   */
+  const SMDS_MeshNode* GetMediumNode(const SMDS_MeshNode* n1,
+                                     const SMDS_MeshNode* n2,
+                                     const bool force3d);
+
+  /**
+   * Special function for creation quadratic edge
+   */
+  SMDS_QuadraticEdge* AddQuadraticEdge(const SMDS_MeshNode* n1,
+                                       const SMDS_MeshNode* n2,
+                                       const int id = 0, 
+                                      const bool force3d = true);
+
+  /**
+   * Special function for creation quadratic triangle
+   */
+  SMDS_MeshFace* AddFace(const SMDS_MeshNode* n1,
+                         const SMDS_MeshNode* n2,
+                         const SMDS_MeshNode* n3,
+                         const int id=0, 
+                        const bool force3d = false);
+
+  /**
+   * Special function for creation quadratic quadrangle
+   */
+  SMDS_MeshFace* AddFace(const SMDS_MeshNode* n1,
+                         const SMDS_MeshNode* n2,
+                         const SMDS_MeshNode* n3,
+                         const SMDS_MeshNode* n4,
+                         const int id = 0,
+                        const bool force3d = false);
+
+  /**
+   * Special function for creation quadratic tetraahedron
+   */
+  SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
+                             const SMDS_MeshNode* n2,
+                             const SMDS_MeshNode* n3,
+                             const SMDS_MeshNode* n4,
+                             const int id = 0,
+                            const bool force3d = true);
+
+  /**
+   * Special function for creation quadratic pentahedron
+   */
+  SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
+                             const SMDS_MeshNode* n2,
+                             const SMDS_MeshNode* n3,
+                             const SMDS_MeshNode* n4,
+                             const SMDS_MeshNode* n5,
+                             const SMDS_MeshNode* n6,
+                             const int id = 0, 
+                            const bool force3d = true);
+
+  /**
+   * Special function for creation quadratic hexahedron
+   */
+  SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
+                             const SMDS_MeshNode* n2,
+                             const SMDS_MeshNode* n3,
+                             const SMDS_MeshNode* n4,
+                             const SMDS_MeshNode* n5,
+                             const SMDS_MeshNode* n6,
+                             const SMDS_MeshNode* n7,
+                             const SMDS_MeshNode* n8,
+                             const int id = 0, 
+                            bool force3d = true);
+
+  
+  /*!
+   * \brief Set order of elements to create
+    * \param theBuildQuadratic - to build quadratic or not
+   * 
+   * To be used for quadratic elements creation without preceding
+   * IsQuadraticSubMesh() or AddQuadraticEdge() call
+   */
+  void SetKeyIsQuadratic(const bool theBuildQuadratic)
+  { myCreateQuadratic = theBuildQuadratic; }
+
+  /*!
+   * \brief Set shape to make elements on
+    * \param subShape, subShapeID - shape or its ID (==SMESHDS_Mesh::ShapeToIndex(shape))
+   */
+  void SetSubShape(const int           subShapeID);
+  void SetSubShape(const TopoDS_Shape& subShape);
+
+  /*!
+   * \brief Return shape or its ID, on which created elements are added
+    * \retval TopoDS_Shape, int - shape or its ID
+   */
+  int          GetSubShapeID() { return myShapeID; }
+  TopoDS_Shape GetSubShape()   { return myShape; }
+
+ protected:
+
+  /*!
+   * \brief Select UV on either of 2 pcurves of a seam edge, closest to the given UV
+    * \param uv1 - UV on the seam
+    * \param uv2 - UV within a face
+    * \retval gp_Pnt2d - selected UV
+   */
+  gp_Pnt2d GetUVOnSeam( const gp_Pnt2d& uv1, const gp_Pnt2d& uv2 ) const;
+
+ private:
+
+  void* myMesh;
+
+  int myShapeID;
+
+  // Key for creation quadratic faces
+  bool myCreateQuadratic;
+
+  // special map for using during creation quadratic faces
+  NLinkNodeMap myNLinkNodeMap;
+
+  std::set< int > mySeamShapeIds;
+  double          myPar1, myPar2; // bounds of a closed periodic surface
+  int             myParIndex;     // bounds' index (1-U, 2-V)
+  TopoDS_Shape    myShape;
+
+};
+
+
+#endif
diff --git a/src/SMESHClient/Makefile.in b/src/SMESHClient/Makefile.in
new file mode 100644 (file)
index 0000000..d367f0d
--- /dev/null
@@ -0,0 +1,103 @@
+#  GEOM GEOMClient : tool to transfer BREP files from GEOM server to GEOM client
+#
+#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+# 
+#  This library is free software; you can redistribute it and/or 
+#  modify it under the terms of the GNU Lesser General Public 
+#  License as published by the Free Software Foundation; either 
+#  version 2.1 of the License. 
+# 
+#  This library is distributed in the hope that it will be useful, 
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+#  Lesser General Public License for more details. 
+# 
+#  You should have received a copy of the GNU Lesser General Public 
+#  License along with this library; if not, write to the Free Software 
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+# 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+#
+#
+#  File   : Makefile.in
+#  Author : Pavel TELKOV (OCC)
+#  Module : SHESM
+
+top_srcdir=@top_srcdir@
+top_builddir=../..
+srcdir=@srcdir@
+VPATH=.:@srcdir@:@top_srcdir@/idl
+
+
+@COMMENCE@
+
+# header files 
+EXPORT_HEADERS = \
+       SMESH_Client.hxx
+
+# Libraries targets
+
+LIB = libSMESHClient.la
+LIB_SRC = SMESH_Client.cxx
+
+LIB_CLIENT_IDL = SALOME_Comm.idl \
+       SALOME_Component.idl \
+       SALOMEDS.idl \
+       SALOMEDS_Attributes.idl \
+       SALOME_Exception.idl \
+       SALOME_GenericObj.idl \
+       SMESH_Mesh.idl \
+       SMESH_Gen.idl \
+       SMESH_Group.idl \
+       SMESH_Hypothesis.idl \
+       SMESH_Pattern.idl \
+       SMESH_Filter.idl \
+       GEOM_Gen.idl \
+       MED.idl
+
+# Executables targets
+BIN = SMESHClientBin
+BIN_SRC = 
+BIN_CLIENT_IDL = 
+BIN_SERVER_IDL =
+
+# additionnal information to compil and link file
+CPPFLAGS += $(OCC_INCLUDES) $(KERNEL_CXXFLAGS) $(BOOST_CPPFLAGS)
+CXXFLAGS += $(OCC_CXXFLAGS) $(KERNEL_CXXFLAGS)
+LDFLAGS  += $(OCC_KERNEL_LIBS) \
+       $(KERNEL_LDFLAGS) \
+       $(GEOM_LDFLAGS) \
+       $(MED_LDFLAGS) \
+       -lSMDS \
+       -lSMESHimpl \
+       -lSMESHDS \
+       -lSMESHControls \
+       -lNMTTools \
+       -lNMTDS \
+       -lmed_V2_1 \
+       -lMEDWrapper \
+       -lMEDWrapperBase \
+       -lMEDWrapper_V2_1 \
+       -lMEDWrapper_V2_2 \
+       -lSalomeResourcesManager \
+       -lSalomeLifeCycleCORBA \
+       -lSalomeNotification \
+       -lSalomeContainer \
+       -lRegistry \
+       -lSalomeNS \
+       -lSALOMELocalTrace \
+       -lSALOMEBasics \
+       -lOpUtil \
+       -lTKShHealing \
+       -lMeshDriverDAT \
+       -lMeshDriverSTL \
+       -lMeshDriverMED \
+       -lMeshDriverUNV \
+       -lMeshDriver
+
+LDFLAGSFORBIN += $(LDFLAGS)
+
+@CONCLUDE@
+
diff --git a/src/SMESHClient/SMESHClientBin.cxx b/src/SMESHClient/SMESHClientBin.cxx
new file mode 100644 (file)
index 0000000..998d107
--- /dev/null
@@ -0,0 +1,30 @@
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//  File   : 
+//  Author : 
+//  Module : 
+//  $Header: 
+
+#include "SMESH_Client.hxx"
+
+int main( int, char** )
+{
+  return 0;
+}
diff --git a/src/SMESHClient/SMESH_Client.cxx b/src/SMESHClient/SMESH_Client.cxx
new file mode 100644 (file)
index 0000000..bd52bc0
--- /dev/null
@@ -0,0 +1,797 @@
+//  SMESH SMESHClient : tool to update client mesh structure by mesh from server
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : SMESH_Client.cxx
+//  Author : Pavel TELKOV
+//  Module : SMESH
+
+#include "SMESH_Client.hxx"
+#include "SMESH_Mesh.hxx"
+
+#include "SALOME_NamingService.hxx"
+#include "SALOME_LifeCycleCORBA.hxx"
+
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SALOME_Component)
+#include CORBA_SERVER_HEADER(SALOME_Exception)
+
+#include "OpUtil.hxx"
+#include "utilities.h"
+
+#ifdef WNT
+#include <process.h>
+#else
+#include <unistd.h>
+#endif
+
+#include <stdexcept>
+
+#ifndef EXCEPTION
+#define EXCEPTION(TYPE, MSG) {\
+  std::ostringstream aStream;\
+  aStream<<__FILE__<<"["<<__LINE__<<"]::"<<MSG;\
+  throw TYPE(aStream.str());\
+}
+#endif
+
+#ifdef _DEBUG_
+static int MYDEBUG = 0;
+#else
+static int MYDEBUG = 0;
+#endif
+
+namespace
+{
+
+  //=======================================================================
+  //function : FindNode
+  //=======================================================================
+  inline const SMDS_MeshNode* FindNode(const SMDS_Mesh* theMesh, int theId){
+    if(const SMDS_MeshNode* anElem = theMesh->FindNode(theId)) return anElem;
+    EXCEPTION(runtime_error,"SMDS_Mesh::FindNode - cannot find a SMDS_MeshNode for ID = "<<theId);
+  }
+
+
+  //=======================================================================
+  //function : FindElement
+  //=======================================================================
+  inline const SMDS_MeshElement* FindElement(const SMDS_Mesh* theMesh, int theId){
+    if(const SMDS_MeshElement* anElem = theMesh->FindElement(theId)) return anElem;
+    EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot find a SMDS_MeshElement for ID = "<<theId);
+  }
+
+
+  //=======================================================================
+  //function : AddNodesWithID
+  //=======================================================================
+  inline void AddNodesWithID(SMDS_Mesh* theMesh, 
+                            SMESH::log_array_var& theSeq,
+                            CORBA::Long theId)
+  {
+    const SMESH::double_array& aCoords = theSeq[theId].coords;
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(3*aNbElems != aCoords.length())
+      EXCEPTION(runtime_error,"AddNodesWithID - 3*aNbElems != aCoords.length()");
+    for(CORBA::Long aCoordId = 0; anElemId < aNbElems; anElemId++, aCoordId+=3){
+      SMDS_MeshElement* anElem = theMesh->AddNodeWithID(aCoords[aCoordId],
+                                                       aCoords[aCoordId+1],
+                                                       aCoords[aCoordId+2],
+                                                       anIndexes[anElemId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddNodeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddEdgesWithID
+  //=======================================================================
+  inline void AddEdgesWithID(SMDS_Mesh* theMesh, 
+                            SMESH::log_array_var& theSeq,
+                            CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(3*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddEdgeWithID - 3*aNbElems != aCoords.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=3){
+      SMDS_MeshElement* anElem = theMesh->AddEdgeWithID(anIndexes[anIndexId+1],
+                                                       anIndexes[anIndexId+2],
+                                                       anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddEdgeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddTriasWithID
+  //=======================================================================
+  inline void AddTriasWithID(SMDS_Mesh* theMesh, 
+                            SMESH::log_array_var& theSeq,
+                            CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(4*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddTriasWithID - 4*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=4){
+      SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
+                                                       anIndexes[anIndexId+2],
+                                                       anIndexes[anIndexId+3],
+                                                       anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddFaceWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddQuadsWithID
+  //=======================================================================
+  inline void AddQuadsWithID(SMDS_Mesh* theMesh, 
+                            SMESH::log_array_var theSeq,
+                            CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(5*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadsWithID - 4*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=5){
+      SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
+                                                       anIndexes[anIndexId+2],
+                                                       anIndexes[anIndexId+3],
+                                                       anIndexes[anIndexId+4],
+                                                       anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddFaceWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddPolygonsWithID
+  //=======================================================================
+  inline void AddPolygonsWithID(SMDS_Mesh* theMesh, 
+                                SMESH::log_array_var& theSeq,
+                                CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anIndexId = 0, aNbElems = theSeq[theId].number;
+
+    for (CORBA::Long anElemId = 0; anElemId < aNbElems; anElemId++) {
+      int aFaceId = anIndexes[anIndexId++];
+
+      int aNbNodes = anIndexes[anIndexId++];
+      std::vector<int> nodes_ids (aNbNodes);
+      for (int i = 0; i < aNbNodes; i++) {
+        nodes_ids[i] = anIndexes[anIndexId++];
+      }
+
+      SMDS_MeshElement* anElem = theMesh->AddPolygonalFaceWithID(nodes_ids, aFaceId);
+      if (!anElem)
+       EXCEPTION(runtime_error, "SMDS_Mesh::FindElement - cannot AddPolygonalFaceWithID for ID = "
+                  << anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddTetrasWithID
+  //=======================================================================
+  inline void AddTetrasWithID(SMDS_Mesh* theMesh, 
+                             SMESH::log_array_var& theSeq,
+                             CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(5*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddTetrasWithID - 5*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=5){
+      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+                                                         anIndexes[anIndexId+2],
+                                                         anIndexes[anIndexId+3],
+                                                         anIndexes[anIndexId+4],
+                                                         anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddPiramidsWithID
+  //=======================================================================
+  inline void AddPiramidsWithID(SMDS_Mesh* theMesh, 
+                               SMESH::log_array_var& theSeq,
+                               CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(6*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddPiramidsWithID - 6*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=6){
+      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+                                                         anIndexes[anIndexId+2],
+                                                         anIndexes[anIndexId+3],
+                                                         anIndexes[anIndexId+4],
+                                                         anIndexes[anIndexId+5],
+                                                         anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddPrismsWithID
+  //=======================================================================
+  inline void AddPrismsWithID(SMDS_Mesh* theMesh, 
+                             SMESH::log_array_var& theSeq,
+                             CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(7*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddPrismsWithID - 7*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=7){
+      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+                                                         anIndexes[anIndexId+2],
+                                                         anIndexes[anIndexId+3],
+                                                         anIndexes[anIndexId+4],
+                                                         anIndexes[anIndexId+5],
+                                                         anIndexes[anIndexId+6],
+                                                         anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddHexasWithID
+  //=======================================================================
+  inline void AddHexasWithID(SMDS_Mesh* theMesh, 
+                            SMESH::log_array_var& theSeq,
+                            CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(9*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddHexasWithID - 9*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=9){
+      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+                                                         anIndexes[anIndexId+2],
+                                                         anIndexes[anIndexId+3],
+                                                         anIndexes[anIndexId+4],
+                                                         anIndexes[anIndexId+5],
+                                                         anIndexes[anIndexId+6],
+                                                         anIndexes[anIndexId+7],
+                                                         anIndexes[anIndexId+8],
+                                                         anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddPolyhedronsWithID
+  //=======================================================================
+  inline void AddPolyhedronsWithID (SMDS_Mesh* theMesh, 
+                                    SMESH::log_array_var& theSeq,
+                                    CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anIndexId = 0, aNbElems = theSeq[theId].number;
+
+    for (CORBA::Long anElemId = 0; anElemId < aNbElems; anElemId++) {
+      int aFaceId = anIndexes[anIndexId++];
+
+      int aNbNodes = anIndexes[anIndexId++];
+      std::vector<int> nodes_ids (aNbNodes);
+      for (int i = 0; i < aNbNodes; i++) {
+        nodes_ids[i] = anIndexes[anIndexId++];
+      }
+
+      int aNbFaces = anIndexes[anIndexId++];
+      std::vector<int> quantities (aNbFaces);
+      for (int i = 0; i < aNbFaces; i++) {
+        quantities[i] = anIndexes[anIndexId++];
+      }
+
+      SMDS_MeshElement* anElem =
+        theMesh->AddPolyhedralVolumeWithID(nodes_ids, quantities, aFaceId);
+      if (!anElem)
+       EXCEPTION(runtime_error, "SMDS_Mesh::FindElement - cannot AddPolyhedralVolumeWithID for ID = "
+                  << anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddQuadEdgesWithID
+  //=======================================================================
+  inline void AddQuadEdgesWithID(SMDS_Mesh* theMesh, 
+                                 SMESH::log_array_var& theSeq,
+                                 CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(4*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadEdgeWithID - 4*aNbElems != aCoords.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=4){
+      SMDS_MeshElement* anElem = theMesh->AddEdgeWithID(anIndexes[anIndexId+1],
+                                                       anIndexes[anIndexId+2],
+                                                       anIndexes[anIndexId+3],
+                                                       anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddEdgeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddQuadTriasWithID
+  //=======================================================================
+  inline void AddQuadTriasWithID(SMDS_Mesh* theMesh, 
+                                 SMESH::log_array_var& theSeq,
+                                 CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(7*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadTriasWithID - 7*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=7){
+      SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
+                                                       anIndexes[anIndexId+2],
+                                                       anIndexes[anIndexId+3],
+                                                       anIndexes[anIndexId+4],
+                                                       anIndexes[anIndexId+5],
+                                                       anIndexes[anIndexId+6],
+                                                       anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddFaceWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddQuadQuadsWithID
+  //=======================================================================
+  inline void AddQuadQuadsWithID(SMDS_Mesh* theMesh, 
+                                 SMESH::log_array_var theSeq,
+                                 CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(9*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadQuadsWithID - 9*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=9){
+      SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
+                                                       anIndexes[anIndexId+2],
+                                                       anIndexes[anIndexId+3],
+                                                       anIndexes[anIndexId+4],
+                                                       anIndexes[anIndexId+5],
+                                                       anIndexes[anIndexId+6],
+                                                       anIndexes[anIndexId+7],
+                                                       anIndexes[anIndexId+8],
+                                                       anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddFaceWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddQuadTetrasWithID
+  //=======================================================================
+  inline void AddQuadTetrasWithID(SMDS_Mesh* theMesh, 
+                                  SMESH::log_array_var& theSeq,
+                                  CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(11*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadTetrasWithID - 11*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=11){
+      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+                                                         anIndexes[anIndexId+2],
+                                                         anIndexes[anIndexId+3],
+                                                         anIndexes[anIndexId+4],
+                                                         anIndexes[anIndexId+5],
+                                                         anIndexes[anIndexId+6],
+                                                         anIndexes[anIndexId+7],
+                                                         anIndexes[anIndexId+8],
+                                                         anIndexes[anIndexId+9],
+                                                         anIndexes[anIndexId+10],
+                                                         anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddQuadPiramidsWithID
+  //=======================================================================
+  inline void AddQuadPiramidsWithID(SMDS_Mesh* theMesh, 
+                                    SMESH::log_array_var& theSeq,
+                                    CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(14*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadPiramidsWithID - 14*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=14){
+      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+                                                         anIndexes[anIndexId+2],
+                                                         anIndexes[anIndexId+3],
+                                                         anIndexes[anIndexId+4],
+                                                         anIndexes[anIndexId+5],
+                                                         anIndexes[anIndexId+6],
+                                                         anIndexes[anIndexId+7],
+                                                         anIndexes[anIndexId+8],
+                                                         anIndexes[anIndexId+9],
+                                                         anIndexes[anIndexId+10],
+                                                         anIndexes[anIndexId+11],
+                                                         anIndexes[anIndexId+12],
+                                                         anIndexes[anIndexId+13],
+                                                         anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddQuadPentasWithID
+  //=======================================================================
+  inline void AddQuadPentasWithID(SMDS_Mesh* theMesh, 
+                                  SMESH::log_array_var& theSeq,
+                                  CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(16*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadPentasWithID - 16*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=16){
+      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+                                                         anIndexes[anIndexId+2],
+                                                         anIndexes[anIndexId+3],
+                                                         anIndexes[anIndexId+4],
+                                                         anIndexes[anIndexId+5],
+                                                         anIndexes[anIndexId+6],
+                                                         anIndexes[anIndexId+7],
+                                                         anIndexes[anIndexId+8],
+                                                         anIndexes[anIndexId+9],
+                                                         anIndexes[anIndexId+10],
+                                                         anIndexes[anIndexId+11],
+                                                         anIndexes[anIndexId+12],
+                                                         anIndexes[anIndexId+13],
+                                                         anIndexes[anIndexId+14],
+                                                         anIndexes[anIndexId+15],
+                                                         anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddQuadHexasWithID
+  //=======================================================================
+  inline void AddQuadHexasWithID(SMDS_Mesh* theMesh, 
+                                 SMESH::log_array_var& theSeq,
+                                 CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(21*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadHexasWithID - 21*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=21){
+      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+                                                         anIndexes[anIndexId+2],
+                                                         anIndexes[anIndexId+3],
+                                                         anIndexes[anIndexId+4],
+                                                         anIndexes[anIndexId+5],
+                                                         anIndexes[anIndexId+6],
+                                                         anIndexes[anIndexId+7],
+                                                         anIndexes[anIndexId+8],
+                                                         anIndexes[anIndexId+9],
+                                                         anIndexes[anIndexId+10],
+                                                         anIndexes[anIndexId+11],
+                                                         anIndexes[anIndexId+12],
+                                                         anIndexes[anIndexId+13],
+                                                         anIndexes[anIndexId+14],
+                                                         anIndexes[anIndexId+15],
+                                                         anIndexes[anIndexId+16],
+                                                         anIndexes[anIndexId+17],
+                                                         anIndexes[anIndexId+18],
+                                                         anIndexes[anIndexId+19],
+                                                         anIndexes[anIndexId+20],
+                                                         anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : ChangePolyhedronNodes
+  //=======================================================================
+  inline void ChangePolyhedronNodes (SMDS_Mesh* theMesh, 
+                                     SMESH::log_array_var& theSeq,
+                                     CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long iind = 0, aNbElems = theSeq[theId].number;
+
+    for (CORBA::Long anElemId = 0; anElemId < aNbElems; anElemId++)
+    {
+      // find element
+      const SMDS_MeshElement* elem = FindElement(theMesh, anIndexes[iind++]);
+      // nb nodes
+      int nbNodes = anIndexes[iind++];
+      // nodes
+      std::vector<const SMDS_MeshNode*> aNodes (nbNodes);
+      for (int iNode = 0; iNode < nbNodes; iNode++) {
+        aNodes[iNode] = FindNode(theMesh, anIndexes[iind++]);
+      }
+      // nb faces
+      int nbFaces = anIndexes[iind++];
+      // quantities
+      std::vector<int> quantities (nbFaces);
+      for (int iFace = 0; iFace < nbFaces; iFace++) {
+        quantities[iFace] = anIndexes[iind++];
+      }
+      // change
+      theMesh->ChangePolyhedronNodes(elem, aNodes, quantities);
+    }
+  }
+}
+
+//=======================================================================
+SMESH::SMESH_Gen_var 
+SMESH_Client::GetSMESHGen(CORBA::ORB_ptr theORB,
+                         CORBA::Boolean& theIsEmbeddedMode)
+{
+  static SMESH::SMESH_Gen_var aMeshGen;
+
+  if(CORBA::is_nil(aMeshGen.in())){    
+#ifdef WNT
+    long aClientPID = (long)_getpid();
+#else
+    long aClientPID =  (long)getpid();
+#endif
+
+    SALOME_NamingService aNamingService(theORB);
+    SALOME_LifeCycleCORBA aLifeCycleCORBA(&aNamingService);
+    Engines::Component_var aComponent = aLifeCycleCORBA.FindOrLoad_Component("FactoryServer","SMESH");
+    aMeshGen = SMESH::SMESH_Gen::_narrow(aComponent);
+    
+    std::string aClientHostName = GetHostname();
+    Engines::Container_var aServerContainer = aMeshGen->GetContainerRef();
+    CORBA::String_var aServerHostName = aServerContainer->getHostName();
+    CORBA::Long aServerPID = aServerContainer->getPID();
+    aMeshGen->SetEmbeddedMode((aClientPID == aServerPID) && (aClientHostName == aServerHostName.in()));
+  }
+  theIsEmbeddedMode = aMeshGen->IsEmbeddedMode();
+
+  return aMeshGen;
+}
+
+
+//=======================================================================
+// function : Create()
+// purpose  : 
+//=======================================================================
+SMESH_Client::SMESH_Client(CORBA::ORB_ptr theORB,
+                          SMESH::SMESH_Mesh_ptr theMesh):
+  myMeshServer(SMESH::SMESH_Mesh::_duplicate(theMesh)),
+  mySMESHDSMesh(NULL),
+  mySMDSMesh(NULL)
+{
+  myMeshServer->Register();
+
+  CORBA::Boolean anIsEmbeddedMode;
+  GetSMESHGen(theORB,anIsEmbeddedMode);
+  if(anIsEmbeddedMode){
+    if ( MYDEBUG )
+      MESSAGE("Info: The same process, update mesh by pointer ");
+    // just set client mesh pointer to server mesh pointer
+    SMESH_Mesh* aMesh = reinterpret_cast<SMESH_Mesh*>(theMesh->GetMeshPtr());
+    if(aMesh->GetMeshDS()->IsEmbeddedMode()){
+      mySMESHDSMesh = aMesh->GetMeshDS();
+      mySMDSMesh = mySMESHDSMesh;
+    }
+  }
+  if(!mySMDSMesh)
+    mySMDSMesh = new SMDS_Mesh();
+}
+
+
+//=================================================================================
+// function : ~SMESH_Client
+// purpose  : Destructor
+//=================================================================================
+SMESH_Client::~SMESH_Client()
+{
+  myMeshServer->Destroy();
+  if(!mySMESHDSMesh)
+    delete mySMDSMesh;
+}
+
+
+//=================================================================================
+SMDS_Mesh* 
+SMESH_Client::GetMesh() const 
+{
+  return mySMDSMesh; 
+}
+
+
+//=================================================================================
+SMDS_Mesh*
+SMESH_Client::operator->() const
+{
+  return GetMesh();
+}
+
+
+//=================================================================================
+SMESH::SMESH_Mesh_ptr
+SMESH_Client::GetMeshServer()
+{
+  return myMeshServer.in(); 
+}
+
+
+//=================================================================================
+// function : SMESH_Client
+// purpose  : Update mesh
+//=================================================================================
+bool
+SMESH_Client::Update(bool theIsClear)
+{
+  bool anIsModified = true;
+  if(mySMESHDSMesh){
+    SMESHDS_Script* aScript = mySMESHDSMesh->GetScript();
+    anIsModified = aScript->IsModified();
+    aScript->SetModified(false);
+  }else{
+    SMESH::log_array_var aSeq = myMeshServer->GetLog( theIsClear );
+    CORBA::Long aLength = aSeq->length();
+    anIsModified = aLength > 0;
+    if( MYDEBUG )
+      MESSAGE( "Update: length of the script is "<<aLength );
+  
+    if(!anIsModified)
+      return false;
+
+    // update client mesh structure by logged changes commands
+    try
+    {
+      for ( CORBA::Long anId = 0; anId < aLength; anId++)
+      {
+       const SMESH::double_array& aCoords = aSeq[anId].coords;
+       const SMESH::long_array& anIndexes = aSeq[anId].indexes;
+       CORBA::Long anElemId = 0, aNbElems = aSeq[anId].number;
+       CORBA::Long aCommand = aSeq[anId].commandType;
+
+       switch(aCommand)
+        {
+       case SMESH::ADD_NODE       : AddNodesWithID      ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_EDGE       : AddEdgesWithID      ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_TRIANGLE   : AddTriasWithID      ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_QUADRANGLE : AddQuadsWithID      ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_POLYGON    : AddPolygonsWithID   ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_TETRAHEDRON: AddTetrasWithID     ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_PYRAMID    : AddPiramidsWithID   ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_PRISM      : AddPrismsWithID     ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_HEXAHEDRON : AddHexasWithID      ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_POLYHEDRON : AddPolyhedronsWithID( mySMDSMesh, aSeq, anId ); break;
+
+        case SMESH::ADD_QUADEDGE       : AddQuadEdgesWithID   ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_QUADTRIANGLE   : AddQuadTriasWithID   ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_QUADQUADRANGLE : AddQuadQuadsWithID   ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_QUADTETRAHEDRON: AddQuadTetrasWithID  ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_QUADPYRAMID    : AddQuadPiramidsWithID( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_QUADPENTAHEDRON: AddQuadPentasWithID  ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_QUADHEXAHEDRON : AddQuadHexasWithID   ( mySMDSMesh, aSeq, anId ); break;
+
+        case SMESH::REMOVE_NODE:
+          for( ; anElemId < aNbElems; anElemId++ )
+            mySMDSMesh->RemoveNode( FindNode( mySMDSMesh, anIndexes[anElemId] ) );
+        break;
+        
+        case SMESH::REMOVE_ELEMENT:
+          for( ; anElemId < aNbElems; anElemId++ )
+            mySMDSMesh->RemoveElement( FindElement( mySMDSMesh, anIndexes[anElemId] ) );
+        break;
+
+        case SMESH::MOVE_NODE:
+          for(CORBA::Long aCoordId=0; anElemId < aNbElems; anElemId++, aCoordId+=3)
+          {
+            SMDS_MeshNode* node =
+              const_cast<SMDS_MeshNode*>( FindNode( mySMDSMesh, anIndexes[anElemId] ));
+            node->setXYZ( aCoords[aCoordId], aCoords[aCoordId+1], aCoords[aCoordId+2] );
+          }
+        break;
+
+        case SMESH::CHANGE_ELEMENT_NODES:
+          for ( CORBA::Long i = 0; anElemId < aNbElems; anElemId++ )
+          {
+            // find element
+            const SMDS_MeshElement* elem = FindElement( mySMDSMesh, anIndexes[i++] );
+            // nb nodes
+            int nbNodes = anIndexes[i++];
+            // nodes
+            //ASSERT( nbNodes < 9 );
+            const SMDS_MeshNode* aNodes[ nbNodes ];
+            for ( int iNode = 0; iNode < nbNodes; iNode++ )
+              aNodes[ iNode ] = FindNode( mySMDSMesh, anIndexes[i++] );
+            // change
+            mySMDSMesh->ChangeElementNodes( elem, aNodes, nbNodes );
+          }
+          break;
+
+        case SMESH::CHANGE_POLYHEDRON_NODES:
+          ChangePolyhedronNodes(mySMDSMesh, aSeq, anId);
+          break;
+        case SMESH::RENUMBER:
+          for(CORBA::Long i=0; anElemId < aNbElems; anElemId++, i+=3)
+          {
+            mySMDSMesh->Renumber( anIndexes[i], anIndexes[i+1], anIndexes[i+2] );
+          }
+          break;
+          
+        default:;
+       }
+      }
+    }
+    catch ( SALOME::SALOME_Exception& exc )
+    {
+      INFOS("Following exception was cought:\n\t"<<exc.details.text);
+    }
+    catch( const std::exception& exc)
+    {
+      INFOS("Following exception was cought:\n\t"<<exc.what());
+    }
+    catch(...)
+    {
+      INFOS("Unknown exception was cought !!!");
+    }
+
+    if ( MYDEBUG && mySMDSMesh )
+    {
+      MESSAGE("Update - mySMDSMesh->NbNodes() = "<<mySMDSMesh->NbNodes());
+      MESSAGE("Update - mySMDSMesh->NbEdges() = "<<mySMDSMesh->NbEdges());
+      MESSAGE("Update - mySMDSMesh->NbFaces() = "<<mySMDSMesh->NbFaces());
+      MESSAGE("Update - mySMDSMesh->NbVolumes() = "<<mySMDSMesh->NbVolumes());
+    }
+  } // end of update mesh by log script
+  
+  return anIsModified;
+}
diff --git a/src/SMESHClient/SMESH_Client.hxx b/src/SMESHClient/SMESH_Client.hxx
new file mode 100644 (file)
index 0000000..cc17cf8
--- /dev/null
@@ -0,0 +1,79 @@
+//  SMESH SMESHClient : tool to update client mesh structure by mesh from server
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : SMESH_Client.hxx
+//  Author : Pavel TELKOV
+//  Module : SMESH
+
+#ifndef _SMESH_Client_HeaderFile
+#define _SMESH_Client_HeaderFile
+
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SMESH_Gen)
+#include CORBA_SERVER_HEADER(SMESH_Mesh)
+
+#if defined WNT && defined WIN32 && defined SALOME_WNT_EXPORTS
+#define SMESHCLIENT_WNT_EXPORT __declspec( dllexport )
+#else
+#define SMESHCLIENT_WNT_EXPORT
+#endif
+
+class SMESHDS_Mesh;
+class SMDS_Mesh;
+
+
+//=====================================================================
+// SMESH_Client : class definition
+//=====================================================================
+class SMESHCLIENT_WNT_EXPORT SMESH_Client  
+{
+public:
+  static 
+  SMESH::SMESH_Gen_var
+  GetSMESHGen(CORBA::ORB_ptr theORB,
+             CORBA::Boolean& theIsEmbeddedMode);
+
+  SMESH_Client(CORBA::ORB_ptr theORB,
+              SMESH::SMESH_Mesh_ptr theMesh);
+  ~SMESH_Client();
+
+  bool 
+  Update(bool theIsClear);
+
+  SMDS_Mesh* 
+  GetMesh() const;
+
+  SMDS_Mesh*
+  operator->() const;
+
+  SMESH::SMESH_Mesh_ptr
+  GetMeshServer();
+
+protected: 
+  SMESH::SMESH_Mesh_var myMeshServer;
+  SMESHDS_Mesh* mySMESHDSMesh;
+  SMDS_Mesh* mySMDSMesh;
+};
+
+
+#endif
diff --git a/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx b/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx
new file mode 100644 (file)
index 0000000..da47fe1
--- /dev/null
@@ -0,0 +1,1101 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+#include "SMESHGUI_AddQuadraticElementDlg.h"
+
+#include "SMESHGUI.h"
+#include "SMESHGUI_Utils.h"
+#include "SMESHGUI_VTKUtils.h"
+#include "SMESHGUI_MeshUtils.h"
+#include "SMESHGUI_IdValidator.h"
+#include "SMESH_ActorUtils.h"
+
+#include "SMDS_Mesh.hxx"
+#include "SMESH_Actor.h"
+
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+#include "LightApp_Application.h"
+
+#include "SVTK_Selection.h"
+#include "SVTK_Selector.h"
+#include "SALOME_ListIO.hxx"
+#include "SALOME_ListIteratorOfListIO.hxx"
+
+#include "SalomeApp_Study.h"
+#include "SalomeApp_Application.h"
+
+#include "SVTK_ViewModel.h"
+#include "SVTK_ViewWindow.h"
+
+#include "utilities.h"
+
+// OCCT Includes
+#include <TColStd_MapOfInteger.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+
+// VTK Includes
+#include <vtkCell.h>
+#include <vtkIdList.h>
+#include <vtkIntArray.h>
+#include <vtkCellArray.h>
+#include <vtkUnsignedCharArray.h>
+#include <vtkUnstructuredGrid.h>
+#include <vtkDataSetMapper.h>
+#include <vtkProperty.h>
+
+#include <vtkQuadraticEdge.h>
+#include <vtkQuadraticTriangle.h>
+#include <vtkQuadraticQuad.h>
+#include <vtkQuadraticHexahedron.h>
+#include <vtkQuadraticTetra.h>
+
+// QT Includes
+#include <qbuttongroup.h>
+#include <qgroupbox.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qpixmap.h>
+#include <qcheckbox.h>
+
+// STL includes
+#include <list>
+
+using namespace std;
+
+namespace SMESH {
+
+  void ReverseConnectivity( vector<int> & ids, int type )
+  {
+    // for reverse connectivity of other types keeping the first id, see
+    // void SMESH_VisualObjDef::buildElemPrs() in SMESH_Object.cxx:900
+    const int* conn = 0;
+   
+    switch ( type ) {
+    case QUAD_TETRAHEDRON: {
+      static int aConn[] = {0,2,1,3,6,5,4,7,9,8};
+      conn = aConn;
+      break;
+    }
+    case QUAD_PYRAMID: {
+      static int aConn[] = {0,3,2,1,4,8,7,6,5,9,12,11,10};
+      conn = aConn;
+      break;
+    }
+    case QUAD_PENTAHEDRON: {
+      static int aConn[] = {0,2,1,3,5,4,8,7,6,11,10,9,12,14,13};
+      conn = aConn;
+      break;
+    }
+    case QUAD_HEXAHEDRON: {
+      static int aConn[] = {0,3,2,1,4,7,6,5,11,10,9,8,15,14,13,12,16,19,18,17};
+      conn = aConn;
+      break;
+    }
+    case QUAD_EDGE: {
+      static int aConn[] = {1,0,2};
+      conn = aConn;
+      break;
+    }
+    case QUAD_TRIANGLE: {
+      static int aConn[] = {0,2,1,5,4,3};
+      conn = aConn;
+      break;
+    }
+    case QUAD_QUADRANGLE: {
+      static int aConn[] = {0,3,2,1,7,6,5,4};
+      conn = aConn;
+      break;
+    }
+    default:;
+    }
+    if ( !conn ) {
+      reverse( ids.begin(), ids.end() );
+    }
+    else {
+      vector<int> aRevIds( ids.size() );
+      for ( int i = 0; i < ids.size(); i++)
+        aRevIds[ i ] = ids[ conn[ i ]];
+      ids = aRevIds;
+    }
+  }
+
+  class TElementSimulation {
+    SalomeApp_Application* myApplication;
+    SUIT_ViewWindow* myViewWindow;
+    SVTK_ViewWindow* myVTKViewWindow;
+
+    SALOME_Actor* myPreviewActor;
+    vtkDataSetMapper* myMapper;
+    vtkUnstructuredGrid* myGrid;
+    //vtkProperty* myBackProp, *myProp;
+
+    vtkFloatingPointType myRGB[3], myBackRGB[3];
+
+  public:
+    TElementSimulation (SalomeApp_Application* theApplication)
+    {
+      myApplication = theApplication;
+      SUIT_ViewManager* mgr = theApplication->activeViewManager();
+      if (!mgr) return;
+      myViewWindow = mgr->getActiveView();
+      myVTKViewWindow = GetVtkViewWindow(myViewWindow);
+
+      myGrid = vtkUnstructuredGrid::New();
+
+      // Create and display actor
+      myMapper = vtkDataSetMapper::New();
+      myMapper->SetInput(myGrid);
+
+      myPreviewActor = SALOME_Actor::New();
+      myPreviewActor->PickableOff();
+      myPreviewActor->VisibilityOff();
+      myPreviewActor->SetMapper(myMapper);
+
+      vtkProperty* myProp = vtkProperty::New();
+      GetColor( "SMESH", "fill_color", myRGB[0], myRGB[1], myRGB[2], QColor( 0, 170, 255 ) );
+      myProp->SetColor( myRGB[0], myRGB[1], myRGB[2] );
+      myPreviewActor->SetProperty( myProp );
+      myProp->Delete();
+
+      vtkProperty* myBackProp = vtkProperty::New();
+      GetColor( "SMESH", "backface_color", myBackRGB[0], myBackRGB[1], myBackRGB[2], QColor( 0, 0, 255 ) );
+      myBackProp->SetColor( myBackRGB[0], myBackRGB[1], myBackRGB[2] );
+      myPreviewActor->SetBackfaceProperty( myBackProp );
+      myBackProp->Delete();
+
+      myVTKViewWindow->AddActor(myPreviewActor);
+    }
+
+    typedef std::vector<vtkIdType> TVTKIds;
+    void SetPosition (SMESH_Actor* theActor,
+                      const int    theType,
+                      TVTKIds&     theIds,
+                     const int    theMode,
+                      const bool   theReverse)
+    {
+      vtkUnstructuredGrid *aGrid = theActor->GetUnstructuredGrid();
+      myGrid->SetPoints(aGrid->GetPoints());
+
+      //add points
+
+      vtkIdType aType = 0;
+
+      switch (theType) {
+      case QUAD_EDGE:
+        aType = VTK_QUADRATIC_EDGE;
+        break;
+      case QUAD_TRIANGLE:
+        aType = VTK_QUADRATIC_TRIANGLE; 
+        break;
+      case QUAD_QUADRANGLE:
+        aType = VTK_QUADRATIC_QUAD; 
+        break;
+      case QUAD_TETRAHEDRON:
+        aType = VTK_QUADRATIC_TETRA; 
+        break;
+      case QUAD_PYRAMID:
+        //aType = VTK_QUADRATIC_PYRAMID; // NOT SUPPORTED IN VTK4.2
+        aType = VTK_CONVEX_POINT_SET;
+        break;
+      case QUAD_PENTAHEDRON:
+        //aType = VTK_QUADRATIC_WEDGE; // NOT SUPPORTED IN VTK4.2
+        aType = VTK_CONVEX_POINT_SET;
+        break; 
+      case QUAD_HEXAHEDRON:
+        aType = VTK_QUADRATIC_HEXAHEDRON;
+        break;
+      }
+
+      // take care of orientation
+      if ( aType == VTK_CONVEX_POINT_SET ) {
+        if ( theReverse && theMode == VTK_SURFACE ) {
+          //myPreviewActor->GetProperty()->SetColor( myBackRGB[0], myBackRGB[1], myBackRGB[2] );
+        }
+      }
+      else {
+        // VTK cell connectivity opposites the MED one for volumic elements
+        if ( theIds.size() > 8 ? !theReverse : theReverse ) {
+          ReverseConnectivity( theIds, theType );
+        }
+      }
+            
+      myGrid->Reset();
+      vtkIdList *anIds = vtkIdList::New();
+      
+      for (int i = 0, iEnd = theIds.size(); i < iEnd; i++) {
+        anIds->InsertId(i,theIds[i]);
+        //std::cout << i<< ": " << theIds[i] << std::endl;
+      }
+      
+      myGrid->InsertNextCell(aType,anIds);
+      anIds->Delete();
+      
+      myGrid->Modified();
+
+      myPreviewActor->GetMapper()->Update();
+      myPreviewActor->SetRepresentation( theMode );
+      SetVisibility(true);
+
+      // restore normal orientation
+      if ( aType == VTK_CONVEX_POINT_SET ) {
+        if ( theReverse  && theMode == VTK_SURFACE ) {
+          //myPreviewActor->GetProperty()->SetColor( myRGB[0], myRGB[1], myRGB[2] );
+        }
+      }
+    }
+
+
+    void SetVisibility (bool theVisibility)
+    {
+      myPreviewActor->SetVisibility(theVisibility);
+      RepaintCurrentView();
+    }
+
+
+    ~TElementSimulation()
+    {
+      if (FindVtkViewWindow(myApplication->activeViewManager(), myViewWindow)) {
+       myVTKViewWindow->RemoveActor(myPreviewActor);
+      }
+      myPreviewActor->Delete();
+
+      myMapper->RemoveAllInputs();
+      myMapper->Delete();
+
+      myGrid->Delete();
+
+//       myProp->Delete();
+//       myBackProp->Delete();
+    }
+  };
+}
+
+
+// Define the sequences of ids
+static int FirstEdgeIds[] = {0};
+static int LastEdgeIds[] =  {1};
+
+static int FirstTriangleIds[] = {0,1,2};
+static int LastTriangleIds[] =  {1,2,0};
+
+static int FirstQuadrangleIds[] = {0,1,2,3};
+static int LastQuadrangleIds[] =  {1,2,3,0};
+
+static int FirstTetrahedronIds[] = {0,1,2,3,3,3};
+static int LastTetrahedronIds[] =  {1,2,0,0,1,2};
+
+static int FirstPyramidIds[] = {0,1,2,3,4,4,4,4};
+static int LastPyramidIds[] =  {1,2,3,0,0,1,2,3};
+
+static int FirstPentahedronIds[] = {0,1,2,3,4,5,0,1,2};
+static int LastPentahedronIds[] =  {1,2,0,4,5,3,3,4,5};
+
+static int FirstHexahedronIds[] = {0,1,2,3,4,5,6,7,0,1,2,3};
+static int LastHexahedronIds[] =  {1,2,3,0,5,6,7,4,4,5,6,7};
+
+
+
+//=================================================================================
+// function : SMESHGUI_AddQuadraticElementDlg()
+// purpose  : constructor
+//=================================================================================
+SMESHGUI_AddQuadraticElementDlg::SMESHGUI_AddQuadraticElementDlg( SMESHGUI* theModule,
+                                                                 const int theType,
+                                                                 const char* name,
+                                                                  bool modal, WFlags fl)
+     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
+                WStyle_Title | WStyle_SysMenu | Qt::WDestructiveClose),
+     mySMESHGUI( theModule ),
+     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) ),
+     myType( theType )
+{
+  SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>
+    (SUIT_Session::session()->activeApplication());
+  
+  mySimulation = new SMESH::TElementSimulation (anApp);
+  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
+
+  QString anElementName;
+
+  switch ( myType ) {
+  case QUAD_EDGE:
+    anElementName = QString("QUADRATIC_EDGE");
+    break;
+  case QUAD_TRIANGLE:
+    anElementName = QString("QUADRATIC_TRIANGLE");
+    break; 
+  case QUAD_QUADRANGLE:
+    anElementName = QString("QUADRATIC_QUADRANGLE");
+    break;
+  case QUAD_TETRAHEDRON:
+    anElementName = QString("QUADRATIC_TETRAHEDRON");
+    break;
+  case QUAD_PYRAMID:
+    anElementName = QString("QUADRATIC_PYRAMID");
+    break;
+  case QUAD_PENTAHEDRON:
+    anElementName = QString("QUADRATIC_PENTAHEDRON");
+    break;
+  case QUAD_HEXAHEDRON:
+    anElementName = QString("QUADRATIC_HEXAHEDRON");
+    break;
+  default:
+    myType = QUAD_EDGE;
+    anElementName = QString("QUADRATIC_EDGE");
+  }
+
+  QString iconName           = tr(QString("ICON_DLG_%1").arg(anElementName));
+  QString caption            = tr(QString("SMESH_ADD_%1_TITLE").arg(anElementName));
+  QString argumentsGrTitle   = tr(QString("SMESH_ADD_%1").arg(anElementName));
+  QString constructorGrTitle = tr(QString("SMESH_%1").arg(anElementName));
+  
+  QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", iconName));
+  QPixmap image1 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
+
+  if (!name)
+    setName("SMESHGUI_AddQuadraticElementDlg");
+  setCaption(caption);
+  
+  setSizeGripEnabled(TRUE);
+  QGridLayout* aDialogLayout = new QGridLayout(this);
+  aDialogLayout->setSpacing(6);
+  aDialogLayout->setMargin(11);
+
+  /***************************************************************/
+  GroupConstructors = new QButtonGroup(this, "GroupConstructors");
+  GroupConstructors->setTitle(constructorGrTitle);
+
+  GroupConstructors->setExclusive(TRUE);
+  GroupConstructors->setColumnLayout(0, Qt::Vertical);
+  GroupConstructors->layout()->setSpacing(0);
+  GroupConstructors->layout()->setMargin(0);
+  GroupConstructors->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed));
+  QGridLayout* aGroupConstructorsLayout = new QGridLayout(GroupConstructors->layout());
+  aGroupConstructorsLayout->setAlignment(Qt::AlignTop);
+  aGroupConstructorsLayout->setSpacing(6);
+  aGroupConstructorsLayout->setMargin(11);
+  myRadioButton1 = new QRadioButton(GroupConstructors, "myRadioButton1");
+  myRadioButton1->setText(tr("" ));
+  myRadioButton1->setPixmap(image0);
+  myRadioButton1->setChecked(TRUE);
+  myRadioButton1->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)1, (QSizePolicy::SizeType)0, myRadioButton1->sizePolicy().hasHeightForWidth()));
+  aGroupConstructorsLayout->addWidget(myRadioButton1, 0, 0);
+  aGroupConstructorsLayout->addItem( new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 1);
+  aDialogLayout->addWidget(GroupConstructors, 0, 0);
+
+  /***************************************************************/
+  GroupArguments = new QGroupBox(this, "GroupArguments");
+  GroupArguments->setTitle(argumentsGrTitle);
+  GroupArguments->setColumnLayout(0, Qt::Vertical);
+  GroupArguments->layout()->setSpacing(0);
+  GroupArguments->layout()->setMargin(0);
+  GroupArguments->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding));
+  QGridLayout* aGroupArgumentsLayout = new QGridLayout(GroupArguments->layout());
+  aGroupArgumentsLayout->setAlignment(Qt::AlignTop);
+  aGroupArgumentsLayout->setSpacing(6);
+  aGroupArgumentsLayout->setMargin(11);
+  QLabel* aCornerNodesLabel = new QLabel(GroupArguments, "aCornerNodesLabel");
+  aCornerNodesLabel->setText(tr("SMESH_CORNER_NODES" ));
+  aGroupArgumentsLayout->addWidget(aCornerNodesLabel, 0, 0);
+  mySelectButton = new QPushButton(GroupArguments, "mySelectButton");
+  mySelectButton->setPixmap(image1);
+  aGroupArgumentsLayout->addWidget(mySelectButton, 0, 1);
+  myCornerNodes = new QLineEdit(GroupArguments, "myCornerNodes");
+  aGroupArgumentsLayout->addWidget(myCornerNodes, 0, 2);
+
+  myTable = new QTable(GroupArguments);
+  aGroupArgumentsLayout->addMultiCellWidget(myTable, 1, 1, 0, 2);
+  myReverseCB = new QCheckBox(GroupArguments, "myReverseCB");
+  myReverseCB->setText(tr("SMESH_REVERSE" ));
+  aGroupArgumentsLayout->addWidget(myReverseCB, 2, 0);
+  aDialogLayout->addWidget(GroupArguments, 1, 0);
+
+  
+  /***************************************************************/
+  GroupButtons = new QGroupBox(this, "GroupButtons");
+  GroupButtons->setColumnLayout(0, Qt::Vertical);
+  GroupButtons->layout()->setSpacing(0);
+  GroupButtons->layout()->setMargin(0);
+  GroupButtons->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
+  QGridLayout* aGroupButtonsLayout = new QGridLayout(GroupButtons->layout());
+  aGroupButtonsLayout->setAlignment(Qt::AlignTop);
+  aGroupButtonsLayout->setSpacing(6);
+  aGroupButtonsLayout->setMargin(11);
+  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
+  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
+  buttonCancel->setAutoDefault(TRUE);
+  aGroupButtonsLayout->addWidget(buttonCancel, 0, 3);
+  buttonApply = new QPushButton(GroupButtons, "buttonApply");
+  buttonApply->setText(tr("SMESH_BUT_APPLY" ));
+  buttonApply->setAutoDefault(TRUE);
+  aGroupButtonsLayout->addWidget(buttonApply, 0, 1);
+  aGroupButtonsLayout->addItem( new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 2);
+  buttonOk = new QPushButton(GroupButtons, "buttonOk");
+  buttonOk->setText(tr("SMESH_BUT_OK" ));
+  buttonOk->setAutoDefault(TRUE);
+  buttonOk->setDefault(TRUE);
+  aGroupButtonsLayout->addWidget(buttonOk, 0, 0);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  aGroupButtonsLayout->addWidget(buttonHelp, 0, 4);
+
+  aDialogLayout->addWidget(GroupButtons, 2, 0);
+
+  Init(); /* Initialisations */
+}
+
+//=================================================================================
+// function : ~SMESHGUI_AddQuadraticElementDlg()
+// purpose  : Destroys the object and frees any allocated resources
+//=================================================================================
+SMESHGUI_AddQuadraticElementDlg::~SMESHGUI_AddQuadraticElementDlg()
+{
+  // no need to delete child widgets, Qt does it all for us
+  delete mySimulation;
+}
+
+//=================================================================================
+// function : Init()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::Init()
+{
+  GroupArguments->show();
+  myRadioButton1->setChecked(TRUE);
+  myIsEditCorners = true;
+  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
+  
+  myActor = 0;
+
+  int aNumRows;
+
+  switch (myType) {
+  case QUAD_EDGE:
+    aNumRows = 1;
+    myNbCorners = 2;
+    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_edges
+    break;
+  case QUAD_TRIANGLE:
+    aNumRows = 3;
+    myNbCorners = 3;
+    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_triangles
+    break;
+  case QUAD_QUADRANGLE:
+    aNumRows = 4;
+    myNbCorners = 4;
+    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_quadrangles
+    break;
+  case QUAD_TETRAHEDRON:
+    aNumRows = 6;
+    myNbCorners = 4;
+    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_tetrahedrons
+    break;
+  case QUAD_PYRAMID:
+    aNumRows = 8;
+    myNbCorners = 5;
+    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_pyramids
+    break;
+  case QUAD_PENTAHEDRON:
+    aNumRows = 9;
+    myNbCorners = 6;
+    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_pentahedrons
+    break; 
+  case QUAD_HEXAHEDRON:
+    aNumRows = 12;
+    myNbCorners = 8;
+    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_hexahedrons
+    break;
+  }
+    
+  myCornerNodes->setValidator(new SMESHGUI_IdValidator(this, "validator", myNbCorners));
+
+  /* initialize table */
+  myTable->setNumCols(3);
+  myTable->setNumRows(aNumRows);
+
+  QStringList aColLabels;
+  aColLabels.append(tr("SMESH_FIRST"));
+  aColLabels.append(tr("SMESH_MIDDLE"));
+  aColLabels.append(tr("SMESH_LAST"));
+  myTable->setColumnLabels(aColLabels);
+  
+  for ( int col = 0; col < myTable->numCols(); col++ )
+    myTable->setColumnWidth(col, 80);
+
+  myTable->setColumnReadOnly(0, true);
+  myTable->setColumnReadOnly(2, true);
+
+  myTable->setEnabled( false );
+  
+  for ( int row = 0; row < myTable->numRows(); row++ )
+    {
+      SMESHGUI_IdEditItem* anEditItem = new SMESHGUI_IdEditItem( myTable, QTableItem::OnTyping, "" );
+      anEditItem->setReplaceable(false);
+      myTable->setItem(row, 1, anEditItem);
+    }
+  
+  /* signals and slots connections */
+  connect(mySelectButton, SIGNAL(clicked()), SLOT(SetEditCorners()));
+  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(SelectionIntoArgument()));
+  connect(myTable,        SIGNAL(doubleClicked(int, int, int, const QPoint&)), SLOT(onCellDoubleClicked(int, int, int, const QPoint&)));
+  connect(myTable,        SIGNAL(valueChanged (int, int)), SLOT(onCellTextChange(int, int)));
+  connect(myCornerNodes,  SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
+  connect(myReverseCB,    SIGNAL(stateChanged(int)), SLOT(onReverse(int)));
+
+  connect(buttonOk, SIGNAL(clicked()),     SLOT(ClickOnOk()));
+  connect(buttonCancel, SIGNAL(clicked()), SLOT(ClickOnCancel()));
+  connect(buttonApply, SIGNAL(clicked()),  SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()),   SLOT(ClickOnHelp()));
+
+  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), SLOT(DeactivateActiveDialog()));
+  connect(mySMESHGUI, SIGNAL (SignalStudyFrameChanged()), SLOT(ClickOnCancel()));
+
+  this->show(); // displays Dialog
+
+  // set selection mode
+  SMESH::SetPointRepresentation(true);
+
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+    aViewWindow->SetSelectionMode( NodeSelection );
+
+  myBusy = false;
+
+  SetEditCorners();
+}
+
+//=================================================================================
+// function : ClickOnApply()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::ClickOnApply()
+{
+  if (IsValid() && !mySMESHGUI->isActiveStudyLocked()) {
+    myBusy = true;
+    
+    vector<int> anIds;
+
+    switch (myType) {
+    case QUAD_EDGE:
+      anIds.push_back(myTable->text(0, 0).toInt());
+      anIds.push_back(myTable->text(0, 2).toInt());
+      anIds.push_back(myTable->text(0, 1).toInt());
+      break;
+    case QUAD_TRIANGLE:
+    case QUAD_QUADRANGLE:
+    case QUAD_TETRAHEDRON:
+    case QUAD_PYRAMID:
+    case QUAD_PENTAHEDRON:
+    case QUAD_HEXAHEDRON:
+      for ( int row = 0; row < myNbCorners; row++ )
+       anIds.push_back(myTable->text(row, 0).toInt());
+      for ( int row = 0; row < myTable->numRows(); row++ )
+       anIds.push_back(myTable->text(row, 1).toInt());
+      break;
+    }
+    if ( myReverseCB->isChecked())
+      SMESH::ReverseConnectivity( anIds, myType );
+    
+    int aNumberOfIds =  anIds.size();
+    SMESH::long_array_var anArrayOfIdeces = new SMESH::long_array;
+    anArrayOfIdeces->length( aNumberOfIds );
+    
+    for (int i = 0; i < aNumberOfIds; i++)
+      anArrayOfIdeces[i] = anIds[ i ];
+
+    SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
+    switch (myType) {
+    case QUAD_EDGE:
+      aMeshEditor->AddEdge(anArrayOfIdeces.inout()); break;
+    case QUAD_TRIANGLE:
+    case QUAD_QUADRANGLE:
+      aMeshEditor->AddFace(anArrayOfIdeces.inout()); break;
+    case QUAD_TETRAHEDRON:
+    case QUAD_PYRAMID:
+    case QUAD_PENTAHEDRON: 
+    case QUAD_HEXAHEDRON:
+      aMeshEditor->AddVolume(anArrayOfIdeces.inout()); break;
+    }
+    
+    SALOME_ListIO aList; aList.Append( myActor->getIO() );
+    mySelector->ClearIndex();
+    mySelectionMgr->setSelectedObjects( aList, false );
+
+    SMESH::UpdateView();
+    mySimulation->SetVisibility(false);
+    
+    buttonOk->setEnabled(false);
+    buttonApply->setEnabled(false);
+
+    UpdateTable();
+    SetEditCorners();
+
+    myBusy = false;
+  }
+}
+
+//=================================================================================
+// function : ClickOnOk()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::ClickOnOk()
+{
+  ClickOnApply();
+  ClickOnCancel();
+  return;
+}
+
+//=================================================================================
+// function : ClickOnCancel()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::ClickOnCancel()
+{
+  mySelectionMgr->clearSelected();
+  mySimulation->SetVisibility(false);
+  SMESH::SetPointRepresentation(false);
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+    aViewWindow->SetSelectionMode( ActorSelection );
+  disconnect(mySelectionMgr, 0, this, 0);
+  mySMESHGUI->ResetState();
+  reject();
+  return;
+}
+
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
+//=================================================================================
+// function : onTextChange()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::onTextChange (const QString& theNewText)
+{
+  if (myBusy) return;
+  myBusy = true;
+  
+  buttonOk->setEnabled(false);
+  buttonApply->setEnabled(false);
+
+  mySimulation->SetVisibility(false);
+
+  // hilight entered nodes
+  SMDS_Mesh* aMesh = 0;
+  if (myActor)
+    aMesh = myActor->GetObject()->GetMesh();
+
+  if (aMesh) {
+    TColStd_MapOfInteger newIndices;
+    
+    QStringList aListId = QStringList::split(" ", theNewText, false);
+    bool allOk = true;
+    for (int i = 0; i < aListId.count(); i++) {
+      if( const SMDS_MeshNode * n = aMesh->FindNode( aListId[ i ].toInt() ) )
+       newIndices.Add( n->GetID() );
+      else
+       {
+         allOk = false;
+         break;
+       }
+    }
+    
+    mySelector->AddOrRemoveIndex( myActor->getIO(), newIndices, false );
+    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+      aViewWindow->highlight( myActor->getIO(), true, true );
+    
+    if ( sender() == myCornerNodes )
+      UpdateTable( allOk );
+  }
+  
+  if( IsValid() ) {
+    buttonOk->setEnabled(true);
+    buttonApply->setEnabled(true);
+  }
+
+  if ( sender() == myTable )
+    displaySimulation();
+  
+  myBusy = false;
+}
+
+//=================================================================================
+// function : SelectionIntoArgument()
+// purpose  : Called when selection has changed
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::SelectionIntoArgument()
+{
+  if (myBusy) return;
+  
+  if ( myIsEditCorners )
+    {
+      // clear
+      myActor = 0;
+      
+      myBusy = true;
+      myCornerNodes->setText("");
+      myBusy = false;
+      
+      if (!GroupButtons->isEnabled()) // inactive
+       return;
+      
+      buttonOk->setEnabled(false);
+      buttonApply->setEnabled(false);
+      
+      mySimulation->SetVisibility(false);
+      
+      // get selected mesh
+      SALOME_ListIO aList;
+      mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
+      
+      if (aList.Extent() != 1)
+       {
+         UpdateTable();
+         return;
+       }
+      
+      Handle(SALOME_InteractiveObject) anIO = aList.First();
+      myMesh = SMESH::GetMeshByIO(anIO);
+      if (myMesh->_is_nil())
+       return;
+      
+      myActor = SMESH::FindActorByEntry(anIO->getEntry());
+  
+    }
+  
+  if (!myActor)
+    return;
+  
+  // get selected nodes
+  QString aString = "";
+  int nbNodes = SMESH::GetNameOfSelectedNodes(mySelector,myActor->getIO(),aString);
+  
+  if ( myIsEditCorners )
+    {
+      myBusy = true;
+      myCornerNodes->setText(aString);
+      myBusy = false;
+      
+      UpdateTable();
+    }
+  else if ( myTable->isEnabled() && nbNodes == 1 )
+    {
+      myBusy = true;
+      int theRow = myTable->currentRow(), theCol = myTable->currentColumn();
+      if ( theCol == 1 )
+       myTable->setText(theRow, 1, aString);
+      myBusy = false;
+    }
+  
+  if ( IsValid() )
+    {
+      buttonOk->setEnabled( true );
+      buttonApply->setEnabled( true );
+    }
+
+  displaySimulation();
+}
+
+//=================================================================================
+// function : displaySimulation()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::displaySimulation()
+{
+  if (!myIsEditCorners) {
+    SMESH::TElementSimulation::TVTKIds anIds;
+    
+    // Collect ids from the dialog
+    int anID;
+    bool ok;
+    int aDisplayMode = VTK_SURFACE;
+
+    if ( myType == QUAD_EDGE )
+      {
+       anIds.push_back( myActor->GetObject()->GetNodeVTKId( myTable->text(0, 0).toInt() ) );
+       anIds.push_back( myActor->GetObject()->GetNodeVTKId( myTable->text(0, 2).toInt() ) );
+       anID = (myTable->text(0, 1)).toInt(&ok);
+       if (!ok) anID = (myTable->text(0, 0)).toInt();
+       anIds.push_back( myActor->GetObject()->GetNodeVTKId(anID) );
+       aDisplayMode = VTK_WIREFRAME;
+      }
+    else
+      {
+       for ( int row = 0; row < myNbCorners; row++ )
+         anIds.push_back( myActor->GetObject()->GetNodeVTKId( myTable->text(row, 0).toInt() ) );
+       
+       for ( int row = 0; row < myTable->numRows(); row++ )
+         {
+           anID = (myTable->text(row, 1)).toInt(&ok);
+           if (!ok) {
+             anID = (myTable->text(row, 0)).toInt();
+             aDisplayMode = VTK_WIREFRAME;
+           }
+           anIds.push_back( myActor->GetObject()->GetNodeVTKId(anID) );
+         }
+      }
+    
+    mySimulation->SetPosition(myActor,myType,anIds,aDisplayMode,myReverseCB->isChecked());
+    SMESH::UpdateView();
+  }
+}
+
+//=================================================================================
+// function : SetEditCorners()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::SetEditCorners()
+{
+  myCornerNodes->setFocus();
+  myIsEditCorners = true;
+  
+  SelectionIntoArgument();
+}
+
+//=================================================================================
+// function : DeactivateActiveDialog()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::DeactivateActiveDialog()
+{
+  if (GroupConstructors->isEnabled()) {
+    GroupConstructors->setEnabled(false);
+    GroupArguments->setEnabled(false);
+    GroupButtons->setEnabled(false);
+    mySimulation->SetVisibility(false);
+    mySMESHGUI->ResetState();
+    mySMESHGUI->SetActiveDialogBox(0);
+  }
+}
+
+//=================================================================================
+// function : ActivateThisDialog()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::ActivateThisDialog()
+{
+  /* Emit a signal to deactivate the active dialog */
+  mySMESHGUI->EmitSignalDeactivateDialog();
+
+  GroupConstructors->setEnabled(true);
+  GroupArguments->setEnabled(true);
+  GroupButtons->setEnabled(true);
+
+  SMESH::SetPointRepresentation(true);
+
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+    aViewWindow->SetSelectionMode( NodeSelection );
+  SelectionIntoArgument();
+}
+
+//=================================================================================
+// function : enterEvent()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::enterEvent (QEvent*)
+{
+  if (GroupConstructors->isEnabled())
+    return;
+  ActivateThisDialog();
+  return;
+}
+
+//=================================================================================
+// function : closeEvent()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::closeEvent (QCloseEvent*)
+{
+  /* same than click on cancel button */
+  ClickOnCancel();
+  return;
+}
+
+//=================================================================================
+// function : hideEvent()
+// purpose  : caused by ESC key
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::hideEvent (QHideEvent*)
+{
+  if (!isMinimized())
+    ClickOnCancel();
+}
+
+//=================================================================================
+// function : onReverse()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::onReverse (int state)
+{
+  if (!IsValid())
+    return;
+
+  if (state >= 0) {
+    mySimulation->SetVisibility(false);
+    displaySimulation();
+  }
+}
+
+
+//=================================================================================
+// function : IsValid()
+// purpose  :
+//=================================================================================
+bool SMESHGUI_AddQuadraticElementDlg::IsValid()
+{
+  SMDS_Mesh* aMesh = 0;
+  if (myActor)
+    aMesh = myActor->GetObject()->GetMesh();
+  if (!aMesh)
+    return false;
+
+  bool ok;
+  
+  for ( int row = 0; row < myTable->numRows(); row++ )
+    {
+      int anID =  (myTable->text(row, 1)).toInt(&ok);
+      if ( !ok )
+       return false;
+      
+      const SMDS_MeshNode * aNode = aMesh->FindNode(anID);
+      if ( !aNode )
+       return false;
+    }
+  
+  return true;
+}
+
+//=================================================================================
+// function : UpdateTable()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::UpdateTable( bool theConersValidity )
+{
+  QStringList aListCorners = QStringList::split(" ", myCornerNodes->text(), false);
+  
+  if ( aListCorners.count() == myNbCorners && theConersValidity )
+    {
+      myTable->setEnabled( true );
+      
+      // clear the Middle column 
+      for ( int row = 0; row < myTable->numRows(); row++ )
+       myTable->setText( row, 1, "");
+      
+      int* aFirstColIds;
+      int* aLastColIds;
+
+      switch (myType) {
+      case QUAD_EDGE:
+       aFirstColIds = FirstEdgeIds;
+       aLastColIds  = LastEdgeIds;
+       break;
+      case QUAD_TRIANGLE:
+       aFirstColIds = FirstTriangleIds;
+       aLastColIds  = LastTriangleIds;
+       break;
+      case QUAD_QUADRANGLE:
+       aFirstColIds = FirstQuadrangleIds;
+       aLastColIds  = LastQuadrangleIds;
+       break;
+      case QUAD_TETRAHEDRON:
+       aFirstColIds = FirstTetrahedronIds;
+       aLastColIds  = LastTetrahedronIds;
+       break;
+      case QUAD_PYRAMID:
+       aFirstColIds = FirstPyramidIds;
+       aLastColIds  = LastPyramidIds;
+       break;
+      case QUAD_PENTAHEDRON:
+       aFirstColIds = FirstPentahedronIds;
+       aLastColIds  = LastPentahedronIds;
+       break; 
+      case QUAD_HEXAHEDRON:
+       aFirstColIds = FirstHexahedronIds;
+       aLastColIds  = LastHexahedronIds;
+       break;
+      }
+      
+      // fill the First and the Last columns
+      for (int i = 0, iEnd = myTable->numRows(); i < iEnd; i++)
+       myTable->setText( i, 0, aListCorners[ aFirstColIds[i] ] );
+      
+      for (int i = 0, iEnd = myTable->numRows(); i < iEnd; i++)
+       myTable->setText( i, 2, aListCorners[ aLastColIds[i] ] );
+    }
+  else
+    {
+      // clear table
+      for ( int row = 0; row < myTable->numRows(); row++ )
+        for ( int col = 0; col < myTable->numCols(); col++ )
+         myTable->setText(row, col, "");
+      
+      myTable->setEnabled( false );
+    }
+}
+
+
+//=================================================================================
+// function : onTableActivate()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::onCellDoubleClicked( int theRow, int theCol, int theButton, const QPoint& theMousePos )
+{
+  if ( theButton == 1 && theCol == 1 )
+    myIsEditCorners = false;
+  
+  displaySimulation();
+  return;
+}
+
+
+//=================================================================================
+// function : onCellTextChange()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::onCellTextChange(int theRow, int theCol)
+{
+  onTextChange( myTable->text(theRow, theCol) );
+}
+
+
+QWidget* SMESHGUI_IdEditItem::createEditor() const
+{
+  QLineEdit *aLineEdit = new QLineEdit(text(), table()->viewport());
+  aLineEdit->setValidator( new SMESHGUI_IdValidator(table()->viewport(), "validator", 1) );
+  return aLineEdit;
+}
diff --git a/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.h b/src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.h
new file mode 100644 (file)
index 0000000..ea63a83
--- /dev/null
@@ -0,0 +1,132 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+#ifndef DIALOGBOX_ADD_QUADRATIC_ELEMENT_H
+#define DIALOGBOX_ADD_QUADRATIC_ELEMENT_H
+
+#include "LightApp_SelectionMgr.h"
+
+// QT Includes
+#include <qdialog.h>
+#include <qtable.h>
+
+class QButtonGroup;
+class QGroupBox;
+class QLineEdit;
+class QPushButton;
+class QRadioButton;
+class QCheckBox;
+class QTable;
+class SMESHGUI;
+class SMESH_Actor;
+class SVTK_Selector;
+
+namespace SMESH{
+  struct TElementSimulation;
+}
+
+// IDL Headers
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SMESH_Mesh)
+
+enum { QUAD_EDGE, QUAD_TRIANGLE, QUAD_QUADRANGLE, QUAD_TETRAHEDRON, QUAD_PYRAMID, QUAD_PENTAHEDRON, QUAD_HEXAHEDRON };
+
+//=================================================================================
+// class    : SMESHGUI_AddQuadraticElementDlg
+// purpose  :
+//=================================================================================
+class SMESHGUI_AddQuadraticElementDlg : public QDialog
+{ 
+    Q_OBJECT
+
+public:
+    SMESHGUI_AddQuadraticElementDlg( SMESHGUI* theModule,
+                                    const int theType,
+                                    const char* = 0, 
+                                    bool modal = FALSE, WFlags fl = 0 );
+    ~SMESHGUI_AddQuadraticElementDlg();
+
+private:
+    void Init ();
+    void closeEvent (QCloseEvent*);
+    void hideEvent (QHideEvent*);                 /* ESC key */
+    void enterEvent (QEvent*);                    /* mouse enter the QWidget */
+    void displaySimulation();
+    void UpdateTable( bool theConersValidity = true );
+    bool IsValid();
+
+    SMESHGUI*                   mySMESHGUI;       /* Current SMESHGUI object */
+    LightApp_SelectionMgr*      mySelectionMgr;   /* User shape selection */
+    int                         myNbCorners;      /* The required number of corners */
+    bool                        myBusy;
+    SVTK_Selector*              mySelector;
+
+    SMESH::SMESH_Mesh_var       myMesh;
+    SMESH_Actor*                myActor;
+    SMESH::TElementSimulation*  mySimulation;
+
+    int                         myType;
+    bool                        myIsEditCorners;
+    
+    QButtonGroup* GroupConstructors;
+    QRadioButton* myRadioButton1;
+
+    QGroupBox*    GroupArguments;
+    QLineEdit*    myCornerNodes;
+    QPushButton*  mySelectButton;
+    QTable*       myTable;
+    QCheckBox*    myReverseCB;
+
+    QGroupBox*    GroupButtons;
+    QPushButton*  buttonOk;
+    QPushButton*  buttonCancel;
+    QPushButton*  buttonApply;
+    QPushButton * buttonHelp;
+
+    QString       myHelpFileName;
+
+private slots:
+  
+    void onTextChange(const QString&);
+    void onCellTextChange(int, int);
+    void onReverse( int );
+    void onCellDoubleClicked(int, int, int, const QPoint&);
+  
+    void ClickOnOk();
+    void ClickOnCancel();
+    void ClickOnApply();
+    void ClickOnHelp();
+    void SetEditCorners() ;
+    void SelectionIntoArgument() ;
+    void DeactivateActiveDialog() ;
+    void ActivateThisDialog() ;
+};
+
+class SMESHGUI_IdEditItem: public QTableItem
+{
+public:
+    SMESHGUI_IdEditItem(QTable* table, EditType et, const QString& text ):
+      QTableItem(table, et, text) {};
+    ~SMESHGUI_IdEditItem() {};
+
+    QWidget* createEditor() const;
+};
+
+
+#endif // DIALOGBOX_ADD_QUADRATIC_ELEMENT_H
diff --git a/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.cxx b/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.cxx
new file mode 100644 (file)
index 0000000..6c2cf5d
--- /dev/null
@@ -0,0 +1,130 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+/**
+*  SMESH SMESHGUI
+*
+*  Copyright (C) 2005  CEA/DEN, EDF R&D
+*
+*
+*
+*  File   : SMESHGUI_ConvToQuadDlg.cxx
+*  Module : SMESH
+*/
+
+#include <SMESHGUI_ConvToQuadDlg.h>
+#include <SUIT_Session.h>
+
+#include <qgroupbox.h>
+#include <qlayout.h>
+#include <qcheckbox.h>
+#include <qradiobutton.h>
+#include <qbuttongroup.h>
+
+SMESHGUI_ConvToQuadDlg::SMESHGUI_ConvToQuadDlg()
+: SMESHGUI_Dialog( 0, false, true )
+{
+
+  setCaption( tr( "CAPTION" ) );
+
+  // Create top controls  
+  QGroupBox* aGrp = new QGroupBox( 3, Qt::Horizontal, mainFrame() );
+  aGrp->setFrameStyle( QFrame::NoFrame );
+  aGrp->setInsideMargin( 0 );
+
+  // mesh
+  createObject( tr( "MESH" ), aGrp, 0 );
+
+  //Create check box
+   myMedNdsOnGeom = new QCheckBox( tr( "MEDIUMNDS" ), mainFrame() );
+
+  //Create RadioButtons
+  myBG = new QButtonGroup( 2, Qt::Vertical, "", mainFrame() );
+  myBG->setExclusive( true );
+  
+  myRB1 = new QRadioButton( myBG );  
+  myRB1->setText( tr( "RADIOBTN_1" ) );
+  myRB1->setChecked( true );
+
+  myRB2 = new QRadioButton( myBG );  
+  myRB2->setText( tr( "RADIOBTN_2" ) );
+
+  // Fill layout
+  QVBoxLayout* aLay = new QVBoxLayout( mainFrame(), 5, 5 );
+  aLay->addWidget( aGrp );
+  aLay->addWidget( myMedNdsOnGeom );
+  aLay->addWidget( myBG );
+  
+  connect(myBG, SIGNAL( clicked( int ) ), this, SIGNAL( onClicked( int ) ) );
+}
+
+SMESHGUI_ConvToQuadDlg::~SMESHGUI_ConvToQuadDlg()
+{
+}
+
+bool SMESHGUI_ConvToQuadDlg::IsMediumNdsOnGeom() const
+{
+  return !myMedNdsOnGeom->isChecked();
+}
+
+void SMESHGUI_ConvToQuadDlg::SetMediumNdsOnGeom(const bool theCheck)
+{
+  myMedNdsOnGeom->setChecked(theCheck);
+}
+
+bool SMESHGUI_ConvToQuadDlg::IsEnabledCheck() const
+{
+  return myMedNdsOnGeom->isEnabled();
+}
+
+void SMESHGUI_ConvToQuadDlg::SetEnabledCheck( const bool theCheck )
+{
+  myMedNdsOnGeom->setEnabled( theCheck );
+}
+
+int SMESHGUI_ConvToQuadDlg::CurrentRB( )
+{
+  return myBG->selectedId();
+}
+
+void SMESHGUI_ConvToQuadDlg::SetEnabledControls( const bool theCheck )
+{
+  myBG->setEnabled( theCheck );
+  myMedNdsOnGeom->setEnabled( theCheck );
+  setButtonEnabled( theCheck, QtxDialog::OK | QtxDialog::Apply );
+}
+
+void SMESHGUI_ConvToQuadDlg::SetEnabledRB( const int idx, const bool theCheck ) 
+{
+  if(idx)
+  {
+    myRB2->setEnabled( theCheck );
+    myRB1->setEnabled( !theCheck );
+    myRB1->setChecked( true );
+  }
+  else
+  {
+    myRB1->setEnabled( theCheck );
+    myRB2->setEnabled( !theCheck );
+    myRB2->setChecked( true );
+  }
+  emit onClicked( myBG->selectedId() );
+}
+
+
diff --git a/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.h b/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.h
new file mode 100644 (file)
index 0000000..68d024b
--- /dev/null
@@ -0,0 +1,81 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+/**
+*  SMESH SMESHGUI
+*
+*  Copyright (C) 2005  CEA/DEN, EDF R&D
+*
+*
+*
+*  File   : SMESHGUI_ConvToQuadDlg.h
+*  Module : SMESH
+*/
+
+
+#ifndef SMESHGUI_ConvToQuadDlg_H
+#define SMESHGUI_ConvToQuadDlg_H
+
+#include "SMESHGUI_Dialog.h"
+/*#include <qframe.h>
+#include <qstringlist.h>
+#include <qmap.h>*/
+
+//idl headers
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SMESH_Mesh)
+
+class QCheckBox;
+class QRadioButton;
+class QButtonGroup;
+
+class SMESHGUI_ConvToQuadDlg : public SMESHGUI_Dialog
+{ 
+  Q_OBJECT       
+        
+public:
+           SMESHGUI_ConvToQuadDlg();
+  virtual ~SMESHGUI_ConvToQuadDlg();
+
+  bool     IsMediumNdsOnGeom() const;
+  void     SetMediumNdsOnGeom(const bool theCheck);
+  bool     IsEnabledCheck() const;
+  void     SetEnabledCheck( const bool theCheck );
+  void     SetEnabledGroup( const bool theCheck );
+  void     SetEnabledControls( const bool theCheck );
+  void     SetEnabledRB( const int idx, const bool theCheck );
+  int      CurrentRB();//returns the ID of the selected toggle button
+
+signals:
+  void     onClicked( int );
+
+private:
+
+  QCheckBox* myMedNdsOnGeom;
+  QButtonGroup* myBG;
+  QRadioButton* myRB1;
+  QRadioButton* myRB2;
+
+};
+
+#endif
+
+
+
+
diff --git a/src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx b/src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx
new file mode 100644 (file)
index 0000000..a5095e6
--- /dev/null
@@ -0,0 +1,286 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+/**
+*  SMESH SMESHGUI
+*
+*  Copyright (C) 2005  CEA/DEN, EDF R&D
+*
+*
+*
+*  File   : SMESHGUI_ConvToQuadOp.h
+*  Module : SMESHGUI
+*/
+
+#include "SMESHGUI_ConvToQuadOp.h"
+#include "SMESHGUI_ConvToQuadDlg.h"
+
+#include "SMESHGUI.h"
+#include "SMESHGUI_Utils.h"
+
+#include "SMESH_TypeFilter.hxx"
+
+#include "SalomeApp_Tools.h"
+
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_UpdateFlags.h"
+       
+//================================================================================
+/*!
+ * \brief Constructor
+ *
+ * Initialize operation
+*/
+//================================================================================
+SMESHGUI_ConvToQuadOp::SMESHGUI_ConvToQuadOp()
+  : SMESHGUI_SelectionOp(), 
+    myDlg( 0 )
+{
+}
+
+//================================================================================
+/*!
+ * \brief Destructor
+*/
+//================================================================================
+SMESHGUI_ConvToQuadOp::~SMESHGUI_ConvToQuadOp()
+{
+  if ( myDlg )
+    delete myDlg;
+}
+
+//================================================================================
+/*!
+ * \brief Gets dialog of this operation
+  * \retval LightApp_Dialog* - pointer to dialog of this operation
+*/
+//================================================================================
+LightApp_Dialog* SMESHGUI_ConvToQuadOp::dlg() const
+{
+  return myDlg;
+}
+
+//================================================================================
+/*!
+ * \brief Creates dialog if necessary and shows it
+ *
+ * Virtual method redefined from base class called when operation is started creates
+ * dialog if necessary and shows it, activates selection
+ */
+//================================================================================
+void SMESHGUI_ConvToQuadOp::startOperation()
+{
+  if( !myDlg )
+  {
+    myDlg = new SMESHGUI_ConvToQuadDlg( );
+  }
+  connect( myDlg, SIGNAL( onClicked( int ) ), SLOT( ConnectRadioButtons( int ) ) );
+
+  SMESHGUI_SelectionOp::startOperation();
+
+  myDlg->SetMediumNdsOnGeom( false );
+  myDlg->activateObject( 0 );
+  myDlg->show();
+
+  selectionDone();
+}
+
+//================================================================================
+/*!
+ * \brief Updates dialog's look and feel
+ *
+ * Virtual method redefined from the base class updates dialog's look and feel
+ */
+//================================================================================
+void SMESHGUI_ConvToQuadOp::selectionDone()
+{
+  if ( !dlg()->isShown() )
+    return;
+
+  SMESHGUI_SelectionOp::selectionDone();
+  try
+  {
+    QString anMeshEntry = myDlg->selectedObject( 0 );
+    _PTR(SObject) pMesh = studyDS()->FindObjectID( anMeshEntry.latin1() );
+    if ( !pMesh ) return;
+
+    SMESH::SMESH_Mesh_var mesh =
+    SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( pMesh );  
+
+    if( mesh->_is_nil() )
+    {
+      myDlg->SetEnabledControls( false );
+    }
+    else if( ConsistMesh( mesh ) == SMESHGUI_ConvToQuadOp::Quadratic )
+    {
+      myDlg->SetEnabledRB( 0, false );
+    }
+    else if( ConsistMesh( mesh ) == SMESHGUI_ConvToQuadOp::Linear )
+    {
+      myDlg->SetEnabledRB( 1, false );
+    }
+    else 
+    {
+      myDlg->SetEnabledControls( true );
+    }
+  }
+  catch ( const SALOME::SALOME_Exception& S_ex )
+  {
+    SalomeApp_Tools::QtCatchCorbaException( S_ex );
+  }
+  catch ( ... )
+  {
+  }
+}
+
+//================================================================================
+/*!
+ * \brief Creates selection filter
+  * \param theId - identifier of current selection widget
+  * \retval SUIT_SelectionFilter* - pointer to the created filter or null
+ *
+ * Creates selection filter in accordance with identifier of current selection widget
+ */
+//================================================================================
+SUIT_SelectionFilter* SMESHGUI_ConvToQuadOp::createFilter( const int theId ) const
+{
+  if ( theId == 0 )
+    return new SMESH_TypeFilter( MESH );
+  else
+    return 0;
+}
+
+//================================================================================
+/*!
+ * \brief Edits mesh
+ *
+ * Virtual slot redefined from the base class called when "Apply" button is clicked
+ */
+//================================================================================
+bool SMESHGUI_ConvToQuadOp::onApply()
+{
+
+  QString aMess;
+
+  QString anMeshEntry = myDlg->selectedObject( 0 );
+  _PTR(SObject) pMesh = studyDS()->FindObjectID( anMeshEntry.latin1() );
+  if ( !pMesh )
+  {
+    dlg()->show();
+    SUIT_MessageBox::warn1( myDlg,
+        tr( "SMESH_WRN_WARNING" ), tr("MESH_IS_NOT_SELECTED"), tr( "SMESH_BUT_OK" ) );
+   
+    return false;
+  }
+
+  SMESH::SMESH_Mesh_var mesh =
+  SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( pMesh );  
+
+  if( CORBA::is_nil(mesh) )
+  {
+    SUIT_MessageBox::warn1( myDlg,
+        tr( "SMESH_WRN_WARNING" ), tr("REF_IS_NULL"), tr( "SMESH_BUT_OK" ) );
+
+    return false;
+  } 
+
+  bool aResult = false;
+
+  try
+  {
+    SMESH::SMESH_MeshEditor_var aEditor = mesh->GetMeshEditor();
+    if( !myDlg->CurrentRB() )
+    {
+      bool aParam = true;
+      if( myDlg->IsEnabledCheck() )
+       aParam = myDlg->IsMediumNdsOnGeom();
+
+      aEditor->ConvertToQuadratic( aParam );
+      aResult = true; 
+    }
+    else
+    {
+      aResult = aEditor->ConvertFromQuadratic();
+    }
+  }
+  catch ( const SALOME::SALOME_Exception& S_ex )
+  {
+    SalomeApp_Tools::QtCatchCorbaException( S_ex );
+    aResult = false;
+  }
+  catch ( ... )
+  {
+    aResult = false;
+  }
+  if( aResult )
+  {
+    update( UF_ObjBrowser | UF_Model | UF_Viewer );
+    selectionDone();
+  }
+  return aResult;
+}
+
+//================================================================================
+/*! ConsistMesh
+ *  Determines, what elements this mesh contains. 
+ */
+//================================================================================
+SMESHGUI_ConvToQuadOp::MeshType SMESHGUI_ConvToQuadOp::ConsistMesh( const SMESH::SMESH_Mesh_var& mesh) const
+{
+  int nbAllElem = 0, nbQEdges =0, nbQFaces =0, nbQVolum = 0;
+  int nbEdges = 0, nbFaces = 0, nbVolum = 0;
+
+  nbAllElem = (int)mesh->NbElements();
+  nbQEdges = (int)mesh->NbEdgesOfOrder(SMESH::ORDER_QUADRATIC);
+  nbQFaces = (int)mesh->NbFacesOfOrder(SMESH::ORDER_QUADRATIC);
+  nbQVolum = (int)mesh->NbVolumesOfOrder(SMESH::ORDER_QUADRATIC);
+
+  nbEdges = (int)mesh->NbEdgesOfOrder(SMESH::ORDER_LINEAR);
+  nbFaces = (int)mesh->NbFacesOfOrder(SMESH::ORDER_LINEAR);
+  nbVolum = (int)mesh->NbVolumesOfOrder(SMESH::ORDER_LINEAR);
+
+  if( nbAllElem == (nbQEdges+nbQFaces+nbQVolum) )
+    return SMESHGUI_ConvToQuadOp::Quadratic;
+  else if ( nbAllElem == (nbEdges+nbFaces+nbVolum) )
+    return SMESHGUI_ConvToQuadOp::Linear;
+  else 
+    return SMESHGUI_ConvToQuadOp::Comp;
+}
+
+
+void SMESHGUI_ConvToQuadOp::ConnectRadioButtons( int id )
+{
+  QString anMeshEntry = myDlg->selectedObject( 0 );
+  _PTR(SObject) pMesh = studyDS()->FindObjectID( anMeshEntry.latin1() );
+  if ( !pMesh ) return;
+
+  SMESH::SMESH_Mesh_var mesh =
+    SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( pMesh );  
+
+  GEOM::GEOM_Object_var mainGeom;
+  mainGeom = mesh->GetShapeToMesh();
+
+  if( id || mainGeom->_is_nil() )
+    myDlg->SetEnabledCheck( false );
+  else
+    myDlg->SetEnabledCheck( true );
+}
+
+
diff --git a/src/SMESHGUI/SMESHGUI_ConvToQuadOp.h b/src/SMESHGUI/SMESHGUI_ConvToQuadOp.h
new file mode 100644 (file)
index 0000000..129a4b9
--- /dev/null
@@ -0,0 +1,70 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+/**
+*  SMESH SMESHGUI
+*
+*  Copyright (C) 2005  CEA/DEN, EDF R&D
+*
+*
+*
+*  File   : SMESHGUI_ConvToQuadOp.h
+*  Module : SMESHGUI
+*/
+
+#ifndef SMESHGUI_ConvToQuadOp_H
+#define SMESHGUI_ConvToQuadOp_H
+
+#include <SMESHGUI_SelectionOp.h>
+//#include <qstringlist.h>
+
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SMESH_Mesh)
+
+class SMESHGUI_ConvToQuadDlg;
+
+class SMESHGUI_ConvToQuadOp : public SMESHGUI_SelectionOp
+{ 
+  Q_OBJECT
+
+public:      
+enum MeshType{ Comp = 0, Linear, Quadratic };
+
+public:
+  SMESHGUI_ConvToQuadOp();
+  virtual ~SMESHGUI_ConvToQuadOp();
+  
+  virtual LightApp_Dialog*       dlg() const;  
+
+protected:
+  virtual void                   startOperation();
+  virtual void                   selectionDone();
+  virtual SUIT_SelectionFilter*  createFilter( const int ) const;
+  MeshType                       ConsistMesh( const SMESH::SMESH_Mesh_var& ) const;
+
+protected slots:
+  virtual bool                   onApply();
+  void                           ConnectRadioButtons( int);
+
+private:
+  SMESHGUI_ConvToQuadDlg*        myDlg;
+};
+
+#endif
+
diff --git a/src/SMESH_SWIG/SMESH_AdvancedEditor.py b/src/SMESH_SWIG/SMESH_AdvancedEditor.py
new file mode 100644 (file)
index 0000000..914cd79
--- /dev/null
@@ -0,0 +1,209 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+import smesh
+import SMESH
+import math
+
+def GetNewNodes(mesh,Elems,OldNodes):
+    """
+    Auxilary function, which return list of nodes from
+    given Elems avoided nodes from OldNodes
+    """
+    newnodes = []
+    for i in Elems:
+        nbn = mesh.GetElemNbNodes(i)
+        for j in range(0,nbn):
+            nn = mesh.GetElemNode(i,j)
+            isold = 0
+            for k in range(0,len(newnodes)):
+                if nn==newnodes[k]:
+                    isold = 1
+                    break
+                pass
+            if isold: continue
+            for k in range(0,len(OldNodes)):
+                if nn==OldNodes[k]:
+                    isold = 1
+                    break
+                pass
+            if isold: continue
+            newnodes.append(nn)
+            pass
+        pass
+    return newnodes
+            
+    
+# create empty mesh
+mesh = smesh.smesh.CreateEmptyMesh()
+
+ed = mesh.GetMeshEditor()
+tol = 0.001
+
+# create a cross from quadrangle faces
+# 1. create first edge and make extrusion along 0x
+n1 = ed.AddNode(55,-5,0)
+n2 = ed.AddNode(55,5,0)
+e1 = ed.AddEdge([n1,n2])
+dir1 = SMESH.DirStruct(SMESH.PointStruct(-10,0,0))
+ed.ExtrusionSweep([e1],dir1,11)
+# 2. create second edge and make extrusion along 0y
+n3 = ed.AddNode(-5,-55,0)
+n4 = ed.AddNode(5,-55,0)
+e2 = ed.AddEdge([n3,n4])
+dir2 = SMESH.DirStruct(SMESH.PointStruct(0,10,0))
+ed.ExtrusionSweep([e2],dir2,11)
+
+# since result has coincident nodes and faces
+# we have to make merge
+nodes = ed.FindCoincidentNodes(0.001)
+ed.MergeNodes(nodes)
+ed.MergeEqualElements()
+
+# make extrusion faces along 0z
+faces = mesh.GetElementsByType(SMESH.FACE)
+nbf = len(faces)
+maxang = 2.0
+zstep = 5
+nbzsteps = 50
+dir3 = SMESH.DirStruct(SMESH.PointStruct(0,0,zstep))
+newfaces = [] # list for keeping created top faces
+              # during extrusion
+
+for i in range(0,nbzsteps):
+    ed.ExtrusionSweep(faces,dir3,1)
+    # find top faces after each extrusion and keep them
+    res = ed.GetLastCreatedElems()
+    nbr = len(res)
+    nfaces = []
+    for j in res:
+        nbn = mesh.GetElemNbNodes(j)
+        if nbn!=4: continue
+        nn1 = mesh.GetElemNode(j,0)
+        xyz1 = mesh.GetNodeXYZ(nn1)
+        nn2 = mesh.GetElemNode(j,1)
+        xyz2 = mesh.GetNodeXYZ(nn2)
+        nn3 = mesh.GetElemNode(j,2)
+        xyz3 = mesh.GetNodeXYZ(nn3)
+        if abs(xyz1[2]-xyz2[2])<tol and abs(xyz1[2]-xyz3[2])<tol :
+            # this face is a top face
+            nfaces.append(j)
+            pass
+        pass
+    if len(nfaces)!=nbf:
+        print "len(nfaces)!=nbf"
+        break
+    newfaces.append(nfaces)
+    # update faces for before next step of extrusion
+    faces = nfaces
+    pass
+    
+# rotate faces from newfaces
+axisr1 = SMESH.AxisStruct(0,0,0,0,0,1)
+for i in range(0,nbzsteps):
+    ang = maxang*(1-math.cos((i+1)*math.pi/nbzsteps))
+    ed.Rotate(newfaces[i],axisr1,ang,0)
+
+
+# create circles
+# create two edges and rotate them for creation
+# full circle
+n5 = ed.AddNode(65,0,0)
+n6 = ed.AddNode(67.5,0,0)
+n7 = ed.AddNode(70,0,0)
+e56 = ed.AddEdge([n5,n6])
+e67 = ed.AddEdge([n6,n7])
+axisr2 = SMESH.AxisStruct(65,0,0,0,1,0)
+ed.RotationSweep([e56,e67],axisr2, math.pi/6, 12, tol)
+res = ed.GetLastCreatedElems()
+faces1 = []
+for i in res:
+    nbn = mesh.GetElemNbNodes(i)
+    if nbn>2: faces1.append(i)
+    pass
+nbf1 = len(faces1)
+
+# create other two edges and rotate them for creation
+# other full circle
+n8 = ed.AddNode(-65,0,0)
+n9 = ed.AddNode(-67.5,0,0)
+n10 = ed.AddNode(-70,0,0)
+e8 = ed.AddEdge([n8,n9])
+e9 = ed.AddEdge([n9,n10])
+axisr3 = SMESH.AxisStruct(-65,0,0,0,-1,0)
+ed.RotationSweep([e8,e9],axisr3, math.pi/6, 12, tol)
+res = ed.GetLastCreatedElems()
+faces2 = []
+for i in res:
+    nbn = mesh.GetElemNbNodes(i)
+    if nbn>2: faces2.append(i)
+    pass
+nbf2 = len(faces2)
+
+# there are coincident nodes after rotation
+# therefore we have to merge nodes
+nodes = ed.FindCoincidentNodes(0.001)
+ed.MergeNodes(nodes)
+
+nbcircs = 2
+nbrsteps = 24
+nbrs = nbcircs*nbrsteps
+dz = nbzsteps*zstep/nbrs
+
+# create first spiral
+oldnodes = []
+newnodes = GetNewNodes(mesh,faces1,oldnodes)
+oldnodes = newnodes
+
+nodes = []
+ed.RotationSweep(faces1,axisr1, math.pi*2/nbrsteps, nbrs, tol)
+res = ed.GetLastCreatedElems()
+
+for i in range(0,nbrs):
+    volumes = []
+    for j in range(0,nbf1): volumes.append(res[i+j*nbrs])
+    newnodes = GetNewNodes(mesh,volumes,oldnodes)
+    for j in newnodes:
+        xyz = mesh.GetNodeXYZ(j)
+        ed.MoveNode(j,xyz[0],xyz[1],xyz[2]+dz*(i+1))
+        pass
+    oldnodes = newnodes
+    pass
+
+# create second spiral
+oldnodes = []
+newnodes = GetNewNodes(mesh,faces2,oldnodes)
+oldnodes = newnodes
+
+nodes = []
+ed.RotationSweep(faces2,axisr1, math.pi*2/nbrsteps, nbrs, tol)
+res = ed.GetLastCreatedElems()
+
+for i in range(0,nbrs):
+    volumes = []
+    for j in range(0,nbf2): volumes.append(res[i+j*nbrs])
+    newnodes = GetNewNodes(mesh,volumes,oldnodes)
+    for j in newnodes:
+        xyz = mesh.GetNodeXYZ(j)
+        ed.MoveNode(j,xyz[0],xyz[1],xyz[2]+dz*(i+1))
+        pass
+    oldnodes = newnodes
+    pass
+
+    
diff --git a/src/SMESH_SWIG/SMESH_fixation_netgen.py b/src/SMESH_SWIG/SMESH_fixation_netgen.py
new file mode 100644 (file)
index 0000000..3111490
--- /dev/null
@@ -0,0 +1,75 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+#
+# Tetrahedrization of the geometry generated by the Python script
+# SMESH_fixation.py
+# The new Netgen algorithm is used that discretizes baoundaries itself
+#
+
+import StdMeshers
+import NETGENPlugin
+import SMESH_fixation
+import smesh
+
+compshell = SMESH_fixation.compshell
+idcomp = SMESH_fixation.idcomp
+geompy = SMESH_fixation.geompy
+salome = SMESH_fixation.salome
+
+print "Analysis of the geometry to be meshed :"
+subShellList = geompy.SubShapeAll(compshell, geompy.ShapeType["SHELL"])
+subFaceList  = geompy.SubShapeAll(compshell, geompy.ShapeType["FACE"])
+subEdgeList  = geompy.SubShapeAll(compshell, geompy.ShapeType["EDGE"])
+
+print "number of Shells in compshell : ", len(subShellList)
+print "number of Faces  in compshell : ", len(subFaceList)
+print "number of Edges  in compshell : ", len(subEdgeList)
+
+status = geompy.CheckShape(compshell)
+print " check status ", status
+
+### ---------------------------- SMESH --------------------------------------
+
+print "-------------------------- create Mesh, algorithm, hypothesis"
+
+mesh = smesh.Mesh(compshell, "MeshcompShel");
+netgen = mesh.Netgen(1)
+hyp = netgen.Parameters()
+hyp.SetMaxSize( 50 )
+#hyp.SetSecondOrder( 0 )
+hyp.SetFineness( 3 )
+#hyp.SetOptimize( 1 )
+
+salome.sg.updateObjBrowser(1)
+
+print "-------------------------- compute mesh"
+ret = mesh.Compute()
+print ret
+if ret != 0:
+    print "Information about the MeshcompShel:"
+    print "Number of nodes        : ", mesh.GetMesh().NbNodes()
+    print "Number of edges        : ", mesh.GetMesh().NbEdges()
+    print "Number of faces        : ", mesh.GetMesh().NbFaces()
+    print "Number of triangles    : ", mesh.GetMesh().NbTriangles()
+    print "Number of volumes      : ", mesh.GetMesh().NbVolumes()
+    print "Number of tetrahedrons : ", mesh.GetMesh().NbTetras()
+    
+else:
+    print "problem when computing the mesh"
diff --git a/src/SMESH_SWIG/SMESH_mechanic_netgen.py b/src/SMESH_SWIG/SMESH_mechanic_netgen.py
new file mode 100644 (file)
index 0000000..b3a0ea2
--- /dev/null
@@ -0,0 +1,136 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+#
+# Quadrangulation of the geometry generated by the Python script
+# SMESH_mechanic.py
+# The new Netgen algorithm is used that discretizes baoundaries itself
+#
+
+import salome
+import geompy
+
+geom  = geompy.geom
+
+import StdMeshers
+import NETGENPlugin
+import smesh
+
+# ---------------------------- GEOM --------------------------------------
+
+# ---- define contigous arcs and segment to define a closed wire
+p1   = geompy.MakeVertex( 100.0,   0.0,  0.0 )
+p2   = geompy.MakeVertex(  50.0,  50.0,  0.0 )
+p3   = geompy.MakeVertex( 100.0, 100.0,  0.0 )
+arc1 = geompy.MakeArc( p1, p2, p3 )
+
+p4   = geompy.MakeVertex( 170.0, 100.0, 0.0 )
+seg1 = geompy.MakeVector( p3, p4 )
+
+p5   = geompy.MakeVertex( 200.0, 70.0, 0.0 )
+p6   = geompy.MakeVertex( 170.0, 40.0, 0.0 )
+arc2 = geompy.MakeArc( p4, p5, p6 )
+
+p7   = geompy.MakeVertex( 120.0, 30.0, 0.0 )
+arc3 = geompy.MakeArc( p6, p7, p1 )
+
+# ---- define a closed wire with arcs and segment
+List1 = []
+List1.append( arc1 )
+List1.append( seg1 )
+List1.append( arc2 )
+List1.append( arc3 )
+
+wire1 = geompy.MakeWire( List1 )
+Id_wire1 = geompy.addToStudy( wire1, "wire1" )
+
+# ---- define a planar face with wire
+WantPlanarFace = 1 #True
+face1 = geompy.MakeFace( wire1, WantPlanarFace )
+Id_face1 = geompy.addToStudy( face1, "face1" )
+
+# ---- create a shape by extrusion
+pO = geompy.MakeVertex( 0.0, 0.0,   0.0 )
+pz = geompy.MakeVertex( 0.0, 0.0, 100.0 )
+vz = geompy.MakeVector( pO, pz )
+
+prism1 = geompy.MakePrismVecH( face1, vz, 100.0 )
+Id_prism1 = geompy.addToStudy( prism1, "prism1")
+
+# ---- create two cylinders
+
+pc1 = geompy.MakeVertex(  90.0, 50.0, -40.0 )
+pc2 = geompy.MakeVertex( 170.0, 70.0, -40.0 )
+radius = 20.0
+height = 180.0
+cyl1  = geompy.MakeCylinder( pc1, vz, radius, height )
+cyl2  = geompy.MakeCylinder( pc2, vz, radius, height )
+
+Id_Cyl1 = geompy.addToStudy( cyl1, "cyl1" )
+Id_Cyl2 = geompy.addToStudy( cyl2, "cyl2" )
+
+# ---- cut with cyl1
+shape  = geompy.MakeBoolean( prism1, cyl1, 2 )
+
+# ---- fuse with cyl2 to obtain the final mechanic piece :)
+mechanic =  geompy.MakeBoolean( shape, cyl2, 3 )
+Id_mechanic = geompy.addToStudy( mechanic, "mechanic" )
+
+# ---- Analysis of the geometry
+
+print "Analysis of the geometry mechanic :"
+
+subShellList = geompy.SubShapeAll(mechanic,geompy.ShapeType["SHELL"])
+subFaceList  = geompy.SubShapeAll(mechanic,geompy.ShapeType["FACE"])
+subEdgeList  = geompy.SubShapeAll(mechanic,geompy.ShapeType["EDGE"])
+
+print "number of Shells in mechanic : ",len(subShellList)
+print "number of Faces in mechanic : ",len(subFaceList)
+print "number of Edges in mechanic : ",len(subEdgeList)
+
+### ---------------------------- SMESH --------------------------------------
+
+print "-------------------------- create Mesh, algorithm, hypothesis"
+
+mesh = smesh.Mesh(mechanic, "Mesh_mechanic");
+netgen = mesh.Netgen(0)
+hyp = netgen.Parameters()
+hyp.SetMaxSize( 50 )
+#hyp.SetSecondOrder( 0 )
+hyp.SetFineness( 3 )
+hyp.SetQuadAllowed( 1 )
+#hyp.SetOptimize( 1 )
+
+salome.sg.updateObjBrowser(1)
+
+print "-------------------------- compute mesh"
+ret = mesh.Compute()
+print ret
+if ret != 0:
+    print "Information about the MeshcompShel:"
+    print "Number of nodes        : ", mesh.GetMesh().NbNodes()
+    print "Number of edges        : ", mesh.GetMesh().NbEdges()
+    print "Number of faces        : ", mesh.GetMesh().NbFaces()
+    print "Number of triangles    : ", mesh.GetMesh().NbTriangles()
+    print "Number of quadrangles  : ", mesh.GetMesh().NbQuadrangles()
+    print "Number of volumes      : ", mesh.GetMesh().NbVolumes()
+    print "Number of tetrahedrons : ", mesh.GetMesh().NbTetras()
+    
+else:
+    print "problem when computing the mesh"
diff --git a/src/SMESH_SWIG/ex21_lamp.py b/src/SMESH_SWIG/ex21_lamp.py
new file mode 100644 (file)
index 0000000..fd62773
--- /dev/null
@@ -0,0 +1,125 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# CEA/LGLS 2006, Francis KLOSS (OCC)
+# ==================================
+
+from geompy import *
+
+import smesh
+
+# Geometry
+# ========
+
+# an assembly of a box, a cylinder and a truncated cone meshed with tetrahedral.
+
+# Define values
+# -------------
+
+name = "ex21_lamp"
+
+cote = 60
+
+section = 20
+size    = 200
+
+radius_1 = 80
+radius_2 = 40
+height   = 100
+
+# Build a box
+# -----------
+
+box  = MakeBox(-cote, -cote, -cote,  +cote, +cote, +cote)
+
+# Build a cylinder
+# ----------------
+
+pt1 = MakeVertex(0, 0, cote/3)
+di1 = MakeVectorDXDYDZ(0, 0, 1)
+cyl = MakeCylinder(pt1, di1, section, size)
+
+# Build a truncated cone
+# ----------------------
+
+pt2 = MakeVertex(0, 0, size)
+cone = MakeCone(pt2, di1, radius_1, radius_2, height)
+
+# Fuse
+# ----
+
+box_cyl = MakeFuse(box, cyl)
+piece = MakeFuse(box_cyl, cone)
+
+# Add in study
+# ------------
+
+addToStudy(piece, name)
+
+# Create a group of faces
+# -----------------------
+
+group = CreateGroup(piece, ShapeType["FACE"])
+
+group_name = name + "_grp"
+addToStudy(group, group_name)
+group.SetName(group_name)
+
+# Add faces in the group
+# ----------------------
+
+faces = SubShapeAllIDs(piece, ShapeType["FACE"])
+
+UnionIDs(group, faces)
+
+# Create a mesh
+# =============
+
+# Define a mesh on a geometry
+# ---------------------------
+
+tetra = smesh.Mesh(piece, name)
+
+# Define 1D hypothesis
+# --------------------
+
+algo1d = tetra.Segment()
+algo1d.LocalLength(10)
+
+# Define 2D hypothesis
+# --------------------
+
+algo2d = tetra.Triangle()
+algo2d.LengthFromEdges()
+
+# Define 3D hypothesis
+# --------------------
+
+algo3d = tetra.Tetrahedron(smesh.NETGEN)
+algo3d.MaxElementVolume(100)
+
+# Compute the mesh
+# ----------------
+
+tetra.Compute()
+
+# Create a groupe of faces
+# ------------------------
+
+tetra.Group(group)
diff --git a/src/StdMeshers/StdMeshers_QuadraticMesh.cxx b/src/StdMeshers/StdMeshers_QuadraticMesh.cxx
new file mode 100644 (file)
index 0000000..2e56a65
--- /dev/null
@@ -0,0 +1,111 @@
+//  SMESH StdMeshers_QuadraticMesh : implementaion of SMESH idl descriptions
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : StdMeshers_QuadraticMesh.cxx
+//  Module : SMESH
+//  $Header$
+
+#include "StdMeshers_QuadraticMesh.hxx"
+#include "utilities.h"
+
+using namespace std;
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+StdMeshers_QuadraticMesh::StdMeshers_QuadraticMesh(int         hypId,
+                                                   int         studyId,
+                                                   SMESH_Gen * gen)
+     :SMESH_Hypothesis(hypId, studyId, gen)
+{
+  _name = "QuadraticMesh";
+  _param_algo_dim = -1; // it means auxiliary, dim = 1
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+StdMeshers_QuadraticMesh::~StdMeshers_QuadraticMesh()
+{
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+ostream & StdMeshers_QuadraticMesh::SaveTo(ostream & save)
+{
+  return save;
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+istream & StdMeshers_QuadraticMesh::LoadFrom(istream & load)
+{
+  return load;
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+ostream & operator <<(ostream & save, StdMeshers_QuadraticMesh & hyp)
+{
+  return hyp.SaveTo( save );
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+istream & operator >>(istream & load, StdMeshers_QuadraticMesh & hyp)
+{
+  return hyp.LoadFrom( load );
+}
+//================================================================================
+/*!
+ * \brief Initialize my parameter values by the mesh built on the geometry
+  * \retval bool - false as this hypothesis does not have parameters values
+ */
+//================================================================================
+
+bool StdMeshers_QuadraticMesh::SetParametersByMesh(const SMESH_Mesh*, const TopoDS_Shape&)
+{
+  return false;
+}
diff --git a/src/StdMeshers/StdMeshers_QuadraticMesh.hxx b/src/StdMeshers/StdMeshers_QuadraticMesh.hxx
new file mode 100644 (file)
index 0000000..db601ee
--- /dev/null
@@ -0,0 +1,65 @@
+//  SMESH StdMeshers : implementaion of SMESH idl descriptions
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : StdMeshers_QuadraticMesh.hxx
+//  Module : SMESH
+//  $Header$
+
+#ifndef _StdMeshers_QuadraticMesh_HXX_
+#define _StdMeshers_QuadraticMesh_HXX_
+
+#include "SMESH_Hypothesis.hxx"
+#include "Utils_SALOME_Exception.hxx"
+
+/*!
+ * \brief Hypothesis for StdMeshers_Regular_1D, forcing construction of quadratic edges.
+ * If the 2D mesher sees that all boundary edges are quadratic ones,
+ * it generates quadratic faces, else it generates linear faces using
+ * medium nodes as if they were vertex ones.
+ * The 3D mesher generates quadratic volumes only if all boundary faces
+ * are quadratic ones, else it fails.
+ */
+class StdMeshers_QuadraticMesh:public SMESH_Hypothesis
+{
+ public:
+  StdMeshers_QuadraticMesh(int hypId, int studyId, SMESH_Gen * gen);
+  virtual ~ StdMeshers_QuadraticMesh();
+  
+  virtual std::ostream & SaveTo(std::ostream & save);
+  virtual std::istream & LoadFrom(std::istream & load);
+  friend std::ostream & operator <<(std::ostream & save, StdMeshers_QuadraticMesh & hyp);
+  friend std::istream & operator >>(std::istream & load, StdMeshers_QuadraticMesh & hyp);
+
+  /*!
+   * \brief Initialize my parameter values by the mesh built on the geometry
+    * \param theMesh - the built mesh
+    * \param theShape - the geometry of interest
+    * \retval bool - true if parameter values have been successfully defined
+    *
+    * Just return false as this hypothesis does not have parameters values
+   */
+  virtual bool SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape);
+
+};
+
+#endif
diff --git a/src/StdMeshers_I/StdMeshers_QuadraticMesh_i.cxx b/src/StdMeshers_I/StdMeshers_QuadraticMesh_i.cxx
new file mode 100644 (file)
index 0000000..80c1873
--- /dev/null
@@ -0,0 +1,99 @@
+//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : StdMeshers_QuadraticMesh_i.cxx
+//           Moved here from SMESH_LocalLength_i.cxx
+//  Author : Paul RASCLE, EDF
+//  Module : SMESH
+//  $Header$
+
+#include "StdMeshers_QuadraticMesh_i.hxx"
+#include "SMESH_Gen_i.hxx"
+#include "SMESH_Gen.hxx"
+
+#include "Utils_CorbaException.hxx"
+#include "utilities.h"
+
+//#include <TCollection_AsciiString.hxx>
+
+using namespace std;
+
+//=============================================================================
+/*!
+ *  StdMeshers_QuadraticMesh_i::StdMeshers_QuadraticMesh_i
+ *
+ *  Constructor
+ */
+//=============================================================================
+
+StdMeshers_QuadraticMesh_i::StdMeshers_QuadraticMesh_i
+( PortableServer::POA_ptr thePOA,
+  int                     theStudyId,
+  ::SMESH_Gen*            theGenImpl )
+  : SALOME::GenericObj_i( thePOA ),SMESH_Hypothesis_i( thePOA )
+{
+  myBaseImpl = new ::StdMeshers_QuadraticMesh( theGenImpl->GetANewId(),
+                                               theStudyId,
+                                               theGenImpl );
+}
+
+//=============================================================================
+/*!
+ *  StdMeshers_QuadraticMesh_i::~StdMeshers_QuadraticMesh_i
+ *
+ *  Destructor
+ */
+//=============================================================================
+
+StdMeshers_QuadraticMesh_i::~StdMeshers_QuadraticMesh_i()
+{
+}
+
+//=============================================================================
+/*!
+ *  StdMeshers_QuadraticMesh_i::GetImpl
+ *
+ *  Get implementation
+ */
+//=============================================================================
+
+::StdMeshers_QuadraticMesh* StdMeshers_QuadraticMesh_i::GetImpl()
+{
+  return ( ::StdMeshers_QuadraticMesh* )myBaseImpl;
+}
+
+//================================================================================
+/*!
+ * \brief Verify whether hypothesis supports given entity type 
+  * \param type - dimension (see SMESH::Dimension enumeration)
+  * \retval CORBA::Boolean - TRUE if dimension is supported, FALSE otherwise
+ * 
+ * Verify whether hypothesis supports given entity type (see SMESH::Dimension enumeration)
+ */
+//================================================================================  
+
+CORBA::Boolean StdMeshers_QuadraticMesh_i::IsDimSupported( SMESH::Dimension type )
+{
+  return type == SMESH::DIM_1D;
+}
+
diff --git a/src/StdMeshers_I/StdMeshers_QuadraticMesh_i.hxx b/src/StdMeshers_I/StdMeshers_QuadraticMesh_i.hxx
new file mode 100644 (file)
index 0000000..90c74e3
--- /dev/null
@@ -0,0 +1,64 @@
+//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : StdMeshers_QuadraticMesh_i.hxx
+//           Moved here from SMESH_LocalLength_i.hxx
+//  Author : Paul RASCLE, EDF
+//  Module : SMESH
+//  $Header$
+
+#ifndef _SMESH_QuadraticMesh_I_HXX_
+#define _SMESH_QuadraticMesh_I_HXX_
+
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
+
+#include "SMESH_Hypothesis_i.hxx"
+#include "StdMeshers_QuadraticMesh.hxx"
+
+class SMESH_Gen;
+
+// ======================================================
+// Local Length hypothesis
+// ======================================================
+class StdMeshers_QuadraticMesh_i:
+  public virtual POA_StdMeshers::StdMeshers_QuadraticMesh,
+  public virtual SMESH_Hypothesis_i
+{
+public:
+  // Constructor
+  StdMeshers_QuadraticMesh_i( PortableServer::POA_ptr thePOA,
+                              int                     theStudyId,
+                              ::SMESH_Gen*            theGenImpl );
+  // Destructor
+  virtual ~StdMeshers_QuadraticMesh_i();
+
+  // Get implementation
+  ::StdMeshers_QuadraticMesh* GetImpl();
+  
+  // Verify whether hypothesis supports given entity type 
+  CORBA::Boolean IsDimSupported( SMESH::Dimension type );
+};
+
+#endif
+