Salome HOME
Merge from BR_Dev_For_4_0 branch (from mergeto_BR_QT4_Dev_17Jan08 tag)
authorvsr <vsr@opencascade.com>
Mon, 11 Feb 2008 15:08:07 +0000 (15:08 +0000)
committervsr <vsr@opencascade.com>
Mon, 11 Feb 2008 15:08:07 +0000 (15:08 +0000)
--- BEFORE PORTING TO QT 4 ---

888 files changed:
adm_local/unix/config_files/check_SMESH.m4
build_configure
configure.ac
doc/salome/gui/Makefile.am
doc/salome/gui/SMESH/about_viewing_meshes.htm [deleted file]
doc/salome/gui/SMESH/adding_quadratic_nodes_and_elements.htm [deleted file]
doc/salome/gui/SMESH/aspect_ratio_3d.htm [deleted file]
doc/salome/gui/SMESH/borders_at_multi-connection.htm [deleted file]
doc/salome/gui/SMESH/borders_at_multiconnection_2d.htm [deleted file]
doc/salome/gui/SMESH/building_compounds.htm [deleted file]
doc/salome/gui/SMESH/clipping.htm [deleted file]
doc/salome/gui/SMESH/constructing_meshes.htm [deleted file]
doc/salome/gui/SMESH/cshdat_robohelp.htm [deleted file]
doc/salome/gui/SMESH/cshdat_webhelp.htm [deleted file]
doc/salome/gui/SMESH/default.css [deleted file]
doc/salome/gui/SMESH/default_ns.css [deleted file]
doc/salome/gui/SMESH/defining_hypotheses_tui.htm [deleted file]
doc/salome/gui/SMESH/deleting_groups.htm [deleted file]
doc/salome/gui/SMESH/display_entity.htm [deleted file]
doc/salome/gui/SMESH/doxyfile.in [new file with mode: 0755]
doc/salome/gui/SMESH/doxyfile_py.in [new file with mode: 0755]
doc/salome/gui/SMESH/ehelp.xml [deleted file]
doc/salome/gui/SMESH/ehlpdhtm.js [deleted file]
doc/salome/gui/SMESH/extrusion.htm [deleted file]
doc/salome/gui/SMESH/extrusion_along_a_path.htm [deleted file]
doc/salome/gui/SMESH/files/viewing_mesh_info.htm
doc/salome/gui/SMESH/free_borders.htm [deleted file]
doc/salome/gui/SMESH/free_edges.htm [deleted file]
doc/salome/gui/SMESH/grouping_elements.htm [deleted file]
doc/salome/gui/SMESH/i_blue.jpg [deleted file]
doc/salome/gui/SMESH/image10.jpg [deleted file]
doc/salome/gui/SMESH/image101.gif [deleted file]
doc/salome/gui/SMESH/image103.gif [deleted file]
doc/salome/gui/SMESH/image105.gif [deleted file]
doc/salome/gui/SMESH/image106.gif [deleted file]
doc/salome/gui/SMESH/image108.gif [deleted file]
doc/salome/gui/SMESH/image119.gif [deleted file]
doc/salome/gui/SMESH/image120.gif [deleted file]
doc/salome/gui/SMESH/image121.gif [deleted file]
doc/salome/gui/SMESH/image122.gif [deleted file]
doc/salome/gui/SMESH/image123.gif [deleted file]
doc/salome/gui/SMESH/image124.gif [deleted file]
doc/salome/gui/SMESH/image125.gif [deleted file]
doc/salome/gui/SMESH/image126.gif [deleted file]
doc/salome/gui/SMESH/image127.gif [deleted file]
doc/salome/gui/SMESH/image130.gif [deleted file]
doc/salome/gui/SMESH/image131.gif [deleted file]
doc/salome/gui/SMESH/image132.gif [deleted file]
doc/salome/gui/SMESH/image133.gif [deleted file]
doc/salome/gui/SMESH/image134.gif [deleted file]
doc/salome/gui/SMESH/image135.gif [deleted file]
doc/salome/gui/SMESH/image136.gif [deleted file]
doc/salome/gui/SMESH/image137.gif [deleted file]
doc/salome/gui/SMESH/image142.gif [deleted file]
doc/salome/gui/SMESH/image143.gif [deleted file]
doc/salome/gui/SMESH/image144.gif [deleted file]
doc/salome/gui/SMESH/image145.gif [deleted file]
doc/salome/gui/SMESH/image146.gif [deleted file]
doc/salome/gui/SMESH/image147.gif [deleted file]
doc/salome/gui/SMESH/image148.gif [deleted file]
doc/salome/gui/SMESH/image15.jpg [deleted file]
doc/salome/gui/SMESH/image151.gif [deleted file]
doc/salome/gui/SMESH/image152.gif [deleted file]
doc/salome/gui/SMESH/image157.gif [deleted file]
doc/salome/gui/SMESH/image159.gif [deleted file]
doc/salome/gui/SMESH/image160.gif [deleted file]
doc/salome/gui/SMESH/image161.gif [deleted file]
doc/salome/gui/SMESH/image18.gif [deleted file]
doc/salome/gui/SMESH/image19.gif [deleted file]
doc/salome/gui/SMESH/image20.gif [deleted file]
doc/salome/gui/SMESH/image22.jpg [deleted file]
doc/salome/gui/SMESH/image23.jpg [deleted file]
doc/salome/gui/SMESH/image24.gif [deleted file]
doc/salome/gui/SMESH/image25.gif [deleted file]
doc/salome/gui/SMESH/image25.jpg [deleted file]
doc/salome/gui/SMESH/image27.jpg [deleted file]
doc/salome/gui/SMESH/image28.gif [deleted file]
doc/salome/gui/SMESH/image30.gif [deleted file]
doc/salome/gui/SMESH/image30.jpg [deleted file]
doc/salome/gui/SMESH/image31.jpg [deleted file]
doc/salome/gui/SMESH/image32.gif [deleted file]
doc/salome/gui/SMESH/image32.jpg [deleted file]
doc/salome/gui/SMESH/image33.gif [deleted file]
doc/salome/gui/SMESH/image34.gif [deleted file]
doc/salome/gui/SMESH/image35.gif [deleted file]
doc/salome/gui/SMESH/image36.gif [deleted file]
doc/salome/gui/SMESH/image36.jpg [deleted file]
doc/salome/gui/SMESH/image37.gif [deleted file]
doc/salome/gui/SMESH/image37.jpg [deleted file]
doc/salome/gui/SMESH/image38.gif [deleted file]
doc/salome/gui/SMESH/image38.jpg [deleted file]
doc/salome/gui/SMESH/image39.gif [deleted file]
doc/salome/gui/SMESH/image40.gif [deleted file]
doc/salome/gui/SMESH/image41.gif [deleted file]
doc/salome/gui/SMESH/image46.gif [deleted file]
doc/salome/gui/SMESH/image49.gif [deleted file]
doc/salome/gui/SMESH/image5.jpg [deleted file]
doc/salome/gui/SMESH/image50.gif [deleted file]
doc/salome/gui/SMESH/image51.jpg [deleted file]
doc/salome/gui/SMESH/image52.jpg [deleted file]
doc/salome/gui/SMESH/image53.gif [deleted file]
doc/salome/gui/SMESH/image55.gif [deleted file]
doc/salome/gui/SMESH/image56.gif [deleted file]
doc/salome/gui/SMESH/image56.jpg [deleted file]
doc/salome/gui/SMESH/image58.gif [deleted file]
doc/salome/gui/SMESH/image63.gif [deleted file]
doc/salome/gui/SMESH/image64.gif [deleted file]
doc/salome/gui/SMESH/image67.gif [deleted file]
doc/salome/gui/SMESH/image7.jpg [deleted file]
doc/salome/gui/SMESH/image70.gif [deleted file]
doc/salome/gui/SMESH/image70.jpg [deleted file]
doc/salome/gui/SMESH/image71.gif [deleted file]
doc/salome/gui/SMESH/image71.jpg [deleted file]
doc/salome/gui/SMESH/image74.gif [deleted file]
doc/salome/gui/SMESH/image76.jpg [deleted file]
doc/salome/gui/SMESH/image77.jpg [deleted file]
doc/salome/gui/SMESH/image78.jpg [deleted file]
doc/salome/gui/SMESH/image79.gif [deleted file]
doc/salome/gui/SMESH/image79.jpg [deleted file]
doc/salome/gui/SMESH/image80.gif [deleted file]
doc/salome/gui/SMESH/image82.gif [deleted file]
doc/salome/gui/SMESH/image83.gif [deleted file]
doc/salome/gui/SMESH/image84.gif [deleted file]
doc/salome/gui/SMESH/image86.jpg [deleted file]
doc/salome/gui/SMESH/image88.gif [deleted file]
doc/salome/gui/SMESH/image88.jpg [deleted file]
doc/salome/gui/SMESH/image90.jpg [deleted file]
doc/salome/gui/SMESH/image91.gif [deleted file]
doc/salome/gui/SMESH/image92.gif [deleted file]
doc/salome/gui/SMESH/image92.jpg [deleted file]
doc/salome/gui/SMESH/image93.jpg [deleted file]
doc/salome/gui/SMESH/image94.gif [deleted file]
doc/salome/gui/SMESH/image94.jpg [deleted file]
doc/salome/gui/SMESH/image95.gif [deleted file]
doc/salome/gui/SMESH/image95.jpg [deleted file]
doc/salome/gui/SMESH/image96.gif [deleted file]
doc/salome/gui/SMESH/image96.jpg [deleted file]
doc/salome/gui/SMESH/image97.gif [deleted file]
doc/salome/gui/SMESH/image97.jpg [deleted file]
doc/salome/gui/SMESH/image98.gif [deleted file]
doc/salome/gui/SMESH/image99.gif [deleted file]
doc/salome/gui/SMESH/images/a-arithmetic1d.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-averagelength.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-clipping2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-creategroup.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-createpolyhedralvolume.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-cuttingofquadrangles.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-deflection1d.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-filteronedges.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-maxelarea.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-maxelvolume.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-nbsegments1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-nbsegments2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-patterntype.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-patterntype1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-standmeshinfo.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-startendlength.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-transparency.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-unionoftriangles.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/a-viewgeneral.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/add.gif [new file with mode: 0644]
doc/salome/gui/SMESH/images/add_edge.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/add_node.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/add_polygone.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/add_polyhedron.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/add_quadrangle.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/add_triangle.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/addedge.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/addhexahedron.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/addnode.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/addpolygon.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/addquadrangle.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/addtetrahedron.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/addtriangle.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/advanced_mesh_infos.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/aqt.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/automaticlength.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/b-art_end_length.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/b-erage_length.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/b-flection1d.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/b-ithmetic1d.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/b-mberofsegments.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/b-mesh_infos.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/buildcompound.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/circle_angles_after.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/circle_simple_after.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/circle_simple_before.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/convert.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/create_group.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/creategroup.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/createmesh-inv.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/createmesh-inv2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/createmesh-inv3.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/curvi_angles_after.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/curvi_simple_after.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/curvi_simple_before.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/cut_groups1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/cut_groups2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/cut_groups3.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/cutgroups.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/deletegroups.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/diagonalinversion.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/dialog.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/distribution_of_layers.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/distributionwithanalyticdensity.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/distributionwithtabledensity.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/edge_wire_3d_after.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/edge_wire_3d_before.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/edge_wire_after.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/edge_wire_before.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/edit_mesh1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/edit_mesh_change_value_hyp.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/edit_mesh_remove_hyp.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/editgroup.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/editing_groups1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/editing_groups2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/eleminfo1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/eleminfo2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/extrusion1.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/extrusion2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/extrusionalongaline1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/extrusionalongaline2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/failed_computation.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/formula1.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/formula2.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/formula4.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/free_borders1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/free_edges.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/image10.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image101.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image105.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image106.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image120.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image121.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image122.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image123.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image124.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image125.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image126.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image127.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image130.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image131.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image132.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image133.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image134.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image135.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image136.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image137.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image138.gif [new file with mode: 0644]
doc/salome/gui/SMESH/images/image143.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image144.gif [new file with mode: 0644]
doc/salome/gui/SMESH/images/image145.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image146.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image147.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image148.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image15.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image151.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image152.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image154.gif [new file with mode: 0644]
doc/salome/gui/SMESH/images/image155.gif [new file with mode: 0644]
doc/salome/gui/SMESH/images/image156.gif [new file with mode: 0644]
doc/salome/gui/SMESH/images/image157.gif [new file with mode: 0644]
doc/salome/gui/SMESH/images/image160.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image161.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image22.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image23.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image24.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image25.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image25.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image27.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image28.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image30.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image31.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image32.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image32.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image33.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image34.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image35.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image36.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image36.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image37.gif [new file with mode: 0644]
doc/salome/gui/SMESH/images/image37.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image38.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image38.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image39.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image40.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image41.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image46.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image49.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image5.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image50.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image51.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image52.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image53.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image55.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image56.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image56.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image58.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image63.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image64.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image67.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image7.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/images/image70.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image70.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image71.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image71.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image74.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image76.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image77.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image78.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image79.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image79.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image80.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image82.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image83.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image84.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image86.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/images/image88.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image88.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image90.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image91.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image92.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image92.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image93.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image94.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image94.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/images/image95.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image95.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image96.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image96.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image97.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image97.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/images/image98.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/image99.gif [new file with mode: 0755]
doc/salome/gui/SMESH/images/intersect_groups1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/intersect_groups2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/intersect_groups3.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/intersectgroups.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/length-crit.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/length2d.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/lengthnearvertex.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/max_el_area.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/mergeelems.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/mergenodes.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/merging_nodes1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/merging_nodes2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/mesh_cylinder_hexa.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/mesh_for_extr_along_path.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/mesh_node_to_point.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/meshcomputationfail.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/meshcomputationsucceed.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/meshexportmesh.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/meshimportmesh.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/meshtopass.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/meshtrianglemergeelem1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/movenodes.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/moving_nodes1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/moving_nodes2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/netgen2d.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/number_of_layers.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/orientaation1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/patternmapping1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/patternmapping2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/projection_1d.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/projection_2d.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/projection_3d.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/remove.gif [new file with mode: 0644]
doc/salome/gui/SMESH/images/remove_elements1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/remove_elements2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/remove_elements_icon.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/remove_nodes1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/remove_nodes2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/removeelements.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/removenodes.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/renumberelements.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/renumbernodes.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/revolution1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/revolution2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/rotation.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/rotation1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/rotation2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/selectionfilterlibrary.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/sewing1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/sewing2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/sewing3.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/sewing4.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/smoothing.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/smoothing1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/smoothing2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/sort.gif [new file with mode: 0644]
doc/salome/gui/SMESH/images/straight_after.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/straight_before.png [new file with mode: 0644]
doc/salome/gui/SMESH/images/symmetry1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/symmetry2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/symmetry3.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/translation1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/translation2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/union_groups1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/union_groups2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/union_groups3.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/uniongroups.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/unionoftwotriangles.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/uniting_a_set_of_triangles1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/uniting_a_set_of_triangles2.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/uniting_two_triangles1.png [new file with mode: 0755]
doc/salome/gui/SMESH/images/uniting_two_triangles2.png [new file with mode: 0755]
doc/salome/gui/SMESH/index.htm [deleted file]
doc/salome/gui/SMESH/index_csh.htm [deleted file]
doc/salome/gui/SMESH/index_rhc.htm [deleted file]
doc/salome/gui/SMESH/input/1d_meshing_hypo.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/2d_meshing_hypo.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/about_hypo.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/about_meshes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/about_quality_controls.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/adding_nodes_and_elements.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/adding_quadratic_elements.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/additional_hypo.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/area.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/aspect_ratio.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/aspect_ratio_3d.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/basic_meshing_algos.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/borders_at_multi_connection.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/borders_at_multi_connection_2d.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/building_compounds.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/changing_orientation_of_elements.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/clipping.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/constructing_groups_of_specific_elements.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/constructing_meshes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/constructing_submeshes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/convert_to_from_quadratic_mesh.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/creating_groups.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/creating_meshes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/cutting_quadrangles.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/defining_algos.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/defining_hypo.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/deleting_groups.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/diagonal_inversion_of_elements.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/display_entity.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/display_mode.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/editing_groups.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/editing_meshes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/extrusion.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/extrusion_along_path.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/free_borders.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/free_edges.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/grouping_elements.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/importing_exporting_meshes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/index.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/introduction_to_mesh.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/introduction_to_mesh_python.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/length.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/length_2d.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/max_element_volume_hypo.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/merging_elements.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/merging_nodes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/mesh_infos.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/mesh_through_point.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/minimum_angle.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/modifying_meshes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/moving_nodes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/netgen_2d_3d_hypo.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/numbering.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/pattern_mapping.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/prism_3d_algo.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/projection_algos.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/quality_controls.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/radial_prism_algo.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/removing_nodes_and_elements.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/renumbering_nodes_and_elements.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/revolution.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/rotation.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/running_mesh_module.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/segments_around_vertex_algo.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/selection_filter_library.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/sewing_meshes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/skew.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/smeshpy_interface.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/smoothing.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/symmetry.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/taper.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/transforming_meshes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/translation.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/transparency.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/tui_creating_meshes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/tui_grouping_elements.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/tui_modifying_meshes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/tui_quality_controls.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/tui_scripts.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/tui_transforming_meshes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/tui_viewing_meshes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/uniting_set_of_triangles.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/uniting_two_triangles.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/using_operations_on_groups.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/viewing_meshes.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/viewing_meshes_overview.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/volume.doc [new file with mode: 0644]
doc/salome/gui/SMESH/input/warping.doc [new file with mode: 0644]
doc/salome/gui/SMESH/length.htm [deleted file]
doc/salome/gui/SMESH/merge_elements.htm [deleted file]
doc/salome/gui/SMESH/mesh.htm [deleted file]
doc/salome/gui/SMESH/mesh_through_point.htm [deleted file]
doc/salome/gui/SMESH/modifying_meshes.htm [deleted file]
doc/salome/gui/SMESH/netgen_2d_and_3d_hypotheses.htm [deleted file]
doc/salome/gui/SMESH/note1.gif [deleted file]
doc/salome/gui/SMESH/pattern_mapping.htm [deleted file]
doc/salome/gui/SMESH/pics/dialog.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/eleminfo1.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/eleminfo2.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/mergeelems.png
doc/salome/gui/SMESH/presentation.htm [deleted file]
doc/salome/gui/SMESH/prism_3d_algorithm.htm [deleted file]
doc/salome/gui/SMESH/projection_algorithms.htm [deleted file]
doc/salome/gui/SMESH/quality_controls.htm [deleted file]
doc/salome/gui/SMESH/radial_prism.htm [deleted file]
doc/salome/gui/SMESH/revolution.htm [deleted file]
doc/salome/gui/SMESH/segments_around_vertex_algorithm.htm [deleted file]
doc/salome/gui/SMESH/selection_filter_library.htm [deleted file]
doc/salome/gui/SMESH/smesh.log [deleted file]
doc/salome/gui/SMESH/smesh.py_introduction.htm [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Algorithm.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Algorithm__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__CompositeSegment.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__CompositeSegment__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Hexahedron.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Hexahedron__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Netgen.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Netgen__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Prism3D.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Prism3D__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection1D.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection1D__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection2D.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection2D__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection3D.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection3D__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Quadrangle.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Quadrangle__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__RadialPrism3D.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__RadialPrism3D__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Segment.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Segment__Python.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Segment__Python__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Segment__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Tetrahedron.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Tetrahedron__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Triangle.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Triangle__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1smeshDC.html [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1smeshDC__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Algorithm.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Algorithm__inherit__graph.jpg [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__CompositeSegment.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__CompositeSegment__inherit__graph.jpg [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron__inherit__graph.jpg [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Netgen.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Netgen__inherit__graph.jpg [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Prism3D.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Prism3D__inherit__graph.jpg [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection1D.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection1D__inherit__graph.jpg [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection2D.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection2D__inherit__graph.jpg [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection3D.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection3D__inherit__graph.jpg [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Quadrangle.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Quadrangle__inherit__graph.jpg [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__RadialPrism3D.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__RadialPrism3D__inherit__graph.jpg [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__Python.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__Python__inherit__graph.jpg [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__inherit__graph.jpg [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Tetrahedron.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Tetrahedron__inherit__graph.jpg [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Triangle.html [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Triangle__inherit__graph.jpg [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/namespacesmesh.html
doc/salome/gui/SMESH/smeshpy_doc/namespacesmeshDC.html [new file with mode: 0644]
doc/salome/gui/SMESH/static/doxygen.css [new file with mode: 0755]
doc/salome/gui/SMESH/static/footer.html [new file with mode: 0755]
doc/salome/gui/SMESH/static/header.html [new file with mode: 0755]
doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg [deleted file]
doc/salome/gui/SMESH/transforming_meshes.htm [deleted file]
doc/salome/gui/SMESH/transparency.htm [deleted file]
doc/salome/gui/SMESH/viewing_meshes.htm [deleted file]
doc/salome/gui/SMESH/volume.htm [deleted file]
doc/salome/gui/SMESH/webhelp.cab [deleted file]
doc/salome/gui/SMESH/webhelp.jar [deleted file]
doc/salome/gui/SMESH/whcsh_home.htm [deleted file]
doc/salome/gui/SMESH/whcshdata.htm [deleted file]
doc/salome/gui/SMESH/whd_dpns.htm [deleted file]
doc/salome/gui/SMESH/whd_hide0.gif [deleted file]
doc/salome/gui/SMESH/whd_hide1.gif [deleted file]
doc/salome/gui/SMESH/whd_hide2.gif [deleted file]
doc/salome/gui/SMESH/whd_next0.gif [deleted file]
doc/salome/gui/SMESH/whd_next1.gif [deleted file]
doc/salome/gui/SMESH/whd_next2.gif [deleted file]
doc/salome/gui/SMESH/whd_nvp10.htm [deleted file]
doc/salome/gui/SMESH/whd_nvp20.htm [deleted file]
doc/salome/gui/SMESH/whd_prev0.gif [deleted file]
doc/salome/gui/SMESH/whd_prev1.gif [deleted file]
doc/salome/gui/SMESH/whd_prev2.gif [deleted file]
doc/salome/gui/SMESH/whd_show0.gif [deleted file]
doc/salome/gui/SMESH/whd_show1.gif [deleted file]
doc/salome/gui/SMESH/whd_show2.gif [deleted file]
doc/salome/gui/SMESH/whd_sync0.gif [deleted file]
doc/salome/gui/SMESH/whd_sync1.gif [deleted file]
doc/salome/gui/SMESH/whd_sync2.gif [deleted file]
doc/salome/gui/SMESH/whd_tab0.gif [deleted file]
doc/salome/gui/SMESH/whd_tab1.gif [deleted file]
doc/salome/gui/SMESH/whd_tab2.gif [deleted file]
doc/salome/gui/SMESH/whd_tab3.gif [deleted file]
doc/salome/gui/SMESH/whd_tab4.gif [deleted file]
doc/salome/gui/SMESH/whd_tab5.gif [deleted file]
doc/salome/gui/SMESH/whd_tab6.gif [deleted file]
doc/salome/gui/SMESH/whd_tab7.gif [deleted file]
doc/salome/gui/SMESH/whd_tab8.gif [deleted file]
doc/salome/gui/SMESH/whd_tabs.htm [deleted file]
doc/salome/gui/SMESH/whd_toc1.gif [deleted file]
doc/salome/gui/SMESH/whd_toc2.gif [deleted file]
doc/salome/gui/SMESH/whd_toc3.gif [deleted file]
doc/salome/gui/SMESH/whd_toc4.gif [deleted file]
doc/salome/gui/SMESH/whd_topic.xml [deleted file]
doc/salome/gui/SMESH/whd_wbsh0.gif [deleted file]
doc/salome/gui/SMESH/whd_wbsh1.gif [deleted file]
doc/salome/gui/SMESH/whd_wbsh2.gif [deleted file]
doc/salome/gui/SMESH/whfbody.htm [deleted file]
doc/salome/gui/SMESH/whfdhtml.htm [deleted file]
doc/salome/gui/SMESH/whfform.htm [deleted file]
doc/salome/gui/SMESH/whfhost.js [deleted file]
doc/salome/gui/SMESH/whform.js [deleted file]
doc/salome/gui/SMESH/whframes.js [deleted file]
doc/salome/gui/SMESH/whgbody.htm [deleted file]
doc/salome/gui/SMESH/whgdef.htm [deleted file]
doc/salome/gui/SMESH/whgdhtml.htm [deleted file]
doc/salome/gui/SMESH/whghost.js [deleted file]
doc/salome/gui/SMESH/whhost.js [deleted file]
doc/salome/gui/SMESH/whibody.htm [deleted file]
doc/salome/gui/SMESH/whidhtml.htm [deleted file]
doc/salome/gui/SMESH/whiform.htm [deleted file]
doc/salome/gui/SMESH/whihost.js [deleted file]
doc/salome/gui/SMESH/whlang.js [deleted file]
doc/salome/gui/SMESH/whmozemu.js [deleted file]
doc/salome/gui/SMESH/whmsg.js [deleted file]
doc/salome/gui/SMESH/whnjs.htm [deleted file]
doc/salome/gui/SMESH/whphost.js [deleted file]
doc/salome/gui/SMESH/whproj.htm [deleted file]
doc/salome/gui/SMESH/whproj.js [deleted file]
doc/salome/gui/SMESH/whproj.xml [deleted file]
doc/salome/gui/SMESH/whproxy.js [deleted file]
doc/salome/gui/SMESH/whres.xml [deleted file]
doc/salome/gui/SMESH/whskin_blank.htm [deleted file]
doc/salome/gui/SMESH/whskin_homepage.htm [deleted file]
doc/salome/gui/SMESH/whskin_info.htm [deleted file]
doc/salome/gui/SMESH/whskin_pickup.htm [deleted file]
doc/salome/gui/SMESH/whskin_tw.htm [deleted file]
doc/salome/gui/SMESH/whstart.js [deleted file]
doc/salome/gui/SMESH/whstub.js [deleted file]
doc/salome/gui/SMESH/whtdhtml.htm [deleted file]
doc/salome/gui/SMESH/whthost.js [deleted file]
doc/salome/gui/SMESH/whtopic.js [deleted file]
doc/salome/gui/SMESH/whutils.js [deleted file]
doc/salome/gui/SMESH/whver.js [deleted file]
doc/salome/tui/Makefile.am
doc/salome/tui/SMESH/doxyfile.in
idl/SMESH_BasicHypothesis.idl
idl/SMESH_Gen.idl
idl/SMESH_Group.idl
idl/SMESH_Mesh.idl
idl/SMESH_MeshEditor.idl
resources/Makefile.am
resources/SMESHCatalog.xml.in
resources/SMESH_en.xml
resources/SalomeApp.xml
resources/StdMeshers.xml
resources/mesh_tree_mesh_partial.png
resources/mesh_whatis.png [new file with mode: 0755]
src/DriverMED/DriverMED_Family.cxx
src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx
src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx
src/DriverMED/DriverMED_W_SMESHDS_Mesh.h
src/DriverUNV/Makefile.am
src/DriverUNV/UNV2417_Structure.cxx
src/MEFISTO2/aptrte.cxx
src/MEFISTO2/aptrte.h
src/Makefile.am
src/OBJECT/SMESH_Actor.cxx
src/OBJECT/SMESH_Object.cxx
src/OBJECT/SMESH_Object.h
src/OBJECT/SMESH_ObjectDef.h
src/SMDS/Makefile.am
src/SMDS/SMDSAbs_ElementType.hxx
src/SMDS/SMDS_Iterator.hxx
src/SMDS/SMDS_MemoryLimit.cxx [new file with mode: 0644]
src/SMDS/SMDS_Mesh.cxx
src/SMDS/SMDS_Mesh.hxx
src/SMDS/SMDS_MeshGroup.cxx
src/SMDS/SMDS_MeshInfo.hxx [new file with mode: 0644]
src/SMDS/SMDS_VolumeTool.cxx
src/SMDS/SMDS_VolumeTool.hxx
src/SMDS/SMESH_SMDS.hxx
src/SMESH/SMESH_0D_Algo.hxx
src/SMESH/SMESH_2D_Algo.cxx
src/SMESH/SMESH_Algo.cxx
src/SMESH/SMESH_Algo.hxx
src/SMESH/SMESH_Block.cxx
src/SMESH/SMESH_Block.hxx
src/SMESH/SMESH_Gen.cxx
src/SMESH/SMESH_Gen.hxx
src/SMESH/SMESH_Group.hxx
src/SMESH/SMESH_HypoFilter.hxx
src/SMESH/SMESH_Mesh.cxx
src/SMESH/SMESH_Mesh.hxx
src/SMESH/SMESH_MeshEditor.cxx
src/SMESH/SMESH_MeshEditor.hxx
src/SMESH/SMESH_MesherHelper.cxx
src/SMESH/SMESH_MesherHelper.hxx
src/SMESH/SMESH_Pattern.cxx
src/SMESH/SMESH_Pattern.hxx
src/SMESH/SMESH_subMesh.cxx
src/SMESH/SMESH_subMesh.hxx
src/SMESHClient/Makefile.am
src/SMESHDS/SMESHDS_Document.cxx
src/SMESHDS/SMESHDS_Group.cxx
src/SMESHDS/SMESHDS_Group.hxx
src/SMESHDS/SMESHDS_GroupBase.cxx
src/SMESHDS/SMESHDS_GroupBase.hxx
src/SMESHDS/SMESHDS_GroupOnGeom.cxx
src/SMESHDS/SMESHDS_GroupOnGeom.hxx
src/SMESHDS/SMESHDS_Mesh.cxx
src/SMESHDS/SMESHDS_SubMesh.cxx
src/SMESHDS/SMESHDS_SubMesh.hxx
src/SMESHDS/SMESH_SMESHDS.hxx
src/SMESHFiltersSelection/Makefile.am
src/SMESHFiltersSelection/SMESH_NumberFilter.cxx
src/SMESHFiltersSelection/SMESH_NumberFilter.hxx
src/SMESHFiltersSelection/SMESH_TypeFilter.cxx
src/SMESHGUI/Makefile.am
src/SMESHGUI/SMESHGUI.cxx
src/SMESHGUI/SMESHGUI.h
src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx
src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx
src/SMESHGUI/SMESHGUI_BuildCompoundDlg.cxx
src/SMESHGUI/SMESHGUI_ClippingDlg.cxx
src/SMESHGUI/SMESHGUI_ComputeDlg.cxx
src/SMESHGUI/SMESHGUI_ComputeDlg.h
src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx
src/SMESHGUI/SMESHGUI_CreatePatternDlg.cxx
src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.cxx
src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx
src/SMESHGUI/SMESHGUI_EditMeshDlg.cxx
src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx
src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.h
src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx
src/SMESHGUI/SMESHGUI_ExtrusionDlg.h
src/SMESHGUI/SMESHGUI_FilterDlg.cxx
src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx
src/SMESHGUI/SMESHGUI_GroupDlg.cxx
src/SMESHGUI/SMESHGUI_GroupDlg.h
src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx
src/SMESHGUI/SMESHGUI_Hypotheses.cxx
src/SMESHGUI/SMESHGUI_Hypotheses.h
src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx
src/SMESHGUI/SMESHGUI_HypothesesUtils.h
src/SMESHGUI/SMESHGUI_MakeNodeAtPointDlg.cxx
src/SMESHGUI/SMESHGUI_MergeNodesDlg.cxx
src/SMESHGUI/SMESHGUI_MeshDlg.cxx
src/SMESHGUI/SMESHGUI_MeshDlg.h
src/SMESHGUI/SMESHGUI_MeshInfosDlg.cxx
src/SMESHGUI/SMESHGUI_MeshOp.cxx
src/SMESHGUI/SMESHGUI_MeshOp.h
src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx
src/SMESHGUI/SMESHGUI_MeshUtils.cxx
src/SMESHGUI/SMESHGUI_MeshUtils.h
src/SMESHGUI/SMESHGUI_MoveNodesDlg.cxx
src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx
src/SMESHGUI/SMESHGUI_NodesDlg.cxx
src/SMESHGUI/SMESHGUI_RemoveElementsDlg.cxx
src/SMESHGUI/SMESHGUI_RemoveNodesDlg.cxx
src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx
src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx
src/SMESHGUI/SMESHGUI_RevolutionDlg.h
src/SMESHGUI/SMESHGUI_RotationDlg.cxx
src/SMESHGUI/SMESHGUI_RotationDlg.h
src/SMESHGUI/SMESHGUI_Selection.cxx
src/SMESHGUI/SMESHGUI_Selection.h
src/SMESHGUI/SMESHGUI_SewingDlg.cxx
src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx
src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx
src/SMESHGUI/SMESHGUI_SpinBox.h
src/SMESHGUI/SMESHGUI_StandardMeshInfosDlg.cxx
src/SMESHGUI/SMESHGUI_Swig.cxx
src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx
src/SMESHGUI/SMESHGUI_SymmetryDlg.h
src/SMESHGUI/SMESHGUI_TranslationDlg.cxx
src/SMESHGUI/SMESHGUI_TranslationDlg.h
src/SMESHGUI/SMESHGUI_TransparencyDlg.cxx
src/SMESHGUI/SMESHGUI_VTKUtils.cxx
src/SMESHGUI/SMESHGUI_VTKUtils.h
src/SMESHGUI/SMESHGUI_WhatIsDlg.cxx [new file with mode: 0755]
src/SMESHGUI/SMESHGUI_WhatIsDlg.h [new file with mode: 0755]
src/SMESHGUI/SMESHGUI_XmlHandler.cxx
src/SMESHGUI/SMESH_images.po
src/SMESHGUI/SMESH_msg_en.po
src/SMESH_I/Makefile.am
src/SMESH_I/SMESH.hxx
src/SMESH_I/SMESH_0D_Algo_i.hxx
src/SMESH_I/SMESH_2smeshpy.cxx
src/SMESH_I/SMESH_2smeshpy.hxx
src/SMESH_I/SMESH_DumpPython.cxx
src/SMESH_I/SMESH_Filter_i.cxx
src/SMESH_I/SMESH_Gen_i.cxx
src/SMESH_I/SMESH_Gen_i.hxx
src/SMESH_I/SMESH_Gen_i_1.cxx
src/SMESH_I/SMESH_Group_i.cxx
src/SMESH_I/SMESH_Group_i.hxx
src/SMESH_I/SMESH_Hypothesis_i.cxx
src/SMESH_I/SMESH_MeshEditor_i.cxx
src/SMESH_I/SMESH_MeshEditor_i.hxx
src/SMESH_I/SMESH_Mesh_i.cxx
src/SMESH_I/SMESH_Mesh_i.hxx
src/SMESH_I/SMESH_Pattern_i.cxx
src/SMESH_I/SMESH_PythonDump.hxx
src/SMESH_I/SMESH_subMesh_i.cxx
src/SMESH_I/SMESH_subMesh_i.hxx
src/SMESH_SWIG/Makefile.am
src/SMESH_SWIG/ex24_cylinder.py [new file with mode: 0644]
src/SMESH_SWIG/libSMESH_Swig.i [deleted file]
src/SMESH_SWIG/smesh.py
src/SMESH_SWIG/smeshDC.py [new file with mode: 0644]
src/SMESH_SWIG_WITHIHM/Makefile.am [new file with mode: 0644]
src/SMESH_SWIG_WITHIHM/libSMESH_Swig.i [new file with mode: 0644]
src/StdMeshers/Makefile.am
src/StdMeshers/StdMeshers_CompositeSegment_1D.cxx
src/StdMeshers/StdMeshers_CompositeSegment_1D.hxx
src/StdMeshers/StdMeshers_Distribution.cxx
src/StdMeshers/StdMeshers_FaceSide.cxx
src/StdMeshers/StdMeshers_FaceSide.hxx
src/StdMeshers/StdMeshers_Hexa_3D.cxx
src/StdMeshers/StdMeshers_Hexa_3D.hxx
src/StdMeshers/StdMeshers_LocalLength.cxx
src/StdMeshers/StdMeshers_LocalLength.hxx
src/StdMeshers/StdMeshers_MEFISTO_2D.cxx
src/StdMeshers/StdMeshers_NumberOfSegments.cxx
src/StdMeshers/StdMeshers_Penta_3D.cxx
src/StdMeshers/StdMeshers_Prism_3D.cxx
src/StdMeshers/StdMeshers_Prism_3D.hxx
src/StdMeshers/StdMeshers_ProjectionSource1D.cxx
src/StdMeshers/StdMeshers_ProjectionSource1D.hxx
src/StdMeshers/StdMeshers_ProjectionSource2D.cxx
src/StdMeshers/StdMeshers_ProjectionSource2D.hxx
src/StdMeshers/StdMeshers_ProjectionUtils.cxx
src/StdMeshers/StdMeshers_ProjectionUtils.hxx
src/StdMeshers/StdMeshers_Projection_1D.cxx
src/StdMeshers/StdMeshers_Projection_2D.cxx
src/StdMeshers/StdMeshers_Projection_3D.cxx
src/StdMeshers/StdMeshers_Propagation.cxx
src/StdMeshers/StdMeshers_Propagation.hxx
src/StdMeshers/StdMeshers_QuadranglePreference.cxx
src/StdMeshers/StdMeshers_Quadrangle_2D.cxx
src/StdMeshers/StdMeshers_Quadrangle_2D.hxx
src/StdMeshers/StdMeshers_RadialPrism_3D.cxx
src/StdMeshers/StdMeshers_Regular_1D.cxx
src/StdMeshers/StdMeshers_Regular_1D.hxx
src/StdMeshers/StdMeshers_SegmentAroundVertex_0D.hxx
src/StdMeshers/StdMeshers_SegmentLengthAroundVertex.hxx
src/StdMeshers/StdMeshers_UseExisting_1D2D.cxx [new file with mode: 0644]
src/StdMeshers/StdMeshers_UseExisting_1D2D.hxx [new file with mode: 0644]
src/StdMeshersGUI/SMESH_StdMeshersGUI.hxx
src/StdMeshersGUI/StdMeshersGUI_DistrPreview.cxx
src/StdMeshersGUI/StdMeshersGUI_LayerDistributionParamWdg.cxx
src/StdMeshersGUI/StdMeshersGUI_LayerDistributionParamWdg.h
src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.cxx
src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.cxx
src/StdMeshersGUI/StdMeshers_msg_en.po
src/StdMeshers_I/Makefile.am
src/StdMeshers_I/StdMeshers_LocalLength_i.cxx
src/StdMeshers_I/StdMeshers_LocalLength_i.hxx
src/StdMeshers_I/StdMeshers_NumberOfSegments_i.cxx
src/StdMeshers_I/StdMeshers_ProjectionSource1D_i.cxx
src/StdMeshers_I/StdMeshers_ProjectionSource1D_i.hxx
src/StdMeshers_I/StdMeshers_UseExisting_1D2D_i.cxx [new file with mode: 0644]
src/StdMeshers_I/StdMeshers_UseExisting_1D2D_i.hxx [new file with mode: 0644]
src/StdMeshers_I/StdMeshers_i.cxx

index f1dbf22f10c840ceb53871457dd415d2429bf674..5518cfa24e8dc98c020cecf2f234e14d781686f0 100644 (file)
@@ -28,7 +28,9 @@ if test "x$SMESH_DIR" == "x" ; then
    else
 
     # search SMESH binaries in PATH variable
-      AC_PATH_PROG(TEMP, libSMESH_Swig.py)
+      #CCRTAC_PATH_PROG(TEMP, libSMESH_Swig.py)
+      #AC_PATH_PROG(TEMP, MED_Test)
+      AC_PATH_PROG(TEMP, smesh.py)
       if test "x$TEMP" != "x" ; then
          SMESH_BIN_DIR=`dirname $TEMP`
          SMESH_DIR=`dirname $SMESH_BIN_DIR`
@@ -38,7 +40,9 @@ if test "x$SMESH_DIR" == "x" ; then
 # 
 fi
 
-if test -f ${SMESH_DIR}/bin/salome/libSMESH_Swig.py ; then
+#CCRTif test -f ${SMESH_DIR}/bin/salome/libSMESH_Swig.py ; then
+#if test -f ${SMESH_DIR}/bin/salome/MED_Test ; then
+if test -f ${SMESH_DIR}/bin/salome/smesh.py ; then
    SMesh_ok=yes
    AC_MSG_RESULT(Using SMesh module distribution in ${SMESH_DIR})
 
index 9a1d6494b8b4fef37cbbd17367da8e40839e8603..66f991e577ff9029fdead56e19f63cec9b04581c 100755 (executable)
@@ -12,6 +12,7 @@
 
 ORIG_DIR=`pwd`
 CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"`
+SMESH_WITH_GUI="yes"
 
 ########################################################################
 # Test if the KERNEL_ROOT_DIR is set correctly
@@ -28,12 +29,26 @@ fi
 #    exit
 #fi
 
+for option
+do
+  case $option in
+      -with-ihm | --with-ihm)
+          SMESH_WITH_GUI="yes"
+          break;;
+      -without-ihm | --without-ihm | -with-ihm=no | --with-ihm=no)
+          SMESH_WITH_GUI="no"
+          break;;
+  esac
+done
+
 ########################################################################
 # Test if the GUI_ROOT_DIR is set correctly
 
-if test ! -d "${GUI_ROOT_DIR}"; then
-    echo "failed : GUI_ROOT_DIR variable is not correct !"
-    exit
+if test ${SMESH_WITH_GUI} = yes; then
+    if test ! -d "${GUI_ROOT_DIR}"; then
+        echo "failed : GUI_ROOT_DIR variable is not correct !"
+        exit
+    fi
 fi
 
 ########################################################################
@@ -56,23 +71,28 @@ fi
 cd ${CONF_DIR}
 ABS_CONF_DIR=`pwd`
 
+#######################################################################
+# Update configure.ac script: to set SMESH_WITH_GUI variable
+sed -e s/SMESH_WITH_GUI=[a-z]*/SMESH_WITH_GUI=${SMESH_WITH_GUI}/g configure.ac > configure.tmp
+mv -f configure.tmp configure.ac
+
 mkdir -p salome_adm/unix/config_files
-cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files/* salome_adm/unix/config_files
-cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/pythonbe.py salome_adm/unix
+#cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files/* salome_adm/unix/config_files
+#cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/pythonbe.py salome_adm/unix
 
 cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/SALOMEconfig.h.in salome_adm/unix
 
-cp -f ${GUI_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files
-cp -f ${MED_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files
-cp -f ${GEOM_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files
+#cp -f ${GUI_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files
+#cp -f ${MED_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files
+#cp -f ${GEOM_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files
 
 # remove KERNEL deprecated configure files
-for deprecated in ac_cc_warnings.m4 ac_cxx_partial_specialization.m4 \
-  check_mico.m4 config.guess ltmain.sh ac_cxx_bool.m4 ltconfig ac_cxx_typename.m4 \
-    check_pthreads.m4 config.sub libtool.m4 ac_cxx_mutable.m4 missing
-    do
-      rm -f salome_adm/unix/config_files/${deprecated}
-      done
+#for deprecated in ac_cc_warnings.m4 ac_cxx_partial_specialization.m4 \
+#  check_mico.m4 config.guess ltmain.sh ac_cxx_bool.m4 ltconfig ac_cxx_typename.m4 \
+#    check_pthreads.m4 config.sub libtool.m4 ac_cxx_mutable.m4 missing
+#    do
+#      rm -f salome_adm/unix/config_files/${deprecated}
+#      done
       
 
 # ____________________________________________________________________
@@ -84,7 +104,18 @@ for deprecated in ac_cc_warnings.m4 ac_cxx_partial_specialization.m4 \
 #   autom4te.cache (directory)
 echo "====================================================== aclocal"
 
-aclocal -I adm_local/unix/config_files -I salome_adm/unix/config_files  || exit 1
+if test ${SMESH_WITH_GUI} = yes; then
+  aclocal -I adm_local/unix/config_files \
+          -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \
+         -I ${GUI_ROOT_DIR}/adm_local/unix/config_files \
+         -I ${MED_ROOT_DIR}/adm_local/unix/config_files \
+         -I ${GEOM_ROOT_DIR}/adm_local/unix/config_files || exit 1
+else
+  aclocal -I adm_local/unix/config_files \
+          -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \
+         -I ${MED_ROOT_DIR}/adm_local/unix/config_files \
+         -I ${GEOM_ROOT_DIR}/adm_local/unix/config_files || exit 1
+fi
 
 # ____________________________________________________________________
 # libtoolize creates some configuration files (ltmain.sh,
index b4585ccc731cae29107e9678c77b540590d8038e..63eca7ec2128e5be8427033d338a0b710db85b6b 100644 (file)
@@ -9,18 +9,13 @@
 #
 
 
-AC_INIT([Salome2 Project SMESH module], [4.0.0], [gboulant@CS], [salome])
+AC_INIT([Salome2 Project SMESH module], [4.1.1], [webmaster.salome@opencascade.com], [salome])
 AC_CONFIG_AUX_DIR(salome_adm/unix/config_files)
 AC_CANONICAL_HOST
 AC_CANONICAL_TARGET
 AM_INIT_AUTOMAKE
 
-PACKAGE=salome
-AC_SUBST(PACKAGE)
-
-VERSION=4.0.0
-XVERSION=0x040000
-AC_SUBST(VERSION)
+XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'`
 AC_SUBST(XVERSION)
 
 # set up MODULE_NAME variable for dynamic construction of directories (resources, etc.)
@@ -199,14 +194,30 @@ echo
 
 ENABLE_PTHREADS
 
-if test "x${GUI_DISABLE_CORBA}" != "xyes" ; then
+SMESH_WITH_GUI=yes
+
+AM_CONDITIONAL(SMESH_ENABLE_GUI, [test "${SMESH_WITH_GUI}" = "yes"])
+
+if test "${SMESH_WITH_GUI}" = "yes"; then
+
 echo
 echo ---------------------------------------------
-echo testing omniORB
+echo testing msg2qm
 echo ---------------------------------------------
 echo
 
-CHECK_OMNIORB
+CHECK_MSG2QM
+
+fi
+
+if test "x${GUI_DISABLE_CORBA}" != "xyes" ; then
+    echo
+    echo ---------------------------------------------
+    echo testing omniORB
+    echo ---------------------------------------------
+    echo
+
+    CHECK_OMNIORB
 
 dnl echo
 dnl echo ---------------------------------------------
@@ -216,58 +227,74 @@ dnl echo
 
 dnl CHECK_MICO
 
-echo
-echo ---------------------------------------------
-echo default ORB : omniORB
-echo ---------------------------------------------
-echo
+    echo
+    echo ---------------------------------------------
+    echo default ORB : omniORB
+    echo ---------------------------------------------
+    echo
 
-DEFAULT_ORB=omniORB
+    DEFAULT_ORB=omniORB
 
-echo
-echo ---------------------------------------------
-echo testing Corba
-echo ---------------------------------------------
-echo
+    echo
+    echo ---------------------------------------------
+    echo testing Corba
+    echo ---------------------------------------------
+    echo
 
-CHECK_CORBA
+    CHECK_CORBA
 
-AC_SUBST_FILE(CORBA)
-corba=make_$ORB
-CORBA=adm_local/unix/$corba
+    AC_SUBST_FILE(CORBA)
+    corba=make_$ORB
+    CORBA=adm_local/unix/$corba
 
 fi
-echo
-echo ---------------------------------------------
-echo testing openGL
-echo ---------------------------------------------
-echo
 
-CHECK_OPENGL
 
-echo
-echo ---------------------------------------------
-echo testing QT
-echo ---------------------------------------------
-echo
+if test "${SMESH_WITH_GUI}" = "yes"; then
+    echo
+    echo ---------------------------------------------
+    echo testing openGL
+    echo ---------------------------------------------
+    echo
 
-CHECK_QT
+    CHECK_OPENGL
 
-echo
-echo ---------------------------------------------
-echo testing msg2qm
-echo ---------------------------------------------
-echo
+    echo
+    echo ---------------------------------------------
+    echo testing QT
+    echo ---------------------------------------------
+    echo
 
-CHECK_MSG2QM
+    CHECK_QT
 
-echo
-echo ---------------------------------------------
-echo testing VTK
-echo ---------------------------------------------
-echo
+    echo
+    echo ---------------------------------------------
+    echo testing VTK
+    echo ---------------------------------------------
+    echo
+
+    CHECK_VTK
 
-CHECK_VTK
+    echo
+    echo ---------------------------------------------
+    echo Testing GUI
+    echo ---------------------------------------------
+    echo
+
+    CHECK_SALOME_GUI
+
+    echo
+    echo ---------------------------------------------
+    echo Testing full GUI
+    echo ---------------------------------------------
+    echo
+
+    CHECK_CORBA_IN_GUI
+    if test "x${CORBA_IN_GUI}" != "xyes"; then
+      echo "failed : For configure SMESH module necessary full GUI !"
+      exit
+    fi
+fi
 
 echo
 echo ---------------------------------------------
@@ -293,6 +320,8 @@ echo
 
 CHECK_CAS
 
+if test "${SMESH_WITH_GUI}" = "yes"; then
+
 echo
 echo ---------------------------------------------
 echo Testing qwt
@@ -301,6 +330,8 @@ echo
 
 CHECK_QWT
 
+fi
+
 echo
 echo ---------------------------------------------
 echo Testing html generators
@@ -309,26 +340,6 @@ echo
 
 CHECK_HTML_GENERATORS
 
-echo
-echo ---------------------------------------------
-echo Testing GUI
-echo ---------------------------------------------
-echo
-
-CHECK_SALOME_GUI
-
-echo
-echo ---------------------------------------------
-echo Testing full GUI
-echo ---------------------------------------------
-echo
-
-CHECK_CORBA_IN_GUI
-if test "x${CORBA_IN_GUI}" != "xyes"; then
-  echo "failed : For configure SMESH module necessary full GUI !"
-  exit
-fi
-
 echo
 echo ---------------------------------------------
 echo Testing Kernel
@@ -362,7 +373,13 @@ echo ---------------------------------------------
 echo
 
 echo Configure
+if test "${SMESH_WITH_GUI}" = "yes"; then
 variables="cc_ok fortran_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok omniORB_ok occ_ok doxygen_ok graphviz_ok qwt_ok Kernel_ok Geom_ok Med_ok"
+fi
+
+if test "${SMESH_WITH_GUI}" = "no"; then
+variables="cc_ok fortran_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok hdf5_ok omniORB_ok occ_ok doxygen_ok graphviz_ok Kernel_ok Geom_ok Med_ok"
+fi
 
 for var in $variables
 do
@@ -443,6 +460,8 @@ AC_OUTPUT([ \
   ./doc/Makefile \
   ./doc/salome/Makefile \
   ./doc/salome/gui/Makefile \
+  ./doc/salome/gui/SMESH/doxyfile \
+  ./doc/salome/gui/SMESH/doxyfile_py \
   ./doc/salome/tui/Makefile \
   ./doc/salome/tui/SMESH/doxyfile \
   ./doc/salome/tui/SMESH/sources/static/tree.js \
@@ -463,6 +482,7 @@ AC_OUTPUT([ \
   ./src/SMESHGUI/Makefile \
   ./src/SMESH_I/Makefile \
   ./src/SMESH_SWIG/Makefile \
+  ./src/SMESH_SWIG_WITHIHM/Makefile \
   ./src/StdMeshers/Makefile \
   ./src/StdMeshersGUI/Makefile \
   ./src/StdMeshers_I/Makefile \
index f1bbb6dccbd138fa9ea9bd6d8d9f44237fa576d9..e7c5dc8ae64c8ee0633a31f198b7be7894ce7f65 100644 (file)
@@ -25,9 +25,16 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
 EXTRA_DIST+=SMESH
 
+doxygen=@DOXYGEN@
+
 usr_docs:
-       cp -fr $(srcdir)/SMESH ./
-       -find $(PWD) -name CVS -prune -exec rm -rf {} \;
+       cd ./SMESH; \
+       echo "Processing smeshDC.py file: "; \
+       $(doxygen) ./doxyfile_py; \
+       sed 's|../../../share/salome|$(top_srcdir)|' ./doxyfile > ./doxyfile1; \
+       mv -f doxyfile1 doxyfile; \
+       echo "Running doxygen in directory: "`pwd`; \
+       $(doxygen) ./doxyfile;
 
 docs: usr_docs
 
@@ -42,3 +49,10 @@ install-data-local: usr_docs
 
 uninstall-local:
        rm -rf $(docdir)/gui/SMESH
+
+docguidir=$(docdir)/gui/SMESH
+
+nodist_docgui_DATA= SMESH/doxyfile
+nodist_docgui_DATA+= SMESH/doxyfile_py
+EXTRA_DIST+= SMESH/doxyfile.in
+EXTRA_DIST+= SMESH/doxyfile_py.in
diff --git a/doc/salome/gui/SMESH/about_viewing_meshes.htm b/doc/salome/gui/SMESH/about_viewing_meshes.htm
deleted file mode 100755 (executable)
index fcddab5..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>About viewing meshes</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:25px; height:24px; border-style:none; }
-p.whs2 { font-weight:normal; }
-p.whs3 { margin-left:40px; }
-img_whs4 { border:none; width:404px; height:413px; border-style:none; }
-ul.whs5 { list-style:disc; }
-p.whs6 { font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nViewing meshes\nViewing meshes");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Viewing meshes</h1>
-
-<p>After definition of algorithms and hypotheses a new mesh is listed in 
- the Object Browser. Right-click on it and select <img src="image28.gif" width="25px" height="24px" border="0" class="img_whs1"> <span 
- style="font-weight: bold;"><B>Compute</B></span> - the mesh will be automatically 
- displayed in the <span style="font-weight: bold;"><B>VTK 3D Viewer.</B></span> 
- Alternatively click<span style="font-weight: bold;"><B> Display only</B></span> 
- to hide all other objects at the same time. </p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><span style="font-weight: bold;"><B>VTK 3D 
- Viewer</B></span> is detailly described in the documentation on <span style="font-weight: bold;"><B>GUI 
- module</B></span>.</p>
-
-<p>After the mesh has appeared in the Viewer, you can select it with left 
- mouse click and &nbsp;get 
- information about it, change its presentation parameters and access to 
- other useful options by right-clicking on the selected mesh<span style="font-weight: bold;"><B>.</B></span></p>
-
-<p>&nbsp;&nbsp;</p>
-
-<p class="whs3"><img src="image15.jpg" width="404px" height="413px" border="0" class="img_whs4"></p>
-
-<p>&nbsp;</p>
-
-<ul type="disc" class="whs5">
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Erase all</B></span> 
- &nbsp;- allows 
- to hide all objects in the viewer</p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Update</B></span> 
- - refreshes the presentation of your mesh in the Object Browser, applying 
- all recent changes.</p></li>
-       
-       <li class=kadov-p><p><a href="files/viewing_mesh_info.htm#advanced infos" style="font-weight: bold;">Advanced Mesh Infos</a> 
- - &nbsp;provides 
- more detailed information about the mesh. </p></li>
-       
-       <li class=kadov-p><p class="whs6"><a href="files/viewing_mesh_info.htm#standard_infos">Standard 
- Mesh Infos</a> - <span style="font-weight: normal;">provides basic information 
- about the mesh.</span></p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B><a href="files/displaying_nodes_numbers.htm">Numbering</a></B></span> 
- &nbsp;- allows 
- to display the ID numbers of all meshing elements or nodes composing your 
- mesh in the viewer.</p></li>
-       
-       <li class=kadov-p><p class="whs6"><a href="presentation.htm" style="font-weight: bold;">Display 
- Mode</a> - <span style="font-weight: normal;">allows to select between 
- Wireframe, Shading and Nodes presentation.</span></p></li>
-       
-       <li class=kadov-p><p><a href="display_entity.htm" style="font-weight: bold;">Display Entity</a> 
- - allows to display Faces, Edges or both. </p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Colors / Size</B></span> 
- - allows to select color and size of meshes.</p></li>
-       
-       <li class=kadov-p><p><a href="transparency.htm" style="font-weight: bold;">Transparency</a> 
- - allows to change the transparency of mesh elements.</p></li>
-       
-       <li class=kadov-p><p><a href="clipping.htm" style="font-weight: bold;">Clipping</a> - allows 
- to create cross-sections of the selected objects.</p></li>
-       
-       <li class=kadov-p><p><a href="files/about_quality_controls.htm" style="font-weight: bold;">Quality Controls</a> 
- - graphically presents various information about meshes.</p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Erase</B></span> 
- - allows to hide the selected mesh from the viewer. </p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Display Only</B></span> 
- -allows to display only the selected mesh, hiding all other from the viewer.</p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Dump view</B></span> 
- - exports an object from the viewer in bmp, png, jpg or jpeg image format. 
- </p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Change background</B></span> 
- - allows to redefine the background color. By default it is black. &nbsp;</p></li>
-</ul>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/adding_quadratic_nodes_and_elements.htm b/doc/salome/gui/SMESH/adding_quadratic_nodes_and_elements.htm
deleted file mode 100755 (executable)
index b4d5067..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Adding Quadratic Nodes and Elements</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-p.whs1 { margin-left:40px; }
-img_whs2 { border:none; width:148px; height:168px; border-style:none; }
-img_whs3 { border:none; width:332px; height:350px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nModifying meshes\nAdding quadratic elements");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Adding Quadratic Elements</h1>
-
-<p>MESH modules allows you to work with <span style="font-weight: bold;"><B>Quadratic 
- Elements</B></span>.</p>
-
-<p>Quadratic Edge in not a straight but a broken line and can be defined 
- by three points: first, middle and last. All more complex <span style="font-weight: bold;"><B>Quadratic 
- Elements</B></span> differ from ordinary ones in that they consist of Quadratic 
- Edges.</p>
-
-<p class=TODO
-       style="font-family: 'Arial Black', sans-serif; font-style: italic;">To 
- add a quadratic element to your mesh:</p>
-
-<p class="whs1">1. Select your mesh in the Object Browser 
- or in the 3D viewer.</p>
-
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification 
- </B></span>menu choose the <span style="font-weight: bold;"><B>Add </B></span>item 
- and select one of the following: </p>
-
-<p class="whs1"><img src="image152.gif" width="148px" height="168px" border="0" class="img_whs2"></p>
-
-<p class="whs1">To create any <span style="font-weight: bold;"><B>Quadratic 
- Element </B></span>specify the nodes which will form your triangle by selecting 
- them in the 3D viewer with pressed Shift button. Their numbers will appear 
- in the dialog box as <span style="font-weight: bold;"><B>Corner Nodes</B></span> 
- (alternatively you can just input numbers in this field without selection).The 
- edges formed by the corner nodes will appear in the table. To define the 
- middle nodes for each edge double-click on the respective field and input 
- the number of the node. All edges and the object formed by them will be 
- displayed in the Object browser. When all edges are defined you will be 
- able to click <span style="font-weight: bold;"><B>OK</B></span> or <span style="font-weight: bold;"><B>Apply</B></span> 
- button to add the element to the mesh. </p>
-
-<p class="whs1">&nbsp;<img src="pics/aqt.png" x-maintain-ratio="TRUE" width="332px" height="350px" border="0" class="img_whs3"></p>
-
-<p class="whs1"><span style="font-weight: bold;"><B>Reverse</B></span> 
- button for Quadratic Edges switches the first and the last nodes. <span 
- style="margin-left: 40px;">For all other elements it reverses the element. 
- </span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/aspect_ratio_3d.htm b/doc/salome/gui/SMESH/aspect_ratio_3d.htm
deleted file mode 100755 (executable)
index bd1d7dd..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Aspect ratio 3D</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:416px; height:385px; border-style:none; }
-img_whs2 { border:none; width:30px; height:30px; float:none; border-style:none; }
-ul.whs3 { list-style:disc; }
-img_whs4 { border:none; width:258px; height:246px; border-style:none; float:left; }
-img_whs5 { border:none; width:133px; height:56px; border-style:none; }
-img_whs6 { border:none; width:425px; height:192px; border-style:none; }
-img_whs7 { border:none; width:89px; height:32px; border-style:none; }
-img_whs8 { border:none; width:569px; height:386px; float:none; border-style:none; }
-p.whs9 { margin-left:40px; }
-img_whs10 { border:none; width:24px; height:26px; border-style:none; }
-p.whs11 { margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs11 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nQuality controls\nAspect ratio 3D");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Aspect ratio 3D</h1>
-
-<p><img src="image86.jpg" width="416px" height="385px" border="0" class="img_whs1"></p>
-
-<p>&nbsp;</p>
-
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> The Aspect Ratio 3D mesh quality criterion calculates 
- the same parameter as the <a href="files/aspect_ratio.htm">Aspect ratio</a> 
- criterion, but it is applied to 3D mesh elements: tetrahedrons, pentahedrons, 
- hexahedrons, etc. &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p><img src="image20.gif" width="258px" height="246px" align="left" border="0" class="img_whs4">The <span style="font-weight: bold;"><B>Aspect 
- Ratio</B></span> of a <span style="font-weight: bold;"><B>tetrahedron</B></span> 
- 3D element is calculated by the formula:</p></li>
-</ul>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p><img src="image19.gif" width="133px" height="56px" border="0" class="img_whs5">,</p>
-
-<p>&nbsp;</p>
-
-<p>where <span style="font-weight: bold; font-style: italic;"><I><B>S</B></I></span><span 
- style="font-weight: bold;
-               font-style: italic;
-               vertical-align: Sub;"><I><B>K</B></I></span> is the sum of surfaces of the faces 
- of &#1050; and <span style="font-weight: bold; font-style: italic;"><I><B>V</B></I></span><span 
- style="vertical-align: Sub;
-               font-weight: bold;
-               font-style: italic;"><I><B>K</B></I></span> is the volume of &#1050; :</p>
-
-<p>&nbsp;</p>
-
-<p><img src="image18.gif" width="425px" height="192px" border="0" class="img_whs6">T</p>
-
-<p>&nbsp;</p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p>Other element types like quadrangle, pentahedron 
- and hexahedron use the following formula:</p></li>
-</ul>
-
-<p><img src="image30.gif" width="89px" height="32px" border="0" class="img_whs7"> , where <span style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span 
- style="vertical-align: Sub;
-               font-weight: bold;
-               font-style: italic;"><I><B>i</B></I></span> represents the value of <span style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span 
- style="vertical-align: Sub;
-               font-weight: bold;
-               font-style: italic;"><I><B>k</B></I></span> for all possible simplexes (of the 
- same dimension as the element) that compose the element.</p>
-
-<p>For example, a hexahedron is split in 6 tetrahedrons, the <span style="font-weight: bold;"><B>Aspect 
- ratio 3D</B></span> is calculated for each of them, then the greatest <span 
- style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span style="vertical-align: Sub;
-       font-weight: bold;
-       font-style: italic;"><I><B>k</B></I></span> is considered to be the &nbsp;<span 
- style="font-weight: bold;"><B>Aspect ratio 3D</B></span> 
- criterion for the whole &nbsp;hexahedron.</p>
-
-<p><img src="pics/image139.gif" x-maintain-ratio="TRUE" width="569px" height="386px" border="0" class="img_whs8"></p>
-
-<p>&nbsp;</p>
-
-<p class=TODO>To apply the Aspect Ratio 3D quality criterion to your mesh:</p>
-
-<p class=TODO>&nbsp;</p>
-
-<p class="whs9">1. Display your mesh in the viewer.</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">2. Choose <span style="font-weight: bold;"><B>Controls 
- &gt; Aspect Ratio 3D </B></span>or click <img src="image144.gif" width="24px" height="26px" border="0" class="img_whs10"> button of the toolbar. 
- Your mesh will be displayed in the viewer with its elements colored according 
- to the applied mesh quality control criterion:</p>
-
-<p>&nbsp;</p>
-
-<p class="whs11"><span style="font-weight: bold;"><B>See Also</B></span> 
- a sample TUI Script of an <span style="font-weight: bold;"><B><a href="quality_controls.htm#bookmark11">Aspect 
- Ratio 3D</B></span> quality control</a> operation. &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/borders_at_multi-connection.htm b/doc/salome/gui/SMESH/borders_at_multi-connection.htm
deleted file mode 100755 (executable)
index 8ad86b5..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Borders at multi-connection</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-p.whs2 { margin-left:40px; }
-img_whs3 { border:none; width:223px; height:213px; border-style:none; }
-p.whs4 { margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs4 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nQuality controls\nBorders at multi-connection");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Borders at multi-connection</h1>
-
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This mesh quality control highlights borders of faces 
- consisting of edges belonging to several faces. The amount of faces is 
- specified by user.</p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><img src="image151.gif" width="223px" height="213px" border="0" class="img_whs3"></p>
-
-<p>&nbsp;</p>
-
-<p>In this picture the borders at multi-connection are displayed in blue.</p>
-
-<p>&nbsp;</p>
-
-<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> 
- a sample TUI Script of a <a href="quality_controls.htm#bookmark1">Borders 
- at Multi-Connection quality control</a> operation. &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/borders_at_multiconnection_2d.htm b/doc/salome/gui/SMESH/borders_at_multiconnection_2d.htm
deleted file mode 100755 (executable)
index 2e9e180..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Borders at multiconnection 2D</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-img_whs2 { border:none; width:420px; height:312px; border-style:none; }
-p.whs3 { margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs3 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nQuality controls\nBorders at multi-connection 2D");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Borders at multi-connection 2D</h1>
-
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This mesh quality control highlights borders of elements 
- of mesh, consisting of edges belonging to several elements of mesh. </p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="image127.gif" width="420px" height="312px" border="0" class="img_whs2"></p>
-
-<p>&nbsp;</p>
-
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> 
- a sample TUI Script of a <a href="quality_controls.htm#bookmark5">Borders 
- at Multi-Connection quality control</a> operation. &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/building_compounds.htm b/doc/salome/gui/SMESH/building_compounds.htm
deleted file mode 100755 (executable)
index 4757596..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Building Compounds</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 { font-family:'Arial Black' , sans-serif; font-style:italic; }\r
-p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; width:25px; height:24px; border-style:none; }\r
-p.whs4 { margin-left:80px; }\r
-img_whs5 { border:none; width:420px; height:367px; float:none; border-style:none; }\r
-ul.whs6 { list-style:disc; }\r
-p.whs7 { margin-left:80px; margin-top:0pt; margin-bottom:0pt; }\r
-p.whs8 { margin-top:0pt; margin-bottom:0pt; margin-left:120px; }\r
-p.whs9 { margin-left:80px; margin-top:0pt; margin-bottom:0pt; font-weight:bold; }\r
-p.whs10 { margin-top:0pt; margin-bottom:0pt; font-style:italic; margin-left:24px; }\r
-img_whs11 { border:none; width:245px; height:257px; border-style:none; }\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.whs7 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs8 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs9 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs10 {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\nCreating meshes\nBuilding Compounds");\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>Building Compounds</h1>\r
-\r
-<p>Compound Mesh is a combination of several meshes.</p>\r
-\r
-<p class="whs1">&nbsp;To \r
- Build a compound:</p>\r
-\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Mesh</B></span> \r
- menu select <span style="font-weight: bold;"><B>Build Compound</B></span> or \r
- click <img src="image161.gif" width="25px" height="24px" border="0" class="img_whs3"> button in the toolbar. The following dialog box will \r
- appear: </p>\r
-\r
-<p class="whs4"><img src="pics/buildcompound.png" x-maintain-ratio="TRUE" width="420px" height="367px" border="0" class="img_whs5"></p>\r
-\r
-<ul type="disc" class="whs6">\r
-       \r
-       <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Name</B></span> \r
- - allows selecting the name of the resulting <span style="font-weight: bold;"><B>Compound</B></span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Meshes \r
- </B></span>- allows selecting the meshes which will be concatenated. They \r
- can be chosen in the Object Browser while holding <span style="font-weight: bold;"><B>Ctrl</B></span> \r
- button.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Processing \r
- identical groups</B></span> - allows selecting the method of processing the \r
- namesake existing on the united meshes. They can be either </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs8"><span style="font-weight: bold;"><B>United</B></span> \r
- - all elements of Group1 \r
- on Mesh_1 and \r
- Group1 on Mesh_2 \r
- become the elements of Group1 \r
- on the Compound_Mesh, \r
- or</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs8"><span style="font-weight: bold;"><B>Renamed</B></span> \r
- - Group1 on \r
- Mesh_1 becomes \r
- Group1_1 and \r
- Group1 on Mesh_2 \r
- becomes Group1_2. \r
- See <span style="font-weight: bold;"><B><a href="grouping_elements.htm">Creating \r
- Groups</a></B></span> for more information about groups. </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs9"><span style="font-weight: normal;">You \r
- can simply unite meshes or choose to</span> Merge coincident nodes and \r
- elements, <span style="font-weight: normal;">in which case it is possible \r
- to define the</span> Tolerance <span style="font-weight: normal;">for \r
- this operation.</span> &nbsp;</p></li>\r
-</ul>\r
-\r
-<p class="whs10">Example:</p>\r
-\r
-<p class="whs4"><img src="image160.gif" width="245px" height="257px" border="0" class="img_whs11"></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/clipping.htm b/doc/salome/gui/SMESH/clipping.htm
deleted file mode 100755 (executable)
index dec479c..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Clipping</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { margin-left:40px; }
-img_whs2 { border:none; width:332px; height:327px; float:none; border-style:none; }
-p.whs3 { font-weight:bold; margin-left:40px; }
-img_whs4 { border:none; width:326px; height:199px; border-style:none; }
-p.whs5 { font-weight:bold; }
-img_whs6 { border:none; width:329px; height:210px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nViewing meshes\nClipping");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Clipping</h1>
-
-<p>Using this menu you can create cross-section views (clipping planes) 
- of your mesh.</p>
-
-<p>&nbsp;</p>
-
-<p>To start, click on the New button. </p>
-
-<p>&nbsp;</p>
-
-<p class="whs1"><img src="pics/a-clipping2.png" x-maintain-ratio="TRUE" width="332px" height="327px" border="0" class="img_whs2"></p>
-
-<p>&nbsp;</p>
-
-<p>Now you can define the parameters of your cross-section: <span style="font-weight: bold;"><B>Orientation</B></span> 
- &nbsp;(X-Y, X-Z 
- or Y-Z); <span style="font-weight: bold;"><B>Distance </B></span>between the 
- opposite extremities of the object,<span style="font-weight: bold;"> <B></B></span>if 
- it is set to 0.5 the object is split in two halves; and <span style="font-weight: bold;"><B>Rotation</B></span> 
- (in angle degrees) <span style="font-weight: bold;"><B>around X (Y to Z) 
- </B></span>and<span style="font-weight: bold;"><B> around Y (X to Z)</B></span>. 
- If the <span style="font-weight: bold;"><B>Show preview</B></span> button is 
- on, you can see the clipping plane in the <span style="font-weight: bold;"><B>Object 
- window. </B></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs3"><img src="image79.jpg" width="326px" height="199px" border="0" class="img_whs4"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"><span style="font-weight: normal;">If the</span> 
- Auto Apply<span style="font-weight: normal;"> button is on, you can preview 
- the cross-section in the</span> Object window</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs3"><img src="image99.gif" width="329px" height="210px" border="0" class="img_whs6"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"><span style="font-weight: normal;">To get 
- a new object from </span>Clipping, <span style="font-weight: normal;">click</span> 
- Ok. </p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5">&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/constructing_meshes.htm b/doc/salome/gui/SMESH/constructing_meshes.htm
deleted file mode 100755 (executable)
index a643f43..0000000
+++ /dev/null
@@ -1,448 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Constructing Meshes</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-p.whs1 { margin-top:0pt; margin-bottom:0pt; }
-p.whs2 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
-p.whs3 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
-p.whs4 { font-family:'Lucida Console' , monospace; margin-top:0px; margin-bottom:0px; }
-p.whs5 { margin-top:0px; margin-bottom:0px; font-family:'Times New Roman' , serif; }
-p.whs6 { margin-top:0px; margin-bottom:0px; }
-p.whs7 { margin-top:0px; margin-bottom:0px; font-family:'Lucida Console' , monospace; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs7 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nTUI Scripts\nCreating Meshes");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Creating Meshes</h1>
-
-<p class="whs1">First of all see <a href="smesh.py_introduction.htm">Example 
- of 3d mesh generation</a>, which is an example of good python script style 
- for Mesh module. </p>
-
-<p class="whs1">Other examples of python 
- scripts will be also updated soon to use smesh package instead of direct 
- usage of idl interface. </p>
-
-<h3><a name=bookmark>Construction of a Mesh</a></h3>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs2">import smesh</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a box</p>
-
-<p class="whs2">box = geompy.MakeBox(0., 
- 0., 0., 100., 200., 300.)</p>
-
-<p class="whs2">idbox = geompy.addToStudy(box, 
- &quot;box&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a mesh</p>
-
-<p class="whs2">tetra = smesh.Mesh(box, 
- &quot;MeshBox&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">algo1D = tetra.Segment()</p>
-
-<p class="whs2">algo1D.NumberOfSegments(7)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">algo2D = tetra.Triangle()</p>
-
-<p class="whs2">algo2D.MaxElementArea(800.)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">algo3D = tetra.Tetrahedron(smesh.NETGEN)</p>
-
-<p class="whs2">algo3D.MaxElementVolume(900.)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># compute the mesh</p>
-
-<p class="whs2">ret = tetra.Compute()</p>
-
-<p class="whs2">if ret == 0:</p>
-
-<p class="whs2">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;problem when computing the mesh&quot;</p>
-
-<p class="whs2">else:</p>
-
-<p class="whs2">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;mesh computed&quot;</p>
-
-<p class="whs2">&nbsp;&nbsp;&nbsp;&nbsp;pass 
- </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<h3><a name=bookmark1>Construction of a Submesh</a></h3>
-
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">from 
- geompy import *</span></p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a box</p>
-
-<p class="whs4">box = MakeBoxDXDYDZ(10., 10., 10.)</p>
-
-<p class="whs4">addToStudy(box, &quot;Box&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># select one edge of 
- the box for definition of a local hypothesis</p>
-
-<p class="whs4">p5 = MakeVertex(5., 0., 0.)</p>
-
-<p class="whs4">EdgeX = GetEdgeNearPoint(box, p5)</p>
-
-<p class="whs4">addToStudyInFather(box, EdgeX, &quot;Edge 
- [0,0,0 - 10,0,0]&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a hexahedral 
- mesh on the box</p>
-
-<p class="whs4">quadra = smesh.Mesh(box, &quot;Box : quadrangle 
- 2D mesh&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a regular 
- 1D algorithm for the faces</p>
-
-<p class="whs4">algo1D = quadra.Segment()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># define &quot;NumberOfSegments&quot; 
- hypothesis to cut</p>
-
-<p class="whs5"># all the edges in 
- a fixed number of segments</p>
-
-<p class="whs4">algo1D.NumberOfSegments(4)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a quadrangle 
- 2D algorithm for the faces</p>
-
-<p class="whs4">quadra.Quadrangle()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># construct a submesh 
- on the edge with a local hypothesis</p>
-
-<p class="whs4">algo_local = quadra.Segment(EdgeX)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># define &quot;Arithmetic1D&quot; 
- hypothesis to cut the edge<span style="margin-top: 0px;
-                                                                               margin-bottom: 0px;
-                                                                               font-family: 'Times New Roman', serif;"> 
- in several segments with increasing arithmetic length</span></p>
-
-<p class="whs4">algo_local.Arithmetic1D(1, 4)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># define &quot;Propagation&quot; 
- hypothesis that propagates all other hypotheses</p>
-
-<p class="whs5"># on all edges of the 
- opposite side in case of quadrangular faces</p>
-
-<p class="whs4">algo_local.Propagation()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># compute the mesh</p>
-
-<p class="whs4">quadra.Compute() </p>
-
-<p class="whs4">&nbsp;</p>
-
-<h3><a name=bookmark2>Editing of a mesh</a></h3>
-
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">def PrintMeshInfo(theMesh):</p>
-
-<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;aMesh 
- = theMesh.GetMesh()</p>
-
-<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;Information about mesh:&quot;</p>
-
-<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;Number of nodes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
- &quot;, aMesh.NbNodes()</p>
-
-<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;Number of edges &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
- &quot;, aMesh.NbEdges()</p>
-
-<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;Number of faces &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
- &quot;, aMesh.NbFaces()</p>
-
-<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;Number of volumes &nbsp;&nbsp;&nbsp;&nbsp;: 
- &quot;, aMesh.NbVolumes()</p>
-
-<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;pass</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a box</p>
-
-<p class="whs4">box = geompy.MakeBox(0., 0., 0., 20., 
- 20., 20.)</p>
-
-<p class="whs4">geompy.addToStudy(box, &quot;box&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># select one edge of 
- the box for definition of a local hypothesis</p>
-
-<p class="whs4">subShapeList = geompy.SubShapeAll(box, 
- geompy.ShapeType[&quot;EDGE&quot;])</p>
-
-<p class="whs4">edge = subShapeList[0]</p>
-
-<p class="whs4">name = geompy.SubShapeName(edge, box)</p>
-
-<p class="whs4">geompy.addToStudyInFather(box, edge, name)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a mesh</p>
-
-<p class="whs4">tria = smesh.Mesh(box, &quot;Mesh 2D&quot;)</p>
-
-<p class="whs4">algo1D = tria.Segment()</p>
-
-<p class="whs4">hyp1 = algo1D.NumberOfSegments(3)</p>
-
-<p class="whs4">algo2D = tria.Triangle()</p>
-
-<p class="whs4">hyp2 = algo2D.MaxElementArea(10.)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a sub-mesh</p>
-
-<p class="whs4">algo_local = tria.Segment(edge)</p>
-
-<p class="whs4">hyp3 = algo_local.Arithmetic1D(1, 6)</p>
-
-<p class="whs4">hyp4 = algo_local.Propagation()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># compute the mesh</p>
-
-<p class="whs4">tria.Compute()</p>
-
-<p class="whs4">PrintMeshInfo(tria)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># remove a local hypothesis</p>
-
-<p class="whs4">mesh = tria.GetMesh()</p>
-
-<p class="whs4">mesh.RemoveHypothesis(edge, hyp4)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># compute the mesh</p>
-
-<p class="whs4">tria.Compute()</p>
-
-<p class="whs4">PrintMeshInfo(tria)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># change the value 
- of the 2D hypothesis</p>
-
-<p class="whs4">hyp2.SetMaxElementArea(2.)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># compute the mesh</p>
-
-<p class="whs4">tria.Compute()</p>
-
-<p class="whs4">PrintMeshInfo(tria) </p>
-
-<p class="whs6">&nbsp;</p>
-
-<h3><a name=bookmark3>Export of a Mesh</a></h3>
-
-<p class="whs7">import geompy</p>
-
-<p class="whs7">import smesh</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># create a box</p>
-
-<p class="whs7">box = geompy.MakeBox(0., 
- 0., 0., 100., 200., 300.)</p>
-
-<p class="whs7">idbox = geompy.addToStudy(box, 
- &quot;box&quot;)</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># create a mesh</p>
-
-<p class="whs7">tetra = smesh.Mesh(box, 
- &quot;MeshBox&quot;)</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs7">algo1D = tetra.Segment()</p>
-
-<p class="whs7">algo1D.NumberOfSegments(7)</p>
-
-<p class="whs7">&nbsp;</p>
-
-<p class="whs7">algo2D = tetra.Triangle()</p>
-
-<p class="whs7">algo2D.MaxElementArea(800.)</p>
-
-<p class="whs7">&nbsp;</p>
-
-<p class="whs7">algo3D = tetra.Tetrahedron(smesh.NETGEN)</p>
-
-<p class="whs7">algo3D.MaxElementVolume(900.)</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># compute the mesh</p>
-
-<p class="whs7">tetra.Compute()</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># export the mesh in a 
- MED file</p>
-
-<p class="whs7">tetra.ExportMED(&quot;/tmp/meshMED.med&quot;, 
- 0) </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/cshdat_robohelp.htm b/doc/salome/gui/SMESH/cshdat_robohelp.htm
deleted file mode 100755 (executable)
index 4a4ee57..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-<script language="JavaScript">
-<!--
-
-var gArrayCsh = new Array();
-
-var gstrWindowOption = "";
-var gstrURL = "";
-var gbWithNavPane = false;
-
-function CshEntityItem(strAliasId, nTopicNum, strUrl) 
-{
-    this.strAliasId = strAliasId;
-    this.nTopicNum = nTopicNum;
-    this.strUrl = strUrl;
-}
-
-
-//Try to get to topic number from hash string
-function GetTopicNumberAuto(strMayBeNumber)
-{
-   var nNum = -1;
-   if (strMayBeNumber.length >= 1)
-   {
-               var strTmp = strMayBeNumber;
-               var iEnd = strTmp.length;
-               for (var i=0; i<iEnd; i++)
-               {
-                         var ch = strTmp.charAt(i);
-                         if (!((ch == "0") || (ch == "1") ||
-                               (ch == "2") || (ch == "3") ||
-                               (ch == "4") || (ch == "5") ||
-                               (ch == "6") || (ch == "7") ||
-                               (ch == "8") || (ch == "9")))
-                             return GetTopicNumberById(strTmp);
-               }
-               nNum = parseInt(strTmp);
-   }
-   return nNum;
-}
-
-function GetTopicNumber(strHashString)
-{
-       var nTopicEndPos = strHashString.indexOf(',')
-       if (nTopicEndPos == -1) { // no window option.
-               return GetTopicNumberOnly(strHashString);
-       }
-       else {
-               var strWindowOption = strHashString.substring(nTopicEndPos + 1, strHashString.length);
-               var strWithNavPane = 'withnavpane=true';
-               if (strWindowOption.toLowerCase().indexOf(strWithNavPane) == 0)
-               {
-                       if (strWindowOption.length > strWithNavPane.length)
-                               gstrWindowOption = strWindowOption.substring(strWithNavPane.length + 1);
-                       else
-                               gstrWindowOption = "";
-                       gbWithNavPane = true;
-               }
-               else
-                       gstrWindowOption = strWindowOption;
-               return GetTopicNumberOnly(strHashString.substring(0, nTopicEndPos));            
-       }
-}
-
-function GetTopicNumberOnly(strTopicString)
-{
-       var nEqualPos = strTopicString.indexOf('=');
-       if (nEqualPos == -1) {
-               return GetTopicNumberAuto(strTopicString);
-       }
-       else {
-               var strValue=strTopicString.substring(nEqualPos + 1, strTopicString.length);
-               if (strTopicString.toLowerCase().indexOf("topicnumber") == 0) {
-                       return parseInt(strValue);
-               } else if (strTopicString.toLowerCase().indexOf("context") == 0) {
-                       return GetTopicNumberById(strValue);
-               } else if (strTopicString.toLowerCase().indexOf("remoteurl") == 0) {
-                       gstrURL = strValue;
-                       return -1;
-               }
-
-       }
-}
-
-//Find HomePage of the WebHelp system
-// we try to get the topic from remote project if it exists.
-function RedirectToHomePage()
-{
-       if (parent && parent != this && parent.goNext)
-       {
-               var sHome = parent.goNext();
-               if (sHome != "")
-                       RedirectTo(sHome);
-       }
-}
-
-function getHomePage()
-{
-       if (parent && parent != this && parent.getRelHomePage)
-       {
-               return parent.getRelHomePage(document.location.href);
-       }
-       return "";
-}
-
-function addRemoteProject(strPath)
-{
-       if (parent && parent != this && parent.addProject)
-       {
-               parent.addProject(strPath);
-       }
-}
-
-//Redirect page to...
-function RedirectTo(strUrl)
-{
-   if (gstrWindowOption.length != 0) {
-               var wnd = window.open(strUrl, "HelpStub", gstrWindowOption);
-               // close current window and rename the stub window to current window.
-               if (wnd)
-                       wnd.focus();
-               if (parent)
-                       parent.close();
-   }
-   else {
-       parent.document.location.href = strUrl;
-       window.focus();
-  }
-}
-
-//Prompt the user that we can not find...
-function FailToFind(strMsg)
-{
-    RedirectToHomePage();
-}
-
-//Find topic by topic number (defined in h file)
-function FindTopicByTopicNum(nTopicNum)
-{
-       var i = 0;
-       var iEnd = gArrayCsh.length;
-       for (i=0; i<iEnd; i++)
-       {
-               if (gArrayCsh[i].nTopicNum == nTopicNum)
-               {
-                       var strURL = gArrayCsh[i].strUrl;
-                       if (gbWithNavPane)
-                       {
-                               var strHomePage = getHomePage();
-                               if (strHomePage.length != 0)
-                                       strURL = strHomePage + strURL;
-                       }       
-                       RedirectTo(strURL);
-                       return true;
-               }
-       }
-       FailToFind("Fail to find topic assocaite with topic number: " + nTopicNum);
-       return false;
-}
-
-var oldPrefix = "HelpIdFromHTMLHelp_"
-//Find topic by topic id (alias id defined in ali file)
-function GetTopicNumberById(strTopicId)
-{
-   if (strTopicId.indexOf(oldPrefix) == 0)
-   {
-               strTopicId = strTopicId.substring(oldPrefix.length);
-   }
-
-   var i = 0;
-   var iEnd = gArrayCsh.length;
-   for (i=0; i<iEnd; i++)
-   {
-       if (gArrayCsh[i].strAliasId.toLowerCase() == strTopicId.toLowerCase())
-       {
-           return gArrayCsh[i].nTopicNum;
-        }
-   }
-   gstrURL = "";
-   return -1;
-}
-
-//Set Context-sensitive help entity...
-function SetCsh(n, strAliasId, nTopicNum, strUrl)
-{
-   gArrayCsh[n] = new CshEntityItem(strAliasId,nTopicNum,strUrl);
-}
-
-
-function getHash()
-{
-       if (parent && parent != this)
-               return parent.location.hash;
-       else
-               return "";
-}
-//-->
-</script>
-<script language="javascript">
-<!--
-
-
-//-->
-</script>
-<script language="javascript">
-<!--
-//Find CSH according to hash string after this page
-if (getHash().length > 0)
-{
-   // VH 05/16/00 now support 
-   // TopicID=
-   // TopicNumber=
-   // RemoteURL=   
-   // and WindowsOptions
-   // with the format #a=xxx,b=xxx,c=xxx...
-   var strHashString = getHash().toString();
-   // change ? to : for remote URL. because java applet have some problem to pass a URL with two : inside the URL so we changed it. 
-   // so here need to change it back.
-   strHashString = strHashString.substring(1,strHashString.length);
-   strHashString = strHashString.replace("%072%057%057", "://");
-   var nTopicNum = GetTopicNumber(strHashString);
-
-   if (nTopicNum != -1)
-   {
-      FindTopicByTopicNum(nTopicNum);
-   }
-   else
-   {
-      if (gstrURL.length > 0) 
-       RedirectTo(gstrURL);
-      else
-       RedirectToHomePage();
-   }
-}
-else
-{
-   RedirectToHomePage();
-}
-//-->
-</script>
-<noscript>
- <p> Your browser does not support JavaScript. WebHelp Context-Sensitive Help requires JavaScript support to run.</p>
-</noscript>
-</body>
-</html>
-
-
-
-
-
-
diff --git a/doc/salome/gui/SMESH/cshdat_webhelp.htm b/doc/salome/gui/SMESH/cshdat_webhelp.htm
deleted file mode 100755 (executable)
index db3b49a..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-<script language="JavaScript">
-<!--
-
-var gArrayCsh = new Array();
-
-var gstrWindowOption = "";
-var gstrURL = "";
-var gbWithNavPane = false;
-
-function CshEntityItem(strAliasId, nTopicNum, strUrl) 
-{
-    this.strAliasId = strAliasId;
-    this.nTopicNum = nTopicNum;
-    this.strUrl = strUrl;
-}
-
-
-//Try to get to topic number from hash string
-function GetTopicNumberAuto(strMayBeNumber)
-{
-   var nNum = -1;
-   if (strMayBeNumber.length >= 1)
-   {
-               var strTmp = strMayBeNumber;
-               var iEnd = strTmp.length;
-               for (var i=0; i<iEnd; i++)
-               {
-                         var ch = strTmp.charAt(i);
-                         if (!((ch == "0") || (ch == "1") ||
-                               (ch == "2") || (ch == "3") ||
-                               (ch == "4") || (ch == "5") ||
-                               (ch == "6") || (ch == "7") ||
-                               (ch == "8") || (ch == "9")))
-                             return GetTopicNumberById(strTmp);
-               }
-               nNum = parseInt(strTmp);
-   }
-   return nNum;
-}
-
-function GetTopicNumber(strHashString)
-{
-       var nTopicEndPos = strHashString.indexOf(',')
-       if (nTopicEndPos == -1) { // no window option.
-               return GetTopicNumberOnly(strHashString);
-       }
-       else {
-               var strWindowOption = strHashString.substring(nTopicEndPos + 1, strHashString.length);
-               var strWithNavPane = 'withnavpane=true';
-               if (strWindowOption.toLowerCase().indexOf(strWithNavPane) == 0)
-               {
-                       if (strWindowOption.length > strWithNavPane.length)
-                               gstrWindowOption = strWindowOption.substring(strWithNavPane.length + 1);
-                       else
-                               gstrWindowOption = "";
-                       gbWithNavPane = true;
-               }
-               else
-                       gstrWindowOption = strWindowOption;
-               return GetTopicNumberOnly(strHashString.substring(0, nTopicEndPos));            
-       }
-}
-
-function GetTopicNumberOnly(strTopicString)
-{
-       var nEqualPos = strTopicString.indexOf('=');
-       if (nEqualPos == -1) {
-               return GetTopicNumberAuto(strTopicString);
-       }
-       else {
-               var strValue=strTopicString.substring(nEqualPos + 1, strTopicString.length);
-               if (strTopicString.toLowerCase().indexOf("topicnumber") == 0) {
-                       return parseInt(strValue);
-               } else if (strTopicString.toLowerCase().indexOf("topicid") == 0) {
-                       return GetTopicNumberById(strValue);
-               } else if (strTopicString.toLowerCase().indexOf("remoteurl") == 0) {
-                       gstrURL = strValue;
-                       return -1;
-               }
-
-       }
-}
-
-//Find HomePage of the WebHelp system
-// we try to get the topic from remote project if it exists.
-function RedirectToHomePage()
-{
-       if (parent && parent != this && parent.goNext)
-       {
-               var sHome = parent.goNext();
-               if (sHome != "")
-                       RedirectTo(sHome);
-       }
-}
-
-function getHomePage()
-{
-       if (parent && parent != this && parent.getRelHomePage)
-       {
-               return parent.getRelHomePage(document.location.href);
-       }
-       return "";
-}
-
-function addRemoteProject(strPath)
-{
-       if (parent && parent != this && parent.addProject)
-       {
-               parent.addProject(strPath);
-       }
-}
-
-//Redirect page to...
-function RedirectTo(strUrl)
-{
-   if (gstrWindowOption.length != 0) {
-               var wnd = window.open(strUrl, "HelpStub", gstrWindowOption);
-               // close current window and rename the stub window to current window.
-               wnd.focus();
-               if (parent)
-                       parent.close();
-   }
-   else {
-       parent.document.location.href = strUrl;
-       window.focus();
-  }
-}
-
-//Prompt the user that we can not find...
-function FailToFind(strMsg)
-{
-    RedirectToHomePage();
-}
-
-//Find topic by topic number (defined in h file)
-function FindTopicByTopicNum(nTopicNum)
-{
-       var i = 0;
-       var iEnd = gArrayCsh.length;
-       for (i=0; i<iEnd; i++)
-       {
-               if (gArrayCsh[i].nTopicNum == nTopicNum)
-               {
-                       var strURL = gArrayCsh[i].strUrl;
-                       if (gbWithNavPane)
-                       {
-                               var strHomePage = getHomePage();
-                               if (strHomePage.length != 0)
-                                       strURL = strHomePage + strURL;
-                       }       
-                       RedirectTo(strURL);
-                       return true;
-               }
-       }
-       FailToFind("Fail to find topic assocaite with topic number: " + nTopicNum);
-       return false;
-}
-
-//Find topic by topic id (alias id defined in ali file)
-function GetTopicNumberById(strTopicId)
-{
-   var i = 0;
-   var iEnd = gArrayCsh.length;
-   for (i=0; i<iEnd; i++)
-   {
-       if (gArrayCsh[i].strAliasId == strTopicId)
-       {
-           return gArrayCsh[i].nTopicNum;
-        }
-   }
-   gstrURL = "";
-   return -1;
-}
-
-//Set Context-sensitive help entity...
-function SetCsh(n, strAliasId, nTopicNum, strUrl)
-{
-   gArrayCsh[n] = new CshEntityItem(strAliasId,nTopicNum,strUrl);
-}
-
-
-function getHash()
-{
-       if (parent && parent != this)
-               return parent.location.hash;
-       else
-               return "";
-}
-//-->
-</script>
-<script language="javascript">
-<!--
-
-
-//-->
-</script>
-<script language="javascript">
-<!--
-//Find CSH according to hash string after this page
-if (getHash().length > 0)
-{
-   // VH 05/16/00 now support 
-   // TopicID=
-   // TopicNumber=
-   // RemoteURL=   
-   // and WindowsOptions
-   // with the format #a=xxx,b=xxx,c=xxx...
-   var strHashString = getHash().toString();
-   // change ? to : for remote URL. because java applet have some problem to pass a URL with two : inside the URL so we changed it. 
-   // so here need to change it back.
-   strHashString = strHashString.substring(1,strHashString.length);
-   strHashString = strHashString.replace("%072%057%057", "://");
-   var nTopicNum = GetTopicNumber(strHashString);
-
-   if (nTopicNum != -1)
-   {
-      FindTopicByTopicNum(nTopicNum);
-   }
-   else
-   {
-      if (gstrURL.length > 0) 
-       RedirectTo(gstrURL);
-      else
-       RedirectToHomePage();
-   }
-}
-else
-{
-   RedirectToHomePage();
-}
-//-->
-</script>
-<noscript>
- <p> Your browser does not support JavaScript. WebHelp Context-Sensitive Help requires JavaScript support to run.</p>
-</noscript>
-</body>
-</html>
-
-
-
-
-
-
diff --git a/doc/salome/gui/SMESH/default.css b/doc/salome/gui/SMESH/default.css
deleted file mode 100755 (executable)
index 1f8d6d7..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-BODY { 
-      background-color:#ffffff; 
-      font-family:"Times New Roman" , serif;  }
-H1 { 
-    font-weight:bold; 
-    font-size:24.0pt;  }
-LI.kadov-H1 { 
-             font-weight:bold; 
-             font-size:24.0pt;  }
-H2 { 
-    font-weight:bold; 
-    font-size:18.0pt;  }
-LI.kadov-H2 { 
-             font-weight:bold; 
-             font-size:18.0pt;  }
-H3 { 
-    font-weight:bold; 
-    font-size:14.0pt;  }
-LI.kadov-H3 { 
-             font-weight:bold; 
-             font-size:14.0pt;  }
-H4 { 
-    font-weight:bold; 
-    font-size:12.0pt;  }
-LI.kadov-H4 { 
-             font-weight:bold; 
-             font-size:12.0pt;  }
-H5 { 
-    font-weight:bold; 
-    font-size:10.0pt;  }
-LI.kadov-H5 { 
-             font-weight:bold; 
-             font-size:10.0pt;  }
-H6 { 
-    font-weight:bold; 
-    font-size:8.0pt;  }
-LI.kadov-H6 { 
-             font-weight:bold; 
-             font-size:8.0pt;  }
-P { 
-   font-size:12.0pt; 
-   margin-top:0pt; 
-   margin-bottom:0pt;  }
-LI.kadov-P { 
-            font-size:12.0pt;  }
-A.expandspot { 
-              color:#008000; 
-              cursor:hand; 
-              font-style:italic; 
-              x-text-underline:off; 
-              x-text-overline:off; 
-              x-text-line-through:off; 
-              text-decoration:none none none;  }
-SPAN.expandtext { 
-                 font-style:italic; 
-                 font-weight:normal; 
-                 color:#ff0000;  }
-A.dropspot { 
-            cursor:hand; 
-            color:#008000; 
-            font-style:italic; 
-            x-text-underline:off; 
-            x-text-overline:off; 
-            x-text-line-through:off; 
-            text-decoration:none none none;  }
-A.glossterm { 
-             color:#800000; 
-             cursor:hand; 
-             font-style:italic; 
-             x-text-underline:off; 
-             x-text-overline:off; 
-             x-text-line-through:off; 
-             text-decoration:none none none;  }
-SPAN.glosstext { 
-                font-style:italic; 
-                font-weight:normal; 
-                color:#0000ff;  }
-OL { 
-    margin-top:0px; 
-    margin-bottom:0px;  }
-UL { 
-    margin-top:0px; 
-    margin-bottom:0px;  }
-A:active {  }
-A:hover { 
-         x-text-underline:Off; 
-         text-decoration:none;  }
-A:link { 
-        x-text-underline:Off; 
-        text-decoration:none;  }
-A:visited { 
-           x-text-underline:Off; 
-           text-decoration:none;  }
-P.TODO { 
-        font-weight:normal; 
-        font-style:italic; 
-        font-family:"Arial Black" , sans-serif;  }
-LI.kadov-P-CTODO { 
-                  font-weight:normal; 
-                  font-style:italic; 
-                  font-family:"Arial Black" , sans-serif;  }
diff --git a/doc/salome/gui/SMESH/default_ns.css b/doc/salome/gui/SMESH/default_ns.css
deleted file mode 100755 (executable)
index 46e8b00..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-BODY { 
-      background-color:#ffffff; 
-      font-family:"Times New Roman"  , serif;  }
-H1 { 
-    font-weight:bold; 
-    font-size:24.0pt; 
-    font-family:"Times New Roman"  , serif;  }
-LI.kadov-H1 { 
-             font-weight:bold; 
-             font-size:24.0pt;  }
-H2 { 
-    font-weight:bold; 
-    font-size:18.0pt; 
-    font-family:"Times New Roman"  , serif;  }
-LI.kadov-H2 { 
-             font-weight:bold; 
-             font-size:18.0pt;  }
-H3 { 
-    font-weight:bold; 
-    font-size:14.0pt; 
-    font-family:"Times New Roman"  , serif;  }
-LI.kadov-H3 { 
-             font-weight:bold; 
-             font-size:14.0pt;  }
-H4 { 
-    font-weight:bold; 
-    font-size:12.0pt; 
-    font-family:"Times New Roman"  , serif;  }
-LI.kadov-H4 { 
-             font-weight:bold; 
-             font-size:12.0pt;  }
-H5 { 
-    font-weight:bold; 
-    font-size:10.0pt; 
-    font-family:"Times New Roman"  , serif;  }
-LI.kadov-H5 { 
-             font-weight:bold; 
-             font-size:10.0pt;  }
-H6 { 
-    font-weight:bold; 
-    font-size:8.0pt; 
-    font-family:"Times New Roman"  , serif;  }
-LI.kadov-H6 { 
-             font-weight:bold; 
-             font-size:8.0pt;  }
-P { 
-   font-size:12.0pt; 
-   margin-top:1pt; 
-   margin-bottom:1pt; 
-   font-family:"Times New Roman"  , serif;  }
-LI.kadov-P { 
-            font-size:12.0pt;  }
-A.expandspot { 
-              color:#008000; 
-              cursor:hand; 
-              font-style:italic; 
-              x-text-underline:off; 
-              x-text-overline:off; 
-              x-text-line-through:off; 
-              text-decoration:none none none;  }
-SPAN.expandtext { 
-                 font-style:italic; 
-                 font-weight:normal; 
-                 color:#ff0000;  }
-A.dropspot { 
-            cursor:hand; 
-            color:#008000; 
-            font-style:italic; 
-            x-text-underline:off; 
-            x-text-overline:off; 
-            x-text-line-through:off; 
-            text-decoration:none none none;  }
-A.glossterm { 
-             color:#800000; 
-             cursor:hand; 
-             font-style:italic; 
-             x-text-underline:off; 
-             x-text-overline:off; 
-             x-text-line-through:off; 
-             text-decoration:none none none;  }
-SPAN.glosstext { 
-                font-style:italic; 
-                font-weight:normal; 
-                color:#0000ff;  }
-OL { 
-    margin-top:0px; 
-    margin-bottom:0px; 
-    font-family:"Times New Roman"  , serif;  }
-UL { 
-    margin-top:0px; 
-    margin-bottom:0px; 
-    font-family:"Times New Roman"  , serif;  }
-A:active {  }
-A:hover { 
-         x-text-underline:Off; 
-         text-decoration:none;  }
-A:link { 
-        x-text-underline:Off; 
-        text-decoration:none;  }
-A:visited { 
-           x-text-underline:Off; 
-           text-decoration:none;  }
-P.TODO { 
-        font-weight:normal; 
-        font-style:italic; 
-        font-family:"Arial Black"  , sans-serif;  }
-LI.kadov-P-CTODO { 
-                  font-weight:normal; 
-                  font-style:italic; 
-                  font-family:"Arial Black"  , sans-serif;  }
-ol ol { 
-       margin-top:1px;  }
-ol ul { 
-       margin-top:1px;  }
-ul ul { 
-       margin-top:1px;  }
-ul ol { 
-       margin-top:1px;  }
diff --git a/doc/salome/gui/SMESH/defining_hypotheses_tui.htm b/doc/salome/gui/SMESH/defining_hypotheses_tui.htm
deleted file mode 100755 (executable)
index 420dc0a..0000000
+++ /dev/null
@@ -1,883 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Defining hypotheses TUI</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style>
-<!--
-P { margin-top:0pt; margin-bottom:0pt; }
-LI.kadov-P {  }
--->
-</style><style type="text/css">
-<!--
-p.whs1 { font-weight:bold; }
-p.whs2 { font-family:'Lucida Console' , monospace; }
-p.whs3 { font-family:'Times New Roman' , serif; }
-p.whs4 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
-p.whs5 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
-p.whs6 { margin-top:0pt; margin-bottom:0pt; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nTUI Scripts\nDefining Hypotheses");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Defining Hypotheses and Algorithms</h1>
-
-<h3>Defining 1D Hypotheses</h3>
-
-<p class="whs1"><a name=bookmark>1D Arithmetic</a></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs2">import smesh</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a box</p>
-
-<p class="whs2">box = geompy.MakeBoxDXDYDZ(10., 
- 10., 10.)</p>
-
-<p class="whs2">geompy.addToStudy(box, 
- &quot;Box&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a hexahedral 
- mesh on the box</p>
-
-<p class="whs2">hexa = smesh.Mesh(box, 
- &quot;Box : hexahedrical mesh&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a Regular 1D 
- algorithm for edges</p>
-
-<p class="whs2">algo1D = hexa.Segment()</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># define &quot;Arithmetic1D&quot; 
- hypothesis to cut all edges in several segments with increasing arithmetic 
- length </p>
-
-<p class="whs2">algo1D.Arithmetic1D(1, 
- 4)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a quadrangle 
- 2D algorithm for faces</p>
-
-<p class="whs2">hexa.Quadrangle()</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a hexahedron 
- 3D algorithm for solids</p>
-
-<p class="whs2">hexa.Hexahedron()</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># compute the mesh</p>
-
-<p class="whs2">hexa.Compute() </p>
-
-<p class="whs2">&nbsp;</p>
-
-<h4><a name=bookmark9>Deflection 1D and Number of Segments</a></h4>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs2">import smesh</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a face from 
- arc and straight segment</p>
-
-<p class="whs2">px = geompy.MakeVertex(100., 
- 0. &nbsp;, 0. 
- &nbsp;)</p>
-
-<p class="whs2">py = geompy.MakeVertex(0. 
- &nbsp;, 100., 
- 0. &nbsp;)</p>
-
-<p class="whs2">pz = geompy.MakeVertex(0. 
- &nbsp;, 0. &nbsp;, 
- 100.)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">exy = geompy.MakeEdge(px, 
- py)</p>
-
-<p class="whs2">arc = geompy.MakeArc(py, 
- pz, px)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">wire = geompy.MakeWire([exy, 
- arc])</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">isPlanarFace = 1</p>
-
-<p class="whs2">face1 = geompy.MakeFace(wire, 
- isPlanarFace)</p>
-
-<p class="whs2">geompy.addToStudy(face1,&quot;Face1&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># get edges from the 
- face</p>
-
-<p class="whs2">e_straight,e_arc = 
- geompy.SubShapeAll(face1, geompy.ShapeType[&quot;EDGE&quot;])</p>
-
-<p class="whs2">geompy.addToStudyInFather(face1, 
- e_arc, &quot;Arc Edge&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create hexahedral mesh</p>
-
-<p class="whs2">hexa = smesh.Mesh(face1, 
- &quot;Face : triangle mesh&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># define &quot;NumberOfSegments&quot; 
- hypothesis to cut a straight edge in a fixed number of segments</p>
-
-<p class="whs2">algo1D = hexa.Segment()</p>
-
-<p class="whs2">algo1D.NumberOfSegments(6)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># define &quot;MaxElementArea&quot; 
- hypothesis</p>
-
-<p class="whs2">algo2D = hexa.Triangle()</p>
-
-<p class="whs2">algo2D.MaxElementArea(70.0)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># define a local &quot;Deflection1D&quot; 
- hypothesis on the arc</p>
-
-<p class="whs2">algo_local = hexa.Segment(e_arc)</p>
-
-<p class="whs2">algo_local.Deflection1D(1.0)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># compute the mesh</p>
-
-<p class="whs2">hexa.Compute() </p>
-
-<h4><a name=bookmark2>Start and End Length</a></h4>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">from 
- geompy import *</span></p>
-
-<p class="whs2">import smesh</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a box</p>
-
-<p class="whs2">box = MakeBoxDXDYDZ(10., 
- 10., 10.)</p>
-
-<p class="whs2">addToStudy(box, &quot;Box&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># get one edge of the 
- box to put local hypothesis on</p>
-
-<p class="whs2">p5 = MakeVertex(5., 
- 0., 0.)</p>
-
-<p class="whs2">EdgeX = GetEdgeNearPoint(box, 
- p5)</p>
-
-<p class="whs2">addToStudyInFather(box, 
- EdgeX, &quot;Edge [0,0,0 - 10,0,0]&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a hexahedral 
- mesh on the box</p>
-
-<p class="whs2">hexa = smesh.Mesh(box, 
- &quot;Box : hexahedrical mesh&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># set algorithms</p>
-
-<p class="whs2">algo1D = hexa.Segment()</p>
-
-<p class="whs2">hexa.Quadrangle()</p>
-
-<p class="whs2">hexa.Hexahedron()</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># define &quot;NumberOfSegments&quot; 
- hypothesis to cut an edge in a fixed number of segments</p>
-
-<p class="whs2">algo1D.NumberOfSegments(4)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a local hypothesis</p>
-
-<p class="whs2">algo_local = hexa.Segment(EdgeX)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># define &quot;StartEndLength&quot; 
- hypothesis to cut an edge in several segments with increasing geometric 
- length</p>
-
-<p class="whs2">algo_local.StartEndLength(1, 
- 6)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># define &quot;Propagation&quot; 
- hypothesis that propagates all other hypothesis</p>
-
-<p class="whs3"># on all edges on the 
- opposite side in case of quadrangular faces</p>
-
-<p class="whs2">algo_local.Propagation()</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># compute the mesh</p>
-
-<p class="whs2">hexa.Compute() </p>
-
-<h4><a name=bookmark3>Average Length</a></h4>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">from 
- geompy import *</span></p>
-
-<p class="whs2">import smesh</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a box</p>
-
-<p class="whs2">box = MakeBoxDXDYDZ(10., 
- 10., 10.)</p>
-
-<p class="whs2">addToStudy(box, &quot;Box&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># get one edge of the 
- box to put local hypothesis on</p>
-
-<p class="whs2">p5 = MakeVertex(5., 
- 0., 0.)</p>
-
-<p class="whs2">EdgeX = GetEdgeNearPoint(box, 
- p5)</p>
-
-<p class="whs2">addToStudyInFather(box, 
- EdgeX, &quot;Edge [0,0,0 - 10,0,0]&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a hexahedral 
- mesh on the box</p>
-
-<p class="whs2">hexa = smesh.Mesh(box, 
- &quot;Box : hexahedrical mesh&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># set algorithms</p>
-
-<p class="whs2">algo1D = hexa.Segment()</p>
-
-<p class="whs2">hexa.Quadrangle()</p>
-
-<p class="whs2">hexa.Hexahedron()</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># define &quot;NumberOfSegments&quot; 
- hypothesis to cut all edges in a fixed number of segments</p>
-
-<p class="whs2">algo1D.NumberOfSegments(4)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a sub-mesh</p>
-
-<p class="whs2">algo_local = hexa.Segment(EdgeX)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># define &quot;LocalLength&quot; 
- hypothesis to cut an edge in several segments with the same length</p>
-
-<p class="whs2">algo_local.LocalLength(2.)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># define &quot;Propagation&quot; 
- hypothesis that propagates all other hypothesis</p>
-
-<p class="whs3"># on all edges on the 
- opposite side in case of quadrangular faces</p>
-
-<p class="whs2">algo_local.Propagation()</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># compute the mesh</p>
-
-<p class="whs2">hexa.Compute() </p>
-
-<h3>Defining 2D and 3D hypotheses</h3>
-
-<h4><a name=bookmark4>Maximum Element Area</a></h4>
-
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4">import salome </p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a face</p>
-
-<p class="whs4">px &nbsp;&nbsp;= 
- geompy.MakeVertex(100., 0. &nbsp;, 
- 0. &nbsp;)</p>
-
-<p class="whs4">py &nbsp;&nbsp;= 
- geompy.MakeVertex(0. &nbsp;, 
- 100., 0. &nbsp;)</p>
-
-<p class="whs4">pz &nbsp;&nbsp;= 
- geompy.MakeVertex(0. &nbsp;, 
- 0. &nbsp;, 100.)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">vxy = geompy.MakeVector(px, 
- py)</p>
-
-<p class="whs4">arc = geompy.MakeArc(py, 
- pz, px)</p>
-
-<p class="whs4">wire = geompy.MakeWire([vxy, 
- arc])</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">isPlanarFace = 1</p>
-
-<p class="whs4">face = geompy.MakeFace(wire, 
- isPlanarFace)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># add the face in the 
- study</p>
-
-<p class="whs4">id_face = geompy.addToStudy(face, 
- &quot;Face to be meshed&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a mesh</p>
-
-<p class="whs4">tria_mesh = smesh.Mesh(face, 
- &quot;Face : triangulation&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># define 1D meshing:</p>
-
-<p class="whs4">algo = tria_mesh.Segment()</p>
-
-<p class="whs4">algo.NumberOfSegments(20)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># define 2D meshing:</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"># assign triangulation 
- algorithm</p>
-
-<p class="whs4">algo = tria_mesh.Triangle()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># apply &quot;Max Element 
- Area&quot; hypothesis to each triangle</p>
-
-<p class="whs4">algo.MaxElementArea(100)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># compute the mesh</p>
-
-<p class="whs4">tria_mesh.Compute() 
- &nbsp;</p>
-
-<p class="whs4">&nbsp;</p>
-
-<h4><a name=bookmark5>Maximum Element Volume</a></h4>
-
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a cylinder</p>
-
-<p class="whs4">cyl = geompy.MakeCylinderRH(30., 
- 50.)</p>
-
-<p class="whs4">geompy.addToStudy(cyl, 
- &quot;cyl&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a mesh on 
- the cylinder</p>
-
-<p class="whs4">tetra = smesh.Mesh(cyl, 
- &quot;Cylinder : tetrahedrical mesh&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># assign algorithms</p>
-
-<p class="whs4">algo1D = tetra.Segment()</p>
-
-<p class="whs4">algo2D = tetra.Triangle()</p>
-
-<p class="whs4">algo3D = tetra.Tetrahedron(smesh.NETGEN)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># assign 1D and 2D 
- hypotheses</p>
-
-<p class="whs4">algo1D.NumberOfSegments(7)</p>
-
-<p class="whs4">algo2D.MaxElementArea(150.)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># assign Max Element 
- Volume hypothesis</p>
-
-<p class="whs4">algo3D.MaxElementVolume(200.)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># compute the mesh</p>
-
-<p class="whs4">ret = tetra.Compute()</p>
-
-<p class="whs4">if ret == 0:</p>
-
-<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;probleme when computing the mesh&quot;</p>
-
-<p class="whs4">else:</p>
-
-<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;Computation succeded&quot; </p>
-
-<h4><a name=bookmark6>Length from Edges</a></h4>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs2">import smesh</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create sketchers</p>
-
-<p class="whs2">sketcher1 = geompy.MakeSketcher(&quot;Sketcher:F 
- 0 0:TT 70 0:TT 70 70:TT 0 70:WW&quot;)</p>
-
-<p class="whs2">sketcher2 = geompy.MakeSketcher(&quot;Sketcher:F 
- 20 20:TT 50 20:TT 50 50:TT 20 50:WW&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a face from 
- two wires</p>
-
-<p class="whs2">isPlanarFace = 1</p>
-
-<p class="whs2">face1 = geompy.MakeFaces([sketcher1, 
- sketcher2], isPlanarFace)</p>
-
-<p class="whs2">geompy.addToStudy(face1, 
- &quot;Face1&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a mesh</p>
-
-<p class="whs2">tria = smesh.Mesh(face1, 
- &quot;Face : triangle 2D mesh&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># Define 1D meshing</p>
-
-<p class="whs2">algo1D = tria.Segment()</p>
-
-<p class="whs2">algo1D.NumberOfSegments(2)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create and assign the 
- algorithm for 2D meshing with triangles</p>
-
-<p class="whs2">algo2D = tria.Triangle()</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create and assign &quot;LengthFromEdges&quot; 
- hypothesis to build triangles<span style="font-family: 'Times New Roman', serif;"> 
- based on the length of the edges taken from the wire</span></p>
-
-<p class="whs2">algo2D.LengthFromEdges()</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># compute the mesh</p>
-
-<p class="whs2">tria.Compute() </p>
-
-<p class="whs2">&nbsp;</p>
-
-<h3>Defining Additional Hypotheses</h3>
-
-<h4><a name=bookmark7>Propagation</a></h4>
-
-<p class="whs2">from geompy import 
- *</p>
-
-<p class="whs2">import smesh</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a box</p>
-
-<p class="whs2">box = MakeBoxDXDYDZ(10., 
- 10., 10.)</p>
-
-<p class="whs2">addToStudy(box, &quot;Box&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># get one edge of the 
- box to put local hypothesis on</p>
-
-<p class="whs2">p5 = MakeVertex(5., 
- 0., 0.)</p>
-
-<p class="whs2">EdgeX = GetEdgeNearPoint(box, 
- p5)</p>
-
-<p class="whs2">addToStudyInFather(box, 
- EdgeX, &quot;Edge [0,0,0 - 10,0,0]&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a hexahedral 
- mesh on the box</p>
-
-<p class="whs2">hexa = smesh.Mesh(box, 
- &quot;Box : hexahedrical mesh&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># set global algorithms 
- and hypotheses</p>
-
-<p class="whs2">algo1D = hexa.Segment()</p>
-
-<p class="whs2">hexa.Quadrangle()</p>
-
-<p class="whs2">hexa.Hexahedron()</p>
-
-<p class="whs2">algo1D.NumberOfSegments(4)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># create a sub-mesh with 
- local 1D hypothesis and propagation</p>
-
-<p class="whs2">algo_local = hexa.Segment(EdgeX)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># define &quot;Arithmetic1D&quot; 
- hypothesis to cut an edge in several segments with increasing length</p>
-
-<p class="whs2">algo_local.Arithmetic1D(1, 
- 4)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># define &quot;Propagation&quot; 
- hypothesis that propagates all other 1D hypotheses</p>
-
-<p class="whs3"># from all edges on the 
- opposite side of a face in case of quadrangular faces</p>
-
-<p class="whs2">algo_local.Propagation()</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"># compute the mesh</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">hexa.Compute()</span> 
- </p>
-
-<h3><a name=bookmark8>Defining Meshing Algorithms</a></h3>
-
-<p class="whs4">import geompy</p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># create a box</p>
-
-<p class="whs4">box = geompy.MakeBoxDXDYDZ(10., 
- 10., 10.)</p>
-
-<p class="whs4">geompy.addToStudy(box, 
- &quot;Box&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs6"># 1. Create a hexahedral 
- mesh on the box</p>
-
-<p class="whs4">hexa = smesh.Mesh(box, 
- &quot;Box : hexahedrical mesh&quot;)</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># create a Regular 1D algorithm 
- for edges</p>
-
-<p class="whs4">algo1D = hexa.Segment()</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># create a quadrangle 2D 
- algorithm for faces</p>
-
-<p class="whs4">algo2D = hexa.Quadrangle()</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># create a hexahedron 3D 
- algorithm for solids</p>
-
-<p class="whs4">algo3D = hexa.Hexahedron()</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># define hypotheses</p>
-
-<p class="whs4">algo1D.Arithmetic1D(1, 
- 4)</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># compute the mesh</p>
-
-<p class="whs4">hexa.Compute()</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># 2. Create a tetrahedral 
- mesh on the box</p>
-
-<p class="whs4">tetra = smesh.Mesh(box, 
- &quot;Box : tetrahedrical mesh&quot;)</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># create a Regular 1D algorithm 
- for edges</p>
-
-<p class="whs4">algo1D = tetra.Segment()</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># create a Mefisto 2D algorithm 
- for faces</p>
-
-<p class="whs4">algo2D = tetra.Triangle()</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># create a Netgen 3D algorithm 
- for solids</p>
-
-<p class="whs4">algo3D = tetra.Tetrahedron(smesh.NETGEN)</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># define hypotheses</p>
-
-<p class="whs4">algo1D.Arithmetic1D(1, 
- 4)</p>
-
-<p class="whs4">algo2D.LengthFromEdges()</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># compute the mesh</p>
-
-<p class="whs4">tetra.Compute()</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># 3. Create a tetrahedral 
- mesh on the box with NETGEN_2D3D algorithm</p>
-
-<p class="whs4">tetraN = smesh.Mesh(box, 
- &quot;Box : tetrahedrical mesh by NETGEN_2D3D&quot;)</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># create a Netgen_2D3D 
- algorithm for solids</p>
-
-<p class="whs4">algo3D = tetraN.Tetrahedron(smesh.FULL_NETGEN) 
- </p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># define hypotheses</p>
-
-<p class="whs4">n23_params = algo3D.Parameters()</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"># compute the mesh</p>
-
-<p class="whs4">tetraN.Compute() 
- </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/deleting_groups.htm b/doc/salome/gui/SMESH/deleting_groups.htm
deleted file mode 100755 (executable)
index 02a7b47..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Deleting Groups</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-p.whs1 { margin-top:0pt; margin-bottom:0pt; }
-img_whs2 { border:none; width:306px; height:234px; float:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nGrouping elements\nDeleting Groups");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Deleting Groups</h1>
-
-<p class="whs1">To delete a group in the 
- <span style="font-weight: bold;"><B>Main Menu</B></span> select <span style="font-weight: bold;"><B>Mesh 
- </B></span><span style="font-family: Arial, sans-serif;">-&gt;</span><span 
- style="font-weight: bold;"><B> Delete Groups</B></span> and select one or several 
- groups you wish to delete in the 3D viewer or in the Object Browser.</p>
-
-<p class="whs1">The selected groups will 
- be listed in <span style="font-weight: bold;"><B>Delete groups with contents</B></span> 
- menu. Then click Ok button to remove the selected groups and close the 
- menu or Apply button to remove them and proceed with the selection. </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1"><img src="pics/deletegroups.png" x-maintain-ratio="TRUE" width="306px" height="234px" border="0" class="img_whs2"></p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">Please, note that this 
- operation <span style="font-weight: bold;"><B>removes groups with their elements</B></span>. 
- To delete a group and leave its elements intact, right-click on the group 
- in the Object Browser and select <span style="font-weight: bold;"><B>Delete</B></span> 
- in the pop-up menu or select the group and choose <span style="font-weight: bold;"><B>Edit 
- -&gt; Delete</B></span> in the <span style="font-weight: bold;"><B>Main Menu.</B></span> 
- &nbsp;&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/display_entity.htm b/doc/salome/gui/SMESH/display_entity.htm
deleted file mode 100755 (executable)
index 51d7d66..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Display Entity</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { margin-left:40px; font-weight:bold; }
-p.whs2 { margin-left:40px; }
-img_whs3 { border:none; height:285px; width:260px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nViewing meshes\nDisplay Entity");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Display Entity</h1>
-
-<p>In this submenu you can choose to display only volumes, faces or edges 
- or combine them. </p>
-
-<p>&nbsp;</p>
-
-<p class="whs1">Only Faces &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Only 
- Edges</p>
-
-<p class="whs2"><img src="image56.jpg" height="285px" width="260px" border="0" class="img_whs3"> &nbsp;<img src="image58.gif" height="285px" width="260px" border="0" class="img_whs3"></p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/doxyfile.in b/doc/salome/gui/SMESH/doxyfile.in
new file mode 100755 (executable)
index 0000000..37ef2d4
--- /dev/null
@@ -0,0 +1,49 @@
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME      = "Mesh Module Reference Manual v.@VERSION@"
+OUTPUT_DIRECTORY  = ./
+CREATE_SUBDIRS   = NO
+OUTPUT_LANGUAGE   = English
+TAB_SIZE          = 5
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET             = NO
+WARNINGS          = YES
+
+#---------------------------------------------------------------------------
+#Input related options
+#---------------------------------------------------------------------------
+INPUT             = @srcdir@/input               
+FILE_PATTERNS     = *.doc
+IMAGE_PATH        = @srcdir@/images
+EXAMPLE_PATH      = ../../../share/salome/src/SMESH_SWIG
+#---------------------------------------------------------------------------
+#HTML related options
+#---------------------------------------------------------------------------
+GENERATE_HTML     = YES
+HTML_OUTPUT       = ./
+HTML_HEADER       = @srcdir@/static/header.html
+HTML_FOOTER       = @srcdir@/static/footer.html
+#HTML_STYLESHEET  = @srcdir@/static/doxygen.css
+TOC_EXPAND        = YES
+DISABLE_INDEX     = NO
+GENERATE_TREEVIEW = YES
+TREEVIEW_WIDTH    = 300
+
+#---------------------------------------------------------------------------
+#LaTeX related option
+#---------------------------------------------------------------------------
+GENERATE_LATEX    = NO
+
+#---------------------------------------------------------------------------
+#RTF related options
+#---------------------------------------------------------------------------
+GENERATE_RTF      = NO
+
+#---------------------------------------------------------------------------
+#External reference options
+#---------------------------------------------------------------------------
+TAGFILES = smeshpy_doc.tag=./smeshpy_doc
diff --git a/doc/salome/gui/SMESH/doxyfile_py.in b/doc/salome/gui/SMESH/doxyfile_py.in
new file mode 100755 (executable)
index 0000000..ff847e5
--- /dev/null
@@ -0,0 +1,137 @@
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME      = "Mesh Module Reference Manual v.@VERSION@"
+OUTPUT_DIRECTORY  = ./
+CREATE_SUBDIRS   = NO
+OUTPUT_LANGUAGE   = English
+USE_WINDOWS_ENCODING   = NO
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = NO
+ALWAYS_DETAILED_SEC    = YES
+INLINE_INHERITED_MEMB  = YES
+FULL_PATH_NAMES        = NO
+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
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = YES
+BUILTIN_STL_SUPPORT    = NO
+DISTRIBUTE_GROUP_DOC   = NO
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = YES
+EXTRACT_STATIC         = NO
+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
+MAX_INITIALIZER_LINES  = 25
+SHOW_USED_FILES        = NO
+SHOW_DIRECTORIES       = NO
+
+#---------------------------------------------------------------------------
+# 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 warning and progress messages
+#---------------------------------------------------------------------------
+QUIET             = NO
+WARNINGS          = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+EXCLUDE_SYMLINKS       = NO
+EXAMPLE_RECURSIVE      = NO
+
+#---------------------------------------------------------------------------
+#Input related options
+#---------------------------------------------------------------------------
+INPUT             = @top_srcdir@/src/SMESH_SWIG
+FILE_PATTERNS     = smeshDC.py
+IMAGE_PATH        = @srcdir@/images
+RECURSIVE         = NO
+
+#---------------------------------------------------------------------------
+#HTML related options
+#---------------------------------------------------------------------------
+GENERATE_HTML     = YES
+HTML_OUTPUT       = ./smeshpy_doc
+HTML_HEADER       = @srcdir@/static/header.html
+HTML_FOOTER       = @srcdir@/static/footer.html
+#HTML_STYLESHEET  = @srcdir@/static/doxygen.css
+TOC_EXPAND        = YES
+DISABLE_INDEX     = YES
+GENERATE_TREEVIEW = NO
+
+#---------------------------------------------------------------------------
+#LaTeX related option
+#---------------------------------------------------------------------------
+GENERATE_LATEX    = NO
+
+#---------------------------------------------------------------------------
+#RTF related options
+#---------------------------------------------------------------------------
+GENERATE_RTF      = NO
+
+#---------------------------------------------------------------------------
+# 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
+
+#---------------------------------------------------------------------------
+#External reference options
+#---------------------------------------------------------------------------
+GENERATE_TAGFILE  = smeshpy_doc.tag
diff --git a/doc/salome/gui/SMESH/ehelp.xml b/doc/salome/gui/SMESH/ehelp.xml
deleted file mode 100755 (executable)
index 8d61adc..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE SYSTEM "ehelpopt.dtd">
-<FILE-OPTIONS FILE-VERSION="2" FILE-KEY="f974c843_2d19_491f_a339_b0affd721669">
-</FILE-OPTIONS>
-<EHELP-OPTIONS FORMAT-VERSION="1.0">
- <OPTIONS ENABLED="NO" EMBEDDED="YES" MAIN-WINDOW-ONLY="NO" COMMUNITY-NOTIFY="NO" FIRST-PAGE="NOT-SET">
- </OPTIONS>
- <BUTTON-LABEL>WebSearch
- </BUTTON-LABEL>
-</EHELP-OPTIONS>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/ehlpdhtm.js b/doc/salome/gui/SMESH/ehlpdhtm.js
deleted file mode 100755 (executable)
index 7bcb249..0000000
+++ /dev/null
@@ -1,4239 +0,0 @@
-// eHelp® Corporation Dynamic HTML JavaScript 
-// Copyright© 1998-2003 eHelp® Corporation.All rights reserved.
-// Version=4.82
-
-// Warning:Do not modify this file.It is generated by RoboHELP® and changes will be overwritten.
-
-//// Segment Begin -- (JavaScript 1.0)
-
-/// Section Begin - General and relative topics(JavaScript 1.0)
-
-//{{HH_SYMBOL_SECTION
-var HH_ChmFilename = "";
-var HH_WindowName = "";
-var HH_GlossaryFont = "";
-var HH_Glossary = "";
-var HH_Avenue = "";
-var HH_ActiveX = false;
-//}}HH_SYMBOL_SECTION
-
-//Begin to support previous generic parameters
-//Get the information about the browser.
-var gstrBsAgent        = navigator.userAgent.toLowerCase();
-var gnBsVer                    = parseInt(navigator.appVersion);
-
-var gbBsOpera          = (gstrBsAgent.indexOf('opera') != -1);
-var gbBsKonqueror      = (gstrBsAgent.indexOf('konqueror') != -1);
-var gbBsSafari         = (gstrBsAgent.indexOf('safari') != -1);
-var gbBsIE             = (gstrBsAgent.indexOf('msie') != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;
-var gbBsNS             = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1)) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;
-
-var gbBsMac                    = (gstrBsAgent.indexOf('mac') != -1);
-var gbBsWindows                = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1));
-var gbBsSunOS          = (gstrBsAgent.indexOf("sunos") != -1);
-
-var gbBsIE3Before      = ((gbBsIE) && (gnBsVer <= 2));
-var gbBsNS3Before      = ((gbBsNS) && (gnBsVer <= 3));
-
-var gbBsNS2                    = ((gbBsNS) && (gnBsVer <= 2));
-var gbBsNS3                    = ((gbBsNS) && (gnBsVer == 3));
-var gbBsIE300301       = ((gbBsIE) && (gnBsVer == 2) && ((gstrBsAgent.indexOf("3.00") != -1)||(gstrBsAgent.indexOf("3.0a") != -1)||(gstrBsAgent.indexOf("3.0b")!=-1)||(gstrBsAgent.indexOf("3.01")!=-1)));
-var gbBsIE302          = ((gbBsIE) && (gnBsVer == 2) && (gstrBsAgent.indexOf("3.02") != -1));
-
-var gbBsNS4                    = ((gbBsNS) && (gnBsVer >= 4));
-var gbBsNS6                    = ((gbBsNS) && (gnBsVer >= 5));
-var    gbBsNS7                 = false;
-
-var gbBsIE4                    = ((gbBsIE) && (gnBsVer >= 4));
-var gbBsIE5                    = false;
-var gbBsIE55           = false;
-
-var gbBsOpera6         = false;
-var gbBsOpera7         = false;
-
-var gbBsKonqueror3     = false;
-
-
-
-gbBsIE = (navigator.appName.indexOf("Microsoft") != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;;
-if (gbBsIE)
-{
-       if (parseInt(navigator.appVersion) >= 4) {
-               gbBsIE4 = true;
-               if (gbBsIE4) {
-                       var nPos = gstrBsAgent.indexOf("msie");
-                       var strIEversion = gstrBsAgent.substring(nPos + 5);
-                       var nVersion =  parseFloat(strIEversion);
-                       if (nVersion >= 5)
-                               gbBsIE5 = true;
-                       if (nVersion >= 5.5)
-                               gbBsIE55 = true;
-               }
-       }
-}
-if (gbBsNS6)
-{
-       var nPos=gstrBsAgent.indexOf("gecko");
-       if(nPos!=-1)
-       {
-               var nPos2=gstrBsAgent.indexOf("/", nPos);
-               if(nPos2!=-1)
-               {
-                       var nVersion=parseFloat(gstrBsAgent.substring(nPos2+1));
-                       if (nVersion>=20020823)
-                               gbBsNS7=true;
-               }
-       }       
-}
-if (gbBsOpera)
-{
-       var nPos = gstrBsAgent.indexOf("opera");
-       if(nPos!=-1)
-       {
-               var nVersion = parseFloat(gstrBsAgent.substring(nPos+6));
-               if (nVersion >= 6)
-               {
-                       gbBsOpera6=true;
-                       if (nVersion >=7)
-                               gbBsOpera7=true;        
-               }
-       }
-}
-if (gbBsKonqueror)
-{
-       var nPos = gstrBsAgent.indexOf("konqueror");
-       if(nPos!=-1)
-       {
-               var nVersion = parseFloat(gstrBsAgent.substring(nPos+10));
-               if (nVersion >= 3)
-               {
-                       gbBsKonqueror3=true;
-               }
-       }
-}
-
-function insertAdjacentHTML(obj, where, htmlStr)
-{
-       if (gbBsIE || gbBsOpera7)
-       {
-               obj.insertAdjacentHTML(where, htmlStr);
-       }
-       else if (gbBsNS6 || gbBsSafari)
-       {
-               var r = obj.ownerDocument.createRange();
-               r.setStartBefore(obj);
-               var     parsedHTML = r.createContextualFragment(htmlStr);
-               
-               switch (where){
-               case 'beforeBegin':
-                       obj.parentNode.insertBefore(parsedHTML,obj);
-                       break;
-               case 'afterBegin':
-                       obj.insertBefore(parsedHTML,obj.firstChild);
-                       break;
-               case 'beforeEnd':
-                       obj.appendChild(parsedHTML);
-                       break;
-               case 'afterEnd':
-                       if (obj.nextSibling){
-                       obj.parentNode.insertBefore(parsedHTML,obj.nextSibling);
-                       } else {
-                       obj.parentNode.appendChild(parsedHTML);
-                       }
-                       break;
-               }
-       }
-}
-
-// Utilities functions.
-function BsscHasExtJs()
-{
-       if( gbBsIE3Before || gbBsNS3Before)
-               return false;
-       return true;
-}
-
-// Register event handler
-var gBsOnLoads                         = new Array();  // An array holds all the onload event handler.
-var gBsOnClicks                = new Array();  // An array holds all the onClick event handler.
-var gBsOnUnLoads               = new Array();  // An array holds all the OnUnLoad event handler.
-var gBsOnMouseOvers    = new Array();  // An array holds all the OnMouseOver event handler.
-var gBsOnMouseOuts             = new Array();  // An array holds all the OnMouseOut event handler.
-
-var gbOrignalOnMouseDown = null;
-
-function BsscRegisterOnLoad(funcHandler)
-{
-       var nLength = gBsOnLoads.length;
-       gBsOnLoads[nLength] = funcHandler;
-}
-
-function BsscRegisterOnClick(funcHandler)
-{
-       var nLength = gBsOnClicks.length;
-       gBsOnClicks[nLength] = funcHandler;
-}
-
-function BsscRegisterOnUnLoad(funcHandler)
-{
-       var nLength = gBsOnUnLoads.length;
-       gBsOnUnLoads[nLength] = funcHandler;
-}
-
-function BsscRegisterOnMouseOver(funcHandler)
-{
-       var nLength = gBsOnMouseOvers.length;
-       gBsOnMouseOvers[nLength] = funcHandler;
-}
-
-function BsscRegisterOnMouseOut(funcHandler)
-{
-       var nLength = gBsOnMouseOuts.length;
-       gBsOnMouseOuts[nLength] = funcHandler;
-}
-
-function BsGeneralOnLoad()
-{
-       if (!gbBsIE4 && !gbBsNS4)
-               return;
-
-       // Make everything visible in navigator
-       if (gbBsNS4 && !gbBsNS6) {
-               // Make some special effects items visible
-               for (var iLayer = 0; iLayer < document.layers.length; iLayer++) {
-                       document.layers[iLayer].visibility = "show";
-                       document.layers[iLayer].left = 0;
-               }
-       }
-}
-
-// If resize the netscape browser, need to reload it.
-function BsReDo()
-{
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-// End of the local functions.
-
-// The following functions are used by the html files.
-function BSSCOnLoad()
-{
-       if( !BsscHasExtJs() )
-               return;
-       for (var nElement = gBsOnLoads.length - 1; nElement >= 0; nElement--)
-               gBsOnLoads[nElement]();
-}
-
-function BSSCOnClick()
-{
-       if (!BsscHasExtJs()) return;
-               
-       for (var nElement = gBsOnClicks.length - 1; nElement >= 0; nElement--)
-               gBsOnClicks[nElement]();
-}
-
-function BSSCOnUnload()
-{
-       if (!BsscHasExtJs()) return;
-       for (var nElement = gBsOnUnLoads.length - 1; nElement >= 0; nElement--)
-               gBsOnUnLoads[nElement]();
-}
-
-function BSSCOnMouseOver()
-{
-       if (!BsscHasExtJs()) return;
-       for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--)
-               gBsOnMouseOvers[nElement]();
-}
-
-function BSSCOnMouseOut()
-{
-       if (!BsscHasExtJs()) return;
-       for (var nElement = gBsOnMouseOuts.length - 1; nElement >= 0; nElement--)
-       {
-               gBsOnMouseOuts[nElement]();
-       }
-}
-// End of invocation of the event handle functions.
-
-// Add the GereralOnLoad to the onload array.
-if (typeof(BsscRegisterOnLoad) != "undefined")
-{
-       BsscRegisterOnLoad(BsGeneralOnLoad);
-}
-if (gbBsNS4&&!gbBsNS6) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = BsReDo;
-}
-//End to support previous generic parameters
-
-//Begin to support previous HHActiveX invoking
-function BsHHActivateComponents()
-{
-       if( HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0])))
-       {
-               var objBody = getElementsByTag(document,"BODY")[0];
-               if( typeof(objBody) == "object" )
-               {
-                       insertAdjacentHTML(objBody, "beforeEnd", '<OBJECT ID="HHComponentActivator" CLASSID="CLSID:399CB6C4-7312-11D2-B4D9-00105A0422DF" width=0 height=0></OBJECT>');
-                       if (HHComponentActivator.object)
-                               HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue);
-               }
-       }
-}
-
-function BsHHActivXOnLoad()
-{      
-       if( gbBsIE4 )
-               BsHHActivateComponents(); 
-}
-
-if( typeof(BsscRegisterOnLoad) != "undefined" )
-{
-       BsscRegisterOnLoad(BsHHActivXOnLoad);
-}
-//End to support previous HHActiveX invoking
-
-//Begin to support previous relative topics
-//If webHelp needs Related Topics DHTMLcode, it's supposed to add it here
-var gbPopupMenuTimeoutExpired = false;
-var gbInPopupMenu = false;
-var gbPopupMenuTopicList = null;
-var gOlddocumentClick = null;
-
-//////////////////////////////////////////////////////////////////////////////////////////
-//
-// Popup Menu code
-//
-//////////////////////////////////////////////////////////////////////////////////////////
-
-var g_bIsPopupMenuInit = false;
-function _WritePopupMenuLayer()
-{
-       if (!g_bIsPopupMenuInit)
-        {
-         if (gbBsNS4&&!gbBsNS6) {
-//Do not try to write ininle styles for NS!  NS can not handle it and will not stop downloading the html page...
-               document.write("<DIV CLASS='WebHelpPopupMenu' ID='PopupMenu'></DIV>");
-         } else{
-         document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");
-         if (!(gbBsNS4&&!gbBsNS6)) {
-               document.write("<STYLE TYPE='text/css'>");
-               if (gbBsMac&&gbBsIE4) {
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");
-               } else {
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:8pt; font-style:normal;font-weight:normal;text-decoration:none;}");
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:8pt; font-style:normal;font-weight:normal;text-decoration:none;}");
-               }
-               document.write("</STYLE>");
-          }
-          }
-         g_bIsPopupMenuInit = true;
-       }
-}
-
-//Seek for the bsscright frame 
-function _SeekFrameByName( cRoot, strName )
-{
-       if( cRoot == null )     return null;
-       if( cRoot.frames == null )      return null;
-       if( cRoot.frames[strName] != null )     return cRoot.frames[strName];
-       for (var i=0; i<cRoot.frames.length; i++)
-       {
-               var cObj = null;
-               if (!gbBsNS6) 
-                       cObj = _SeekFrameByName( cRoot.frames(i).document, strName );
-               else
-                       cObj = _SeekFrameByName( cRoot.frames[i], strName );
-               if( cObj != null )              return cObj;
-       };
-       return null;
-}
-function _GetFrameByName( cRoot, strName )
-{
-       if( cRoot == null )     return null;
-       var cRet = _SeekFrameByName(cRoot, strName);
-       if( cRet != null )      return cRet;
-       if (cRoot.parent != cRoot)
-               return _GetFrameByName( cRoot.parent, strName );
-       else
-               return null;
-}
-
-var gfn_arguments = null;
-function _PopupMenu_Invoke(fn_arguments)
-{
-       gfn_arguments = fn_arguments;
-       if (gbBsOpera6&&gbBsMac)
-       {
-               var wndOldPopupLinks= window.open(document.location.href, "popuplinks");
-               wndOldPopupLinks.close();
-               setTimeout("_PopupMenu_Invoke_2();",100);
-       }
-       else
-       {
-               _PopupMenu_Invoke_2();
-       }
-}
-
-function _PopupMenu_Invoke_2()
-{
-       var fn_arguments = gfn_arguments;
-       gfn_arguments = null;
-       
-       // Make sure we have reasonable arguments
-       var argLen = fn_arguments.length;
-       if (argLen < 3) {
-               return false;
-       }
-
-       // Check to see if we only have one target
-       var strTarget = "";
-       var targetDoc = null;
-       if (fn_arguments[1] == '') {
-               if (BSSCPopup_IsPopup()) {
-                       targetDoc = parent;
-                       strTarget = "TARGET= _parent";
-               }
-               else
-                       targetDoc = window.document;
-       } else {
-               targetDoc = _GetFrameByName( parent, fn_arguments[1] );
-
-               strTarget = "TARGET='" + fn_arguments[1] + "'";
-       }
-
-       if ((!gbBsIE4 && !gbBsNS4 && !gbBsOpera7 && !gbBsKonqueror3 &&!gbBsSafari) || ((gbBsMac) && (gbBsIE4) && (window.event.srcElement.tagName == "AREA"))) {
-       
-               var argLen      = fn_arguments.length;
-
-               // Create the window that the hyperlinks will go into
-               var nHeight = argLen * 15;
-               var nWidth = 400;
-               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=auto";
-               strParam += ",height=" + nHeight + ",width=200";
-               strParam += ",resizable";
-
-               var wndTemp=null;
-               // Create a temporary window first to ensure the real popup comes up on top
-               if (!gbBsOpera)
-                       wndTemp = window.open("", "temp", strParam);
-
-               // Create the real popup window
-               var wndPopupLinks=null;
-               if (gbBsOpera&&gbBsMac)
-               {
-                       wndTemp = window.open(document.location.href, "temp", strParam);
-                       wndPopupLinks= window.open(document.location.href, "popuplinks", strParam);
-               }
-               else
-                       wndPopupLinks= window.open("", "popuplinks", strParam);
-               wndPopupLinks.document.open("text/html");
-
-               // Close the temporary
-               if (wndTemp)
-                       wndTemp.close();
-
-               var sHTML="<html><head></head>";
-               sHTML+="<body onBlur=\'self.focus();\'>";
-               var strParaLine = "";
-               for (var i = 0; i < (argLen - 2) / 2; i++) {
-                       strParaLine = "";
-                       strParaLine += "<a href=\"javascript:";
-                       if (gbBsIE) {
-                               strParaLine += "onBlur=null; ";
-                       }
-                       strParaLine += "opener.location=\'";
-                       strParaLine += fn_arguments[2 * i + 3];
-                       strParaLine += "\';close();\"";
-                       strParaLine += strTarget;
-
-                       strParaLine += ">";
-                       strParaLine += fn_arguments[2 * i + 2];
-                       strParaLine += "</a>";
-                       strParaLine += "<br>";
-                       sHTML+=strParaLine;
-               }
-               sHTML+="</body></html>";
-               wndPopupLinks.document.write(sHTML);
-               wndPopupLinks.document.close();
-               window.gbInPopupMenu = true;
-               if (!gbBsIE) {
-                       wndPopupLinks.focus();
-               }
-               return false;
-       }
-
-       if (((argLen < 5) && ((isNaN(fn_arguments[2])) || (gbPopupMenuTopicList == null))) ||
-               ((argLen < 4) && ((!isNaN(fn_arguments[2])) && (gbPopupMenuTopicList != null)))) {
-               // Get the place that we will be putting the topic into
-               var strURL = "";
-               if (isNaN(fn_arguments[2]) ||  (gbPopupMenuTopicList == null)) {
-                       strURL = fn_arguments[3];
-               }
-               else    {
-                       strURL = gbPopupMenuTopicList[fn_arguments[2]].strURL;
-               }
-
-               if (targetDoc != null) {
-                       targetDoc.location.href = strURL;
-               }
-               else {
-                       if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined")
-                               window.open(strURL, fn_arguments[1]);
-                       else
-                               window.open(strURL);
-               }               
-               window.gbInPopupMenu = true;
-               return false;
-       }
-       
-       var strMenu = "";
-       if (gbBsNS4&&!gbBsNS6) {
-               strMenu = '<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=3 BGCOLOR="#c0c0c0">';
-       } else {
-               strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';
-               if (gbBsMac) {
-                       strMenu += ' CELLPADDING=4';
-               } else {
-                       strMenu += ' CELLPADDING=2';
-               }       
-               strMenu += ' BGCOLOR=#c0c0c0>';
-       }
-       // Add each of the items
-       var i = 2;
-       while (i <= argLen - 1) {
-               strMenu += '<TR><TD><NOBR>'
-               // If the destination is a number then look it up in the topic list
-               if (isNaN(fn_arguments[i]) ||  (gbPopupMenuTopicList == null)) {
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + fn_arguments[i + 1] + '"' + strTarget;
-               } else {
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + gbPopupMenuTopicList[fn_arguments[i]].strURL + '"' + strTarget;
-               }
-               strMenu += ' onclick="PopupMenu_HandleClick(event);"';
-               strMenu += ' onmouseover="PopupMenu_Over(event);"';
-               strMenu += ' onmouseout="PopupMenu_Out(event);"';
-               strMenu += '>';
-               if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';
-               } else {
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + gbPopupMenuTopicList[fn_arguments[i]].strTitle + '</SPAN>';
-               }
-               strMenu += '</A></DIV></NOBR></TD></TR>';
-
-               if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {
-                       i += 2;
-               } else {
-                       i += 1;
-               }
-       }
-       strMenu += "</TABLE>";
-
-       if (gbBsMac) {
-       // totally hack. because ie5 in mac need something. </TABLE> is one of them. mac is mad.
-               strMenu +="<TABLE></TABLE>";
-       }
-
-       var layerPopup = null;
-       var stylePopup = null;
-       var nEventX = 0;
-       var nEventY = 0;
-       var nWindowWidth = 0;
-       if (gbBsIE4 || gbBsOpera7) {
-
-               layerPopup = getElement("PopupMenu");
-               layerPopup.innerHTML = strMenu;
-               stylePopup = layerPopup.style;
-
-               _BSPSGetClientSize();
-
-               // Get the position of the item causing the event (relative to its parent)
-               nEventX = window.event.clientX;
-               nEventY = window.event.clientY;
-
-               if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) {
-                       nEventY += document.body.scrollTop + 10;
-               } else {
-                       nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20;
-               }
-               stylePopup.top = nEventY;
-               
-               var nPopupWidth = layerPopup.scrollWidth;
-               if (gbBsMac) {
-                       nPopupWidth = 80; // we have no idea how to get the dynamic width of the popup.
-               }
-               if (nEventX + nPopupWidth + 20 > gBsClientWidth) {
-                       if (gBsClientWidth - nPopupWidth < 5) {
-                               stylePopup.left = 5;
-                       } else {
-                               stylePopup.left = gBsClientWidth - nPopupWidth - 5;
-                       }
-               } else {
-                       stylePopup.left = nEventX + document.body.scrollLeft + 20;
-               }
-
-               stylePopup.visibility = "visible";
-               if (!gOlddocumentClick && document.onclick)
-                       gOlddocumentClick = document.onclick;
-               document.onclick = PopupMenu_HandleClick;
-
-       } else if (gbBsNS6 || gbBsKonqueror3||gbBsSafari) {
-               layerPopup = getElement("PopupMenu");
-               layerPopup.style.visibility = "hidden";
-       
-               if (gbBsNS6)
-               {
-                       var e = fn_arguments[0];
-                       nEventX = e.pageX;
-                       nEventY = e.pageY;
-               }
-               else
-               {
-                       nEventX = window.event.clientX;
-                       nEventY = window.event.clientY;
-               }
-               _BSPSGetClientSize();
-               layerPopup.innerHTML = strMenu;
-
-               if (nEventY + layerPopup.offsetHeight + 20  <  window.pageYOffset + gBsClientHeight) {
-                       nEventY += 20;
-               } else {
-                       nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20;
-               }
-
-               if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) {
-                       if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) {
-                               nEventX = 5;
-                       } else {
-                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20;
-                       }
-               } else {
-                       nEventX += 20;
-               }
-               layerPopup.style.top = nEventY;
-               layerPopup.style.left = nEventX;
-               // set again to avoid the stupid frash in netscape 6.
-               layerPopup.innerHTML = strMenu;
-               layerPopup.style.visibility = "visible";
-               //window.captureEvents(Event.MOUSEDOWN);
-               if (!gOlddocumentClick && document.onclick)
-                       gOlddocumentClick = document.onclick;
-               window.onclick = PopupMenu_HandleClick;
-       }
-       else if (gbBsNS4) {
-               layerPopup = document.layers.PopupMenu;
-               layerPopup.visibility = "hide";
-               stylePopup = layerPopup.document;
-               stylePopup.write(strMenu);
-               stylePopup.close();
-               var e = fn_arguments[0];
-               nEventX = e.pageX;
-               nEventY = e.pageY;
-               _BSPSGetClientSize();
-               if (nEventY + layerPopup.clip.height + 20 < window.pageYOffset + gBsClientHeight) {
-                       nEventY += 20;
-               } else {
-                       nEventY = gBsClientHeight + window.pageYOffset- layerPopup.clip.height - 20;
-               }
-               layerPopup.top = nEventY;
-
-               if (nEventX + layerPopup.clip.width + 20 > gBsClientWidth + window.pageXOffset) {
-                       if (gBsClientWidth + window.pageXOffset - layerPopup.clip.width < 20) {
-                               nEventX = 5;
-                       } else {
-                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.clip.width - 20;
-                       }
-               } else {
-                       nEventX += 20;
-               }
-
-               layerPopup.left = nEventX;
-
-               layerPopup.visibility = "show";
-
-               window.captureEvents(Event.MOUSEDOWN);
-               if (!gOlddocumentClick && document.onmousedown)
-                       gOlddocumentClick = document.onmousedown;
-               window.onmousedown = PopupMenu_HandleClick;
-       }
-
-       window.gbInPopupMenu = true;
-       window.gbPopupMenuTimeoutExpired = false;
-       setTimeout("PopupMenu_Timeout();", 100);
-       return false;
-}
-
-function PopupMenu_Timeout()
-{
-       window.gbPopupMenuTimeoutExpired = true;
-}
-
-function PopupMenu_Over(e)
-{
-    if (gbBsIE4||gbBsOpera7)
-               e.srcElement.className = "PopupOver";
-    else if (gbBsNS6)
-               e.target.parentNode.className = "PopupOver";
-       return;
-}
-
-function PopupMenu_Out(e)
-{
-    if (gbBsIE4||gbBsOpera7)
-               e.srcElement.className = "PopupNotOver";
-    else if (gbBsNS6)
-               e.target.parentNode.className = "PopupNotOver";
-       return;
-}
-
-function PopupMenu_HandleClick(e)
-{
-       if (window.gbPopupMenuTimeoutExpired) {
-               window.gbInPopupMenu = false;
-               if (gbBsNS4 && !gbBsNS6) {
-                       window.releaseEvents(Event.MOUSEDOWN);
-               }
-
-               var layerPopup = null;
-               if (gbBsNS4&&!gbBsNS6) {
-                       layerPopup = document.layers.PopupMenu;
-                       layerPopup.visibility = "hide";
-               } else {
-                       layerPopup = getElement("PopupMenu");
-                       layerPopup.style.visibility = "hidden";
-               }
-       
-               if (gOlddocumentClick)
-               {
-                       if (gbBsNS4 && !gbBsNS6)
-                               document.onmousedown = gOlddocumentClick;
-                       else
-                               document.onclick = gOlddocumentClick;
-               }
-       }
-       return;
-}
-
-function BSSCPopup_ClickMac()
-{
-       if ((!DHTMLPopupSupport()) && (gbBsIE4 || gbBsOpera7))
-       {       
-               var bClickOnAnchor = false;
-               var el;
-               if ((window.event != null) &&
-                   (window.event.srcElement != null))
-               {
-                   el = window.event.srcElement;
-                       while (el != null)
-                       {
-                               if ((el.tagName == "A") || (el.tagName == "AREA"))      {
-                                       bClickOnAnchor = true;
-                                       break;
-                               }
-                               if (el.tagName == "BODY") {
-                                       break;
-                               }
-                               el = getParentNode(el);
-                       }
-               }
-               if (BSSCPopup_IsPopup())
-               {
-                       if (!bClickOnAnchor) {
-                               parent.window.gPopupWindow = null;
-                               self.close();
-                       }
-               }
-               else
-               {
-                       bClosePopupWindow = true;
-                       if ((bClickOnAnchor) &&
-                               (el.href) &&
-                           ((el.href.indexOf("javascript:BSSCPopup") != -1) || (el.href.indexOf("javascript:null") != -1) || (el.href.indexOf("javascript:void(0)") != -1)))
-                       {
-                               bClosePopupWindow = false;
-                       }
-                       if (bClosePopupWindow)
-                       {
-                               if (window.gPopupWindow != null && !window.gPopupWindow.closed )
-                               {
-                                       window.gPopupWindow.close();
-                               }
-                       }
-               }
-       }
-}
-
-function BsPopupOnClick()
-{
-       if (!gbBsIE4 && !gbBsOpera7)
-               return;
-
-       BSSCPopup_ClickMac();
-}
-
-function _BSSCOnError(message)
-{
-       if(-1 != message.indexOf("denied") 
-               || -1 != message.indexOf("Object required"))
-        return true;
-}
-
-//End to support previous relative topics
-
-/// Section End - General and relative topics (JavaScript 1.0)
-
-/// Section Begin  - Popup (JavaScript 1.0)
-//Begin to support previous popup functions
-
-//variables used to isolate the browser type
-var gBsStyVisShow      = null;
-var gBsStyVisHide      = null;
-var gBsClientWidth     = 640;
-var gBsClientHeight = 480;
-
-// here is the varible for judge popup windows size. these parameter is for IE5.0, it may need adjust for others.
-var gBRateH_W          = 0.618; // 1.618 Golden cut.
-var gBMaxXOfParent     = 0.8; 
-var gBMaxYOfParent     = 0.8;
-var gBscrollHeight   = 16;
-var gBscrollWidth   =  16;
-var gBpermitXDelta     = 3;
-var gBpermitYDelta     = 3;
-
-
-var arrayPopupURL = new Array();
-var arrayAbsPopupURL = new Array();
-
-var arrayDirty = new Array();
-
-function setAbsPopupURL(nIndex, strURL)
-{
-       arrayAbsPopupURL[nIndex] = strURL;
-}
-
-function getAbsPopupURL(nIndex)
-{
-       if (nIndex == -1 || arrayAbsPopupURL.length <= nIndex) return null;
-       else 
-               return arrayAbsPopupURL[nIndex];
-}
-
-function getPopupURL(nIndex)
-{
-       if (nIndex == -1 || arrayPopupURL.length <= nIndex) return null;
-       else 
-               return arrayPopupURL[nIndex];
-}
-
-function getPopupID(nIndex)
-{
-       return gstrPopupID + nIndex;
-}
-
-function getPopupShadowID(nIndex)
-{
-       return gstrPopupShadowID + nIndex;
-}
-
-function getPopupTopicID(nIndex)
-{
-       return gstrPopupTopicID + nIndex;
-}
-
-function getPopupIFrameID(nIndex)
-{
-       return gstrPopupIFrameID + nIndex;
-}
-
-function getPopupIFrameName(nIndex)
-{
-       return gstrPopupIFrameName + nIndex;
-}
-
-
-function getPopupTopicStyle(nIndex)
-{
-       return getElement(getPopupTopicID(nIndex)).style;
-}
-
-function getPopupShadowStyle(nIndex)
-{
-       return getElement(getPopupShadowID(nIndex)).style;
-}
-
-function getPopupIFrame(nIndex)
-{
-       if (gbBsNS6)
-               return eval("window.frames['" + getPopupIFrameName(nIndex) + "']");
-       else
-               return eval("document.frames['" + getPopupIFrameName(nIndex) + "']");
-}
-
-function getPopupDivStyle(nIndex)
-{
-       return getElement(getPopupID(nIndex)).style;
-}
-
-function getPopupIFrameStyle(nIndex)
-{
-       return getElement(getPopupIFrameID(nIndex)).style;
-}
-
-
-function findDiv(strURL)
-{
-       for (var i = 0; i < arrayPopupURL.length; i ++ ) {
-               if (arrayPopupURL[i] == strURL) {
-                       return i;
-               }
-       }
-       return -1;
-}
-
-var gnToken = -1;
-function takeToken()
-{
-       gnToken ++;
-       if (gnToken > 10000) gnToken = 0;
-       return gnToken;
-}
-
-function IsValidToken(nToken)
-{
-       return (gnToken == nToken);
-}
-
-function addDiv(strURL)
-{
-       for (var i = 0; i < arrayPopupURL.length; i ++) {
-               if (arrayPopupURL[i] == null) {
-                       arrayPopupURL[i] = strURL;
-                       return i;
-               }
-       }       
-       arrayPopupURL[i] = strURL;
-       arrayDirty[i] = true;
-       return i;
-}
-
-function setDirty()
-{
-       for (var i = 0; i < arrayPopupURL.length; i ++ )
-               arrayDirty[i] = true;
-}
-
-function IsDirty(nIndex)
-{
-       if (nIndex == -1)
-               return true;
-       else 
-               if (arrayDirty.length > nIndex) 
-                       return arrayDirty[nIndex];
-               else
-                       return true;
-}
-
-function hideAll()
-{
-       for (var i = 0; i < arrayPopupURL.length; i ++ )
-       {
-               getPopupDivStyle(i).visibility = gBsStyVisHide;
-               getPopupIFrameStyle(i).visibility = gBsStyVisHide;
-       }
-}
-
-function getCurrentPopupIFrame()
-{
-       for (var i = 0; i < arrayPopupURL.length; i ++)
-               if (getPopupDivStyle(i).visibility == gBsStyVisShow)
-                       return getPopupIFrame(i);
-       return null;
-}
-
-function setClear(nIndex)
-{
-       if (nIndex != -1)
-               arrayDirty[nIndex] = false;
-}
-
-function _BSSCCreatePopupDiv(strURL)
-{
-       var nIndex = findDiv(strURL);
-       if (nIndex == -1 ) {
-               nIndex = addDiv(strURL);
-               BsPopup_CreateDiv(nIndex);
-       }
-       else {
-               if (IsDirty(nIndex)) {
-                       if("object" == typeof(getPopupIFrame(nIndex).document))
-                               getPopupIFrame(nIndex).document.location.href = strURL;
-               }
-       }
-       return nIndex;
-}
-
-//Here is the browser type 
-function _BSPSGetBrowserInfo()
-{
-       if (gbBsNS4&&!gbBsNS6)
-       {
-               gBsStyVisShow   = "show";
-               gBsStyVisHide   = "hide";
-       }
-       else
-       {
-               gBsStyVisShow   = "visible";
-               gBsStyVisHide   = "hidden";
-       }
-}
-
-_BSPSGetBrowserInfo();
-
-//Get client size info
-function _BSPSGetClientSize()
-{
-       if (gbBsNS4||gbBsKonqueror3||gbBsSafari)
-       {
-               gBsClientWidth  = innerWidth;
-               gBsClientHeight = innerHeight;
-       }
-       else if (gbBsIE4 || gbBsOpera7)
-       {
-               gBsClientWidth  = document.body.clientWidth;
-               gBsClientHeight = document.body.clientHeight;
-       }
-}
-
-var gstrPopupID = 'BSSCPopup';
-var gstrPopupShadowID = 'BSSCPopupShadow';
-var gstrPopupTopicID = 'BSSCPopupTopic';
-var gstrPopupIFrameID = 'BSSCPopupIFrame';
-var gstrPopupIFrameName = 'BSSCPopupIFrameName';
-
-var gstrPopupSecondWindowName = 'BSSCPopup';
-
-var gPopupWindow = null;
-var gnPopupClickX = 0;
-var gnPopupClickY = 0;
-
-var gnPopupScreenClickX = 0;
-var gnPopupScreenClickY = 0;
-
-var gbPopupTimeoutExpired = false;
-
-function DHTMLPopupSupport()
-{
-       if (((gbBsIE4) && (!gbBsMac))||gbBsOpera7|| gbBsNS7) {
-               return true;
-       }
-       return false;
-}
-
-function BSSCPopup_IsPopup()
-{
-       if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) {
-               return true;
-       } else if ((gbBsNS4 || gbBsIE4 || gbBsOpera7) && (this.name.indexOf(gstrPopupID) != -1)) {
-               return true;
-       } else {
-               return false;
-       }
-}
-
-// If there is a hyperlink in a popup window, display the hyperlink in
-// the original window. (bsscright)
-if (BSSCPopup_IsPopup() && !gbBsIE4 && !gbBsOpera7) {
-       document.write("<base target=\"bsscright\">");
-}
-
-// Local functions.
-function BsPopup_CreateDiv(nIndex)
-{
-       if(!DHTMLPopupSupport())
-               return;
-       // DO NOT SET Width and height for the div, otherwize it will make IE4 popup do not work when view the topic alone.
-       var strPopupDiv = "<DIV ID='" + getPopupID(nIndex) + "' STYLE='position:absolute; top:-100; left:0; z-index:600; visibility:hidden;'>";
-       strPopupDiv += "<DIV ID='" + getPopupShadowID(nIndex) + "' STYLE=\"position:absolute;top:0; left:0;  background-color:#C0C0C0;\"></DIV>";
-       strPopupDiv += "<DIV ID='" + getPopupTopicID(nIndex) + "' STYLE=\"position:absolute;top:0; left:0;  background-color:#FFFFFF;border:1px #000000 outset;\">";
-       strPopupDiv += "<IFRAME title=\"Popup Window\" ID='" + getPopupIFrameID(nIndex) + "' name='" + getPopupIFrameName(nIndex) + "' src = '" + getPopupURL(nIndex) + "' frameborder=0 scrolling=auto></IFRAME>";
-       strPopupDiv += "</DIV></DIV>";
-
-       var objBody = getElementsByTag(document, "BODY")[0];
-       if( typeof(objBody) != "object" )
-               return;
-
-       insertAdjacentHTML(objBody, "beforeEnd", strPopupDiv);
-}
-
-function handleLoadNS()
-{
-       if (this.id)
-       {
-               var nIndex = parseInt(this.id.substring(gstrPopupIFrameID.length));
-               BSSCPopup_PostWork(nIndex);
-       }
-}
-
-function BSSCPopup_PostWork(nIndex)
-{
-       getPopupDivStyle(nIndex).visibility = gBsStyVisShow;
-       getPopupIFrameStyle(nIndex).visibility =gBsStyVisShow;
-
-       setClear(nIndex);
-       window.gbPopupTimeoutExpired = true;
-
-       BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document);
-       if (gbBsNS6)
-               getPopupIFrame(nIndex).document.body.addEventListener("click",BSSCPopupClicked,false);
-       else
-               getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked;
-
-       if (!gbOrignalOnMouseDown && document.onmousedown)
-               gbOrignalOnMouseDown = document.onmousedown;
-
-       if (gbBsNS6)
-               document.addEventListener("mousedown", BSSCPopupParentClicked,false);
-       else
-               document.onmousedown = BSSCPopupParentClicked;
-}
-
-function BSSCPopup_Timeout(nIndex, nToken)
-{
-    if (!IsValidToken(nToken)) return;
-
-       if (gbBsNS6||((getPopupIFrame(nIndex).document.readyState == "complete") &&
-               (getPopupIFrame(nIndex).document.body != null))) {
-               BSSCPopup_PostWork(nIndex);
-       } else {
-               setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100);
-       }
-}
-
-// VH 08/10/00 
-// do not change target to parent if the href is using javascript
-function BSSCPopup_ChangeTargettoParent(tagsObject)
-{
-       var collA = getElementsByTag(tagsObject, "A");
-       BSSCPopup_ChangeTargettoParent2(collA);
-
-       var collIMG = getElementsByTag(tagsObject,"IMG");
-       BSSCPopup_ChangeTargettoParent2(collIMG);
-}
-
-function BSSCPopup_ChangeTargettoParent2(colls)
-{
-       if (colls != null)  {
-               for (var j = 0; j < colls.length; j ++ )
-               {
-                       var strtemp = colls[j].href;
-                       if (strtemp)
-                       {
-                               strtemp = strtemp.toLowerCase();
-                               if (strtemp.indexOf("javascript:") == -1)
-                               if (colls[j].target == "")
-                                       colls[j].target = "_parent";
-                       }
-               }
-       }
-}
-
-function BSPSPopupTopicWinHelp(strURL)
-{
-       _BSSCPopup(strURL);
-       return;
-}
-
-function _BSSCPopup(strURL, width, height)
-{
-       var cuswidth = 0;
-       var cusheight = 0;
-       if ("undefined" != typeof(width) && "undefined" != typeof(height)) {
-               cuswidth = width;
-               cusheight= height;
-       }
-       
-       if (DHTMLPopupSupport()) {
-               var nToken = takeToken(); // take  token first.
-               var nIndex = _BSSCCreatePopupDiv(strURL);
-               window.gbPopupTimeoutExpired = false;
-               var ntWidth = gBsClientWidth;
-               var ntHeight = gBsClientHeight;
-               _BSPSGetClientSize();
-               if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) {
-                       setDirty();
-               }
-
-               if (IsDirty(nIndex)) {
-                       if (gbBsMac) {
-                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight  +")", 400);
-                       } else {
-                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100);
-                       }
-               }
-               else {
-                       MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight);
-               }
-       } else {
-               _BSSCPopup2(strURL, cuswidth, cusheight);
-       }
-       return;
-}
-
-if (gbBsIE55)
-{
-       var ehlpdhtm_fOldBefureUnload = window.onbeforeunload;
-       var gnBsUnload=0;
-       window.onbeforeunload = window_BUnload;
-}
-       
-function window_BUnload()
-{
-       gnBsUnload++;
-       if (gnBsUnload>1)
-               return;
-       for (var i = 0; i < arrayPopupURL.length; i ++)
-               removeThis(document.all(getPopupID(i)));
-       arrayPopupURL.length = 0;       
-       if (ehlpdhtm_fOldBefureUnload)
-               ehlpdhtm_fOldBefureUnload();
-}
-
-function _BSSCPopup2(strURL, width, height)
-{
-       if (gbBsOpera6&&gbBsMac)
-       {
-               var wmTemp = window.open(document.location.href, gstrPopupSecondWindowName);
-               wmTemp.close();
-               setTimeout("_BSSCPopup3(\""+strURL+"\","+width+","+height+");",100);
-       }
-       else
-               _BSSCPopup3(strURL, width, height);
-}
-               
-function _BSSCPopup3(strURL, width, height)
-{
-       if (window.name == gstrPopupSecondWindowName) {
-               window.location = strURL;
-       } else {
-               if (!gbBsMac || !gbBsNS4) {
-                       BSSCHidePopupWindow();
-               }
-               var nX = 0;
-               var nY = 0;
-               var nHeight = 300;
-               var nWidth = 400;
-               if (width > 0 && height > 0) {
-                       nHeight = height;
-                       nWidth = width;
-               }
-               _BSPSGetClientSize();
-
-               nX = window.gnPopupScreenClickX;
-               nY = window.gnPopupScreenClickY;
-
-               if (nY + nHeight + 40 > screen.availHeight) {
-                       nY = screen.availHeight - nHeight - 40;
-               }
-               if (nX + nWidth + 40 > screen.availWidth) {
-                       nX = screen.availWidth - nWidth - 40;
-               }
-
-               // Launch a separate window
-               var strParam="titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes";
-               if (gbBsNS) {
-                       if (gbBsNS6) {
-                               strParam += ",Height=" + nHeight + ",Width=" + nWidth;
-                               strParam += ",screenX=" + nX + ",screenY=" + nY;
-                               strParam += ",dependent=yes";
-                       }
-                       else {
-                               strParam += ",OuterHeight=" + nHeight + ",OuterWidth=" + nWidth;
-                               strParam += ",screenX=" + nX + ",screenY=" + nY;
-                               strParam += ",dependent=yes";
-                       }
-               }
-               else {
-                       strParam += ",height=" + nHeight + ",width=" + nWidth;
-                       strParam += ",left=" + nX + ",top=" + nY;
-               }
-               if (gbBsSafari)
-               {
-                       if (window.gPopupWindow)
-                               window.gPopupWindow.close();            
-                       window.gPopupWindow = window.open(strURL, "", strParam);
-                       window.gPopupWindow.name = gstrPopupSecondWindowName;
-                       window.gPopupWindow.moveTo(nX, nY);
-                       widnow.gPopupWindow.document.location.reload();
-               }       
-               else
-               {
-                       var wmTemp=null;
-                       if (gbBsKonqueror3)
-                       {
-                               if (window.gPopupWindow)
-                                       window.gPopupWindow.close();
-                       }
-                       if (gbBsOpera&&gbBsMac)
-                       {
-                               wmTemp= window.open(document.location.href, "Temp", strParam);
-                       }
-                       window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam);
-                       if (!gbBsIE)
-                               window.gPopupWindow.focus();
-                               
-                       if (wmTemp)
-                               wmTemp.close();
-               }
-
-               if (gbBsNS4)
-                       setEventHandle();
-               else if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3)
-                       setTimeout("setPopupFocus();", 100);
-       }
-       return;
-}
-
-function setEventHandle()
-{
-       window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUR);
-       window.gPopupWindow.onclick = NonIEPopup_HandleClick;
-       window.gPopupWindow.onblur = NonIEPopup_HandleBlur;
-}
-
-function setPopupFocus()
-{
-       window.gPopupWindow.focus();
-}
-
-function NonIEPopup_HandleBlur(e)
-{
-       window.gPopupWindow.focus();
-}
-
-function NonIEPopup_HandleClick(e)
-{
-       // Because navigator will give the event to the handler before the hyperlink, let's
-       // first route the event to see if we are clicking on a Popup menu in a popup.
-       document.routeEvent(e);
-
-       // If a popup menu is active then don't do anything with the click
-       if (window.gPopupWindow.gbInPopupMenu) {
-               window.gPopupWindow.captureEvents(Event.CLICK);
-               window.gPopupWindow.onclick = NonIEPopup_HandleClick;
-               return false;
-       }
-
-       // Close the popup window
-       if(e.target.href)
-       {
-               if(e.target.href.indexOf("javascript:")==-1) 
-               {
-                       if (e.target.target=="")
-                               window.location.href = e.target.href;
-                       else
-                               window.open(e.target.href, e.target.target);
-                       this.close();
-               }
-       } 
-       else
-               this.close();
-       return false;
-}
-
-function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight)
-{      
-       if (!window.getPopupIFrame(nIndex).document) {
-               _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight);
-               return;
-       }
-       
-    if (!IsValidToken(nToken)) return;
-
-       if (gbBsNS6)
-       {
-               setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url.
-               BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight);
-               return;
-       }
-       
-       if ((window.getPopupIFrame(nIndex).document.readyState == "complete") &&
-               (window.getPopupIFrame(nIndex).document.body != null)) {
-                       if (window.getPopupIFrame(nIndex).document.location.href.indexOf("about:blank") != -1) { // add this check. IE will use about:blank" as the default vaule for Iframe.
-                               window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex);
-                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);
-                       }
-                       else
-                               {
-                                       setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url.
-                                       BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight);
-                               }
-       } else {
-               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);
-       }
-}
-
-function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight)
-{
-       if (window.gbPopupTimeoutExpired) return;
-
-    if (!IsValidToken(nToken)) return;
-
-       getPopupDivStyle(nIndex).visibility = gBsStyVisHide;
-       getPopupIFrameStyle(nIndex).visibility = gBsStyVisHide;
-
-       // Determine the width and height for the window
-       _BSPSGetClientSize();
-
-       var size = new BSSCSize(0, 0);
-
-       if (cuswidth <= 0 || cusheight <= 0)
-               BSSCGetContentSize(window.getPopupIFrame(nIndex), size);
-       else {
-               size.x = cuswidth;
-               size.y = cusheight;
-       }
-
-       // Determine the width and height for the window
-       var nWidth = size.x;
-       var nHeight = size.y;
-
-       // for small popup size, we should allow any size.
-       // The popup size should be ok if bigger than 0
-       if (nWidth < 0 || nHeight < 0) return;  // there must be something terribly wrong.              
-
-       getPopupDivStyle(nIndex).width = nWidth;
-       getPopupDivStyle(nIndex).height = nHeight;
-
-       getPopupShadowStyle(nIndex).width = nWidth;
-       getPopupShadowStyle(nIndex).height = nHeight;
-       getPopupTopicStyle(nIndex).width = nWidth;
-       getPopupTopicStyle(nIndex).height = nHeight;
-       if (gbBsIE55)
-       {
-               getPopupShadowStyle(nIndex).width = nWidth + 2;
-               getPopupShadowStyle(nIndex).height = nHeight + 2;
-               getPopupTopicStyle(nIndex).width = nWidth + 2;
-               getPopupTopicStyle(nIndex).height = nHeight + 2;
-       }
-
-       getPopupIFrameStyle(nIndex).width = nWidth;
-       getPopupIFrameStyle(nIndex).height = nHeight;
-       if (gbBsIE55 || gbBsNS6)
-       {
-               getPopupIFrameStyle(nIndex).top = 0;
-               getPopupIFrameStyle(nIndex).left = 0;
-       }
-       
-       var strURL = getPopupURL(nIndex);
-       if (strURL.indexOf("#") != -1&&gbBsNS6)
-               getPopupIFrame(nIndex).location.reload();
-       else if (strURL.indexOf("#") != -1||gbBsNS6)
-               getPopupIFrame(nIndex).location.href = strURL;  // reload again, this will fix the bookmark misunderstand in IE5.
-               
-       MoveDivAndShow(nIndex, nToken, cuswidth, cusheight);
-}
-
-function getScrollLeft()
-{
-       if (document.body.scrollLeft)
-               return document.body.scrollLeft;
-       else if (window.pageXOffset)
-               return window.pageXOffset;
-       else
-               return 0;
-}
-
-function getScrollTop()
-{
-       if (document.body.scrollTop)
-               return document.body.scrollTop;
-       else if (window.pageYOffset)
-               return window.pageYOffset;
-       else
-               return 0;
-}
-
-
-function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight)
-{
-       if (window.getPopupIFrame(nIndex).document.location.href != getAbsPopupURL(nIndex)) { // if redirect, reload again.
-                       window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex);
-                       setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);
-                       return;
-       }
-
-       // Determine the position of the window
-       var nClickX = window.gnPopupClickX;
-       var nClickY = window.gnPopupClickY;
-       var nTop = 0;
-       var nLeft = 0;
-
-       var nWidth = parseInt(getPopupDivStyle(nIndex).width);
-       var nHeight = parseInt(getPopupDivStyle(nIndex).height);
-
-       if (nClickY + nHeight + 20 < gBsClientHeight + getScrollTop()) {
-               nTop = nClickY + 10;
-       } else {
-               nTop = (getScrollTop() + gBsClientHeight) - nHeight - 20;
-       }
-       if (nClickX + nWidth < gBsClientWidth + getScrollLeft()) {
-               nLeft = nClickX;
-       } else {
-               nLeft = (getScrollLeft() + gBsClientWidth) - nWidth - 8;
-       }
-
-       if (nTop < getScrollTop()) nTop  = getScrollTop() + 1;
-       if (nLeft< getScrollLeft())  nLeft = getScrollLeft() + 1;
-
-       getPopupDivStyle(nIndex).left = nLeft;
-       getPopupDivStyle(nIndex).top = nTop;
-
-       // Set the location of the background blocks
-       getPopupShadowStyle(nIndex).left = 6;
-       getPopupShadowStyle(nIndex).top = 6;
-       if (gbBsIE55)
-       {
-               getPopupShadowStyle(nIndex).left = 4;
-               getPopupShadowStyle(nIndex).top = 4;
-       }
-
-       if (gbBsMac&&gbBsIE4) {
-               // Total hack on the iMac to get the IFrame to position properly
-               getPopupIFrameStyle(nIndex).pixelLeft = 100;
-               getPopupIFrameStyle(nIndex).pixelLeft = 0;
-               // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it
-               getPopupIFrame(nIndex).window.BSSCOnLoad();
-       }
-
-       if (gbBsNS6&&IsDirty(nIndex))
-               getElement(getPopupIFrameID(nIndex)).addEventListener("load", handleLoadNS, false);
-       else
-               BSSCPopup_Timeout(nIndex , nToken );
-       return;
-}
-
-function       BSSCSize(x, y)
-{
-       this.x = x;
-       this.y = y;
-}
-
-function BSSCGetContentSize(thisWindow, size)
-{
-       if (!gbBsIE4 && !gbBsOpera7 && !gbBsNS4)
-               return;
-
-       if ((gbBsMac&&gbBsIE4)||gbBsNS4||gbBsOpera7) {
-               size.x = 320;
-               size.y = 180;
-               return;
-       }
-
-       // Resize the width until it is wide enough to handle the content
-       // The trick is to start wide and determine when the scrollHeight changes
-       // because then we know a scrollbar is necessary. We can then go back
-       // to the next widest size (for no scrollbar)
-
-       var ClientRate = gBsClientHeight / gBsClientWidth;
-
-       
-       var GoldenSize = new BSSCSize(0,0);
-       GoldenSize.x = gBsClientWidth * gBMaxXOfParent;
-       GoldenSize.y = gBsClientHeight *gBMaxYOfParent ;
-
-       if (ClientRate > gBRateH_W) {
-               GoldenSize.y = GoldenSize.x * gBRateH_W;
-       }
-       else {
-               GoldenSize.x = GoldenSize.y / gBRateH_W;
-       }
-
-       // Try to using parent specified max x.
-       var x = 0;
-       var maxgoldx = GoldenSize.x;
-       var maxx = gBsClientWidth * gBMaxXOfParent;
-       
-       // This double resize causes the document to re-render (and we need it to)
-       if (!gbBsIE5)
-               thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4.
-               
-       thisWindow.resizeTo(1, 1);
-       thisWindow.resizeTo(1, 1);
-       thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);
-       thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);
-               
-       var miny = thisWindow.document.body.scrollHeight + gBscrollHeight;
-       
-       if (miny > GoldenSize.y) // the popup does not fix in the parent wanted golden area. so try to expand itself as large as it can
-       {
-               thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);
-               thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);
-               
-               miny =  thisWindow.document.body.scrollHeight + gBscrollHeight;
-               maxy = gBsClientHeight * gBMaxYOfParent;
-               
-               if (miny > maxy) { // the popup must have a scroll, OK let it be.
-                       miny = maxy;
-                       size.x = maxx;
-                       size.y = maxy;
-                       thisWindow.document.body.scroll = 'yes'; // At this time we do want to show scroll any more. so it will looks better a little.
-               }
-               else { // popup still can fit in the parent area by someway. now we choose the same h/w rate as parent.
-                       size.y = miny;
-                       
-                       //  downsize from maxx , now I try to using binary divide.
-                       x = maxx;
-                       deltax = -maxx/2;
-                       //j = 0;
-                       while (true) {
-                               x = x + deltax;
-                               thisWindow.resizeTo(x, miny);
-                               thisWindow.resizeTo(x, miny);
-                               diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * ClientRate;
-                               if (diffy >  gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter
-                                       deltax = Math.abs(deltax) /2;
-                               else if (diffy <  -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter
-                                       deltax = -Math.abs(deltax) /2;
-                               else 
-                                       // the y is close enough to wanted.
-                                       break;
-                               if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.
-                                       break;
-                       }
-                       size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;
-                       size.y = thisWindow.document.body.scrollHeight;// + gBscrollHeight;     
-                       thisWindow.document.body.scroll = 'no';
-               }
-       }
-       else {
-               if (thisWindow.document.body.scrollWidth > maxgoldx) {
-                       size.x = maxx; 
-                       size.y = miny;  
-                       thisWindow.document.body.scroll = 'yes';
-               }
-               else {
-                       //  downsize from maxgoldx , now I try to using binary divide.
-                       x = maxgoldx;
-                       deltax = -maxgoldx/2;
-                       while (true) {
-                               x = x + deltax;
-                               thisWindow.resizeTo(x, miny);
-                               thisWindow.resizeTo(x, miny);
-                               diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * gBRateH_W;
-                               if (diffy >  gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter
-                                       deltax = Math.abs(deltax) /2;
-                               else if (diffy <  -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter
-                                       deltax = -Math.abs(deltax) /2;
-                               else 
-                                       // the y is close enough to wanted.
-                                       break;
-                               if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.
-                                       break;
-                       }
-                       size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;
-                       size.y = thisWindow.document.body.scrollHeight ;
-                       thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little.
-                       thisWindow.resizeTo(size.x, size.y);
-                       if (thisWindow.document.body.scrollWidth > size.x)
-                       {
-                               size.x = thisWindow.document.body.scrollWidth;
-                       }
-                       if (thisWindow.document.body.scrollHeight > size.y)
-                       {
-                               size.y = thisWindow.document.body.scrollHeight;
-                       }
-               }
-       }
-       thisWindow.resizeTo(size.x, size.y);
-       thisWindow.resizeTo(size.x, size.y);
-       return;
-}
-
-function BSSCPopupParentClicked()
-{
-       if (!window.gbPopupTimeoutExpired) {
-               return false;
-       }
-       
-       document.onmousedown = gbOrignalOnMouseDown;
-
-       // Simply hide the popup
-       hideAll();
-
-       window.gbPopupTimeoutExpired = false;
-
-       return true;
-}
-
-function isInsideHyperLink(obj)
-{
-       if (obj&&obj!=getParentNode(obj))
-       {
-               if (obj.tagName=="A"||obj.tagName=="IMG")
-                       return true;
-               else
-                       return isInsideHyperLink(getParentNode(obj));
-       }
-       else
-               return false;
-}
-
-function BSSCPopupClicked(e)
-{
-       if (!window.gbPopupTimeoutExpired) {
-               return false;
-       }
-
-       var popupIFrame = getCurrentPopupIFrame();
-       if (popupIFrame == null) {
-               return true;
-       }
-
-       if (gbBsIE4 && (!((popupIFrame.window.event != null) &&
-               (popupIFrame.window.event.srcElement != null) &&
-               isInsideHyperLink(popupIFrame.window.event.srcElement)))) {
-               document.onmousedown = gbOrignalOnMouseDown;
-               
-               // Simply hide the popup
-               hideAll();
-               window.gbPopupTimeoutExpired = false;
-               return true;
-       }
-       else if (gbBsNS6 && (!((e != null) &&
-                       (e.target!= null) && isInsideHyperLink(e.target))))
-       {
-               document.addEventListener("mousedown", gbOrignalOnMouseDown,false);
-               // Simply hide the popup
-               hideAll();
-               window.gbPopupTimeoutExpired = false;
-               return true;            
-       }
-}
-
-//trace the mouse over's position for hotspot
-function  BSPSPopupOnMouseOver(event)
-{
-       if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3) {
-               window.gnPopupClickX = event.clientX + getScrollLeft();
-               window.gnPopupClickY = event.clientY + getScrollTop();
-               window.gnPopupScreenClickX = event.screenX;
-               window.gnPopupScreenClickY = event.screenY;
-       } else if (gbBsSafari) {
-               window.gnPopupClickX = event.clientX + getScrollLeft();
-               window.gnPopupClickY = event.clientY + getScrollTop();
-               window.gnPopupScreenClickX = event.screenX + window.screenX;
-               window.gnPopupScreenClickY = event.screenY + window.screenY;
-       } else if (gbBsNS4) {
-               window.gnPopupClickX = event.pageX - window.pageXOffset;
-               window.gnPopupClickY = event.pageY - window.pageYOffset;
-               window.gnPopupScreenClickX = event.screenX - window.pageXOffset;
-               window.gnPopupScreenClickY = event.screenY - window.pageYOffset;
-       }
-}
-
-function BSSCHidePopupWindow()
-{
-       if (window.gPopupWindow != null) {
-               if (gbBsNS4) {
-                       if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) {
-                               window.gPopupWindow.close();
-                               window.gPopupWindow = null;
-                       }
-               }
-       }
-       return;
-}
-
-// Add the PopupOnClick to the onclick array.
-if (typeof(BsscRegisterOnClick) != "undefined")
-{
-       BsscRegisterOnClick(BsPopupOnClick);
-}
-//End to support previous popup functions
-
-/// Section End  - Popup (JavaScript 1.0)
-
-/// Section Begin - Embedded Stub (JavaScript 1.0)
-
-function BSSCCreatePopupDiv()
-{
-       return;
-}
-
-function WritePopupMenuLayer()
-{
-       if (BsscHasExtJs()) {_WritePopupMenuLayer();}
-}
-
-function BSSCPopup(strURL, width, height)
-{
-       var re = new RegExp("'", 'g');
-       strURL = strURL.replace(re, "%27");
-
-       if (BsscHasExtJs())     { 
-               _BSSCPopup(strURL, width, height);
-       }else{
-               //Create a temporary window first to ensure the real popup comes up on top
-               var wndTemp = null;
-               if (!gbBsNS3) {
-                       wndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");
-               }
-               // Create the real popup window
-               var wndPopup = window.open(strURL, "BSSCPopup", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=300,width=400");
-               // Close the temporary
-               if (!gbBsNS3) {
-                       wndTemp.close();
-               } else {
-                       wndPopup.focus();
-               }
-       }
-}
-
-var gbWndTemp = null, gbWndPopupLinks = null;
-var gbstrParaTotal = "";
-
-function PopupMenu_Invoke()
-{
-       if (typeof(wfRelatedTopic) == 'function' && typeof(IsFlashSupported) == 'function')
-       {
-               if (Number(gsSkinVersion) > 2 && IsFlashSupported())
-               {
-                       return wfRelatedTopic(PopupMenu_Invoke.arguments);
-               }
-       }
-       if (BsscHasExtJs()) {
-               return _PopupMenu_Invoke(PopupMenu_Invoke.arguments);
-       }
-       if (gbBsNS3Before || gbBsIE3Before )    {
-               var argLen      = PopupMenu_Invoke.arguments.length;
-               if (argLen < 5) {
-                       window.document.location.href = PopupMenu_Invoke.arguments[3];
-                       return false;
-               }
-               gbWndTemp = null;
-               gbWndPopupLinks = null;
-               gbstrParaTotal = "";
-               for (var i = 0; i < (argLen - 2) / 2; i++) {
-                       var strParaLine = "";
-                       if (gbBsNS2){
-                               strParaLine += "<a href=\"";
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];
-                               strParaLine += "\">"
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 2];
-                               strParaLine += "</a>";
-                       } else {
-                               strParaLine += "<a href=\"javascript:";
-                               strParaLine += "gotoUrl(\'";
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];
-                               strParaLine += "\');\"";
-                               if (PopupMenu_Invoke.arguments[1] != '') {
-                                       strParaLine += " TARGET='" + PopupMenu_Invoke.arguments[1] + "'";
-                               }
-                               strParaLine += ">";
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 2];
-                               strParaLine += "</a>";
-                       }
-                       strParaLine += "<br>";
-                       gbstrParaTotal += strParaLine;
-               }
-               var nHeight = argLen * 15;
-               var nWidth = 400;
-               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=auto";
-               strParam += ",height=" + nHeight + ",width=200,resizable";
-               
-               //Create a temporary window first to ensure the real popup comes up on top
-               //var wndTemp = null;
-               if (!gbBsNS3) {
-                       gbWndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");
-               } 
-               gbWndPopupLinks = window.open("", "popuplinks", strParam);
-
-               setTimeout("Wait_PopupMenuReady()", 100);
-       }
-       return true;
-}
-
-function Wait_PopupMenuReady() 
-{
-       if (gbWndPopupLinks != null && "object" == typeof(gbWndPopupLinks.document)) {
-               PopupMenu_InvokeReady();
-       }
-       else 
-               setTimeout("Wait_PopupMenuReady()", 100);
-}
-
-function PopupMenu_InvokeReady()
-{
-       if (gbWndPopupLinks != null) {
-               gbWndPopupLinks.document.open("text/html");
-               gbWndPopupLinks.document.write("<html><head>");
-               if (gbBsNS2) {
-                       gbWndPopupLinks.document.write("<base href=\"" + location +"\">");
-               } else {
-                       //YJ: IE301,302 and NS3.x works fine
-                       gbWndPopupLinks.document.write("<");
-                       gbWndPopupLinks.document.write("script>");
-                       gbWndPopupLinks.document.write("function gotoUrl(aUrl) {opener.window.location=aUrl; close();}");
-                       gbWndPopupLinks.document.write("<");
-                       gbWndPopupLinks.document.write("/script>");
-               }
-               gbWndPopupLinks.document.write("</head><body onBlur=\'self.focus();\'>");
-               gbWndPopupLinks.document.write(gbstrParaTotal);
-               gbWndPopupLinks.document.write("</body></html>");
-               gbWndPopupLinks.document.close();
-
-               // Close the temporary
-               if (!gbBsNS3 && gbWndTemp != null) {
-                       gbWndTemp.close();
-               }else {
-                       gbWndPopupLinks.focus();
-               }
-
-               return true;
-       }
-       return false;
-}
-
-/// Section End - Embedded Stub (JavaScript 1.0)
-
-//// Segment End -- (JavaScript 1.0)
-
-//// Segment Begin -- (JavaScript 1.2)
-/// Section Begin  - kadov DHTM (JavaScript 1.2)
-
-//Begin to support extended and dropdown text effects.
-function kadovIsParagraph(el)
-{
-       return( el.tagName == "P" || el.tagName.indexOf("H") == 0 ) ? true : false;
-}
-
-function kadovInitEachChild(el)
-{      
-       for(var i=0; i<getChildNodes(el).length; i++)
-       {
-               var child = getChildNodes(el)[i];
-               if( child.tagName == "SCRIPT" || child.tagName == "!" )
-                       continue;
-
-               if( child.id != "" )
-               {
-                       // to wipe out the onload effects
-                       if (gbBsIE4&&!gbBsMac)
-                       {
-                               var onLoadEffect = child.style.getAttribute( "x-on-pageload" );
-                               if( (onLoadEffect != null) && (onLoadEffect > "") )
-                                       child.style.setAttribute( "x-on-pageload", "" );
-                       }
-                       
-                       var href = child.getAttribute("href")
-                       if( href != null && href > "" && href.indexOf( "BSSCPopup" ) >= 0 )
-                               kadovFilePopupInit(child.id); // Init for Popup
-                       else if( child.className == "dropspot" || child.className == "expandspot" || 
-                                        child.className == "glossterm" )
-                               kadovTextPopupInit(child.id);// Init for Expanding/Glossary or DropDown text
-                       else if( child.className == "trigger")
-                               kadovInitTrigger(child.id);// Init for Trigger
-                       else
-                       {
-                               kadovInitEffects(child.id);// Init for DHTML effects
-                               CEngine.SetOneTargetInitialState( child.id );
-                       }
-               }
-               
-               if( (child.tagName == "IMG") && (child.getAttribute("dynsrc") > "") )
-                       child.start = "mouseover";// to start a AVI file. fileopen doesn't work
-
-               kadovInitEachChild(child);
-       }
-}
-
-function kadovRetrieveTextInner(el)
-{      
-       var x = "";
-       if( (!el) || (el.tagName == "!") || (el.tagName == "SCRIPT" ))
-               return x;
-
-       if( kadovIsParagraph(el) )
-       {
-               var strNewID = " ";
-               if( el.id != "" )
-                       strNewID += "id=" + el.id + "_NewSpan ";
-               x = "<span" + strNewID + "style='" + el.style.cssText + "'>" + el.innerHTML + "</span>";
-       }
-       else
-       {
-               for(var i=0; i<getChildNodes(el).length; i++)
-                       x += kadovRetrieveTextInner( getChildNodes(el)[i] );
-       }
-       return x;
-}
-
-function kadovRetrieveCleanHTML( strRawHTML, strTagOpen, strTagClose, nDistance )
-{      
-       var nTagOpen = strRawHTML.indexOf( strTagOpen, 0 );
-       if( nTagOpen < 0 )
-               return strRawHTML;
-
-       var nTagClose = strRawHTML.indexOf( strTagClose, nTagOpen);
-       if( nTagClose < nTagOpen )
-               return strRawHTML;
-               
-       if( typeof(nDistance) == "number" && nDistance > 0 )
-               if( (nTagClose - nTagOpen) != nDistance )
-                       return strRawHTML;
-               
-       var strCleanOnce = strRawHTML.substring(0, nTagOpen) + strRawHTML.substr(nTagClose + strTagClose.length) ;
-       return  kadovRetrieveCleanHTML( strCleanOnce, strTagOpen, strTagClose );
-}
-
-function kadovAdjustObjectTag(strRawHTML, nStartPos)
-{// adjust object tag for related topics HTML control, because innerHTML misses out the item settings
-       
-       //Is there any DTC?
-       var strDTCTagOpen = '<!--Metadata type="DesignerControl" startspan';
-       var strDTCTagClose = '<!--Metadata type="DesignerControl" endspan-->';
-       var nDTCTagOpen = strRawHTML.indexOf( strDTCTagOpen, nStartPos );
-       if( nDTCTagOpen < 0 )
-               return strRawHTML;
-       var nDTCTagClose = strRawHTML.indexOf( strDTCTagClose, nDTCTagOpen );
-       if( nDTCTagClose < nDTCTagOpen)
-               return strRawHTML; // no Design Time Controls;
-               
-       //Is the DTC HTML Help Control?
-       var strRTObjTagOpen = 'classid=clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11';
-       var strRTObjTagClose = '</OBJECT>';
-       var nRTObjTagOpen = strRawHTML.indexOf( strRTObjTagOpen, nDTCTagOpen );
-       if( nRTObjTagOpen < nDTCTagOpen )
-               return strRawHTML;
-       var nRTObjTagClose = strRawHTML.indexOf( strRTObjTagClose, nRTObjTagOpen );
-       if( nRTObjTagClose < nRTObjTagOpen )
-               return strRawHTML; // is not a HTML help control
-               
-       // Is it a related Topics html help control?
-       var strRTObjLabel = '<PARAM NAME=\"Command\" VALUE=\"Related Topics';
-       if( strRawHTML.indexOf(strRTObjLabel, nRTObjTagOpen) < 0 )
-               return strRawHTML;
-       
-       // does the commented object tag contain a items parameters             
-       var strRTItemsOpen = '<param name="Items" value="';
-       var strRTItemsClose = '$$**$$" >';
-       var strRTItemsClose2 = '$$**$$">';
-
-       var nRTItemsOpen = strRawHTML.indexOf(strRTItemsOpen, nDTCTagOpen);
-       if( nRTItemsOpen < nDTCTagOpen )
-               return strRawHTML;
-       var nRTItemsClose = strRawHTML.indexOf(strRTItemsClose, nRTItemsOpen);
-       if (nRTItemsClose == -1)
-               nRTItemsClose = strRawHTML.indexOf(strRTItemsClose2, nRTItemsOpen);
-       if( nRTItemsClose < nRTItemsOpen )
-               return strRawHTML;
-               
-       // found a items string
-       var strItems = strRawHTML.substring( nRTItemsOpen + strRTItemsOpen.length, nRTItemsClose);
-       if( strItems.length < 1 )
-               return strRawHTML;
-       
-       // to reconstruct the item(s) param tag(s)
-       var strItemsArray = strItems.split('$$**$$');
-       if( strItemsArray.length < 1 )
-               return strRawHTML;
-       var strRunTimeItemParam = "";
-       for( var i = 0; i < strItemsArray.length; i++ )
-       {
-               strRunTimeItemParam += '<PARAM  NAME="Item' + (i+1);
-               strRunTimeItemParam += '"' + '  VALUE="';
-               strRunTimeItemParam += strItemsArray[i];
-               strRunTimeItemParam += '">';
-       }
-       
-       // to insert the reconstructed item params into runtime object tag
-       var strAdjustedHTML = strRawHTML.substring(0,nRTObjTagClose) + strRunTimeItemParam + strRawHTML.substring(nRTObjTagClose, strRawHTML.length);
-       return kadovAdjustObjectTag(strAdjustedHTML, nDTCTagClose + strDTCTagClose.length);
-}
-
-function kadovTextPopupOnLoad( el )
-{
-       if( typeof(el) == "string" )
-               el = getElement(el);
-
-       var src = el.getAttribute( "x-use-popup" );
-       var bNeedMove=true;
-       if(!src&&el.id)
-       {
-               for (var i=0;i<gPopupData.length;i++)
-                       if (gPopupData[i].el==el.id)
-                       {
-                               src=gPopupData[i].popupId;
-                               bNeedMove=false;
-                               break;
-                       }
-       }
-       if(!src)
-               src = el.style.getAttribute( "x-use-popup" );   
-       if (!src)       
-               return 0;
-
-       var name = src;
-       if( src.substr(0,1) == "#" ) 
-               name = src.substr(1, src.length-1);
-       var srcDiv = getElement(name);
-       if( !srcDiv )
-               return 1;
-
-       if (bNeedMove)
-       {
-               var type = el.getAttribute( "x-popup-type" );
-               if (!type)
-                       type = el.style.getAttribute("x-popup-type");
-               if (!type)              
-                       return 1;               
-               var setup = el.getAttribute( "x-tmp-setup" );
-               var newId = name;
-               if( newId.indexOf( "_tmp") <= 0 )
-                       newId += "_tmp";
-
-               if( !setup)
-               {
-                       el.setAttribute( "x-tmp-setup", 1 );
-
-                       if( type == "pulldown"  )
-                       {
-                               var strAdjust = kadovAdjustObjectTag(srcDiv.innerHTML,0);
-                               var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");
-                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");
-                               
-                               //work around the bug in HH.exe that highlight the phrases when use Search tab
-                               //this approach is just removing the <FONT...> tag inserted by Microsoft in the runtime
-                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<FONT color=#", "\">", 52);
-                               
-                               var strStyle = " style='display:none; position:relative;";
-                               var newDiv = "<div class=droptext id=" + newId + strStyle + "'>" + strCleanHTML + "</div>";
-
-                               removeThis(srcDiv); // empty the original DIV tag
-                               var elParentPra = kadovFindParentParagraph(el);
-                               if( elParentPra )
-                                       insertAdjacentHTML(elParentPra, "afterEnd", newDiv );
-                       }
-                       else if( type == "expanding"  )
-                       {
-                               var inner = kadovRetrieveTextInner(srcDiv);
-                               if( inner == "" )
-                                       inner = srcDiv.innerHTML;
-                               var strAdjust = kadovAdjustObjectTag(inner,0);
-                               var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");
-                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");
-                               var strClassName = (el.className == "glossterm") ? "glosstext" : "expandtext";
-                               var newSpan = "<span class=" + strClassName + " style='display: none;' id=" + newId + ">&nbsp;" + strCleanHTML + "</span>";
-                               removeThis(srcDiv); // empty the original DIV tag
-                               insertAdjacentHTML(el, "afterEnd", newSpan );
-                       }
-               }
-       }
-       else
-       {
-               srcDiv.style.display = "none";
-       }
-       return 0;
-}
-
-function getElementsByTag(obj,sTagName)
-{
-       if(obj.getElementsByTagName)
-               return obj.getElementsByTagName(sTagName);
-       else if(obj.all)
-               return obj.all.tags(sTagName);
-       return null;
-}
-
-function getElement(sID)
-{
-       if(document.getElementById)
-               return document.getElementById(sID);
-       else if(document.all)
-               return document.all(sID);
-       return null;
-}
-
-function getParentNode(obj)
-{
-       if(obj.parentNode)
-               return obj.parentNode;
-       else if(obj.parentElement)
-               return obj.parentElement;
-       return null;
-}
-
-function getChildNodes(obj)
-{
-       if(obj.childNodes)
-       {
-               var children = new Array();
-               for (var i = 0; i < obj.childNodes.length; i++)
-               {
-                       if (obj.childNodes[i].nodeType == 1)
-                               children[children.length] = obj.childNodes[i];
-               }
-               return children;
-       }
-       else if(obj.children)
-               return obj.children;
-       return null;    
-}
-
-function removeThis(obj)
-{
-       if(obj.parentNode)
-               obj.parentNode.removeChild(obj);
-       else
-               obj.outerHTML="";
-}
-
-function kadovTextPopup( el )
-{
-       if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3 )
-               return;
-
-       var bNeedMove=true;
-       
-       if (window.event)
-               window.event.cancelBubble = true;
-
-       if( typeof(el) == "string" )
-               el = getElement(el);
-
-       if (!el||el==window)
-               return;
-       
-       var src = el.getAttribute( "x-use-popup" );
-       if(!src&&el.id)
-       {
-               for (var i=0;i<gPopupData.length;i++)
-                       if (gPopupData[i].el==el.id)
-                       {
-                               src=gPopupData[i].popupId;
-                               bNeedMove=false;
-                               break;
-                       }
-       }
-       if(!src)
-               src = el.style.getAttribute( "x-use-popup" );   
-       if(!src)
-               return;
-               
-       var name = src;
-       if( src.substr(0,1) == "#" ) 
-       if (bNeedMove)
-               name = src.substr(1, src.length-1) + "_tmp";
-       else
-               name = src.substr(1, src.length-1);
-
-       var srcDiv = getElement(name);
-       if( !srcDiv )
-               return;
-
-       if( srcDiv )
-       {
-               if( srcDiv.style.display == "" )
-                       srcDiv.style.display = "none";
-               else
-               {
-                       srcDiv.style.display = "";
-                       if( typeof(srcDiv.bInitialized) == "undefined" )
-                       {
-                               srcDiv.bInitialized = true;
-                               kadovInitEffects(name);
-                               kadovInitEachChild(srcDiv);
-                       }
-               }
-       }
-       if(gbBsIE4)
-               event.returnValue=false;
-       return;
-}
-
-function kadovFindParentParagraph( el )
-{
-       if( typeof(el) == "string" )
-               el = getElement(el);
-       if( (!el) || el.tagName == "BODY" )
-               return null;
-       if( kadovIsParagraph(getParentNode(el)) )
-               return getParentNode(el);
-       else
-               return kadovFindParentParagraph( getParentNode(el) );
-}
-
-//Begin HTML code invoked function
-function kadovRegisterEventHandler( obj, strEvent, strEventHandler )
-{
-       if( !gbBsIE4 )
-               return;
-       CCSSP.RegisterEventHandler( obj, strEvent, strEventHandler );
-}
-
-function textPopupData(el, popupId)
-{
-       this.el = el;
-       this.popupId = "#"+popupId;
-}
-
-var gPopupData = new Array();
-
-function kadovTextPopupInit( el, popupId)
-{
-       if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3)
-               return;
-               
-       if( typeof(el) == "string" )
-       {
-               if (popupId)
-               {
-                       gPopupData[gPopupData.length]=new textPopupData(el, popupId);
-               }
-               el = getElement(el);
-       }
-               
-       if( el != null )
-       {
-               CCSSP.RegisterEventHandler( el, "onclick", "kadovTextPopup(\"" + el.id +"\");" );
-               CCSSP.RegisterEventHandler( window, "onload", "kadovTextPopupOnLoad(\"" + el.id +"\");" );
-       }
-}
-//End HTML code invoked function
-
-//End to support extended and dropdown text effects.
-
-//Begin to convert iWrite format to RoboEditor Format for DHTML effects
-function kadovInitTriggersInHead( )
-{
-  if( Object.xDelayedInitElements )
-  {
-     var x = Object.xDelayedInitElements;
-     for(i=0; i<x.length; i++)
-       kadovInitTrigger( x[i] );
-  }
-}
-
-//Begin HTML code invoked function
-function kadovFilePopupInit( el )
-{
-       if( typeof(el) == "string" )
-               el = getElement(el);
-
-       if( el != null )
-               CCSSP.RegisterEventHandler( el, "onmouseover", "BSPSPopupOnMouseOver(event);" );
-}
-
-function kadovInitTrigger( element )
-{
-       if( !gbBsIE4 )
-               return;
-       var srcElement = element;
-       if( typeof(srcElement) == "string" )
-       {
-               srcElement = getElement(element,0);
-               if(srcElement == null)
-                       return;
-       }
-       
-       if( !kadovIsParentVisible(srcElement) )
-               return;
-
-       var targets = srcElement.getAttribute( "x-targets" );
-       if (!targets)
-               targets = srcElement.style.getAttribute("x-targets");
-       if (!targets)
-               return; 
-       var arrOneTarget = targets.split( "," );
-       for( var i = 0; i < arrOneTarget.length; i ++ )
-               bsscFXInit( element, arrOneTarget[i], null, null, null, null );
-}
-
-function kadovIsParentVisible( el )
-{
-       if( typeof(el) == "string" )
-               el = getElement(el);
-       if( (!el) || el.tagName == "BODY" )
-               return true;
-       if( el.style.display == 'none' ) //el.visibility == 'hidden' || 
-               return false;
-       else
-               return kadovIsParentVisible( getParentNode(el) );
-}
-
-function kadovInitEffects( element )
-{
-       if( !gbBsIE4 )
-               return;
-       var srcElement = element;
-       if( typeof(srcElement) == "string" )
-       {
-               srcElement = getElement(element,0);
-               if(srcElement == null)
-                       return;
-       }
-       
-       if( !kadovIsParentVisible(srcElement) )
-               return;
-       
-       kadovInitEffect( srcElement, "x-on-hover" );
-       kadovInitEffect( srcElement, "x-on-pageclick" );
-       kadovInitEffect( srcElement, "x-on-pageload" );
-       kadovInitEffect( srcElement, "x-on-trigger-1" );
-       kadovInitEffect( srcElement, "x-on-trigger-2" );
-}
-//End HTML code invoked function
-
-function kadovInitEffect( element, prop )
-{
-       var values = null;
-       if( element.getAttribute( "currentStyle" )  && element.currentStyle.getAttribute)
-               values = element.currentStyle.getAttribute( prop );
-       else  if (element.style.getAttribute)
-               values = element.style.getAttribute( prop );
-       if( !values )
-               return;
-
-       var functions = new Array();
-       var nIdx = 0, nStart = 0;
-       var nNext = values.indexOf( "\)", 0);
-       while( nNext >= 0 && nNext < values.length )
-       {
-               functions[nIdx] = values.substr( nStart, nNext-nStart+1);
-               nStart = nNext + 1;
-               nIdx++;
-               nNext = values.indexOf( "\)", nStart);
-       }
-               
-       for( var i=0; i<functions.length; i++)
-       {
-               var id = element.getAttribute( "id" );
-               var translatedProp = kadovTranslateProp(prop);
-
-               var lp = functions[i].indexOf( "(" );
-               var fnname = functions[i].substring(0, lp);
-               var srcargs = functions[i].substring(lp+1, functions[i].length-1);
-               
-               var nClickTimes = 1;
-               var arrForClickCount = srcargs.split( "," );
-               for( var j = 0; j < arrForClickCount.length; j++ )
-               {// to locate and get the "clicks=99" settings
-                       var nPageClick = arrForClickCount[j].indexOf("clicks");
-                       if( nPageClick >= 0 )
-                       {
-                               nPageClick = arrForClickCount[j].indexOf("=");
-                               if( nPageClick > 0 )
-                               {
-                                       nClickTimes = arrForClickCount[j].substring( nPageClick + 1, arrForClickCount[j].length) * 1;
-                                       break;
-                               }
-                       }
-               }
-               var args = srcargs;
-               if( j < arrForClickCount.length )
-               {// to strip out the "clicks=99" from the arguments string
-                       args = "";
-                       for( var k = 0; k < arrForClickCount.length; k ++ )
-                       {
-                               if( k != j )
-                               {
-                                       args += arrForClickCount[k];
-                                       if( k < arrForClickCount.length - 1 )
-                                               args += ",";
-                               }
-                       }
-               }
-               bsscFXInit( null, id, translatedProp, fnname, args, nClickTimes );
-       }
-}
-
-function kadovTranslateProp( prop )
-{
-       switch( prop )
-       {
-       case "x-on-hover" :     return "bsschover";
-       case "x-on-pageclick" : return "bsscpageclick";
-       case "x-on-pageload" :  return "bsscpageload";
-       case "x-on-trigger-1" : return "bssctrigger1";
-       case "x-on-trigger-2" : return "bssctrigger2";
-       }
-       return null;
-}
-//End to convert iWrite format to RoboEditor Format for DHTML effects
-
-//Begin the definition of one entry to DHTML effects
-function bsscFXInit( trigger_ID, target_ID, event_type, 
-       action_type, action_setting, event_addional )
-{
-       if( (!gbBsWindows && !gbBsSunOS  && !(gbBsMac&&gbBsIE5)) || typeof(target_ID) != "string" )//MUST have a target_ID
-               return; // we don't support Navigator yet
-       
-       if( typeof(event_type) == "string" )
-               event_type = event_type.toLowerCase();
-       if( typeof(action_type) == "string" )
-               action_type = action_type.toLowerCase();
-       if( typeof(action_setting) == "string" )
-                action_setting = action_setting.toLowerCase();
-       
-       // to get the target element then add it to the target list
-       var eleTarget = CCSSP.GetObject( target_ID );
-       if( (eleTarget != null) && (event_type != null) && (action_type != null) )
-       {
-               CEngine.AddOneTarget( target_ID, eleTarget );
-               CEngine.BuildTargetObject(target_ID, event_type, action_type, action_setting, event_addional);
-       }
-       
-       // to validate the trigger_ID parameter
-       if( typeof(trigger_ID) == "string" && trigger_ID != "" )
-               CEngine.BuildTriggerObject( trigger_ID, target_ID );
-}      
-//End the definition of one entry to DHTML effects
-
-/// Section End  - kadov DHTM (JavaScript 1.2)
-
-/// Section Begin  - CCSSP DHTM (JavaScript 1.2)
-
-//Begin JavaScript libary for cross-platform positioning object.
-function CCSSP(){} // constructor of CCSSP class
-
-CCSSP.GetObject = function( obj )
-{//convert object name string or reference into a valid object reference
-       if( typeof(obj) == "object" )
-               return obj;
-       else if( typeof(obj) == "string" && obj != "")
-       {
-               if( gbBsNS4 )
-                       return eval("document." + obj);
-               else
-                       return eval("document.all(\"" + obj + "\")");
-       }
-       else
-               return null;
-}
-
-CCSSP.MoveObjectTo = function(obj, x, y)
-{//positioning an object at a specific pixel coordinate
-       if( gbBsNS4 )
-               obj.moveTo(x,y);
-       else
-       {
-               obj.style.pixelLeft = x;
-               obj.style.pixelTop = y;
-       }
-}
-
-CCSSP.MoveObjectBy = function(obj, dx, dy)
-{//moveing a object by x and/or y pixel
-       if( gbBsNS4 )
-               obj.moveBy(dx,dy);
-       else
-       {
-               obj.style.pixelLeft += dx;
-               obj.style.pixelTop += dy;
-       }
-}
-
-CCSSP.SetObjectBGColor = function(obj, color)
-{//set the background color of an object
-       if( gbBsNS4 )
-               obj.bgColor = color;
-       else
-               obj.style.backgroundColor = color;
-}
-
-CCSSP.ShowObject = function(obj, bShow)
-{// set the object to be visible or invisible
-       if( gbBsNS4 )
-               obj.visibility = (bShow == true) ? 'show' : 'hide';
-       else
-               obj.style.visibility = (bShow == true) ? 'visible' : 'hidden';// when hidden, it still occupy some space.
-}
-
-CCSSP.GetObjectLeft = function(obj)
-{// retrieve the x coordinate of a posionable object
-       if( gbBsNS4 )
-               return obj.left;
-       else
-               return obj.style.pixelLeft;
-}
-
-CCSSP.GetObjectTop = function(obj)
-{// retrieve the y coordinate of a posionable object
-       if( gbBsNS4 )
-               return obj.top;
-       else
-               return obj.style.pixelTop;
-}
-
-CCSSP.GetObjectContainLeft = function(obj)
-{// retrieve the x coordinate of a posionable object relative to it's parent element
-       if( gbBsNS4 )
-               return obj.pageX;
-       else
-       {
-               if( obj == document.body )
-                       return obj.clientLeft;
-               else
-                       return obj.offsetLeft;
-       }
-}
-
-CCSSP.GetObjectWindowLeft = function(obj)
-{// retrieve the x coordinate of a posionable object relative to browser window
-       if( gbBsNS4 )
-               return obj.pageX;
-       else
-       {
-               var nOffsetWindowLeft = 0;
-               for(var element = obj; element; element = element.offsetParent)
-                       nOffsetWindowLeft += CCSSP.GetObjectContainLeft(element);
-               return nOffsetWindowLeft;
-       }
-}
-
-CCSSP.GetObjectContainTop = function(obj)
-{// retrieve the y coordinate of a posionable object relative to it's parent element
-       if( gbBsNS4 )
-               return obj.pageY;
-       else
-       {
-               if( obj == document.body )
-                       return obj.clientTop;
-               else
-                       return obj.offsetTop;
-       }
-}
-
-CCSSP.GetObjectWindowTop = function(obj)
-{// retrieve the y coordinate of a posionable object relative to browser window
-       if( gbBsNS4 )
-               return obj.pageY;
-       else
-       {
-               var nOffsetWindowTop = 0;
-               for(var element = obj; element; element = element.offsetParent)
-                       nOffsetWindowTop += CCSSP.GetObjectContainTop(element);
-               return nOffsetWindowTop;
-       }
-}
-
-CCSSP.GetObjectHeight = function(obj)
-{// retrieve the height of a posionable object
-       if( gbBsNS4 )
-               return obj.clip.height;
-       else
-               return obj.offsetHeight;
-}
-
-CCSSP.GetObjectWidth = function(obj)
-{// retrieve the width of a posionable object
-       if( gbBsNS4 )
-               return obj.clip.width;
-       else
-               return obj.offsetWidth;
-}
-
-CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler )
-{ // to add the "funcHandler" as the "rawEventName" 's handler to the "srcObj" object,the original event handler will be combined
-       if (gbBsNS4 && !gbBsNS6)
-               return ;
-               
-       var oldHandler = "";
-
-       if (gbBsMac &&gbBsIE4&&!gbBsIE5)
-       {
-               if (typeof(srcObj[rawEventName.toLowerCase()])=="unknown")
-               { //search for <SCRIPT> tag which define the event handler
-                       for( var i = 0; i < document.scripts.length; i++ ) 
-                       {
-                               var script = document.scripts[i];
-                               if( (script.htmlFor == srcObj.id || script.htmlFor == srcObj ) && script.event == rawEventName )
-                               {
-                                       oldHandler = script.innerHTML;
-                                       break;
-                               }
-                       }
-               }
-       }
-       else
-       {
-               var oldInlineHandler = srcObj[rawEventName.toLowerCase()];
-               if( oldInlineHandler != null && typeof(oldInlineHandler) != "undefined")
-               {
-                       var functionDefinition = oldInlineHandler.toString();
-                       var bodyStart = functionDefinition.indexOf( "{" );
-                       var bodyEnd = functionDefinition.lastIndexOf( "}" );
-                       if( bodyStart > 0 || bodyEnd > bodyStart )
-                               oldHandler = functionDefinition.substr( bodyStart + 1, bodyEnd - bodyStart - 2 );
-               }
-               else if( gbBsIE4 )
-               { //search for <SCRIPT> tag which define the event handler
-                       for( var i = 0; i < document.scripts.length; i++ ) 
-                       {
-                               var script = document.scripts[i];
-                               if( (script.htmlFor == srcObj.id || script.htmlFor == srcObj ) && script.event == rawEventName )
-                               {
-                                       oldHandler = script.innerHTML;
-                                       break;
-                               }
-                       }
-               }
-       }
-       if( oldHandler.indexOf(funcHandler) >= 0 )
-               return;// to prevent register the funtion twice.
-
-       if( gbBsNS4 ) // only "onload, onresize, onfocus" apply to window
-       {// other raw events will apply to layer
-               var noOn = rawEventName.substring(2, rawEventName.length);
-               if( typeof(noOn) == "string" && noOn.length > 3 ) {
-                       if (srcObj.captureEvents)
-                               srcObj.captureEvents( Event[noOn.toUpperCase()] );
-               }
-       }
-       
-       var newHandler = oldHandler;
-       if( newHandler.length == 0 )
-               newHandler = funcHandler;
-       else
-               newHandler += "; " + funcHandler;
-       
-       srcObj[rawEventName.toLowerCase()] = new Function( newHandler );
-}
-
-CCSSP.GetWindowHeight = function()
-{// retrieve the height of available content in browser window
-       if( gbBsNS4 )
-               return window.innerHeight;
-       else
-               return document.body.clientHeight;
-}
-
-CCSSP.GetWindowBottom = function()
-{// retrieve the bottom postion of browser window
-       if( gbBsNS4 )
-               return window.outerHeight + window.pageYOffset;
-       else
-               return document.body.clientHeight + document.body.scrollTop;
-}
-
-CCSSP.GetWindowWidth = function()
-{// retrieve the width of available content in browser window
-       if( gbBsNS4 )
-               return window.innerWidth;
-       else
-               return document.body.clientWidth;
-}
-
-CCSSP.GetWindowRight = function()
-{// retrieve the right postion of browser window
-       if( gbBsNS4 )
-               return window.outerWidth + window.pageXOffset;
-       else
-               return document.body.clientWidth + document.body.scrollLeft;
-}
-
-CCSSP.TrimString = function( objString, subtrim )
-{// to trim the "subtrim" in the beginning and ending of a string object
-       if( typeof(subtrim) != "string" || subtrim == null )
-               return objString;
-       var strHead = objString.substring(0, 1);
-       var strRear = objString.substring(objString.length-1, objString.length);
-       if( strHead != subtrim && strRear != subtrim )
-               return objString;
-       
-       var spacePos = objString.indexOf(subtrim);
-       if( spacePos < 0 )
-               return objString;
-       else if( spacePos == objString.length - 1 )
-               return objString.substring(0, spacePos);
-       else
-       {
-               var newString = objString.substring( spacePos + 1, objString.length);
-               return CCSSP.TrimString( newString, subtrim );
-       }
-}
-
-CCSSP.TrimSpace = function( objString )
-{
-       var Trim1 = CCSSP.TrimString( objString, " ");
-       return CCSSP.TrimString( Trim1, "\'");
-}
-
-CCSSP.GetEventElement = function( navEventObject )
-{// to get the element who fired the current event
-       if(gbBsNS4) 
-               if (gbBsNS6)
-                       return null;
-               else
-                        navEventObject.target;
-       else
-               return event.srcElement;
-}
-
-CCSSP.PrepareFilter = function( Obj )
-{//to prepare for making the filter work
-       Obj.style.filter = "";
-       if( Obj.style.width != "" || Obj.style.height != "" || Obj.style.position == "absolute" )
-               return;
-       Obj.style.height = CCSSP.GetObjectHeight(Obj);
-}
-
-CCSSP.IsDescendant = function( progenitor, progeny )
-{
-       if( typeof(progeny) == "undefined" || progeny == null )
-               return false;
-       else if( progeny == progenitor )
-               return true; 
-       else if( progeny.id == progenitor.id ) 
-               return true; 
-       else if( getParentNode(progeny) == getParentNode(progenitor))
-               return false;
-       else
-               return CCSSP.IsDescendant( progenitor, getParentNode(progeny));
-}
-
-CCSSP.IsTextTag = function( Obj )
-{
-       if( typeof( Obj.tagName ) == "undefined" )
-               return false;
-       return( Obj.tagName.indexOf("H") == 0 || Obj.tagName == "P" || 
-                       Obj.tagName == "FONT" || Obj.tagName == "SPAN" );
-}
-
-//End JavaScript libary for cross-platform positioning object.
-
-/// Section End  - CCSSP DHTM (JavaScript 1.2)
-
-/// Section Begin  - CCSSP DHTM 1 (JavaScript 1.2)
-
-//Begin the definition of class CTrigger
-function CTrigger( TriggerElement )
-{
-       // object : the trigger element. Never be null. 
-       this.eleTrigger = TriggerElement;
-       
-       // number : the click counter number: only 3 values: 0,1,2;
-       this.nCounter = 0; 
-       
-       //object as associative array of string:
-       // the associate target ID strings; one element at least.                       
-       this.objStrTarget = new Object();
-       this.eleTrigger.style.cursor = "hand";
-       if( this.eleTrigger.tagName == "AREA" && this.eleTrigger.getAttribute("href") == "" )
-               this.eleTrigger.setAttribute("href", "#") // to make a hand cursor for image map
-}
-
-CTrigger.prototype.AddTargetID = function( strTargetID )
-{// add one target ID string to the objStrTarget
-       if( typeof(strTargetID) != "string" )
-               return ;
-       if( typeof(this.objStrTarget[strTargetID]) != "string" )
-               this.objStrTarget[strTargetID] = strTargetID;
-}
-
-CTrigger.prototype.OnTriggerClick = function()
-{// to activate all asociated target
-       var strEventType = ( (this.nCounter++)% 2 == 0 ) ? 
-               "bssctrigger1" : "bssctrigger2";
-               
-       // to enumerate associative target element's ID string
-       for( var strTargetID in this.objStrTarget ) 
-               CEngine.SendEventToOneTarget( strTargetID, strEventType );
-}
-//End the definition of class CTrigger
-
-//Begin the definition of class CTarget
-function CTarget( TargetElement )
-{
-       // object : the target element. Never be null.
-       this.eleTarget = TargetElement;
-       this.objManager = new Object(); // object: the event manager
-} 
-
-CTarget.nPageClickCounter = 0;// static class property.
-
-CTarget.prototype.GetAgencyObject = function(str_action_type,action_setting )
-{// return the action agency ( effect )object's refernece 
-       switch( str_action_type )
-       {
-       case "show":return new CAgencyShow( this.eleTarget, true ) ;
-       case "hide":return new CAgencyShow( this.eleTarget, false ) ;
-
-    case "flyin" : 
-       return new CAgencyFly(this.eleTarget, action_setting, true);
-    case "flyout" : 
-       return new CAgencyFly(this.eleTarget, action_setting, false);
-    case "spiralin" : 
-       return new CAgencySpiral(this.eleTarget, action_setting, true);
-    case "spiralout" : 
-       return new CAgencySpiral(this.eleTarget, action_setting, false);
-    case "zoomin" :
-       return new CAgencyZoom(this.eleTarget, action_setting, true);
-    case "zoomout" : 
-       return new CAgencyZoom(this.eleTarget, action_setting, false);
-    case "elastic" : 
-               return new CAgencyElastic(this.eleTarget, action_setting);
-               
-    case "fadein" : 
-       return (gbBsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, true) : null;
-    case "fadeout" :
-       return (gbBsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, false) : null;
-    case "rockrollstatic" :
-    case "rockroll" :
-       return (gbBsIE4)? new CAgencyWave(this.eleTarget, action_setting, false) : null;
-    case "glow":
-       return (gbBsIE4)? new CAgencyGlow(this.eleTarget,action_setting) : null;
-    case "dropshadow":
-       return (gbBsIE4)? new CAgencyDropShadow(this.eleTarget,action_setting) : null;
-    case "transition" :
-       return (gbBsIE4)? new CAgencyRevealTrans(this.eleTarget,action_setting) : null;
-    case "blur" :
-       return (gbBsIE4)? new CAgencyBlur(this.eleTarget,action_setting) : null;
-
-    case "fliph" : // all these 4 do NOT need any parameters
-    case "flipv" :
-    case "invert":
-    case "gray" :
-       return (gbBsIE4)? new CAgencyChangeFilter(this.eleTarget, str_action_type) : null;
-    
-    case "fontchange": // the effects below change the style on the fly, so won't work in Navigator
-       return (gbBsIE4)? new CAgencyFontChange(this.eleTarget,action_setting) : null;
-    case "boderchange": 
-    case "stylechange":
-       return (gbBsIE4)? new CAgencyChangeStyle(this.eleTarget,action_setting) : null;
-
-       default: return null;
-       }
-}
-
-CTarget.prototype.SetEventManager = function( 
-       one_event_type,str_action_type,action_setting,event_additional)
-{// to set the event manager with specified action 
-       if( typeof( one_event_type ) != "string" ||     
-               typeof( str_action_type ) != "string"||
-               typeof( action_setting ) != "string" )
-               return false;
-       if( typeof(this.objManager[one_event_type]) == "undefined" )
-       {
-               this.objManager[one_event_type] = new Object();
-               this.objManager[one_event_type].length = 0;
-       }
-       
-       var eventAgency = this.GetAgencyObject(str_action_type,action_setting);
-       if( eventAgency != null )
-       {
-               var ct = this.objManager[one_event_type].length ++;
-               this.objManager[one_event_type][ct] = eventAgency;
-               
-               if( one_event_type == "bsscpageclick" )
-               {// to deal with the "number of pageclick" stuff
-                       if( typeof(event_additional) == "number" )
-                               this.objManager[one_event_type][ct].nPageClick = event_additional;
-                       else // set the default number 
-                               this.objManager[one_event_type][ct].nPageClick = 1;
-                       
-                       if( (typeof(this.objManager.nMinPageClickIndex) == "undefined") ||
-                           (this.objManager[one_event_type][ct].nPageClick < 
-                                       this.objManager[one_event_type][this.objManager.nMinPageClickIndex].nPageClick) )
-                               this.objManager.nMinPageClickIndex = ct;
-               }
-               
-               //hide the object blindly,SetState function will take care of the final correct state
-               if( ((one_event_type == "bsscpageclick") && 
-                        (this.objManager[one_event_type][ct].nPageClick == 1)) ||
-                       one_event_type == "bsscpageload" ||
-                       one_event_type == "bssctrigger1" )
-                       CCSSP.ShowObject( this.eleTarget, false );
-               
-               if( one_event_type == "bssctrigger1" || one_event_type == "bssctrigger2" )
-                       if( typeof( this.strTriggerEvent ) == "undefined" )
-                               this.strTriggerEvent = ( one_event_type == "bssctrigger1" ) ? "bssctrigger2" : "bssctrigger1";
-                       
-               return true;
-       }
-       return false;
-}
-
-CTarget.prototype.OnEvent = function( strBsscEvent )
-{// response to the event ( bssc format )
-       if( typeof(this.objManager[strBsscEvent]) == "object" )
-       { // to get the event agency from the event manager
-               var eventAgency = this.objManager[strBsscEvent];
-               for( var i = 0; i < eventAgency.length; i++ )
-               {
-                       if( strBsscEvent == "bsscpageclick" && 
-                               eventAgency[i].nPageClick != CTarget.nPageClickCounter )
-                                continue;
-                       else if( strBsscEvent == "bsschover" && event.type == "mouseout" )
-                               eventAgency[i].EndEffect();
-                       else // to invoke the unified function in effect object 
-                               eventAgency[i].UpdateEffect(); 
-               }
-       }
-}
-
-CTarget.prototype.SetState = function( strBsscEvent )
-{
-       if( typeof(this.objManager[strBsscEvent]) != "object" )
-               return false;
-
-       // to get the event agency from the event manager
-       var eventAgency = this.objManager[strBsscEvent];
-       
-       if( strBsscEvent == "bsscpageclick" )
-       {// we only set the initial state for the minium number of pageclick 
-               eventAgency[this.objManager.nMinPageClickIndex].PrepareEffect();
-               return true;
-       }
-       else
-       {
-               for( var i = 0; i < eventAgency.length; i++ )
-                       eventAgency[i].PrepareEffect(); // to invoke the unified function in effect object       
-               if( i > 0 )
-                       return true;
-               else
-                       return false;
-       }
-}
-//End the definition of class CTarget
-
-//Begin the definition of CEngine class
-function CEngine(){}// all properities are going be "class" properities
-
-// object : as associative array of trigger objects
-CEngine.objTrigger = new Object();
-// object : as associative array of target objects 
-CEngine.objTarget = new Object(); 
-
-// Array : each element is a CAgencyXXX animation object
-CEngine.arrAnimation = new Array();
-CEngine.PerformAnimation = function( nIndex )
-{// animation : update effects function
-       CEngine.arrAnimation[nIndex].UpdateEffect();
-}
-
-CEngine.AddOneTrigger = function(TriggerID,TriggerElement)
-{// add one Trigger object into the trigger array
-       if( typeof(TriggerID) != "string" || TriggerElement == null ||
-           typeof(TriggerElement) != "object" )
-               return;
-       if( typeof(CEngine.objTrigger[TriggerID] ) != "object" )
-               CEngine.objTrigger[TriggerID] = new CTrigger(TriggerElement);
-}
-       
-CEngine.AddOneTarget = function(TargetID, TargetElement)
-{// add one Target object into the target array
-       if( typeof(TargetID) != "string" || TargetElement == null ||
-               typeof(TargetElement) != "object" )
-               return;
-       if( typeof(CEngine.objTarget[TargetID]) != "object" )
-               CEngine.objTarget[TargetID] = new CTarget( TargetElement );
-}
-
-CEngine.SendEventToOneTarget = function(strTargetID, strBsscEvent )
-{// to activate one target object
-       if( typeof(CEngine.objTarget[strTargetID]) == "object" ) 
-       {
-               if( strBsscEvent == "bssctrigger1" || strBsscEvent == "bssctrigger2" )
-               {//now, the "bssctrigger1" and "bssctrigger2" work like a toggle
-                       if( strBsscEvent == CEngine.objTarget[strTargetID].strTriggerEvent )
-                               strBsscEvent = (strBsscEvent == "bssctrigger1") ? "bssctrigger2" : "bssctrigger1";
-                       CEngine.objTarget[strTargetID].strTriggerEvent = strBsscEvent;
-               }
-               CEngine.objTarget[strTargetID].OnEvent( strBsscEvent );
-       }
-}
-
-CEngine.SendEventToAllTarget = function( strBsscEvent )
-{ //to activate all target associative to the BSSC event
-       for( var strTargetID in CEngine.objTarget ) //to enumerate all target
-               CEngine.SendEventToOneTarget( strTargetID, strBsscEvent );
-}
-
-CEngine.SetOneTargetInitialState = function( strTargetID )
-{// only invoked after ALL effects for the target have been set
-       if( typeof(CEngine.objTarget[strTargetID]) == "object" ) 
-       {// to get target object
-               var objTarget = CEngine.objTarget[strTargetID];
-               if( objTarget.SetState( "bsscpageload" ) == false )
-               {
-                       objTarget.SetState( "bsscpageclick" );
-                       objTarget.SetState( "bssctrigger1" );
-               }
-       }
-}
-
-CEngine.AdjustPageClickCounter = function()
-{
-       var nAdjustedClickCounter = CTarget.nPageClickCounter;
-       var bAdjusted = false;
-       for( var strTargetID in CEngine.objTarget ) //to enumerate all target
-       {// try to find the minum pageCliclConter greater than CTarget.nPageClickCounter
-               var objEventPageClick = CEngine.objTarget[strTargetID].objManager.bsscpageclick;
-               if( objEventPageClick != null )
-               {
-                       for( var i = 0; i < objEventPageClick.length; i++ )
-                       {
-                               var nOtherPageClick = objEventPageClick[i].nPageClick;
-                               if( nOtherPageClick == CTarget.nPageClickCounter )
-                                       return;
-                               if( nOtherPageClick > CTarget.nPageClickCounter )
-                               {
-                                       if( !bAdjusted )
-                                       {
-                                               nAdjustedClickCounter = nOtherPageClick;
-                                               bAdjusted = true;
-                                       }
-                                       else if( nOtherPageClick < nAdjustedClickCounter )
-                                               nAdjustedClickCounter = nOtherPageClick;
-                               }
-                       }
-               }
-       }
-       CTarget.nPageClickCounter = nAdjustedClickCounter;
-}
-
-CEngine.OnPageLoad = function()
-{      
-       // first, to set all target's initial state
-       for( var strTargetID in CEngine.objTarget )
-               CEngine.SetOneTargetInitialState( strTargetID );
-       
-       // to invoke all target's onpageload handler
-       CEngine.SendEventToAllTarget( "bsscpageload" );
-}
-
-CEngine.OnPageClick = function()
-{ // to invoke all target's onpageclick handler
-       var src = CCSSP.GetEventElement( arguments[0] );
-       if( src == null )
-               return;
-               
-       var objClickedTrigger = null;
-       for( var strTriggerID in CEngine.objTrigger )
-       { // to detect which trigger is clicked
-               if( CCSSP.IsDescendant( CEngine.objTrigger[strTriggerID].eleTrigger,src) )
-               {
-                       objClickedTrigger = CEngine.objTrigger[strTriggerID];
-                       break;
-               }
-       }
-       
-       if( objClickedTrigger != null) // the clicked trigger found
-               objClickedTrigger.OnTriggerClick();
-       else // no trigger is clicked
-       { // to send PageClick event to all target
-               CTarget.nPageClickCounter++;
-               CEngine.AdjustPageClickCounter();
-               CEngine.SendEventToAllTarget( "bsscpageclick" );
-       }
-}      
-
-CEngine.OnMouseOver = function()
-{ // to invoke all target's onpageload handler
-       var src = CCSSP.GetEventElement( arguments[0] );
-       if( src == null )
-               return;
-               
-       var strHoveredTargetID = null;
-       for( var strTargetID in CEngine.objTarget )
-       { // to detect which Target is hovering on
-               if( CCSSP.IsDescendant( CEngine.objTarget[strTargetID].eleTarget, src ) )
-           {
-                       strHoveredTargetID = strTargetID;
-                       break;
-           }
-       }
-       
-       if( strHoveredTargetID != null ) // the hovered target found
-               CEngine.SendEventToOneTarget( strHoveredTargetID, "bsschover" );
-}
-
-CEngine.BuildTargetObject = function(target_ID,event_type,action_type,
-                       action_setting, event_additional)
-{// to build target object 
-       // to get the target object
-       if( typeof( CEngine.objTarget[target_ID] ) != "object" )
-               return false;// the engine's AddOneTarget function might have failed.
-       var TargetObject = CEngine.objTarget[target_ID];
-       
-       // to prepare the parameters for the event manager
-       var arrEvent = event_type.split("|"); // to split the combined event_type string
-       var arrAction = action_type.split("|");//to split the combined action_type string
-       for( var trim = 0; trim < arrEvent.length; trim++ )
-               arrEvent[trim] = CCSSP.TrimSpace(arrEvent[trim]);
-       
-       for( trim = 0; trim < arrAction.length; trim++ )
-               arrAction[trim] = CCSSP.TrimSpace(arrAction[trim]);
-       
-       var arrSetting = new Array(); 
-       if( typeof(action_setting) == "string" )
-               arrSetting = action_setting.split("|");// to split the combined action_setting string
-       // to calibrate the arrays
-       for( var i = arrSetting.length; i < arrAction.length; i++ )
-       {
-               if( typeof(arrSetting[i]) != "string" )
-                        arrSetting[i] = "";
-       }                                
-
-       // to prepare for dealing with the absolute posioning element
-       TargetObject.eleTarget.ABSX = CCSSP.GetObjectLeft( TargetObject.eleTarget );
-       TargetObject.eleTarget.ABSY = CCSSP.GetObjectTop( TargetObject.eleTarget );
-
-       if( arrEvent.length > 1 )
-       {// if event is combined, it must be : "bssctrigger1 | bssctrigger2"
-               if( arrAction.length != 2 )
-                       return false; // if event is combined, there must be 2 actions
-               for( i = 0 ; i < 2; i++ )
-               {
-                       if( TargetObject.SetEventManager(arrEvent[i], arrAction[i], 
-                               arrSetting[i], event_additional) == false )
-                               return false; // the event manager has not been set up
-               }
-       }
-       else // the event_type string is not combined
-       {
-               for( i = 0 ; i < arrAction.length; i++ )
-               {
-                       TargetObject.SetEventManager(event_type, arrAction[i], arrSetting[i], event_additional);
-                       // to validate the event manager
-                       if( typeof(TargetObject.objManager[event_type]) != "object" ||
-                                       typeof(TargetObject.objManager[event_type][i]) != "object" )
-                               return false; // the event manager has not been set up
-               }
-       }
-       return true;
-}
-
-CEngine.BuildTriggerObject = function(trigger_ID, target_ID)
-{// to build the trigger object
-       var arrTrigger = trigger_ID.split("|"); // to split the combined trigger_ID string
-       for( var i = 0; i < arrTrigger.length; i ++ )
-       {// to get the trigger element then add it to the trigger list
-               arrTrigger[i] = CCSSP.TrimSpace( arrTrigger[i] );
-               var eleTrigger = CCSSP.GetObject( arrTrigger[i] );
-               if( eleTrigger == null )
-                       continue; // the trigger_ID string in the HTML code maybe wrong
-               CEngine.AddOneTrigger( arrTrigger[i], eleTrigger );
-
-               // to get the target object
-               if( typeof( this.objTrigger[arrTrigger[i]] ) != "object" )
-                       continue;// the engine's AddOneTarget function might have failed.
-               CEngine.objTrigger[arrTrigger[i]].AddTargetID( target_ID );
-       }
-}
-//End the definition of CEngine class
-
-/// Section End  - CCSSP DHTM 1 (JavaScript 1.2)
-
-/// Section Begin  - CCSSP DHTM 2 (JavaScript 1.2)
-
-//Begin the definition of CAgencyXXXX classes
-
-//Begin of the CAgencyShow definition
-function CAgencyShow( element, bIsShow )
-{
-       this.ele = element;
-       this.bIsShow = bIsShow;
-}
-
-CAgencyShow.prototype.PrepareEffect = function()
-{
-       CCSSP.ShowObject( this.ele, !this.bIsShow );
-}
-
-CAgencyShow.prototype.UpdateEffect = function()
-{
-       CCSSP.ShowObject( this.ele, this.bIsShow );
-}
-
-CAgencyShow.prototype.EndEffect = function()
-{
-       CCSSP.ShowObject( this.ele, !this.bIsShow );
-}
-// End of the CAgencyShow definition
-
-// Begin of CAgencyFly definition
-function CAgencyFly( element, settings, bIsIn )
-{
-       this.ele = element;
-       this.bIsIn = bIsIn;
-       this.duration = 1000; // default
-       this.direction = "right";
-
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {// to retrieve the setting
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;
-               case "direction" : this.direction = arrOneSet[1]; break;
-               }
-       }
-               
-       if( gbBsIE5 && this.ele.style.position != "absolute" )
-               this.ele.style.position = "relative";
-       this.timer = null;
-       this.aniIndex = CEngine.arrAnimation.length;
-       CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyFly.prototype.PrepareEffect = function()
-{
-       CCSSP.ShowObject(this.ele, !this.bIsIn );
-}
-
-CAgencyFly.prototype.UpdateEffect = function()
-{
-       if( this.timer == null )
-               this.ResetParameters();
-
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
-       if( percent >= 1.0 )
-               this.EndEffect();
-       else
-       {
-               var newX = this.startX*(1.0-percent) +  this.finalX*percent;
-               var newY = this.startY*(1.0-percent) +  this.finalY*percent;
-               CCSSP.MoveObjectTo(this.ele, newX, newY);
-               if( this.timer == null )
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
-       }
-}
-
-CAgencyFly.prototype.EndEffect = function()
-{
-       clearInterval( this.timer );
-       this.timer = null;
-
-       if( this.bIsIn ) // FlyIn
-               CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);
-       else // FlyOut
-               CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
-       CCSSP.ShowObject(this.ele, this.bIsIn );
-}
-
-CAgencyFly.prototype.ResetParameters = function()
-{
-       this.PrepareEffect();
-       CCSSP.ShowObject(this.ele, true );
-
-       this.startX = 0;
-       this.startY = 0;
-       this.finalX = 0;
-       this.finalY = 0; 
-       
-       var offsetLeft = CCSSP.GetObjectWindowLeft(this.ele) + this.ele.offsetWidth;
-       var offsetTop = CCSSP.GetObjectWindowTop(this.ele) + this.ele.offsetHeight;
-       var offsetRight = CCSSP.GetWindowRight();
-       var offsetBottom = CCSSP.GetWindowBottom();
-
-       if( this.bIsIn )
-       { // FlyIn
-               this.finalX = this.ele.ABSX;
-               this.finalY = this.ele.ABSY;
-
-               switch( this.direction )
-               {
-               case "right": this.startX = offsetRight; this.startY = this.finalY; break;
-               case "left": this.startX = -offsetLeft;  this.startY = this.finalY; break;
-               case "down": this.startY = offsetBottom; this.startX = this.finalX; break;
-               case "up":  this.startY = -offsetTop;    this.startX = this.finalX; break;
-               case "downright":
-                       this.startX = ( offsetBottom < offsetRight) ? offsetBottom : offsetRight;
-                       this.startY = this.startX;              break;
-               case "upright":
-                       this.startX = (offsetTop < offsetRight)? offsetTop : offsetRight;
-                       this.startY = -this.startX;             break;
-               case "upleft":
-                       this.startX = -((offsetTop < offsetRight)? offsetTop : offsetRight);
-                       this.startY = this.startX;              break;
-               case "downleft":
-                       this.startX = -(( offsetBottom < offsetRight) ? offsetBottom : offsetRight);
-                       this.startY = -this.startX;     break;
-               }
-       }
-       else
-       { // FlyOut
-               this.startX = this.ele.ABSX;
-               this.startY = this.ele.ABSY;
-
-               switch( this.direction )
-               {
-               case "right": this.finalX = offsetRight;  this.finalY = this.startY; break;
-               case "left": this.finalX = -offsetLeft;   this.finalY = this.startY;  break;
-               case "down": this.finalY = offsetBottom;  this.finalX = this.startX; break;
-               case "up":  this.finalY = -offsetTop;     this.finalX = this.startX; break;
-               case "downright":
-                       this.finalX = ( offsetBottom < offsetRight) ? offsetBottom : offsetRight;
-                       this.finalY = this.finalX;              break;
-               case "upright":
-                       this.finalX = (offsetTop < offsetRight)? offsetTop : offsetRight;
-                       this.finalY = -this.finalX;             break;
-               case "upleft":
-                       this.finalX = -((offsetTop < offsetRight)? offsetTop : offsetRight);
-                       this.finalY = this.finalX;              break;
-               case "downleft":
-                       this.finalX = -(( offsetBottom < offsetRight) ? offsetBottom : offsetRight);
-                       this.finalY = -this.finalX;     break;
-               }
-       }
-       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
-       this.startTime = (new Date()).getTime();
-}
-// End of the CAgencyFly definition
-
-// Begin of CAgencySpiral
-function CAgencySpiral( element, settings, bIsIn )
-{
-       this.ele = element;
-       this.bIsIn = bIsIn;
-       this.duration = 1000; // default
-
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {// to retrieve the setting
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;
-               }
-       }
-
-       if( gbBsIE5 && this.ele.style.position != "absolute" )
-               this.ele.style.position = "relative";
-       this.timer = null;
-       this.aniIndex = CEngine.arrAnimation.length;
-       CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencySpiral.prototype.PrepareEffect = function()
-{
-       CCSSP.ShowObject(this.ele, !this.bIsIn );
-}
-
-CAgencySpiral.prototype.UpdateEffect = function()
-{
-       if( this.timer == null )
-               this.ResetParameters();
-
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
-       if( percent >= 1.0 )
-               this.EndEffect();
-       else
-       {
-               var rf = (this.bIsIn)? (1.0 - percent) : percent; 
-               var t = (1.0-rf) * 4.0 * Math.PI
-               var rxP = (this.bIsIn)? this.startX : this.finalX; 
-               var ryP = (this.bIsIn)? this.startY : this.finalY; 
-               var rx = (Math.abs(rxP) < 200) ? Math.abs(rxP) : 200;
-               var ry = (Math.abs(ryP) < 200) ? Math.abs(ryP) : 200;
-
-               var newX = Math.ceil(-rf*Math.cos(t)*rx) + this.ele.ABSX;
-               var newY = Math.ceil(-rf*Math.sin(t)*ry) + this.ele.ABSY;
-               CCSSP.MoveObjectTo(this.ele, newX, newY);
-               if( this.timer == null )
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
-       }
-}
-
-CAgencySpiral.prototype.EndEffect = function()
-{
-       clearInterval( this.timer );
-       this.timer = null;
-       
-       if( this.bIsIn ) // In
-               CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);
-       else // Out
-               CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
-       CCSSP.ShowObject(this.ele, this.bIsIn );
-}
-
-CAgencySpiral.prototype.ResetParameters = function()
-{
-       this.PrepareEffect();
-       CCSSP.ShowObject(this.ele, true );
-       this.startX = (this.bIsIn)? CCSSP.GetWindowRight() : this.ele.ABSX;
-       this.startY = (this.bIsIn)? CCSSP.GetWindowBottom() : this.ele.ABSY;
-       this.finalX = (this.bIsIn)? this.ele.ABSX : CCSSP.GetWindowRight();
-       this.finalY = (this.bIsIn)? this.ele.ABSY : CCSSP.GetWindowBottom(); 
-       
-       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
-       this.startTime = (new Date()).getTime();
-}
-// End of CAgencySpiral
-
-// Begin of CAgencyElastic
-function CAgencyElastic( element, settings)
-{
-       this.ele = element;
-       this.duration = 1000; // default
-       this.direction = "right";
-
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {// to retrieve the setting
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;
-               case "direction" : this.direction = arrOneSet[1]; break;
-               }
-       }
-               
-       if( gbBsIE5 && this.ele.style.position != "absolute" )
-               this.ele.style.position = "relative";
-       this.timer = null;
-       this.aniIndex = CEngine.arrAnimation.length;
-       CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyElastic.prototype.PrepareEffect = function()
-{
-       CCSSP.ShowObject(this.ele, false );
-}
-
-CAgencyElastic.prototype.UpdateEffect = function()
-{
-       if( this.timer == null )
-               this.ResetParameters();
-
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
-       if( percent >= 1.0 )
-               this.EndEffect();
-       else
-       {
-               var newX = this.startX;
-               var newY = this.startY;
-               var rf = Math.exp(-percent*3);
-               var t = percent * 1.5 * Math.PI
-               var rx = (Math.abs(this.startX) > Math.abs(this.startY)) ? this.startX : this.startY;
-               switch (this.direction )
-               {
-               case "left":   
-               case "right" : newX = rf*Math.cos(t)*rx + this.ele.ABSX; break;
-               case "up":         
-               case "down" :  newY = rf*Math.cos(t)*rx + this.ele.ABSX; break;
-               }
-               CCSSP.MoveObjectTo(this.ele, newX, newY);
-               if( this.timer == null )
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
-       }
-}
-
-CAgencyElastic.prototype.EndEffect = function()
-{
-       CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);
-       clearInterval( this.timer );
-       this.timer = null;
-}
-
-CAgencyElastic.prototype.ResetParameters = function()
-{
-       CCSSP.ShowObject(this.ele, true );
-       this.startX = this.ele.ABSX;
-       this.finalX = this.ele.ABSX;
-       this.startY = this.ele.ABSY;
-       this.finalY = this.ele.ABSY;
-       
-       switch (this.direction)
-       { 
-       case "left":  this.startX = -this.ele.offsetWidth; break;
-       case "right": this.startX = this.ele.offsetWidth;  break;
-       case "up":    this.startY = -this.ele.offsetHeight;break;
-       case "down":  this.startY = this.ele.offsetHeight; break;
-       }
-       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
-       this.startTime = (new Date()).getTime();
-}
-// End of CAgencyElastic
-
-// Begin of CAgencyZoom
-function CAgencyZoom( element, settings, bIsIn)
-{
-       this.ele = element;
-       this.duration = 1000; // default
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {// to retrieve the setting
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;
-               }
-       }
-
-       this.bIsIn = bIsIn;
-       this.timer = null;
-       this.aniIndex = CEngine.arrAnimation.length;
-       CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyZoom.prototype.PrepareEffect = function()
-{
-       CCSSP.ShowObject(this.ele, false);
-}
-
-CAgencyZoom.prototype.UpdateEffect = function()
-{
-       if( this.timer == null )
-               this.ResetParameters();
-
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
-       if( percent >= 1.0 )
-               this.EndEffect();
-       else
-       {
-               var nFactorIn = Math.ceil(50+50*percent);
-               var nFactorOut = Math.ceil(100+200*(1-percent));
-               var AlterFontsize = ((this.bIsIn)? nFactorIn : nFactorOut) + "%";
-               var AlterFactor = ((this.bIsIn)? nFactorIn : nFactorOut) / 100;
-               
-               this.UpdateEffectAllChildren(this.ele, AlterFontsize, AlterFactor);
-               for(var index = 0; index < this.ele.all.length; index++)
-                       this.UpdateEffectAllChildren(this.ele.all[index], AlterFontsize, AlterFactor);
-                       
-               if( this.timer == null )
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
-       }
-}
-
-CAgencyZoom.prototype.UpdateEffectAllChildren = function(child, FontSize, Factor)
-{
-       if( CCSSP.IsTextTag(child) )
-               child.style.fontSize = FontSize;
-       else
-       {
-               if( typeof(child.orgWidth) == "number" )
-                       child.style.width = Factor * child.orgWidth;
-               if( typeof(child.orgHeight) == "number" )
-                       child.style.height = Factor * child.orgHeight;
-       }
-}
-
-CAgencyZoom.prototype.EndEffect = function()
-{
-       this.EndEffectAllChildren(this.ele);
-       for(var index = 0; index < this.ele.all.length; index++)
-               this.EndEffectAllChildren(this.ele.all[index]);
-       
-       clearInterval( this.timer );
-       this.timer = null;
-}
-
-CAgencyZoom.prototype.EndEffectAllChildren = function( child )
-{      
-       if( CCSSP.IsTextTag(child) )
-               child.style.fontSize = child.orgFontSize;
-       else
-       {
-               if( typeof(child.intactWidth) != "undefined" )
-               {
-                       child.width = child.intactWidth;
-                       child.height = child.intactHeight;
-               }
-               else if( typeof(child.style.intactPixelWidth) != "undefined" )
-               {
-                       child.style.pixelWidth = child.style.intactPixelWidth;
-                       child.style.pixelHeight = child.style.intactPixelHeight;
-               }
-       }
-}
-
-CAgencyZoom.prototype.ResetParameters = function()
-{
-       this.PrepareEffect();
-       this.ResetParametersAllChildren( this.ele );
-       for(var index = 0; index < this.ele.all.length; index++)
-               this.ResetParametersAllChildren(this.ele.all[index]);
-               
-       this.startTime = (new Date()).getTime();
-}
-
-CAgencyZoom.prototype.ResetParametersAllChildren = function( child )
-{
-       CCSSP.ShowObject(child, true );
-       if( (child.tagName == "DIV") && (getParentNode(child).tagName == "TD") )
-               child.width = "100%";// if the div is inside a cell of table, we need the this hack
-       
-       if( CCSSP.IsTextTag(child) )
-               child.orgFontSize = child.style.fontSize;
-       else
-       {
-               if( child.width > "" || child.height > "" )
-               {
-                       child.orgWidth = child.intactWidth = child.width;
-                       child.orgHeight = child.intactHeight = child.height;
-               }
-               else if( ( typeof(child.orgWidth) != "number" ) && (typeof(child.orgHeight) != "number") )
-               {
-                       child.orgWidth = child.style.intactPixelWidth = child.style.pixelWidth;
-                       child.orgHeight = child.style.intactPixelHeight = child.style.pixelHeight;
-               }
-       }
-}
-// End of CAgencyZoom
-
-//// the following effects will use IE's exclusive "filter" function ////
-// Begin of CAgencyAlpha definition
-function CAgencyAlpha( element, settings, bIsIn )
-{// because of "visual filter" style, this won't work in Navigator
-       this.ele = element;
-       this.bIsIn = bIsIn;
-
-       // to set the default value
-       this.startOpacity = (this.bIsIn) ? 0 : 100;
-       this.endOpacity = (this.bIsIn) ? 100 : 0;
-       
-       this.duration = 1000; // default
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {// to retrieve the setting
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;
-               }
-       }
-       
-       this.timer = null;
-       this.aniIndex = CEngine.arrAnimation.length;
-       CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyAlpha.prototype.PrepareEffect = function()
-{// to set the visual filter function
-       // the visual filter ONLY work when set by "Width and Height" or
-       // absolute position for DIV, SPAN and normal tag ( such as p )
-       // but, "absolute" cause the following elements overlap, so:
-       CCSSP.PrepareFilter( this.ele );
-       CCSSP.ShowObject(this.ele, !this.bIsIn );
-}
-
-CAgencyAlpha.prototype.UpdateEffect = function()
-{// to set the visual filter function
-       if( this.timer == null )
-               this.ResetParameters();
-       if( typeof(this.ele.filters.alpha) != "object" )
-       {
-               this.EndEffect();
-               return;
-       }
-
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
-       if( percent >= 1.0 )
-               this.EndEffect();
-       else if( typeof(this.ele.filters.alpha) == "object" )
-       {
-               this.ele.filters.alpha.opacity = this.startOpacity*(1.0-percent) + this.endOpacity*percent;
-               if( this.timer == null )
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
-       }
-}
-
-CAgencyAlpha.prototype.EndEffect = function()
-{// to remove the visual filter function
-       clearInterval( this.timer );
-       this.timer = null;
-       this.ele.style.filter = "";
-       CCSSP.ShowObject(this.ele, this.bIsIn );
-}
-
-CAgencyAlpha.prototype.ResetParameters = function()
-{
-       this.PrepareEffect();
-       CCSSP.ShowObject(this.ele, true );
-       this.ele.style.filter = "alpha(opacity=" + this.startOpacity + ")";
-       this.startTime = (new Date()).getTime();
-}
-// End of the CAgencyAlpha definition
-
-// Begin of CAgencyWave definition
-function CAgencyWave( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
-       this.ele = element;
-
-       this.duration = 0; // default
-       this.strength = 10;
-       this.freq = 1;
-       this.lightstrength = 1;
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {// to retrieve the setting
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "duration" : this.duration = 100000/arrOneSet[1]; break;
-               case "strength" : this.strength = arrOneSet[1]; break;
-               case "freq" : this.freq = arrOneSet[1]; break;
-               case "lightstrength" : this.lightstrength = arrOneSet[1]; break;
-               }
-       }
-
-       this.timer = null;
-       this.aniIndex = CEngine.arrAnimation.length;
-       CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyWave.prototype.PrepareEffect = function()
-{// to set the visual filter function
-       CCSSP.PrepareFilter(this.ele);
-
-       CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyWave.prototype.UpdateEffect = function()
-{// to set the visual filter function
-       if( this.timer == null )
-               this.ResetParameters();
-       if( typeof(this.ele.filters.wave) != "object" )
-       {
-               this.EndEffect();
-               return;
-       }
-
-       if( this.duration > 0 )
-       {
-               var percent = ((new Date()).getTime() - this.startTime)/this.duration;
-               if( percent >= 1.0 )
-               {
-                       this.EndEffect();
-                       return;
-               }
-       }
-       
-       this.ele.filters.wave.phase += 5;
-       this.ele.filters.wave.phase %= 100;
-       if( this.timer == null )
-               this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 50 );
-}
-
-CAgencyWave.prototype.EndEffect = function()
-{// to remove the visual filter function
-       this.ele.style.filter = "";
-       clearInterval( this.timer );
-       this.timer = null;
-}
-
-CAgencyWave.prototype.ResetParameters = function()
-{
-       this.PrepareEffect();
-       this.ele.style.filter = "wave(strength=" + this.strength + ",freq=" + 
-        this.freq +", lightstrength=" + this.lightstrength +",phase=0);";
-       this.startTime = (new Date()).getTime();
-}
-// End of the CAgencyWave definition
-
-// Begin of CAgencyGlow definition
-function CAgencyGlow( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
-       this.ele = element;
-
-       // to set the default value
-       this.glowColor = "green";
-       this.glowStrength = "3";
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "color" : this.glowColor = arrOneSet[1]; break;
-               case "strength" : this.glowStrength = arrOneSet[1]; break;
-               }
-       }
-}
-
-CAgencyGlow.prototype.PrepareEffect = function()
-{
-       CCSSP.PrepareFilter(this.ele);
-       CCSSP.ShowObject(this.ele, true );
-       if( this.ele.style.backgroundColor != "" )
-       {//style.backgroundColor somehow stop the visual filter
-               this.ele.intactBackgroundColor = this.ele.style.backgroundColor;
-               this.ele.style.backgroundColor = "";
-       }
-}
-
-CAgencyGlow.prototype.UpdateEffect = function()
-{// to set the visual filter function
-       this.PrepareEffect();
-       this.ele.style.filter = "glow(Color=" + this.glowColor + ", Strength=" + 
-               this.glowStrength + ", enabled=true" +")";
-}
-
-CAgencyGlow.prototype.EndEffect = function()
-{// to remove the visual filter function
-       this.ele.style.filter = "";
-       if( typeof(this.ele.intactBackgroundColor) != "undefined" )
-               this.ele.style.backgroundColor = this.ele.intactBackgroundColor;
-}
-// End of the CAgencyGlow definition
-
-// Begin of CAgencyDropShadow definition
-function CAgencyDropShadow( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
-       this.ele = element;
-
-       // to set the default value
-       this.shadowColor = "black"; 
-       this.shadowOffx = "1";
-       this.shadowOffy = "1";
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "color" : this.shadowColor = arrOneSet[1]; break;
-               case "offx" : this.shadowOffx = arrOneSet[1]; break;
-               case "offy" : this.shadowOffy = arrOneSet[1]; break;
-               }
-       }
-}
-
-CAgencyDropShadow.prototype.PrepareEffect = function()
-{
-       CCSSP.PrepareFilter(this.ele);
-       CCSSP.ShowObject(this.ele, true );
-       
-       if( this.ele.style.backgroundColor != "" )
-       {//style.backgroundColor somehow stop the visual filter
-               this.ele.intactBackgroundColor = this.ele.style.backgroundColor;
-               this.ele.style.backgroundColor = "";
-       }
-}
-
-CAgencyDropShadow.prototype.UpdateEffect = function()
-{// to set the visual filter function
-       this.PrepareEffect();
-       this.ele.style.filter = "dropshadow(color=" + this.shadowColor + ", offx=" + 
-               this.shadowOffx + ", offy=" + this.shadowOffy + ")";
-}
-
-CAgencyDropShadow.prototype.EndEffect = function()
-{// to remove the visual filter function
-       this.ele.style.filter = "";
-       if( typeof(this.ele.intactBackgroundColor) != "undefined" )
-               this.ele.style.backgroundColor = this.ele.intactBackgroundColor;
-}
-// End of the CAgencyDropShadow definition
-
-// Begin of CAgencyRevealTrans definition
-function CAgencyRevealTrans( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
-       this.ele = element;
-
-       // to set the default value
-       this.duration = 1.0; //The value is specified in seconds.milliseconds format (0.0000).
-       this.transition = 0;
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "type" : this.transition = arrOneSet[1]; break;
-               case "duration" : this.duration = 100/arrOneSet[1];     break;
-               }
-       }
-}
-
-CAgencyRevealTrans.prototype.PrepareEffect = function()
-{
-       CCSSP.PrepareFilter(this.ele);
-       CCSSP.ShowObject( this.ele, false);
-}
-
-CAgencyRevealTrans.prototype.UpdateEffect = function()
-{// to set the visual filter function
-       if( typeof( this.ele.filters.RevealTrans ) == "object" )
-       {
-               if( this.ele.filters.RevealTrans.status == 2 )
-                       this.ele.filters.RevealTrans.stop();  
-       }
-
-       this.PrepareEffect();
-       
-       this.ele.style.filter = "RevealTrans(duration=" + this.duration + 
-               ", transition=" + this.transition + ")";
-       
-    if( typeof( this.ele.filters.RevealTrans ) == "object" )
-    {
-               this.ele.filters.RevealTrans.apply();
-               CCSSP.ShowObject( this.ele, true);
-               this.ele.filters.RevealTrans.play();  
-       }
-       else
-               CCSSP.ShowObject( this.ele, true);
-}
-
-CAgencyRevealTrans.prototype.EndEffect = function()
-{
-    if( typeof( this.ele.filters.RevealTrans ) == "object" )
-               this.ele.filters.RevealTrans.stop();  
-       this.ele.style.filter = "";
-}
-// End of the CAgencyRevealTrans definition
-
-// Begin of CAgencyBlur definition
-function CAgencyBlur( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
-       this.ele = element;
-
-       // to set the default value
-       this.strength = "5";
-       this.direction = "90";
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "strength" : this.strength = arrOneSet[1]; break;
-               case "direction" : this.direction = arrOneSet[1]; break;
-               }
-       }
-}
-
-CAgencyBlur.prototype.PrepareEffect = function()
-{
-       CCSSP.PrepareFilter(this.ele);
-       CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyBlur.prototype.UpdateEffect = function()
-{// to set the visual filter function
-       CCSSP.PrepareFilter(this.ele);
-       this.ele.style.filter = "blur(strength=" + this.strength + 
-               ", direction=" + this.direction + ")";
-}
-
-CAgencyBlur.prototype.EndEffect = function()
-{// to remove the visual filter function
-       this.ele.style.filter = "";
-}
-// End of the CAgencyBlur definition
-
-// Begin of CAgencyChangeFilter definition
-function CAgencyChangeFilter( element, settings ) // flipH, flipV, invert, grey,
-{// because of "visual filter" style, this won't work in Navigator
-       this.ele = element;
-
-       // to set the default value
-       this.filterFunction = settings;
-}
-
-CAgencyChangeFilter.prototype.PrepareEffect = function()
-{
-       CCSSP.PrepareFilter(this.ele);
-       CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyChangeFilter.prototype.UpdateEffect = function()
-{// to set the visual filter function
-       CCSSP.PrepareFilter(this.ele);
-       this.ele.style.filter = this.filterFunction;
-}
-
-CAgencyChangeFilter.prototype.EndEffect = function()
-{// to remove the visual filter function
-       this.ele.style.filter = "";
-}
-// End of the CAgencyChangeFilter definition
-
-// The effects below change the style on the fly, so they won't work in Navigator
-
-// Begin of CAgencyFontChange definition, 
-function CAgencyFontChange( element, settings )
-{//this class can be replace by CAgencyChangeStyle,provided the "settings" is standard CSS string.
-       this.ele = element;
-       
-       // to retrieve the original font style
-       this.RetrieveOldFont( this.ele );
-       
-       // to set the default font to change
-       this.newfontFamily = this.ele.oldFontFamily;
-       this.newfColor = this.ele.oldColor;
-       this.newtextDecoration = this.ele.oldTextDecoration;
-       this.newfontWeight = this.ele.oldFontWeight;
-       this.newfontStyle = this.ele.oldFontStyle;
-       this.newfontSize = this.ele.oldFontSize;
-       this.newBackgroundColor = this.ele.oldBackgroundColor;
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {// to retrieve the setting
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "font-family" : this.newfontFamily = arrOneSet[1]; break;
-               case "color" : this.newfColor = arrOneSet[1]; break;
-               case "underline" : this.newtextDecoration = (arrOneSet[1]=="on")? "underline" : "none"; break;
-               case "bold" : this.newfontWeight = (arrOneSet[1]=="on")? "bold" : "normal"; break;
-               case "italic" : this.newfontStyle = (arrOneSet[1]=="on")? "italic" : "normal"; break;
-               case "size" : this.newfontSize = arrOneSet[1]; break;
-               case "background-color" : this.newBackgroundColor = arrOneSet[1]; break;
-               }
-       }
-}
-
-CAgencyFontChange.prototype.RetrieveOldFont = function(objChild)
-{
-       if( typeof(objChild.oldFontFamily) == "undefined" )
-               objChild.oldFontFamily = objChild.style.fontFamily;
-       if( typeof(objChild.oldColor) == "undefined" )
-               objChild.oldColor = objChild.style.color;
-       if( typeof(objChild.oldTextDecoration) == "undefined" )
-               objChild.oldTextDecoration = objChild.style.textDecoration;
-       if( typeof(objChild.oldFontWeight) == "undefined" )
-               objChild.oldFontWeight = objChild.style.fontWeight;
-       if( typeof(objChild.oldFontStyle) == "undefined" )
-               objChild.oldFontStyle = objChild.style.fontStyle;
-       if( typeof(objChild.oldFontSize) == "undefined" )
-               objChild.oldFontSize = objChild.style.fontSize;
-       if( typeof(objChild.oldBackgroundColor) == "undefined" )
-               objChild.oldBackgroundColor = objChild.style.backgroundColor;
-}
-
-CAgencyFontChange.prototype.PrepareEffect = function()
-{
-       // as for expanding text, the child is created after the constructor called
-       for(var index = 0; index < this.ele.all.length; index++)
-               this.RetrieveOldFont(this.ele.all[index]);
-       CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyFontChange.prototype.UpdateEffect = function()
-{// to change the font
-       this.PrepareEffect();
-       this.UpdateEffectAllChildren( this.ele );
-       for( var index = 0; index < this.ele.all.length; index++)
-               this.UpdateEffectAllChildren(this.ele.all[index]);
-}
-
-CAgencyFontChange.prototype.UpdateEffectAllChildren = function(objChild)
-{
-       objChild.style.fontFamily = this.newfontFamily;
-       objChild.style.color = this.newfColor;
-       objChild.style.textDecoration = this.newtextDecoration;
-       objChild.style.fontWeight = this.newfontWeight;
-       objChild.style.fontStyle = this.newfontStyle;
-       objChild.style.fontSize = this.newfontSize;
-       objChild.style.backgroundColor = this.newBackgroundColor;
-}
-
-CAgencyFontChange.prototype.EndEffect = function()
-{// to reinstate the original font style
-       this.EndEffectAllChildren( this.ele );
-       for( var index = 0; index < this.ele.all.length; index++)
-               this.EndEffectAllChildren(this.ele.all[index]);
-}
-
-CAgencyFontChange.prototype.EndEffectAllChildren = function( objChild )
-{
-       if( typeof(objChild.oldFontFamily) != "undefined" )
-               objChild.style.fontFamily = objChild.oldFontFamily;
-       if( typeof(objChild.oldColor) != "undefined" )
-               objChild.style.color = objChild.oldColor;
-       if( typeof(objChild.oldFontWeight) != "undefined" )
-               objChild.style.fontWeight = objChild.oldFontWeight;
-       if( typeof(objChild.oldFontStyle) != "undefined" )
-               objChild.style.fontStyle = objChild.oldFontStyle;
-       if( typeof(objChild.oldFontSize) != "undefined" )
-               objChild.style.fontSize = objChild.oldFontSize;
-       if( typeof(objChild.oldTextDecoration) != "undefined" )
-               objChild.style.textDecoration = objChild.oldTextDecoration;
-       if( typeof(objChild.oldBackgroundColor) != "undefined" )
-               objChild.style.backgroundColor = objChild.oldBackgroundColor;
-}
-// End of the CAgencyFontChange definition
-
-// Begin of the CAgencyChangeStyle definition
-function CAgencyChangeStyle( element, settings )
-{//this class can be replace by CAgencyChangeStyle,provided the "settings" is standard CSS string.
-       this.ele = element;
-       
-       // to retrieve the original style
-       this.oldstyle = this.ele.style.cssText;
-       
-       // to set the default style
-       this.newStyle = this.oldstyle;
-       
-       if( typeof(settings) == "string" && settings.length > 1 )
-               this.newStyle = this.oldstyle + " " + settings;
-}
-
-CAgencyChangeStyle.prototype.PrepareEffect = function()
-{
-       CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyChangeStyle.prototype.UpdateEffect = function()
-{// to change the style
-       this.ele.style.cssText = this.newStyle;
-}
-
-CAgencyChangeStyle.prototype.EndEffect = function()
-{// to reinstate the original style
-       this.ele.style.cssText = this.oldStyle;
-}
-// End of the CAgencyChangeStyle definition
-
-//End the definition of CAgencyXXXX classes
-
-//Begin to collaborate with other event handler settings 
-CCSSP.RegisterEventHandler( window, "onload", "CEngine.OnPageLoad();BSSCOnLoad();kadovInitTriggersInHead();");
-CCSSP.RegisterEventHandler( document, "onclick", "CEngine.OnPageClick();BSSCOnClick();");
-CCSSP.RegisterEventHandler( document, "onmouseover", "CEngine.OnMouseOver();BSSCOnMouseOver();" );
-CCSSP.RegisterEventHandler( document, "onmouseout", "CEngine.OnMouseOver();BSSCOnMouseOut();" );
-CCSSP.RegisterEventHandler( window, "onunload", "BSSCOnUnload();");
-//End to collaborate with other event handler settings
-
-/// Section End  - CCSSP DHTM 2 (JavaScript 1.2)
-
-//// Segment End -- (JavaScript 1.2)
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/extrusion.htm b/doc/salome/gui/SMESH/extrusion.htm
deleted file mode 100755 (executable)
index 3245a95..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Extrusion</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { margin-left:40px; }
-img_whs2 { border:none; width:27px; height:24px; border-style:none; }
-img_whs3 { border:none; width:411px; height:309px; float:none; border-style:none; }
-ul.whs4 { list-style:disc; }
-table.whs5 { x-cell-content-align:top; width:100%; border-spacing:0px; }
-col.whs6 { width:50%; }
-tr.whs7 { x-cell-content-align:top; }
-td.whs8 { width:50%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
-img_whs9 { border:none; width:350px; height:201px; border-style:none; }
-td.whs10 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nModifying meshes\nExtrusion");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Extrusion</h1>
-
-<p>Extrusion is a type of surface meshing by generation from discretized 
- lines. It is used to build mesh elements of plus one dimension than the 
- swept ones. Each swept 1D element produces one or more quadrangles (or 
- triangles if one node of a rotated element lays on the revolution axis).</p>
-
-<p>&nbsp;</p>
-
-<p class=TODO>To use extrusion:</p>
-
-<p class=TODO>&nbsp;</p>
-
-<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification 
- </B></span>menu choose the <span style="font-weight: bold;"><B>Extrusion </B></span>item 
- or click <img src="image91.gif" width="27px" height="24px" border="0" class="img_whs2"> button in the toolbar. The following dialog box 
- will appear:</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1"><img src="pics/extrusionalongaline1.png" x-maintain-ratio="TRUE" width="411px" height="309px" border="0" class="img_whs3"> &nbsp;<img src="pics/extrusionalongaline2.png" x-maintain-ratio="TRUE" width="411px" height="309px" border="0" class="img_whs3"></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">2. In this dialog box you should select </p>
-
-<ul type="disc" class="whs4">
-       
-       <li class=kadov-p><p class="whs1">the type of elements 
- which will be extruded (1D or 2D),</p></li>
-       
-       <li class=kadov-p><p class="whs1">specify the IDs of 
- the elements which will be extruded by selecting them in the 3D viewer 
- or select the whole mesh or submesh,</p></li>
-       
-       <li class=kadov-p><p class="whs1">specify the vector 
- along which the elements will be extruded,</p></li>
-       
-       <li class=kadov-p><p class="whs1">number of steps</p></li>
-</ul>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply 
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>
-
-<p class=TODO
-       style="margin-left: 40px;">&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<table x-use-null-cells cellspacing="0" width="100%" class="whs5">
-<col class="whs6">
-<col class="whs6">
-
-<tr valign="top" class="whs7">
-<td width="50%" class="whs8">
-<p><img src="image77.jpg" width="350px" height="201px" border="0" class="img_whs9"></td>
-<td width="50%" class="whs10">
-<p><img src="image76.jpg" width="350px" height="201px" border="0" class="img_whs9"></td></tr>
-</table>
-
-<p class=TODO>&nbsp;</p>
-
-<p>&nbsp;<span style="font-weight: bold;"><B>See 
- Also</B></span> a sample TUI Script of an <a href="modifying_meshes.htm#bookmark9">Extrusion</a> 
- operation. &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/extrusion_along_a_path.htm b/doc/salome/gui/SMESH/extrusion_along_a_path.htm
deleted file mode 100755 (executable)
index 74b811a..0000000
+++ /dev/null
@@ -1,378 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Extrusion along a path</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:27px; height:24px; border-style:none; }
-img_whs2 { border:none; width:387px; height:334px; float:none; border-style:none; }
-ul.whs3 { list-style:disc; }
-table.whs4 { x-cell-content-align:top; width:100%; border-spacing:0px; }
-col.whs5 { width:50%; }
-tr.whs6 { x-cell-content-align:top; }
-td.whs7 { width:50%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
-p.whs8 { margin-left:0px; margin-right:53px; }
-img_whs9 { border:none; width:389px; height:334px; float:none; border-style:none; }
-td.whs10 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
-p.whs11 { margin-left:0px; }
-p.whs12 { margin-left:40px; }
-col.whs13 { width:33.333%; }
-td.whs14 { width:33.333%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-left-style:none; border-top-style:none; }
-td.whs15 { width:33.333%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-top-style:none; }
-td.whs16 { width:33.333%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-top-style:none; border-right-style:none; }
-td.whs17 { width:33.333%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-bottom-style:none; }
-td.whs18 { width:33.333%; padding-right:10px; padding-left:10px; border-right-style:none; border-bottom-style:none; }
-td.whs19 { width:33.333%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; }
-p.whs20 { font-weight:bold; margin-left:0px; }
-p.whs21 { font-weight:bold; }
-img_whs22 { border:none; width:441px; height:541px; float:none; border-style:none; }
-p.whs23 { margin-left:84px; }
-p.whs24 { margin-left:156px; }
-p.whs25 { margin-left:156px; font-weight:bold; }
-img_whs26 { border:none; width:26px; height:25px; border-style:none; }
-img_whs27 { border:none; width:29px; height:28px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs8 {margin-left:1pt; }";
-  strNSS += "p.whs11 {margin-left:1pt; }";
-  strNSS += "p.whs20 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nModifying meshes\nExtrusion along a path");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><img src="image101.gif" width="27px" height="24px" border="0" class="img_whs1">Extrusion along a path</h1>
-
-<p>In principle, <span style="font-weight: bold;"><B>Extrusion along a path</B></span> 
- works in the same way as <span style="font-weight: bold;"><B>Extrusion</B></span>, 
- the main difference is that we define not a vector, but a path of extrusion 
- which must be a meshed edge. To get an idea of how this algorithm works, 
- examine several examples, starting from the most simple case of extrusion 
- along a straight edge. In all examples the same mesh will be extruded 
- along different paths and with different parameters. This sample 2D mesh 
- has two quadrangle faces and seven edges. Look at the picture, where white 
- digits are the node numbers and green are the element numbers:</p>
-
-<p><span style="margin-left: 40px;"><img src="pics/mesh_for_extr_along_path.png" x-maintain-ratio="TRUE" width="387px" height="334px" border="0" class="img_whs2"> .</span></p>
-
-<p>&nbsp;</p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Extrusion along 
- a straight edge</B></span> (not using base point or angles)</p></li>
-</ul>
-
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">
-<col class="whs5">
-<col class="whs5">
-
-<tr valign="top" class="whs6">
-<td width="50%" class="whs7">
-<p class="whs8"><img src="pics/straight_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
-<td width="50%" class="whs10">
-<p class="whs11"><img src="pics/straight_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
-</table>
-
-<p class="whs12">&nbsp;&nbsp;&nbsp;</p>
-
-<p class="whs12">The left image shows a 1D path mesh, built 
- on a linear edge, and the initial 2D mesh. The right image shows the result 
- of extrusion of two edges (#1 and #2) of the initial mesh along the path. 
- Node #1 of path mesh has been selected as <span style="font-weight: bold;"><B>Start 
- node</B></span>.</p>
-
-<p class="whs12">&nbsp;</p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Extrusion along 
- a curvilinear edge</B></span> (with and without angles)</p></li>
-</ul>
-
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">
-<col class="whs13">
-<col class="whs13">
-<col class="whs13">
-
-<tr valign="top" class="whs6">
-<td width="33.333%" class="whs14">
-<p><img src="pics/curvi_simple_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
-<td width="33.333%" class="whs15">
-<p><img src="pics/curvi_simple_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
-<td width="33.333%" class="whs16">
-<p><img src="pics/curvi_angles_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
-
-<tr valign="top" class="whs6">
-<td width="33.333%" class="whs17">
-<p>The left image shows a 1D path mesh, built on curvilinear edge, and 
- the initial &nbsp;2D 
- mesh.</td>
-<td width="33.333%" class="whs18">
-<p>The central image shows the result of extrusion of one edge (#2) of 
- the initial mesh along the path. &nbsp;Node 
- #1 of path mesh has been selected as <span style="font-weight: bold;"><B>Start 
- node</B></span>.</td>
-<td width="33.333%" class="whs19">
-<p>The same, but using angles {45, 45, 45, 0, -45, -45, -45}</td></tr>
-</table>
-
-<p class="whs11">&nbsp;</p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>Extrusion 
- along a sub-mesh.</B></span></p></li>
-</ul>
-
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">
-<col class="whs5">
-<col class="whs5">
-
-<tr valign="top" class="whs6">
-<td width="50%" class="whs7">
-<p><img src="pics/edge_wire_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
-<td width="50%" class="whs10">
-<p><img src="pics/edge_wire_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
-</table>
-
-<p class="whs12">&nbsp;</p>
-
-<p class="whs12">In this example the path mesh has been built 
- on a wire (polyline with six edges). The first edge of the wire was used 
- as <span style="font-weight: bold;"><B>Shape (edge)</B></span>, node #1 as <span 
- style="font-weight: bold;"><B>Start node</B></span>. The angles have been defined 
- as {10, 10, 10}. The middle edge (#4) of the initial mesh has been extruded.</p>
-
-<p class="whs12">&nbsp;</p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p class="whs20">Extrusion 
- of 2d elements along a sub-mesh.</p></li>
-</ul>
-
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">
-<col class="whs5">
-<col class="whs5">
-
-<tr valign="top" class="whs6">
-<td width="50%" class="whs7">
-<p><img src="pics/edge_wire_3d_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
-<td width="50%" class="whs10">
-<p><img src="pics/edge_wire_3d_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
-</table>
-
-<p class="whs12">&nbsp;</p>
-
-<p class="whs12">This extrusion bases on the same path mesh 
- as in the previous example but the third edge of the wire was set as <span 
- style="font-weight: bold;"><B>Shape (edge)</B></span> and node #4 as <span style="font-weight: bold;"><B>Start 
- node</B></span>. Please note, that the extrusion has been done in direction 
- from node #4 to node #3, i.e. against the wire direction. In this example 
- both faces of the initial mesh have been extruded.</p>
-
-<p class="whs12">&nbsp;</p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p class="whs21">Extrusion of 2d elements 
- along a closed path.</p></li>
-</ul>
-
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">
-<col class="whs13">
-<col class="whs13">
-<col class="whs13">
-
-<tr valign="top" class="whs6">
-<td width="33.333%" class="whs14">
-<p><img src="pics/circle_simple_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
-<td width="33.333%" class="whs15">
-<p><img src="pics/circle_simple_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
-<td width="33.333%" class="whs16">
-<p><img src="pics/circle_angles_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
-
-<tr valign="top" class="whs6">
-<td width="33.333%" class="whs17">
-<p>The left image shows a path mesh built on a closed edge (circle).</td>
-<td width="33.333%" class="whs18">
-<p>The central image shows the result of extrusion of both faces of the 
- initial mesh. Note, that no sewing has been done, so, there are six coincident 
- nodes and two coincident faces in the resulting mesh.</td>
-<td width="33.333%" class="whs19">
-<p>The same, but using angles {45, -45, 45, -45, 45, -45, 45, -45}</td></tr>
-</table>
-
-<p class="whs12">&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p class=TODO>To use Extrusion along a path:</p>
-
-<p class="whs12">1. From the <span style="font-weight: bold;"><B>Modification 
- </B></span>menu choose the <span style="font-weight: bold;"><B>Extrusion along 
- a path </B></span>item or click <img src="image101.gif" width="27px" height="24px" border="0" class="img_whs1"> button in the toolbar. The 
- following dialog box will appear:</p>
-
-<p class="whs12">&nbsp;</p>
-
-<p class=TODO
-       style="margin-left: 80px;"><img src="pics/extrusion1.png" x-maintain-ratio="TRUE" width="441px" height="541px" border="0" class="img_whs22"></p>
-
-<p class="whs12">&nbsp;</p>
-
-<p class="whs12">2. In the dialog box you should &nbsp;</p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p class="whs23">select the type of 
- elements which will be extruded (1D or 2D),</p></li>
-       
-       <li class=kadov-p><p class="whs23">specify the <span style="font-weight: bold;"><B>IDs 
- of the elements</B></span> which will be extruded by selecting them in the 
- 3D viewer or <span style="font-weight: bold;"><B>Select the whole mesh, submesh 
- or group</B></span>,</p></li>
-       
-       <li class=kadov-p><p class="whs23">define the <span style="font-weight: bold;"><B>Path</B></span> 
- along which the elements will be extruded, </p></li>
-</ul>
-
-<p class="whs24">Path definition consists of several elements 
- </p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p class="whs25">Mesh 
- - <span style="font-weight: normal;">containing a 1D sub-mesh on the edge, 
- along which proceeds the extrusion.</span></p></li>
-       
-       <li class=kadov-p><p class="whs25">Shape 
- (edge) - <span style="font-weight: normal;">as the mesh can be complex, 
- the edge is used to define the sub-mesh for the path.</span></p></li>
-       
-       <li class=kadov-p><p class="whs25">Start 
- node - <span style="font-weight: normal;">&nbsp;the 
- first or the last node on the edge. It is used to define the direction 
- of extrusion.</span></p></li>
-</ul>
-
-<p class="whs12">&nbsp;</p>
-
-<p class="whs12">3. There are two optional parameters, which 
- can be very useful.</p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p class="whs23">If the path of extrusion 
- is curvilinear, at each iteration the extruded shape is rotated to keep 
- its initial angularity to the curve. By default, the <span style="font-weight: bold;"><B>Base 
- Point</B></span> around which the shape is rotated is the mass center of the 
- shape, however, you can specify any point as the <span style="font-weight: bold;"><B>Base 
- Point</B></span> and the shape will be rotated with respect to this point.</p></li>
-       
-       <li class=kadov-p><p class="whs23">The shape can also 
- be rotated around the path to get the resulting mesh in a helical fashion. 
- You can set the values of angles at the right, add them to the list of 
- angles at the left by pressing the <img src="image105.gif" width="26px" height="25px" border="0" class="img_whs26"> button and remove them 
- from the list by pressing the <img src="image106.gif" width="29px" height="28px" border="0" class="img_whs27"> button. </p></li>
-</ul>
-
-<p class="whs12">4. Click the <span style="font-weight: bold;"><B>Apply 
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button. Mesh edges 
- will be extruded into faces, faces into volumes. The external surface 
- of the resulting 3d mesh (if faces have been extruded) is covered with 
- faces, and corners with edges. If the path is closed, the resulting mesh 
- can contain duplicated nodes and faces, because no sewing is done.</p>
-
-<p class="whs12">&nbsp;</p>
-
-<p>&nbsp;<span style="font-weight: bold;"><B>See 
- Also</B></span> a sample TUI Script of an <a href="modifying_meshes.htm#bookmark10">Extrusion 
- along a Path</a> operation. &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
index e6a9ffb214c172ebb2b3eac42febd593d3a86100..79ea7f76486737537ef260dd3173468d5bab2a1c 100755 (executable)
@@ -23,8 +23,11 @@ img_whs6 { border:none; width:271px; height:269px; float:none; border-style:none
 img_whs7 { border:none; width:22px; height:27px; border-style:none; }
 img_whs8 { border:none; border-style:none; width:451px; height:506px; float:none; }
 img_whs9 { border:none; width:866px; height:287px; float:none; border-style:none; }
-p.whs10 { margin-left:0px; }
-p.whs11 { margin-left:80px; }
+p.whs8 { margin-left:0px; }
+p.whs9 { margin-left:48px; }
+img_whs10 { border:none; width:310px; height:391px; float:none; border-style:none; }
+img_whs11 { border:none; width:310px; float:none; height:391px; border-style:none; }
+p.whs12 { margin-left:80px; }
 -->
 </style><script type="text/javascript" language="JavaScript">
 <!--
@@ -99,8 +102,7 @@ if (window.writeIntopicBar)
 <h1>Mesh infos</h1>
 
 <p>There are two types of information boxes: <span style="font-weight: bold;"><B>Standard 
- Mesh Infos</B></span> and <span style="font-weight: bold;"><B>Advanced</B></span> 
- <span style="font-weight: bold;"><B>Mesh Infos.</B></span></p>
+ Mesh Infos</B></span>, <span style="font-weight: bold;"><B>Advanced Mesh Infos</B></span> and <span style="font-weight: bold;"><B>Mesh Element Info.</B></span></p>
 
 <p>&nbsp;</p>
 
@@ -111,6 +113,9 @@ if (window.writeIntopicBar)
        
        <li class=kadov-p><p class="whs2"><a 
  href="#advanced_infos">Advanced</a></p></li>
+       
+       <li class=kadov-p><p class="whs2"><a 
+ href="#element_infos">Mesh Element</a></p></li>
 </ul>
 
 <p class="whs2">&nbsp;</p>
@@ -136,7 +141,8 @@ if (window.writeIntopicBar)
 
 <p>&nbsp;</p>
 
-<h3><a name="advanced infos">Advanced Mesh Infos</a></h3>
+<h3><a name=advanced_infos>Advanced Mesh Infos</a></h3>
+
 
 <p>The<span style="font-weight: bold;"><B> Advanced</B></span> <span style="font-weight: bold;"><B>Mesh 
  Infos </B></span>gives more information about the mesh, including the total 
@@ -164,15 +170,19 @@ if (window.writeIntopicBar)
 
 <p class="whs5"><img src="../pics/b-mesh_infos.png" x-maintain-ratio="TRUE" width="866px" height="287px" border="0" class="img_whs9"></p>
 
-<p class="whs10">&nbsp;</p>
-
 <p>&nbsp;</p>
 
-<p class="whs11">&nbsp;</p>
+<h3><a name=element_infos>Mesh Element Infos</a></h3>
+
+<p>The <span style="font-weight: bold;"><B>Mesh Element Infos</B></span> box gives 
+ basic information about the type and the coordinates of the selected mesh 
+ element.</p>
+
+<p>&nbsp;</p>
 
-<p class="whs11">&nbsp;</p>
+<p class="whs9"><img src="../pics/eleminfo1.png" x-maintain-ratio="TRUE" width="310px" height="391px" border="0" class="img_whs10"> &nbsp;&nbsp;<img src="../pics/eleminfo2.png" x-maintain-ratio="TRUE" width="310px" height="391px" border="0" class="img_whs11"></p>
 
-<p class="whs11">&nbsp;</p>
+<p class="whs12">&nbsp;</p>
 
 <script type="text/javascript" language="javascript1.2">
 <!--
diff --git a/doc/salome/gui/SMESH/free_borders.htm b/doc/salome/gui/SMESH/free_borders.htm
deleted file mode 100755 (executable)
index b262c9c..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Free borders</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-p.whs2 { margin-left:40px; }
-img_whs3 { border:none; width:278px; height:231px; float:none; border-style:none; }
-p.whs4 { margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs4 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nQuality controls\nFree borders");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Free borders</h1>
-
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This mesh quality control highlights borders of faces 
- consisting of edges belonging to one face only.</p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><img src="pics/free_borders1.png" x-maintain-ratio="TRUE" width="278px" height="231px" border="0" class="img_whs3"> &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p>In this picture the free borders are displayed in white. </p>
-
-<p>&nbsp;</p>
-
-<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> 
- a sample TUI Script of a <a href="quality_controls.htm#bookmark">Free 
- Borders quality control</a> operation. &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/free_edges.htm b/doc/salome/gui/SMESH/free_edges.htm
deleted file mode 100755 (executable)
index fe7146d..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Free_edges</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-p.whs2 { margin-left:40px; }
-img_whs3 { border:none; border-style:none; width:395px; height:445px; float:none; }
-p.whs4 { margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs4 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nQuality controls\nFree edges");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Free edges</h1>
-
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> &nbsp;&nbsp;This 
- mesh quality control highlights borders of &nbsp;elements 
- of mesh consisting of edges belonging to one element of mesh only.</p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><img src="pics/free_edges.png" x-maintain-ratio="TRUE" width="395px" height="445px" border="0" class="img_whs3"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">In this picture some elements of mesh have 
- been deleted and the &quot;holes&quot; are outlined in red. </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> 
- a sample TUI Script of a <a href="quality_controls.htm#bookmark3">Free 
- Edges quality control</a> operation. &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/grouping_elements.htm b/doc/salome/gui/SMESH/grouping_elements.htm
deleted file mode 100755 (executable)
index 0231e5d..0000000
+++ /dev/null
@@ -1,662 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Grouping Elements</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
-p.whs2 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
-p.whs3 { margin-top:0pt; margin-bottom:0pt; }
-img_whs4 { border:none; width:430px; height:391px; float:none; border-style:none; }
-img_whs5 { border:none; float:none; width:463px; height:417px; border-style:none; }
-img_whs6 { border:none; width:541px; height:417px; float:none; border-style:none; }
-img_whs7 { border:none; width:394px; height:425px; float:none; border-style:none; }
-img_whs8 { border:none; float:none; width:368px; height:379px; border-style:none; }
-img_whs9 { border:none; float:none; width:344px; height:381px; border-style:none; }
-img_whs10 { border:none; width:314px; height:351px; float:none; border-style:none; }
-img_whs11 { border:none; float:none; width:319px; height:351px; border-style:none; }
-img_whs12 { border:none; float:none; width:304px; height:352px; border-style:none; }
-img_whs13 { border:none; width:318px; height:355px; float:none; border-style:none; }
-img_whs14 { border:none; float:none; width:318px; height:355px; border-style:none; }
-img_whs15 { border:none; float:none; width:320px; height:354px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nTUI Scripts\nGrouping Elements");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Grouping Elements</h1>
-
-<h3><a name=bookmark>Create a Standalone Group</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">smesh &nbsp;= 
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh &nbsp;&nbsp;= 
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># Get ids of all faces 
- with area &gt; 100 </p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, 
- smesh.FT_Area, smesh.FT_MoreThan, 100.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create a group consisting 
- of faces with area &gt; 100</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">aGroup = mesh.MakeGroupByIds(&quot;Area 
- &gt; 100&quot;, smesh.FACE, anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
- </p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><img src="pics/create_group.png" x-maintain-ratio="TRUE" width="430px" height="391px" border="0" class="img_whs4"></p>
-
-<h3><a name=bookmark5>Create a Group on Geometry</a></h3>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a box</p>
-
-<p class="whs1">box = geompy.MakeBox(0., 
- 0., 0., 100., 100., 100.)</p>
-
-<p class="whs1">geompy.addToStudy(box, 
- &quot;box&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add the first face 
- of the box to the study</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">subShapeList 
- = geompy.SubShapeAll(box, geompy.ShapeType[&quot;FACE&quot;])</span></p>
-
-<p class="whs1">face = subShapeList[0]</p>
-
-<p class="whs1">geompy.addToStudyInFather(box, 
- face, &quot;face 1&quot;) </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create group of edges 
- on the face</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGeomGroupE 
- = geompy.CreateGroup(face, geompy.ShapeType[&quot;EDGE&quot;])</span></p>
-
-<p class="whs1">geompy.AddObject(aGeomGroupE, 
- 3)</p>
-
-<p class="whs1">geompy.AddObject(aGeomGroupE, 
- 6)</p>
-
-<p class="whs1">geompy.AddObject(aGeomGroupE, 
- 8)</p>
-
-<p class="whs1">geompy.AddObject(aGeomGroupE, 
- 10)</p>
-
-<p class="whs1">geompy.addToStudyInFather(face, 
- aGeomGroupE, &quot;Group of Edges&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create quadrangle 
- 2D mesh on the box</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">quadra 
- = smesh.Mesh(box, &quot;Box : quadrangle 2D mesh&quot;)</span></p>
-
-<p class="whs1">algo1D = quadra.Segment()</p>
-
-<p class="whs1">quadra.Quadrangle()</p>
-
-<p class="whs1">algo1D.NumberOfSegments(7) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># compute the mesh</p>
-
-<p class="whs1">quadra.Compute()</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create SMESH group 
- on the face with name &quot;SMESHGroup1&quot;</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aSmeshGroup1 
- = quadra.GroupOnGeom(face, &quot;SMESHGroup1&quot;)</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create SMESH group 
- on &lt;aGeomGroupE&gt; with default name</p>
-
-<p class="whs1">aSmeshGroup2 = quadra.GroupOnGeom(aGeomGroupE) 
- </p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
- </p>
-
-<h3><a name=bookmark1>Edit a Group</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">smesh &nbsp;= 
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh &nbsp;&nbsp;= 
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># Get ids of all faces 
- with area &gt; 35</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, 
- smesh.FT_Area, smesh.FT_MoreThan, 35.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">print &quot;Criterion: 
- Area &gt; 35, Nb = &quot;, len(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a group by 
- adding elements with area &gt; 35</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup 
- = mesh.CreateEmptyGroup(smesh.FACE, &quot;Area &gt; 35&quot;)</span></p>
-
-<p class="whs1">aGroup.Add(anIds) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># Get ids of all faces 
- with area &gt; 40</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, 
- smesh.FT_Area, smesh.FT_MoreThan, 40.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">print &quot;Criterion: 
- Area &gt; 40, Nb = &quot;, len(anIds) </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a group of 
- elements with area [35; 40] by removing elements with area &gt; 40 from 
- group aGroup</p>
-
-<p class="whs1">aGroup.Remove(anIds) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># print the result</p>
-
-<p class="whs1">aGroupElemIDs = 
- aGroup.GetListOfID()</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">print &quot;Criterion: 
- 35 &lt; Area &lt; 40, Nb = &quot;, len(aGroupElemIDs)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(aGroupElemIDs)):</p>
-
-<p class="whs1">&nbsp;&nbsp;if 
- j &gt; 20: j = 1; print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- aGroupElemIDs[i],</p>
-
-<p class="whs1">&nbsp;&nbsp;j 
- = j + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;pass</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><img src="pics/editing_groups1.png" x-maintain-ratio="TRUE" width="463px" height="417px" border="0" class="img_whs5"> &nbsp;<img src="pics/editing_groups2.png" x-maintain-ratio="TRUE" width="541px" height="417px" border="0" class="img_whs6"></p>
-
-<h3><a name=bookmark2>Union of two groups</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">smesh &nbsp;= 
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh &nbsp;&nbsp;= 
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># Criterion : AREA 
- &gt; 20</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, 
- smesh.FT_Area, smesh.FT_MoreThan, 20.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">print &quot;Criterion: 
- Area &gt; 20, Nb = &quot;, len( anIds ) </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a group by 
- adding elements with area &gt; 20</p>
-
-<p class="whs1">aGroup1 = mesh.CreateEmptyGroup(SMESH.FACE, 
- &quot;Area &gt; 20&quot;)</p>
-
-<p class="whs1">aGroup1.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># Criterion : AREA 
- = 20</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter 
- = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_EqualTo, 20.)</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">print &quot;Criterion: 
- Area = 20, Nb = &quot;, len( anIds ) </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a group by 
- adding elements with area = 20</p>
-
-<p class="whs1">aGroup2 = mesh.CreateEmptyGroup( 
- smesh.FACE, &quot;Area = 20&quot; )</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">aGroup2.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create union group 
- : area &gt;= 20</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup3 
- = mesh.UnionGroups(aGroup1, aGroup2, &quot;Area &gt;= 20&quot;)</span></p>
-
-<p class="whs1">print &quot;Criterion: 
- Area &gt;= 20, Nb = &quot;, len(aGroup3.GetListOfID())</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># Criterion : AREA 
- &lt; 20</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter 
- = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, 20.)</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">print &quot;Criterion: 
- Area &lt; 20, Nb = &quot;, len(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a group by 
- adding elements with area &lt; 20</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup4 
- = mesh.CreateEmptyGroup(smesh.FACE, &quot;Area &lt; 20&quot;)</span></p>
-
-<p class="whs1">aGroup4.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create union group 
- : area &gt;= 20 and area &lt; 20</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup5 
- = mesh.UnionGroups(aGroup3, aGroup4, &quot;Any Area&quot;)</span></p>
-
-<p class="whs1">print &quot;Criterion: 
- Any Area, Nb = &quot;, len(aGroup5.GetListOfID())</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1"><img src="pics/union_groups1.png" x-maintain-ratio="TRUE" width="394px" height="425px" border="0" class="img_whs7"></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1"><img src="pics/union_groups2.png" x-maintain-ratio="TRUE" width="368px" height="379px" border="0" class="img_whs8"> <img src="pics/union_groups3.png" x-maintain-ratio="TRUE" width="344px" height="381px" border="0" class="img_whs9"></p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark3>Intersection of two groups</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">smesh &nbsp;= 
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh &nbsp;&nbsp;= 
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># Criterion : AREA 
- &gt; 20</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, 
- smesh.FT_Area, smesh.FT_MoreThan, 20.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">print &quot;Criterion: 
- Area &gt; 20, Nb = &quot;, len(anIds) </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a group by 
- adding elements with area &gt; 20</p>
-
-<p class="whs1">aGroup1 = mesh.CreateEmptyGroup(SMESH.FACE, 
- &quot;Area &gt; 20&quot;)</p>
-
-<p class="whs1">aGroup1.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># Criterion : AREA 
- &lt; 60</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, 
- smesh.FT_Area, smesh.FT_LessThan, 60.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">print &quot;Criterion: 
- Area &lt; 60, Nb = &quot;, len(anIds) </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a group by 
- adding elements with area &lt; 60</p>
-
-<p class="whs1">aGroup2 = mesh.CreateEmptyGroup(SMESH.FACE, 
- &quot;Area &lt; 60&quot;)</p>
-
-<p class="whs1">aGroup2.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create an intersection 
- of groups : 20 &lt; area &lt; 60</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup3 
- = mesh.IntersectGroups(aGroup1, aGroup2, &quot;20 &lt; Area &lt; 60&quot;)</span></p>
-
-<p class="whs1">print &quot;Criterion: 
- 20 &lt; Area &lt; 60, Nb = &quot;, len(aGroup3.GetListOfID())</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><img src="pics/intersect_groups1.png" x-maintain-ratio="TRUE" width="314px" height="351px" border="0" class="img_whs10"> &nbsp;<img src="pics/intersect_groups2.png" x-maintain-ratio="TRUE" width="319px" height="351px" border="0" class="img_whs11"> &nbsp;<img src="pics/intersect_groups3.png" x-maintain-ratio="TRUE" width="304px" height="352px" border="0" class="img_whs12"></p>
-
-<h3><a name=bookmark4>Cut of two groups</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">smesh &nbsp;= 
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh &nbsp;&nbsp;= 
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># Criterion : AREA 
- &gt; 20</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, 
- smesh.FT_Area, smesh.FT_MoreThan, 20.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">print &quot;Criterion: 
- Area &gt; 20, Nb = &quot;, len(anIds) </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a group by 
- adding elements with area &gt; 20</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroupMain 
- = mesh.MakeGroupByIds(&quot;Area &gt; 20&quot;, smesh.FACE, anIds)</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># Criterion : AREA 
- &lt; 60</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, 
- smesh.FT_Area, smesh.FT_LessThan, 60.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">print &quot;Criterion: 
- Area &lt; 60, Nb = &quot;, len(anIds) </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a group by 
- adding elements with area &lt; 60</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroupTool 
- = mesh.MakeGroupByIds(&quot;Area &lt; 60&quot;, smesh.FACE, anIds)</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a cut of groups 
- : area &gt;= 60</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroupRes 
- = mesh.CutGroups(aGroupMain, aGroupTool, &quot;Area &gt;= 60&quot;)</span></p>
-
-<p class="whs1">print &quot;Criterion: 
- Area &gt;= 60, Nb = &quot;, len(aGroupRes.GetListOfID())</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"><img src="pics/cut_groups1.png" x-maintain-ratio="TRUE" width="318px" height="355px" border="0" class="img_whs13"> &nbsp;<img src="pics/cut_groups2.png" x-maintain-ratio="TRUE" width="318px" height="355px" border="0" class="img_whs14"> &nbsp;<img src="pics/cut_groups3.png" x-maintain-ratio="TRUE" width="320px" height="354px" border="0" class="img_whs15"></p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/i_blue.jpg b/doc/salome/gui/SMESH/i_blue.jpg
deleted file mode 100755 (executable)
index ed3acfa..0000000
Binary files a/doc/salome/gui/SMESH/i_blue.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image10.jpg b/doc/salome/gui/SMESH/image10.jpg
deleted file mode 100755 (executable)
index 14cea86..0000000
Binary files a/doc/salome/gui/SMESH/image10.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image101.gif b/doc/salome/gui/SMESH/image101.gif
deleted file mode 100755 (executable)
index b761fec..0000000
Binary files a/doc/salome/gui/SMESH/image101.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image103.gif b/doc/salome/gui/SMESH/image103.gif
deleted file mode 100755 (executable)
index f3d6951..0000000
Binary files a/doc/salome/gui/SMESH/image103.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image105.gif b/doc/salome/gui/SMESH/image105.gif
deleted file mode 100755 (executable)
index 0f74545..0000000
Binary files a/doc/salome/gui/SMESH/image105.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image106.gif b/doc/salome/gui/SMESH/image106.gif
deleted file mode 100755 (executable)
index 71bda2e..0000000
Binary files a/doc/salome/gui/SMESH/image106.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image108.gif b/doc/salome/gui/SMESH/image108.gif
deleted file mode 100755 (executable)
index 5f0ed45..0000000
Binary files a/doc/salome/gui/SMESH/image108.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image119.gif b/doc/salome/gui/SMESH/image119.gif
deleted file mode 100755 (executable)
index 5294d84..0000000
Binary files a/doc/salome/gui/SMESH/image119.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image120.gif b/doc/salome/gui/SMESH/image120.gif
deleted file mode 100755 (executable)
index 18ddeca..0000000
Binary files a/doc/salome/gui/SMESH/image120.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image121.gif b/doc/salome/gui/SMESH/image121.gif
deleted file mode 100755 (executable)
index 7a2ffd6..0000000
Binary files a/doc/salome/gui/SMESH/image121.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image122.gif b/doc/salome/gui/SMESH/image122.gif
deleted file mode 100755 (executable)
index 207d30b..0000000
Binary files a/doc/salome/gui/SMESH/image122.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image123.gif b/doc/salome/gui/SMESH/image123.gif
deleted file mode 100755 (executable)
index 2780e70..0000000
Binary files a/doc/salome/gui/SMESH/image123.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image124.gif b/doc/salome/gui/SMESH/image124.gif
deleted file mode 100755 (executable)
index 98f0c40..0000000
Binary files a/doc/salome/gui/SMESH/image124.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image125.gif b/doc/salome/gui/SMESH/image125.gif
deleted file mode 100755 (executable)
index 1983513..0000000
Binary files a/doc/salome/gui/SMESH/image125.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image126.gif b/doc/salome/gui/SMESH/image126.gif
deleted file mode 100755 (executable)
index e2e6955..0000000
Binary files a/doc/salome/gui/SMESH/image126.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image127.gif b/doc/salome/gui/SMESH/image127.gif
deleted file mode 100755 (executable)
index 79bccc6..0000000
Binary files a/doc/salome/gui/SMESH/image127.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image130.gif b/doc/salome/gui/SMESH/image130.gif
deleted file mode 100755 (executable)
index cc8c3a5..0000000
Binary files a/doc/salome/gui/SMESH/image130.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image131.gif b/doc/salome/gui/SMESH/image131.gif
deleted file mode 100755 (executable)
index dc64331..0000000
Binary files a/doc/salome/gui/SMESH/image131.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image132.gif b/doc/salome/gui/SMESH/image132.gif
deleted file mode 100755 (executable)
index e7577ea..0000000
Binary files a/doc/salome/gui/SMESH/image132.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image133.gif b/doc/salome/gui/SMESH/image133.gif
deleted file mode 100755 (executable)
index 60a4b96..0000000
Binary files a/doc/salome/gui/SMESH/image133.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image134.gif b/doc/salome/gui/SMESH/image134.gif
deleted file mode 100755 (executable)
index 60148ba..0000000
Binary files a/doc/salome/gui/SMESH/image134.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image135.gif b/doc/salome/gui/SMESH/image135.gif
deleted file mode 100755 (executable)
index 13b7b08..0000000
Binary files a/doc/salome/gui/SMESH/image135.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image136.gif b/doc/salome/gui/SMESH/image136.gif
deleted file mode 100755 (executable)
index 9b17450..0000000
Binary files a/doc/salome/gui/SMESH/image136.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image137.gif b/doc/salome/gui/SMESH/image137.gif
deleted file mode 100755 (executable)
index 7f4cd13..0000000
Binary files a/doc/salome/gui/SMESH/image137.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image142.gif b/doc/salome/gui/SMESH/image142.gif
deleted file mode 100755 (executable)
index 2f411e5..0000000
Binary files a/doc/salome/gui/SMESH/image142.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image143.gif b/doc/salome/gui/SMESH/image143.gif
deleted file mode 100755 (executable)
index de9df14..0000000
Binary files a/doc/salome/gui/SMESH/image143.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image144.gif b/doc/salome/gui/SMESH/image144.gif
deleted file mode 100755 (executable)
index 3dffd53..0000000
Binary files a/doc/salome/gui/SMESH/image144.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image145.gif b/doc/salome/gui/SMESH/image145.gif
deleted file mode 100755 (executable)
index 8005557..0000000
Binary files a/doc/salome/gui/SMESH/image145.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image146.gif b/doc/salome/gui/SMESH/image146.gif
deleted file mode 100755 (executable)
index 18f2224..0000000
Binary files a/doc/salome/gui/SMESH/image146.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image147.gif b/doc/salome/gui/SMESH/image147.gif
deleted file mode 100755 (executable)
index 7b9a354..0000000
Binary files a/doc/salome/gui/SMESH/image147.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image148.gif b/doc/salome/gui/SMESH/image148.gif
deleted file mode 100755 (executable)
index 0ef4147..0000000
Binary files a/doc/salome/gui/SMESH/image148.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image15.jpg b/doc/salome/gui/SMESH/image15.jpg
deleted file mode 100755 (executable)
index 15edee5..0000000
Binary files a/doc/salome/gui/SMESH/image15.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image151.gif b/doc/salome/gui/SMESH/image151.gif
deleted file mode 100755 (executable)
index 5c4a20e..0000000
Binary files a/doc/salome/gui/SMESH/image151.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image152.gif b/doc/salome/gui/SMESH/image152.gif
deleted file mode 100755 (executable)
index 2005d3f..0000000
Binary files a/doc/salome/gui/SMESH/image152.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image157.gif b/doc/salome/gui/SMESH/image157.gif
deleted file mode 100644 (file)
index 4592151..0000000
Binary files a/doc/salome/gui/SMESH/image157.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image159.gif b/doc/salome/gui/SMESH/image159.gif
deleted file mode 100755 (executable)
index 45a024e..0000000
Binary files a/doc/salome/gui/SMESH/image159.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image160.gif b/doc/salome/gui/SMESH/image160.gif
deleted file mode 100755 (executable)
index 6baffdb..0000000
Binary files a/doc/salome/gui/SMESH/image160.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image161.gif b/doc/salome/gui/SMESH/image161.gif
deleted file mode 100755 (executable)
index 54364d2..0000000
Binary files a/doc/salome/gui/SMESH/image161.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image18.gif b/doc/salome/gui/SMESH/image18.gif
deleted file mode 100755 (executable)
index a5ae8d8..0000000
Binary files a/doc/salome/gui/SMESH/image18.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image19.gif b/doc/salome/gui/SMESH/image19.gif
deleted file mode 100755 (executable)
index 3cf748a..0000000
Binary files a/doc/salome/gui/SMESH/image19.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image20.gif b/doc/salome/gui/SMESH/image20.gif
deleted file mode 100755 (executable)
index 5417f89..0000000
Binary files a/doc/salome/gui/SMESH/image20.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image22.jpg b/doc/salome/gui/SMESH/image22.jpg
deleted file mode 100755 (executable)
index b6a5e8d..0000000
Binary files a/doc/salome/gui/SMESH/image22.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image23.jpg b/doc/salome/gui/SMESH/image23.jpg
deleted file mode 100755 (executable)
index 74f899b..0000000
Binary files a/doc/salome/gui/SMESH/image23.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image24.gif b/doc/salome/gui/SMESH/image24.gif
deleted file mode 100755 (executable)
index 3d8032b..0000000
Binary files a/doc/salome/gui/SMESH/image24.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image25.gif b/doc/salome/gui/SMESH/image25.gif
deleted file mode 100755 (executable)
index cd7c967..0000000
Binary files a/doc/salome/gui/SMESH/image25.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image25.jpg b/doc/salome/gui/SMESH/image25.jpg
deleted file mode 100755 (executable)
index 4b2d4df..0000000
Binary files a/doc/salome/gui/SMESH/image25.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image27.jpg b/doc/salome/gui/SMESH/image27.jpg
deleted file mode 100755 (executable)
index d2f32b1..0000000
Binary files a/doc/salome/gui/SMESH/image27.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image28.gif b/doc/salome/gui/SMESH/image28.gif
deleted file mode 100755 (executable)
index 21f54bf..0000000
Binary files a/doc/salome/gui/SMESH/image28.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image30.gif b/doc/salome/gui/SMESH/image30.gif
deleted file mode 100755 (executable)
index 55859c7..0000000
Binary files a/doc/salome/gui/SMESH/image30.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image30.jpg b/doc/salome/gui/SMESH/image30.jpg
deleted file mode 100755 (executable)
index 997a36e..0000000
Binary files a/doc/salome/gui/SMESH/image30.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image31.jpg b/doc/salome/gui/SMESH/image31.jpg
deleted file mode 100755 (executable)
index aa00403..0000000
Binary files a/doc/salome/gui/SMESH/image31.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image32.gif b/doc/salome/gui/SMESH/image32.gif
deleted file mode 100755 (executable)
index a1ee2ee..0000000
Binary files a/doc/salome/gui/SMESH/image32.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image32.jpg b/doc/salome/gui/SMESH/image32.jpg
deleted file mode 100755 (executable)
index 77d595d..0000000
Binary files a/doc/salome/gui/SMESH/image32.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image33.gif b/doc/salome/gui/SMESH/image33.gif
deleted file mode 100755 (executable)
index ecdd47b..0000000
Binary files a/doc/salome/gui/SMESH/image33.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image34.gif b/doc/salome/gui/SMESH/image34.gif
deleted file mode 100755 (executable)
index 963095f..0000000
Binary files a/doc/salome/gui/SMESH/image34.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image35.gif b/doc/salome/gui/SMESH/image35.gif
deleted file mode 100755 (executable)
index 0e3b30f..0000000
Binary files a/doc/salome/gui/SMESH/image35.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image36.gif b/doc/salome/gui/SMESH/image36.gif
deleted file mode 100755 (executable)
index 7236ef8..0000000
Binary files a/doc/salome/gui/SMESH/image36.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image36.jpg b/doc/salome/gui/SMESH/image36.jpg
deleted file mode 100755 (executable)
index 9b44dc7..0000000
Binary files a/doc/salome/gui/SMESH/image36.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image37.gif b/doc/salome/gui/SMESH/image37.gif
deleted file mode 100755 (executable)
index 43592da..0000000
Binary files a/doc/salome/gui/SMESH/image37.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image37.jpg b/doc/salome/gui/SMESH/image37.jpg
deleted file mode 100755 (executable)
index 5fba91a..0000000
Binary files a/doc/salome/gui/SMESH/image37.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image38.gif b/doc/salome/gui/SMESH/image38.gif
deleted file mode 100755 (executable)
index 087f6e2..0000000
Binary files a/doc/salome/gui/SMESH/image38.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image38.jpg b/doc/salome/gui/SMESH/image38.jpg
deleted file mode 100755 (executable)
index 29d5e71..0000000
Binary files a/doc/salome/gui/SMESH/image38.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image39.gif b/doc/salome/gui/SMESH/image39.gif
deleted file mode 100755 (executable)
index b206af1..0000000
Binary files a/doc/salome/gui/SMESH/image39.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image40.gif b/doc/salome/gui/SMESH/image40.gif
deleted file mode 100755 (executable)
index becc12a..0000000
Binary files a/doc/salome/gui/SMESH/image40.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image41.gif b/doc/salome/gui/SMESH/image41.gif
deleted file mode 100755 (executable)
index 2e132c2..0000000
Binary files a/doc/salome/gui/SMESH/image41.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image46.gif b/doc/salome/gui/SMESH/image46.gif
deleted file mode 100755 (executable)
index 0f00ea7..0000000
Binary files a/doc/salome/gui/SMESH/image46.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image49.gif b/doc/salome/gui/SMESH/image49.gif
deleted file mode 100755 (executable)
index d10d9c4..0000000
Binary files a/doc/salome/gui/SMESH/image49.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image5.jpg b/doc/salome/gui/SMESH/image5.jpg
deleted file mode 100755 (executable)
index f195ac8..0000000
Binary files a/doc/salome/gui/SMESH/image5.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image50.gif b/doc/salome/gui/SMESH/image50.gif
deleted file mode 100755 (executable)
index 72d3954..0000000
Binary files a/doc/salome/gui/SMESH/image50.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image51.jpg b/doc/salome/gui/SMESH/image51.jpg
deleted file mode 100755 (executable)
index dfe3bc6..0000000
Binary files a/doc/salome/gui/SMESH/image51.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image52.jpg b/doc/salome/gui/SMESH/image52.jpg
deleted file mode 100755 (executable)
index 1c83b35..0000000
Binary files a/doc/salome/gui/SMESH/image52.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image53.gif b/doc/salome/gui/SMESH/image53.gif
deleted file mode 100755 (executable)
index 8f72820..0000000
Binary files a/doc/salome/gui/SMESH/image53.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image55.gif b/doc/salome/gui/SMESH/image55.gif
deleted file mode 100755 (executable)
index cc1b80e..0000000
Binary files a/doc/salome/gui/SMESH/image55.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image56.gif b/doc/salome/gui/SMESH/image56.gif
deleted file mode 100755 (executable)
index ffe1e95..0000000
Binary files a/doc/salome/gui/SMESH/image56.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image56.jpg b/doc/salome/gui/SMESH/image56.jpg
deleted file mode 100755 (executable)
index 5fba91a..0000000
Binary files a/doc/salome/gui/SMESH/image56.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image58.gif b/doc/salome/gui/SMESH/image58.gif
deleted file mode 100755 (executable)
index 45e2856..0000000
Binary files a/doc/salome/gui/SMESH/image58.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image63.gif b/doc/salome/gui/SMESH/image63.gif
deleted file mode 100755 (executable)
index 6a9c2c8..0000000
Binary files a/doc/salome/gui/SMESH/image63.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image64.gif b/doc/salome/gui/SMESH/image64.gif
deleted file mode 100755 (executable)
index 1d92c81..0000000
Binary files a/doc/salome/gui/SMESH/image64.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image67.gif b/doc/salome/gui/SMESH/image67.gif
deleted file mode 100755 (executable)
index 68bd3e3..0000000
Binary files a/doc/salome/gui/SMESH/image67.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image7.jpg b/doc/salome/gui/SMESH/image7.jpg
deleted file mode 100755 (executable)
index ded3ae9..0000000
Binary files a/doc/salome/gui/SMESH/image7.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image70.gif b/doc/salome/gui/SMESH/image70.gif
deleted file mode 100755 (executable)
index 120b8e8..0000000
Binary files a/doc/salome/gui/SMESH/image70.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image70.jpg b/doc/salome/gui/SMESH/image70.jpg
deleted file mode 100755 (executable)
index 0df360f..0000000
Binary files a/doc/salome/gui/SMESH/image70.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image71.gif b/doc/salome/gui/SMESH/image71.gif
deleted file mode 100755 (executable)
index 0008354..0000000
Binary files a/doc/salome/gui/SMESH/image71.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image71.jpg b/doc/salome/gui/SMESH/image71.jpg
deleted file mode 100755 (executable)
index bdb07ea..0000000
Binary files a/doc/salome/gui/SMESH/image71.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image74.gif b/doc/salome/gui/SMESH/image74.gif
deleted file mode 100755 (executable)
index db8a4c8..0000000
Binary files a/doc/salome/gui/SMESH/image74.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image76.jpg b/doc/salome/gui/SMESH/image76.jpg
deleted file mode 100755 (executable)
index 88ec89f..0000000
Binary files a/doc/salome/gui/SMESH/image76.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image77.jpg b/doc/salome/gui/SMESH/image77.jpg
deleted file mode 100755 (executable)
index c253eac..0000000
Binary files a/doc/salome/gui/SMESH/image77.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image78.jpg b/doc/salome/gui/SMESH/image78.jpg
deleted file mode 100755 (executable)
index 80c2a16..0000000
Binary files a/doc/salome/gui/SMESH/image78.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image79.gif b/doc/salome/gui/SMESH/image79.gif
deleted file mode 100755 (executable)
index 9711ccb..0000000
Binary files a/doc/salome/gui/SMESH/image79.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image79.jpg b/doc/salome/gui/SMESH/image79.jpg
deleted file mode 100755 (executable)
index 6d16416..0000000
Binary files a/doc/salome/gui/SMESH/image79.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image80.gif b/doc/salome/gui/SMESH/image80.gif
deleted file mode 100755 (executable)
index 399af0a..0000000
Binary files a/doc/salome/gui/SMESH/image80.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image82.gif b/doc/salome/gui/SMESH/image82.gif
deleted file mode 100755 (executable)
index 93c6c9b..0000000
Binary files a/doc/salome/gui/SMESH/image82.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image83.gif b/doc/salome/gui/SMESH/image83.gif
deleted file mode 100755 (executable)
index 331b64a..0000000
Binary files a/doc/salome/gui/SMESH/image83.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image84.gif b/doc/salome/gui/SMESH/image84.gif
deleted file mode 100755 (executable)
index ea8ec56..0000000
Binary files a/doc/salome/gui/SMESH/image84.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image86.jpg b/doc/salome/gui/SMESH/image86.jpg
deleted file mode 100755 (executable)
index 168b43e..0000000
Binary files a/doc/salome/gui/SMESH/image86.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image88.gif b/doc/salome/gui/SMESH/image88.gif
deleted file mode 100755 (executable)
index b2d4b73..0000000
Binary files a/doc/salome/gui/SMESH/image88.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image88.jpg b/doc/salome/gui/SMESH/image88.jpg
deleted file mode 100755 (executable)
index 3b2a973..0000000
Binary files a/doc/salome/gui/SMESH/image88.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image90.jpg b/doc/salome/gui/SMESH/image90.jpg
deleted file mode 100755 (executable)
index 4f4c301..0000000
Binary files a/doc/salome/gui/SMESH/image90.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image91.gif b/doc/salome/gui/SMESH/image91.gif
deleted file mode 100755 (executable)
index a09ab9e..0000000
Binary files a/doc/salome/gui/SMESH/image91.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image92.gif b/doc/salome/gui/SMESH/image92.gif
deleted file mode 100755 (executable)
index 9e0517f..0000000
Binary files a/doc/salome/gui/SMESH/image92.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image92.jpg b/doc/salome/gui/SMESH/image92.jpg
deleted file mode 100755 (executable)
index bf6e610..0000000
Binary files a/doc/salome/gui/SMESH/image92.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image93.jpg b/doc/salome/gui/SMESH/image93.jpg
deleted file mode 100755 (executable)
index f9780b4..0000000
Binary files a/doc/salome/gui/SMESH/image93.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image94.gif b/doc/salome/gui/SMESH/image94.gif
deleted file mode 100755 (executable)
index 7313f5d..0000000
Binary files a/doc/salome/gui/SMESH/image94.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image94.jpg b/doc/salome/gui/SMESH/image94.jpg
deleted file mode 100755 (executable)
index 7891667..0000000
Binary files a/doc/salome/gui/SMESH/image94.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image95.gif b/doc/salome/gui/SMESH/image95.gif
deleted file mode 100755 (executable)
index 6491f27..0000000
Binary files a/doc/salome/gui/SMESH/image95.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image95.jpg b/doc/salome/gui/SMESH/image95.jpg
deleted file mode 100755 (executable)
index 047dccf..0000000
Binary files a/doc/salome/gui/SMESH/image95.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image96.gif b/doc/salome/gui/SMESH/image96.gif
deleted file mode 100755 (executable)
index 1392ee7..0000000
Binary files a/doc/salome/gui/SMESH/image96.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image96.jpg b/doc/salome/gui/SMESH/image96.jpg
deleted file mode 100755 (executable)
index 5f3128e..0000000
Binary files a/doc/salome/gui/SMESH/image96.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image97.gif b/doc/salome/gui/SMESH/image97.gif
deleted file mode 100755 (executable)
index 480b584..0000000
Binary files a/doc/salome/gui/SMESH/image97.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image97.jpg b/doc/salome/gui/SMESH/image97.jpg
deleted file mode 100755 (executable)
index 275f2e3..0000000
Binary files a/doc/salome/gui/SMESH/image97.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image98.gif b/doc/salome/gui/SMESH/image98.gif
deleted file mode 100755 (executable)
index 5f375b7..0000000
Binary files a/doc/salome/gui/SMESH/image98.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image99.gif b/doc/salome/gui/SMESH/image99.gif
deleted file mode 100755 (executable)
index 4959ed8..0000000
Binary files a/doc/salome/gui/SMESH/image99.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/images/a-arithmetic1d.png b/doc/salome/gui/SMESH/images/a-arithmetic1d.png
new file mode 100755 (executable)
index 0000000..d34a5e2
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-arithmetic1d.png differ
diff --git a/doc/salome/gui/SMESH/images/a-averagelength.png b/doc/salome/gui/SMESH/images/a-averagelength.png
new file mode 100755 (executable)
index 0000000..70e2afd
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-averagelength.png differ
diff --git a/doc/salome/gui/SMESH/images/a-clipping2.png b/doc/salome/gui/SMESH/images/a-clipping2.png
new file mode 100755 (executable)
index 0000000..639792c
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-clipping2.png differ
diff --git a/doc/salome/gui/SMESH/images/a-creategroup.png b/doc/salome/gui/SMESH/images/a-creategroup.png
new file mode 100755 (executable)
index 0000000..38ef5a8
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-creategroup.png differ
diff --git a/doc/salome/gui/SMESH/images/a-createpolyhedralvolume.png b/doc/salome/gui/SMESH/images/a-createpolyhedralvolume.png
new file mode 100755 (executable)
index 0000000..532eac0
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-createpolyhedralvolume.png differ
diff --git a/doc/salome/gui/SMESH/images/a-cuttingofquadrangles.png b/doc/salome/gui/SMESH/images/a-cuttingofquadrangles.png
new file mode 100755 (executable)
index 0000000..ff9ae68
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-cuttingofquadrangles.png differ
diff --git a/doc/salome/gui/SMESH/images/a-deflection1d.png b/doc/salome/gui/SMESH/images/a-deflection1d.png
new file mode 100755 (executable)
index 0000000..57fd859
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-deflection1d.png differ
diff --git a/doc/salome/gui/SMESH/images/a-filteronedges.png b/doc/salome/gui/SMESH/images/a-filteronedges.png
new file mode 100755 (executable)
index 0000000..48b3ece
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-filteronedges.png differ
diff --git a/doc/salome/gui/SMESH/images/a-maxelarea.png b/doc/salome/gui/SMESH/images/a-maxelarea.png
new file mode 100755 (executable)
index 0000000..b4af4b2
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-maxelarea.png differ
diff --git a/doc/salome/gui/SMESH/images/a-maxelvolume.png b/doc/salome/gui/SMESH/images/a-maxelvolume.png
new file mode 100755 (executable)
index 0000000..2611807
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-maxelvolume.png differ
diff --git a/doc/salome/gui/SMESH/images/a-nbsegments1.png b/doc/salome/gui/SMESH/images/a-nbsegments1.png
new file mode 100755 (executable)
index 0000000..35c0909
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-nbsegments1.png differ
diff --git a/doc/salome/gui/SMESH/images/a-nbsegments2.png b/doc/salome/gui/SMESH/images/a-nbsegments2.png
new file mode 100755 (executable)
index 0000000..7f33c61
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-nbsegments2.png differ
diff --git a/doc/salome/gui/SMESH/images/a-patterntype.png b/doc/salome/gui/SMESH/images/a-patterntype.png
new file mode 100755 (executable)
index 0000000..3383cd7
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-patterntype.png differ
diff --git a/doc/salome/gui/SMESH/images/a-patterntype1.png b/doc/salome/gui/SMESH/images/a-patterntype1.png
new file mode 100755 (executable)
index 0000000..3844922
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-patterntype1.png differ
diff --git a/doc/salome/gui/SMESH/images/a-standmeshinfo.png b/doc/salome/gui/SMESH/images/a-standmeshinfo.png
new file mode 100755 (executable)
index 0000000..6b35f0a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-standmeshinfo.png differ
diff --git a/doc/salome/gui/SMESH/images/a-startendlength.png b/doc/salome/gui/SMESH/images/a-startendlength.png
new file mode 100755 (executable)
index 0000000..e48f617
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-startendlength.png differ
diff --git a/doc/salome/gui/SMESH/images/a-transparency.png b/doc/salome/gui/SMESH/images/a-transparency.png
new file mode 100755 (executable)
index 0000000..8e7498d
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-transparency.png differ
diff --git a/doc/salome/gui/SMESH/images/a-unionoftriangles.png b/doc/salome/gui/SMESH/images/a-unionoftriangles.png
new file mode 100755 (executable)
index 0000000..d9ef53c
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-unionoftriangles.png differ
diff --git a/doc/salome/gui/SMESH/images/a-viewgeneral.png b/doc/salome/gui/SMESH/images/a-viewgeneral.png
new file mode 100755 (executable)
index 0000000..09b7c23
Binary files /dev/null and b/doc/salome/gui/SMESH/images/a-viewgeneral.png differ
diff --git a/doc/salome/gui/SMESH/images/add.gif b/doc/salome/gui/SMESH/images/add.gif
new file mode 100644 (file)
index 0000000..26350e4
Binary files /dev/null and b/doc/salome/gui/SMESH/images/add.gif differ
diff --git a/doc/salome/gui/SMESH/images/add_edge.png b/doc/salome/gui/SMESH/images/add_edge.png
new file mode 100755 (executable)
index 0000000..8a532e1
Binary files /dev/null and b/doc/salome/gui/SMESH/images/add_edge.png differ
diff --git a/doc/salome/gui/SMESH/images/add_node.png b/doc/salome/gui/SMESH/images/add_node.png
new file mode 100755 (executable)
index 0000000..cb50bf6
Binary files /dev/null and b/doc/salome/gui/SMESH/images/add_node.png differ
diff --git a/doc/salome/gui/SMESH/images/add_polygone.png b/doc/salome/gui/SMESH/images/add_polygone.png
new file mode 100755 (executable)
index 0000000..a76bace
Binary files /dev/null and b/doc/salome/gui/SMESH/images/add_polygone.png differ
diff --git a/doc/salome/gui/SMESH/images/add_polyhedron.png b/doc/salome/gui/SMESH/images/add_polyhedron.png
new file mode 100755 (executable)
index 0000000..2e23634
Binary files /dev/null and b/doc/salome/gui/SMESH/images/add_polyhedron.png differ
diff --git a/doc/salome/gui/SMESH/images/add_quadrangle.png b/doc/salome/gui/SMESH/images/add_quadrangle.png
new file mode 100755 (executable)
index 0000000..f25b94d
Binary files /dev/null and b/doc/salome/gui/SMESH/images/add_quadrangle.png differ
diff --git a/doc/salome/gui/SMESH/images/add_triangle.png b/doc/salome/gui/SMESH/images/add_triangle.png
new file mode 100755 (executable)
index 0000000..41c3359
Binary files /dev/null and b/doc/salome/gui/SMESH/images/add_triangle.png differ
diff --git a/doc/salome/gui/SMESH/images/addedge.png b/doc/salome/gui/SMESH/images/addedge.png
new file mode 100755 (executable)
index 0000000..c9eeaf9
Binary files /dev/null and b/doc/salome/gui/SMESH/images/addedge.png differ
diff --git a/doc/salome/gui/SMESH/images/addhexahedron.png b/doc/salome/gui/SMESH/images/addhexahedron.png
new file mode 100755 (executable)
index 0000000..fd2ef24
Binary files /dev/null and b/doc/salome/gui/SMESH/images/addhexahedron.png differ
diff --git a/doc/salome/gui/SMESH/images/addnode.png b/doc/salome/gui/SMESH/images/addnode.png
new file mode 100755 (executable)
index 0000000..167a966
Binary files /dev/null and b/doc/salome/gui/SMESH/images/addnode.png differ
diff --git a/doc/salome/gui/SMESH/images/addpolygon.png b/doc/salome/gui/SMESH/images/addpolygon.png
new file mode 100755 (executable)
index 0000000..785a623
Binary files /dev/null and b/doc/salome/gui/SMESH/images/addpolygon.png differ
diff --git a/doc/salome/gui/SMESH/images/addquadrangle.png b/doc/salome/gui/SMESH/images/addquadrangle.png
new file mode 100755 (executable)
index 0000000..2bbddf1
Binary files /dev/null and b/doc/salome/gui/SMESH/images/addquadrangle.png differ
diff --git a/doc/salome/gui/SMESH/images/addtetrahedron.png b/doc/salome/gui/SMESH/images/addtetrahedron.png
new file mode 100755 (executable)
index 0000000..0a41570
Binary files /dev/null and b/doc/salome/gui/SMESH/images/addtetrahedron.png differ
diff --git a/doc/salome/gui/SMESH/images/addtriangle.png b/doc/salome/gui/SMESH/images/addtriangle.png
new file mode 100755 (executable)
index 0000000..405d6f5
Binary files /dev/null and b/doc/salome/gui/SMESH/images/addtriangle.png differ
diff --git a/doc/salome/gui/SMESH/images/advanced_mesh_infos.png b/doc/salome/gui/SMESH/images/advanced_mesh_infos.png
new file mode 100755 (executable)
index 0000000..f8341e8
Binary files /dev/null and b/doc/salome/gui/SMESH/images/advanced_mesh_infos.png differ
diff --git a/doc/salome/gui/SMESH/images/aqt.png b/doc/salome/gui/SMESH/images/aqt.png
new file mode 100755 (executable)
index 0000000..32e36bd
Binary files /dev/null and b/doc/salome/gui/SMESH/images/aqt.png differ
diff --git a/doc/salome/gui/SMESH/images/automaticlength.png b/doc/salome/gui/SMESH/images/automaticlength.png
new file mode 100755 (executable)
index 0000000..d96ffc8
Binary files /dev/null and b/doc/salome/gui/SMESH/images/automaticlength.png differ
diff --git a/doc/salome/gui/SMESH/images/b-art_end_length.png b/doc/salome/gui/SMESH/images/b-art_end_length.png
new file mode 100755 (executable)
index 0000000..26da5fa
Binary files /dev/null and b/doc/salome/gui/SMESH/images/b-art_end_length.png differ
diff --git a/doc/salome/gui/SMESH/images/b-erage_length.png b/doc/salome/gui/SMESH/images/b-erage_length.png
new file mode 100755 (executable)
index 0000000..f64077c
Binary files /dev/null and b/doc/salome/gui/SMESH/images/b-erage_length.png differ
diff --git a/doc/salome/gui/SMESH/images/b-flection1d.png b/doc/salome/gui/SMESH/images/b-flection1d.png
new file mode 100755 (executable)
index 0000000..e160cf5
Binary files /dev/null and b/doc/salome/gui/SMESH/images/b-flection1d.png differ
diff --git a/doc/salome/gui/SMESH/images/b-ithmetic1d.png b/doc/salome/gui/SMESH/images/b-ithmetic1d.png
new file mode 100755 (executable)
index 0000000..72f76b9
Binary files /dev/null and b/doc/salome/gui/SMESH/images/b-ithmetic1d.png differ
diff --git a/doc/salome/gui/SMESH/images/b-mberofsegments.png b/doc/salome/gui/SMESH/images/b-mberofsegments.png
new file mode 100755 (executable)
index 0000000..27f6868
Binary files /dev/null and b/doc/salome/gui/SMESH/images/b-mberofsegments.png differ
diff --git a/doc/salome/gui/SMESH/images/b-mesh_infos.png b/doc/salome/gui/SMESH/images/b-mesh_infos.png
new file mode 100755 (executable)
index 0000000..6abd3c1
Binary files /dev/null and b/doc/salome/gui/SMESH/images/b-mesh_infos.png differ
diff --git a/doc/salome/gui/SMESH/images/buildcompound.png b/doc/salome/gui/SMESH/images/buildcompound.png
new file mode 100755 (executable)
index 0000000..79a6073
Binary files /dev/null and b/doc/salome/gui/SMESH/images/buildcompound.png differ
diff --git a/doc/salome/gui/SMESH/images/circle_angles_after.png b/doc/salome/gui/SMESH/images/circle_angles_after.png
new file mode 100644 (file)
index 0000000..f4c606b
Binary files /dev/null and b/doc/salome/gui/SMESH/images/circle_angles_after.png differ
diff --git a/doc/salome/gui/SMESH/images/circle_simple_after.png b/doc/salome/gui/SMESH/images/circle_simple_after.png
new file mode 100644 (file)
index 0000000..99f65b5
Binary files /dev/null and b/doc/salome/gui/SMESH/images/circle_simple_after.png differ
diff --git a/doc/salome/gui/SMESH/images/circle_simple_before.png b/doc/salome/gui/SMESH/images/circle_simple_before.png
new file mode 100644 (file)
index 0000000..95b9037
Binary files /dev/null and b/doc/salome/gui/SMESH/images/circle_simple_before.png differ
diff --git a/doc/salome/gui/SMESH/images/convert.png b/doc/salome/gui/SMESH/images/convert.png
new file mode 100644 (file)
index 0000000..5c0e64a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/convert.png differ
diff --git a/doc/salome/gui/SMESH/images/create_group.png b/doc/salome/gui/SMESH/images/create_group.png
new file mode 100755 (executable)
index 0000000..6fc2367
Binary files /dev/null and b/doc/salome/gui/SMESH/images/create_group.png differ
diff --git a/doc/salome/gui/SMESH/images/creategroup.png b/doc/salome/gui/SMESH/images/creategroup.png
new file mode 100755 (executable)
index 0000000..207e209
Binary files /dev/null and b/doc/salome/gui/SMESH/images/creategroup.png differ
diff --git a/doc/salome/gui/SMESH/images/createmesh-inv.png b/doc/salome/gui/SMESH/images/createmesh-inv.png
new file mode 100755 (executable)
index 0000000..8273aac
Binary files /dev/null and b/doc/salome/gui/SMESH/images/createmesh-inv.png differ
diff --git a/doc/salome/gui/SMESH/images/createmesh-inv2.png b/doc/salome/gui/SMESH/images/createmesh-inv2.png
new file mode 100755 (executable)
index 0000000..2bee11b
Binary files /dev/null and b/doc/salome/gui/SMESH/images/createmesh-inv2.png differ
diff --git a/doc/salome/gui/SMESH/images/createmesh-inv3.png b/doc/salome/gui/SMESH/images/createmesh-inv3.png
new file mode 100755 (executable)
index 0000000..6dfabaa
Binary files /dev/null and b/doc/salome/gui/SMESH/images/createmesh-inv3.png differ
diff --git a/doc/salome/gui/SMESH/images/curvi_angles_after.png b/doc/salome/gui/SMESH/images/curvi_angles_after.png
new file mode 100644 (file)
index 0000000..9d06262
Binary files /dev/null and b/doc/salome/gui/SMESH/images/curvi_angles_after.png differ
diff --git a/doc/salome/gui/SMESH/images/curvi_simple_after.png b/doc/salome/gui/SMESH/images/curvi_simple_after.png
new file mode 100644 (file)
index 0000000..ae1d98f
Binary files /dev/null and b/doc/salome/gui/SMESH/images/curvi_simple_after.png differ
diff --git a/doc/salome/gui/SMESH/images/curvi_simple_before.png b/doc/salome/gui/SMESH/images/curvi_simple_before.png
new file mode 100644 (file)
index 0000000..a0bbf73
Binary files /dev/null and b/doc/salome/gui/SMESH/images/curvi_simple_before.png differ
diff --git a/doc/salome/gui/SMESH/images/cut_groups1.png b/doc/salome/gui/SMESH/images/cut_groups1.png
new file mode 100755 (executable)
index 0000000..f066a55
Binary files /dev/null and b/doc/salome/gui/SMESH/images/cut_groups1.png differ
diff --git a/doc/salome/gui/SMESH/images/cut_groups2.png b/doc/salome/gui/SMESH/images/cut_groups2.png
new file mode 100755 (executable)
index 0000000..3ec7a93
Binary files /dev/null and b/doc/salome/gui/SMESH/images/cut_groups2.png differ
diff --git a/doc/salome/gui/SMESH/images/cut_groups3.png b/doc/salome/gui/SMESH/images/cut_groups3.png
new file mode 100755 (executable)
index 0000000..1c5ebed
Binary files /dev/null and b/doc/salome/gui/SMESH/images/cut_groups3.png differ
diff --git a/doc/salome/gui/SMESH/images/cutgroups.png b/doc/salome/gui/SMESH/images/cutgroups.png
new file mode 100755 (executable)
index 0000000..87e6da8
Binary files /dev/null and b/doc/salome/gui/SMESH/images/cutgroups.png differ
diff --git a/doc/salome/gui/SMESH/images/deletegroups.png b/doc/salome/gui/SMESH/images/deletegroups.png
new file mode 100755 (executable)
index 0000000..383a79a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/deletegroups.png differ
diff --git a/doc/salome/gui/SMESH/images/diagonalinversion.png b/doc/salome/gui/SMESH/images/diagonalinversion.png
new file mode 100755 (executable)
index 0000000..967e7a1
Binary files /dev/null and b/doc/salome/gui/SMESH/images/diagonalinversion.png differ
diff --git a/doc/salome/gui/SMESH/images/dialog.png b/doc/salome/gui/SMESH/images/dialog.png
new file mode 100755 (executable)
index 0000000..12c7fa2
Binary files /dev/null and b/doc/salome/gui/SMESH/images/dialog.png differ
diff --git a/doc/salome/gui/SMESH/images/distribution_of_layers.png b/doc/salome/gui/SMESH/images/distribution_of_layers.png
new file mode 100644 (file)
index 0000000..3d01d66
Binary files /dev/null and b/doc/salome/gui/SMESH/images/distribution_of_layers.png differ
diff --git a/doc/salome/gui/SMESH/images/distributionwithanalyticdensity.png b/doc/salome/gui/SMESH/images/distributionwithanalyticdensity.png
new file mode 100755 (executable)
index 0000000..87ebc5f
Binary files /dev/null and b/doc/salome/gui/SMESH/images/distributionwithanalyticdensity.png differ
diff --git a/doc/salome/gui/SMESH/images/distributionwithtabledensity.png b/doc/salome/gui/SMESH/images/distributionwithtabledensity.png
new file mode 100755 (executable)
index 0000000..9ea6cab
Binary files /dev/null and b/doc/salome/gui/SMESH/images/distributionwithtabledensity.png differ
diff --git a/doc/salome/gui/SMESH/images/edge_wire_3d_after.png b/doc/salome/gui/SMESH/images/edge_wire_3d_after.png
new file mode 100644 (file)
index 0000000..3fab598
Binary files /dev/null and b/doc/salome/gui/SMESH/images/edge_wire_3d_after.png differ
diff --git a/doc/salome/gui/SMESH/images/edge_wire_3d_before.png b/doc/salome/gui/SMESH/images/edge_wire_3d_before.png
new file mode 100644 (file)
index 0000000..28f9868
Binary files /dev/null and b/doc/salome/gui/SMESH/images/edge_wire_3d_before.png differ
diff --git a/doc/salome/gui/SMESH/images/edge_wire_after.png b/doc/salome/gui/SMESH/images/edge_wire_after.png
new file mode 100644 (file)
index 0000000..408480e
Binary files /dev/null and b/doc/salome/gui/SMESH/images/edge_wire_after.png differ
diff --git a/doc/salome/gui/SMESH/images/edge_wire_before.png b/doc/salome/gui/SMESH/images/edge_wire_before.png
new file mode 100644 (file)
index 0000000..186528e
Binary files /dev/null and b/doc/salome/gui/SMESH/images/edge_wire_before.png differ
diff --git a/doc/salome/gui/SMESH/images/edit_mesh1.png b/doc/salome/gui/SMESH/images/edit_mesh1.png
new file mode 100755 (executable)
index 0000000..4369e51
Binary files /dev/null and b/doc/salome/gui/SMESH/images/edit_mesh1.png differ
diff --git a/doc/salome/gui/SMESH/images/edit_mesh_change_value_hyp.png b/doc/salome/gui/SMESH/images/edit_mesh_change_value_hyp.png
new file mode 100755 (executable)
index 0000000..7dee01f
Binary files /dev/null and b/doc/salome/gui/SMESH/images/edit_mesh_change_value_hyp.png differ
diff --git a/doc/salome/gui/SMESH/images/edit_mesh_remove_hyp.png b/doc/salome/gui/SMESH/images/edit_mesh_remove_hyp.png
new file mode 100755 (executable)
index 0000000..0a45639
Binary files /dev/null and b/doc/salome/gui/SMESH/images/edit_mesh_remove_hyp.png differ
diff --git a/doc/salome/gui/SMESH/images/editgroup.png b/doc/salome/gui/SMESH/images/editgroup.png
new file mode 100755 (executable)
index 0000000..c0a50f3
Binary files /dev/null and b/doc/salome/gui/SMESH/images/editgroup.png differ
diff --git a/doc/salome/gui/SMESH/images/editing_groups1.png b/doc/salome/gui/SMESH/images/editing_groups1.png
new file mode 100755 (executable)
index 0000000..beb946a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/editing_groups1.png differ
diff --git a/doc/salome/gui/SMESH/images/editing_groups2.png b/doc/salome/gui/SMESH/images/editing_groups2.png
new file mode 100755 (executable)
index 0000000..7cff181
Binary files /dev/null and b/doc/salome/gui/SMESH/images/editing_groups2.png differ
diff --git a/doc/salome/gui/SMESH/images/eleminfo1.png b/doc/salome/gui/SMESH/images/eleminfo1.png
new file mode 100755 (executable)
index 0000000..5e2c2a0
Binary files /dev/null and b/doc/salome/gui/SMESH/images/eleminfo1.png differ
diff --git a/doc/salome/gui/SMESH/images/eleminfo2.png b/doc/salome/gui/SMESH/images/eleminfo2.png
new file mode 100755 (executable)
index 0000000..3ff8d1d
Binary files /dev/null and b/doc/salome/gui/SMESH/images/eleminfo2.png differ
diff --git a/doc/salome/gui/SMESH/images/extrusion1.png b/doc/salome/gui/SMESH/images/extrusion1.png
new file mode 100644 (file)
index 0000000..b482782
Binary files /dev/null and b/doc/salome/gui/SMESH/images/extrusion1.png differ
diff --git a/doc/salome/gui/SMESH/images/extrusion2.png b/doc/salome/gui/SMESH/images/extrusion2.png
new file mode 100755 (executable)
index 0000000..d1d6d08
Binary files /dev/null and b/doc/salome/gui/SMESH/images/extrusion2.png differ
diff --git a/doc/salome/gui/SMESH/images/extrusionalongaline1.png b/doc/salome/gui/SMESH/images/extrusionalongaline1.png
new file mode 100755 (executable)
index 0000000..300d242
Binary files /dev/null and b/doc/salome/gui/SMESH/images/extrusionalongaline1.png differ
diff --git a/doc/salome/gui/SMESH/images/extrusionalongaline2.png b/doc/salome/gui/SMESH/images/extrusionalongaline2.png
new file mode 100755 (executable)
index 0000000..23ca606
Binary files /dev/null and b/doc/salome/gui/SMESH/images/extrusionalongaline2.png differ
diff --git a/doc/salome/gui/SMESH/images/failed_computation.png b/doc/salome/gui/SMESH/images/failed_computation.png
new file mode 100644 (file)
index 0000000..e44a538
Binary files /dev/null and b/doc/salome/gui/SMESH/images/failed_computation.png differ
diff --git a/doc/salome/gui/SMESH/images/formula1.png b/doc/salome/gui/SMESH/images/formula1.png
new file mode 100644 (file)
index 0000000..2f8d2f5
Binary files /dev/null and b/doc/salome/gui/SMESH/images/formula1.png differ
diff --git a/doc/salome/gui/SMESH/images/formula2.png b/doc/salome/gui/SMESH/images/formula2.png
new file mode 100644 (file)
index 0000000..ff189aa
Binary files /dev/null and b/doc/salome/gui/SMESH/images/formula2.png differ
diff --git a/doc/salome/gui/SMESH/images/formula4.png b/doc/salome/gui/SMESH/images/formula4.png
new file mode 100644 (file)
index 0000000..170f255
Binary files /dev/null and b/doc/salome/gui/SMESH/images/formula4.png differ
diff --git a/doc/salome/gui/SMESH/images/free_borders1.png b/doc/salome/gui/SMESH/images/free_borders1.png
new file mode 100755 (executable)
index 0000000..6e73c93
Binary files /dev/null and b/doc/salome/gui/SMESH/images/free_borders1.png differ
diff --git a/doc/salome/gui/SMESH/images/free_edges.png b/doc/salome/gui/SMESH/images/free_edges.png
new file mode 100755 (executable)
index 0000000..6f1100c
Binary files /dev/null and b/doc/salome/gui/SMESH/images/free_edges.png differ
diff --git a/doc/salome/gui/SMESH/images/image10.jpg b/doc/salome/gui/SMESH/images/image10.jpg
new file mode 100755 (executable)
index 0000000..5a15643
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image10.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image101.gif b/doc/salome/gui/SMESH/images/image101.gif
new file mode 100755 (executable)
index 0000000..b761fec
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image101.gif differ
diff --git a/doc/salome/gui/SMESH/images/image105.gif b/doc/salome/gui/SMESH/images/image105.gif
new file mode 100755 (executable)
index 0000000..0f74545
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image105.gif differ
diff --git a/doc/salome/gui/SMESH/images/image106.gif b/doc/salome/gui/SMESH/images/image106.gif
new file mode 100755 (executable)
index 0000000..71bda2e
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image106.gif differ
diff --git a/doc/salome/gui/SMESH/images/image120.gif b/doc/salome/gui/SMESH/images/image120.gif
new file mode 100755 (executable)
index 0000000..18ddeca
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image120.gif differ
diff --git a/doc/salome/gui/SMESH/images/image121.gif b/doc/salome/gui/SMESH/images/image121.gif
new file mode 100755 (executable)
index 0000000..7a2ffd6
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image121.gif differ
diff --git a/doc/salome/gui/SMESH/images/image122.gif b/doc/salome/gui/SMESH/images/image122.gif
new file mode 100755 (executable)
index 0000000..207d30b
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image122.gif differ
diff --git a/doc/salome/gui/SMESH/images/image123.gif b/doc/salome/gui/SMESH/images/image123.gif
new file mode 100755 (executable)
index 0000000..2780e70
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image123.gif differ
diff --git a/doc/salome/gui/SMESH/images/image124.gif b/doc/salome/gui/SMESH/images/image124.gif
new file mode 100755 (executable)
index 0000000..98f0c40
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image124.gif differ
diff --git a/doc/salome/gui/SMESH/images/image125.gif b/doc/salome/gui/SMESH/images/image125.gif
new file mode 100755 (executable)
index 0000000..1983513
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image125.gif differ
diff --git a/doc/salome/gui/SMESH/images/image126.gif b/doc/salome/gui/SMESH/images/image126.gif
new file mode 100755 (executable)
index 0000000..e2e6955
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image126.gif differ
diff --git a/doc/salome/gui/SMESH/images/image127.gif b/doc/salome/gui/SMESH/images/image127.gif
new file mode 100755 (executable)
index 0000000..79bccc6
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image127.gif differ
diff --git a/doc/salome/gui/SMESH/images/image130.gif b/doc/salome/gui/SMESH/images/image130.gif
new file mode 100755 (executable)
index 0000000..cc8c3a5
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image130.gif differ
diff --git a/doc/salome/gui/SMESH/images/image131.gif b/doc/salome/gui/SMESH/images/image131.gif
new file mode 100755 (executable)
index 0000000..8ca3453
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image131.gif differ
diff --git a/doc/salome/gui/SMESH/images/image132.gif b/doc/salome/gui/SMESH/images/image132.gif
new file mode 100755 (executable)
index 0000000..e7577ea
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image132.gif differ
diff --git a/doc/salome/gui/SMESH/images/image133.gif b/doc/salome/gui/SMESH/images/image133.gif
new file mode 100755 (executable)
index 0000000..60a4b96
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image133.gif differ
diff --git a/doc/salome/gui/SMESH/images/image134.gif b/doc/salome/gui/SMESH/images/image134.gif
new file mode 100755 (executable)
index 0000000..60148ba
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image134.gif differ
diff --git a/doc/salome/gui/SMESH/images/image135.gif b/doc/salome/gui/SMESH/images/image135.gif
new file mode 100755 (executable)
index 0000000..13b7b08
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image135.gif differ
diff --git a/doc/salome/gui/SMESH/images/image136.gif b/doc/salome/gui/SMESH/images/image136.gif
new file mode 100755 (executable)
index 0000000..9b17450
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image136.gif differ
diff --git a/doc/salome/gui/SMESH/images/image137.gif b/doc/salome/gui/SMESH/images/image137.gif
new file mode 100755 (executable)
index 0000000..7f4cd13
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image137.gif differ
diff --git a/doc/salome/gui/SMESH/images/image138.gif b/doc/salome/gui/SMESH/images/image138.gif
new file mode 100644 (file)
index 0000000..1659aab
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image138.gif differ
diff --git a/doc/salome/gui/SMESH/images/image143.gif b/doc/salome/gui/SMESH/images/image143.gif
new file mode 100755 (executable)
index 0000000..de9df14
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image143.gif differ
diff --git a/doc/salome/gui/SMESH/images/image144.gif b/doc/salome/gui/SMESH/images/image144.gif
new file mode 100644 (file)
index 0000000..3dffd53
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image144.gif differ
diff --git a/doc/salome/gui/SMESH/images/image145.gif b/doc/salome/gui/SMESH/images/image145.gif
new file mode 100755 (executable)
index 0000000..8005557
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image145.gif differ
diff --git a/doc/salome/gui/SMESH/images/image146.gif b/doc/salome/gui/SMESH/images/image146.gif
new file mode 100755 (executable)
index 0000000..18f2224
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image146.gif differ
diff --git a/doc/salome/gui/SMESH/images/image147.gif b/doc/salome/gui/SMESH/images/image147.gif
new file mode 100755 (executable)
index 0000000..7b9a354
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image147.gif differ
diff --git a/doc/salome/gui/SMESH/images/image148.gif b/doc/salome/gui/SMESH/images/image148.gif
new file mode 100755 (executable)
index 0000000..0ef4147
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image148.gif differ
diff --git a/doc/salome/gui/SMESH/images/image15.jpg b/doc/salome/gui/SMESH/images/image15.jpg
new file mode 100755 (executable)
index 0000000..15edee5
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image15.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image151.gif b/doc/salome/gui/SMESH/images/image151.gif
new file mode 100755 (executable)
index 0000000..5c4a20e
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image151.gif differ
diff --git a/doc/salome/gui/SMESH/images/image152.gif b/doc/salome/gui/SMESH/images/image152.gif
new file mode 100755 (executable)
index 0000000..2005d3f
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image152.gif differ
diff --git a/doc/salome/gui/SMESH/images/image154.gif b/doc/salome/gui/SMESH/images/image154.gif
new file mode 100644 (file)
index 0000000..2d527fb
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image154.gif differ
diff --git a/doc/salome/gui/SMESH/images/image155.gif b/doc/salome/gui/SMESH/images/image155.gif
new file mode 100644 (file)
index 0000000..fe03093
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image155.gif differ
diff --git a/doc/salome/gui/SMESH/images/image156.gif b/doc/salome/gui/SMESH/images/image156.gif
new file mode 100644 (file)
index 0000000..36b37c8
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image156.gif differ
diff --git a/doc/salome/gui/SMESH/images/image157.gif b/doc/salome/gui/SMESH/images/image157.gif
new file mode 100644 (file)
index 0000000..4592151
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image157.gif differ
diff --git a/doc/salome/gui/SMESH/images/image160.gif b/doc/salome/gui/SMESH/images/image160.gif
new file mode 100755 (executable)
index 0000000..6baffdb
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image160.gif differ
diff --git a/doc/salome/gui/SMESH/images/image161.gif b/doc/salome/gui/SMESH/images/image161.gif
new file mode 100755 (executable)
index 0000000..54364d2
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image161.gif differ
diff --git a/doc/salome/gui/SMESH/images/image22.jpg b/doc/salome/gui/SMESH/images/image22.jpg
new file mode 100755 (executable)
index 0000000..b6a5e8d
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image22.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image23.jpg b/doc/salome/gui/SMESH/images/image23.jpg
new file mode 100755 (executable)
index 0000000..74f899b
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image23.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image24.gif b/doc/salome/gui/SMESH/images/image24.gif
new file mode 100755 (executable)
index 0000000..3d8032b
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image24.gif differ
diff --git a/doc/salome/gui/SMESH/images/image25.gif b/doc/salome/gui/SMESH/images/image25.gif
new file mode 100755 (executable)
index 0000000..cd7c967
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image25.gif differ
diff --git a/doc/salome/gui/SMESH/images/image25.jpg b/doc/salome/gui/SMESH/images/image25.jpg
new file mode 100755 (executable)
index 0000000..4b2d4df
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image25.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image27.jpg b/doc/salome/gui/SMESH/images/image27.jpg
new file mode 100755 (executable)
index 0000000..d2f32b1
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image27.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image28.gif b/doc/salome/gui/SMESH/images/image28.gif
new file mode 100755 (executable)
index 0000000..21f54bf
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image28.gif differ
diff --git a/doc/salome/gui/SMESH/images/image30.jpg b/doc/salome/gui/SMESH/images/image30.jpg
new file mode 100755 (executable)
index 0000000..997a36e
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image30.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image31.jpg b/doc/salome/gui/SMESH/images/image31.jpg
new file mode 100755 (executable)
index 0000000..aa00403
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image31.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image32.gif b/doc/salome/gui/SMESH/images/image32.gif
new file mode 100755 (executable)
index 0000000..a1ee2ee
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image32.gif differ
diff --git a/doc/salome/gui/SMESH/images/image32.jpg b/doc/salome/gui/SMESH/images/image32.jpg
new file mode 100755 (executable)
index 0000000..77d595d
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image32.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image33.gif b/doc/salome/gui/SMESH/images/image33.gif
new file mode 100755 (executable)
index 0000000..ecdd47b
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image33.gif differ
diff --git a/doc/salome/gui/SMESH/images/image34.gif b/doc/salome/gui/SMESH/images/image34.gif
new file mode 100755 (executable)
index 0000000..963095f
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image34.gif differ
diff --git a/doc/salome/gui/SMESH/images/image35.gif b/doc/salome/gui/SMESH/images/image35.gif
new file mode 100755 (executable)
index 0000000..0e3b30f
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image35.gif differ
diff --git a/doc/salome/gui/SMESH/images/image36.gif b/doc/salome/gui/SMESH/images/image36.gif
new file mode 100755 (executable)
index 0000000..7236ef8
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image36.gif differ
diff --git a/doc/salome/gui/SMESH/images/image36.jpg b/doc/salome/gui/SMESH/images/image36.jpg
new file mode 100755 (executable)
index 0000000..9b44dc7
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image36.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image37.gif b/doc/salome/gui/SMESH/images/image37.gif
new file mode 100644 (file)
index 0000000..edd5263
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image37.gif differ
diff --git a/doc/salome/gui/SMESH/images/image37.jpg b/doc/salome/gui/SMESH/images/image37.jpg
new file mode 100755 (executable)
index 0000000..5fba91a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image37.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image38.gif b/doc/salome/gui/SMESH/images/image38.gif
new file mode 100755 (executable)
index 0000000..087f6e2
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image38.gif differ
diff --git a/doc/salome/gui/SMESH/images/image38.jpg b/doc/salome/gui/SMESH/images/image38.jpg
new file mode 100755 (executable)
index 0000000..29d5e71
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image38.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image39.gif b/doc/salome/gui/SMESH/images/image39.gif
new file mode 100755 (executable)
index 0000000..b206af1
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image39.gif differ
diff --git a/doc/salome/gui/SMESH/images/image40.gif b/doc/salome/gui/SMESH/images/image40.gif
new file mode 100755 (executable)
index 0000000..becc12a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image40.gif differ
diff --git a/doc/salome/gui/SMESH/images/image41.gif b/doc/salome/gui/SMESH/images/image41.gif
new file mode 100755 (executable)
index 0000000..2e132c2
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image41.gif differ
diff --git a/doc/salome/gui/SMESH/images/image46.gif b/doc/salome/gui/SMESH/images/image46.gif
new file mode 100755 (executable)
index 0000000..0f00ea7
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image46.gif differ
diff --git a/doc/salome/gui/SMESH/images/image49.gif b/doc/salome/gui/SMESH/images/image49.gif
new file mode 100755 (executable)
index 0000000..d10d9c4
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image49.gif differ
diff --git a/doc/salome/gui/SMESH/images/image5.jpg b/doc/salome/gui/SMESH/images/image5.jpg
new file mode 100755 (executable)
index 0000000..f195ac8
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image5.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image50.gif b/doc/salome/gui/SMESH/images/image50.gif
new file mode 100755 (executable)
index 0000000..72d3954
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image50.gif differ
diff --git a/doc/salome/gui/SMESH/images/image51.jpg b/doc/salome/gui/SMESH/images/image51.jpg
new file mode 100755 (executable)
index 0000000..dfe3bc6
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image51.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image52.jpg b/doc/salome/gui/SMESH/images/image52.jpg
new file mode 100755 (executable)
index 0000000..1c83b35
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image52.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image53.gif b/doc/salome/gui/SMESH/images/image53.gif
new file mode 100755 (executable)
index 0000000..8f72820
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image53.gif differ
diff --git a/doc/salome/gui/SMESH/images/image55.gif b/doc/salome/gui/SMESH/images/image55.gif
new file mode 100755 (executable)
index 0000000..cc1b80e
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image55.gif differ
diff --git a/doc/salome/gui/SMESH/images/image56.gif b/doc/salome/gui/SMESH/images/image56.gif
new file mode 100755 (executable)
index 0000000..ffe1e95
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image56.gif differ
diff --git a/doc/salome/gui/SMESH/images/image56.jpg b/doc/salome/gui/SMESH/images/image56.jpg
new file mode 100755 (executable)
index 0000000..5fba91a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image56.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image58.gif b/doc/salome/gui/SMESH/images/image58.gif
new file mode 100755 (executable)
index 0000000..45e2856
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image58.gif differ
diff --git a/doc/salome/gui/SMESH/images/image63.gif b/doc/salome/gui/SMESH/images/image63.gif
new file mode 100755 (executable)
index 0000000..6a9c2c8
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image63.gif differ
diff --git a/doc/salome/gui/SMESH/images/image64.gif b/doc/salome/gui/SMESH/images/image64.gif
new file mode 100755 (executable)
index 0000000..1d92c81
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image64.gif differ
diff --git a/doc/salome/gui/SMESH/images/image67.gif b/doc/salome/gui/SMESH/images/image67.gif
new file mode 100755 (executable)
index 0000000..68bd3e3
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image67.gif differ
diff --git a/doc/salome/gui/SMESH/images/image7.jpg b/doc/salome/gui/SMESH/images/image7.jpg
new file mode 100644 (file)
index 0000000..cbd6170
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image7.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image70.gif b/doc/salome/gui/SMESH/images/image70.gif
new file mode 100755 (executable)
index 0000000..120b8e8
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image70.gif differ
diff --git a/doc/salome/gui/SMESH/images/image70.jpg b/doc/salome/gui/SMESH/images/image70.jpg
new file mode 100755 (executable)
index 0000000..0df360f
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image70.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image71.gif b/doc/salome/gui/SMESH/images/image71.gif
new file mode 100755 (executable)
index 0000000..0008354
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image71.gif differ
diff --git a/doc/salome/gui/SMESH/images/image71.jpg b/doc/salome/gui/SMESH/images/image71.jpg
new file mode 100755 (executable)
index 0000000..cb1223d
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image71.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image74.gif b/doc/salome/gui/SMESH/images/image74.gif
new file mode 100755 (executable)
index 0000000..c66029e
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image74.gif differ
diff --git a/doc/salome/gui/SMESH/images/image76.jpg b/doc/salome/gui/SMESH/images/image76.jpg
new file mode 100755 (executable)
index 0000000..88ec89f
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image76.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image77.jpg b/doc/salome/gui/SMESH/images/image77.jpg
new file mode 100755 (executable)
index 0000000..c253eac
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image77.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image78.jpg b/doc/salome/gui/SMESH/images/image78.jpg
new file mode 100755 (executable)
index 0000000..80c2a16
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image78.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image79.gif b/doc/salome/gui/SMESH/images/image79.gif
new file mode 100755 (executable)
index 0000000..9711ccb
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image79.gif differ
diff --git a/doc/salome/gui/SMESH/images/image79.jpg b/doc/salome/gui/SMESH/images/image79.jpg
new file mode 100755 (executable)
index 0000000..6d16416
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image79.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image80.gif b/doc/salome/gui/SMESH/images/image80.gif
new file mode 100755 (executable)
index 0000000..399af0a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image80.gif differ
diff --git a/doc/salome/gui/SMESH/images/image82.gif b/doc/salome/gui/SMESH/images/image82.gif
new file mode 100755 (executable)
index 0000000..93c6c9b
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image82.gif differ
diff --git a/doc/salome/gui/SMESH/images/image83.gif b/doc/salome/gui/SMESH/images/image83.gif
new file mode 100755 (executable)
index 0000000..331b64a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image83.gif differ
diff --git a/doc/salome/gui/SMESH/images/image84.gif b/doc/salome/gui/SMESH/images/image84.gif
new file mode 100755 (executable)
index 0000000..ea8ec56
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image84.gif differ
diff --git a/doc/salome/gui/SMESH/images/image86.jpg b/doc/salome/gui/SMESH/images/image86.jpg
new file mode 100644 (file)
index 0000000..168b43e
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image86.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image88.gif b/doc/salome/gui/SMESH/images/image88.gif
new file mode 100755 (executable)
index 0000000..b2d4b73
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image88.gif differ
diff --git a/doc/salome/gui/SMESH/images/image88.jpg b/doc/salome/gui/SMESH/images/image88.jpg
new file mode 100755 (executable)
index 0000000..3b2a973
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image88.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image90.jpg b/doc/salome/gui/SMESH/images/image90.jpg
new file mode 100755 (executable)
index 0000000..4f4c301
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image90.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image91.gif b/doc/salome/gui/SMESH/images/image91.gif
new file mode 100755 (executable)
index 0000000..a09ab9e
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image91.gif differ
diff --git a/doc/salome/gui/SMESH/images/image92.gif b/doc/salome/gui/SMESH/images/image92.gif
new file mode 100755 (executable)
index 0000000..9e0517f
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image92.gif differ
diff --git a/doc/salome/gui/SMESH/images/image92.jpg b/doc/salome/gui/SMESH/images/image92.jpg
new file mode 100755 (executable)
index 0000000..bf6e610
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image92.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image93.jpg b/doc/salome/gui/SMESH/images/image93.jpg
new file mode 100755 (executable)
index 0000000..f9780b4
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image93.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image94.gif b/doc/salome/gui/SMESH/images/image94.gif
new file mode 100755 (executable)
index 0000000..7313f5d
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image94.gif differ
diff --git a/doc/salome/gui/SMESH/images/image94.jpg b/doc/salome/gui/SMESH/images/image94.jpg
new file mode 100644 (file)
index 0000000..7891667
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image94.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image95.gif b/doc/salome/gui/SMESH/images/image95.gif
new file mode 100755 (executable)
index 0000000..6491f27
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image95.gif differ
diff --git a/doc/salome/gui/SMESH/images/image95.jpg b/doc/salome/gui/SMESH/images/image95.jpg
new file mode 100755 (executable)
index 0000000..047dccf
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image95.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image96.gif b/doc/salome/gui/SMESH/images/image96.gif
new file mode 100755 (executable)
index 0000000..1392ee7
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image96.gif differ
diff --git a/doc/salome/gui/SMESH/images/image96.jpg b/doc/salome/gui/SMESH/images/image96.jpg
new file mode 100755 (executable)
index 0000000..5f3128e
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image96.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image97.gif b/doc/salome/gui/SMESH/images/image97.gif
new file mode 100755 (executable)
index 0000000..480b584
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image97.gif differ
diff --git a/doc/salome/gui/SMESH/images/image97.jpg b/doc/salome/gui/SMESH/images/image97.jpg
new file mode 100755 (executable)
index 0000000..275f2e3
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image97.jpg differ
diff --git a/doc/salome/gui/SMESH/images/image98.gif b/doc/salome/gui/SMESH/images/image98.gif
new file mode 100755 (executable)
index 0000000..5f375b7
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image98.gif differ
diff --git a/doc/salome/gui/SMESH/images/image99.gif b/doc/salome/gui/SMESH/images/image99.gif
new file mode 100755 (executable)
index 0000000..4959ed8
Binary files /dev/null and b/doc/salome/gui/SMESH/images/image99.gif differ
diff --git a/doc/salome/gui/SMESH/images/intersect_groups1.png b/doc/salome/gui/SMESH/images/intersect_groups1.png
new file mode 100755 (executable)
index 0000000..9251b0e
Binary files /dev/null and b/doc/salome/gui/SMESH/images/intersect_groups1.png differ
diff --git a/doc/salome/gui/SMESH/images/intersect_groups2.png b/doc/salome/gui/SMESH/images/intersect_groups2.png
new file mode 100755 (executable)
index 0000000..eeaed8d
Binary files /dev/null and b/doc/salome/gui/SMESH/images/intersect_groups2.png differ
diff --git a/doc/salome/gui/SMESH/images/intersect_groups3.png b/doc/salome/gui/SMESH/images/intersect_groups3.png
new file mode 100755 (executable)
index 0000000..74f5c2d
Binary files /dev/null and b/doc/salome/gui/SMESH/images/intersect_groups3.png differ
diff --git a/doc/salome/gui/SMESH/images/intersectgroups.png b/doc/salome/gui/SMESH/images/intersectgroups.png
new file mode 100755 (executable)
index 0000000..b28b4d4
Binary files /dev/null and b/doc/salome/gui/SMESH/images/intersectgroups.png differ
diff --git a/doc/salome/gui/SMESH/images/length-crit.png b/doc/salome/gui/SMESH/images/length-crit.png
new file mode 100755 (executable)
index 0000000..96836cd
Binary files /dev/null and b/doc/salome/gui/SMESH/images/length-crit.png differ
diff --git a/doc/salome/gui/SMESH/images/length2d.png b/doc/salome/gui/SMESH/images/length2d.png
new file mode 100755 (executable)
index 0000000..9a5264a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/length2d.png differ
diff --git a/doc/salome/gui/SMESH/images/lengthnearvertex.png b/doc/salome/gui/SMESH/images/lengthnearvertex.png
new file mode 100755 (executable)
index 0000000..008dcb1
Binary files /dev/null and b/doc/salome/gui/SMESH/images/lengthnearvertex.png differ
diff --git a/doc/salome/gui/SMESH/images/max_el_area.png b/doc/salome/gui/SMESH/images/max_el_area.png
new file mode 100755 (executable)
index 0000000..88db3d6
Binary files /dev/null and b/doc/salome/gui/SMESH/images/max_el_area.png differ
diff --git a/doc/salome/gui/SMESH/images/mergeelems.png b/doc/salome/gui/SMESH/images/mergeelems.png
new file mode 100755 (executable)
index 0000000..dbd8787
Binary files /dev/null and b/doc/salome/gui/SMESH/images/mergeelems.png differ
diff --git a/doc/salome/gui/SMESH/images/mergenodes.png b/doc/salome/gui/SMESH/images/mergenodes.png
new file mode 100755 (executable)
index 0000000..d7437e4
Binary files /dev/null and b/doc/salome/gui/SMESH/images/mergenodes.png differ
diff --git a/doc/salome/gui/SMESH/images/merging_nodes1.png b/doc/salome/gui/SMESH/images/merging_nodes1.png
new file mode 100755 (executable)
index 0000000..f64bdcb
Binary files /dev/null and b/doc/salome/gui/SMESH/images/merging_nodes1.png differ
diff --git a/doc/salome/gui/SMESH/images/merging_nodes2.png b/doc/salome/gui/SMESH/images/merging_nodes2.png
new file mode 100755 (executable)
index 0000000..8d7cfdd
Binary files /dev/null and b/doc/salome/gui/SMESH/images/merging_nodes2.png differ
diff --git a/doc/salome/gui/SMESH/images/mesh_cylinder_hexa.png b/doc/salome/gui/SMESH/images/mesh_cylinder_hexa.png
new file mode 100644 (file)
index 0000000..f95dc67
Binary files /dev/null and b/doc/salome/gui/SMESH/images/mesh_cylinder_hexa.png differ
diff --git a/doc/salome/gui/SMESH/images/mesh_for_extr_along_path.png b/doc/salome/gui/SMESH/images/mesh_for_extr_along_path.png
new file mode 100644 (file)
index 0000000..4ee52eb
Binary files /dev/null and b/doc/salome/gui/SMESH/images/mesh_for_extr_along_path.png differ
diff --git a/doc/salome/gui/SMESH/images/mesh_node_to_point.png b/doc/salome/gui/SMESH/images/mesh_node_to_point.png
new file mode 100644 (file)
index 0000000..5d534cb
Binary files /dev/null and b/doc/salome/gui/SMESH/images/mesh_node_to_point.png differ
diff --git a/doc/salome/gui/SMESH/images/meshcomputationfail.png b/doc/salome/gui/SMESH/images/meshcomputationfail.png
new file mode 100644 (file)
index 0000000..9c26158
Binary files /dev/null and b/doc/salome/gui/SMESH/images/meshcomputationfail.png differ
diff --git a/doc/salome/gui/SMESH/images/meshcomputationsucceed.png b/doc/salome/gui/SMESH/images/meshcomputationsucceed.png
new file mode 100644 (file)
index 0000000..ab23579
Binary files /dev/null and b/doc/salome/gui/SMESH/images/meshcomputationsucceed.png differ
diff --git a/doc/salome/gui/SMESH/images/meshexportmesh.png b/doc/salome/gui/SMESH/images/meshexportmesh.png
new file mode 100755 (executable)
index 0000000..a84b252
Binary files /dev/null and b/doc/salome/gui/SMESH/images/meshexportmesh.png differ
diff --git a/doc/salome/gui/SMESH/images/meshimportmesh.png b/doc/salome/gui/SMESH/images/meshimportmesh.png
new file mode 100755 (executable)
index 0000000..f87250b
Binary files /dev/null and b/doc/salome/gui/SMESH/images/meshimportmesh.png differ
diff --git a/doc/salome/gui/SMESH/images/meshtopass.png b/doc/salome/gui/SMESH/images/meshtopass.png
new file mode 100755 (executable)
index 0000000..044c016
Binary files /dev/null and b/doc/salome/gui/SMESH/images/meshtopass.png differ
diff --git a/doc/salome/gui/SMESH/images/meshtrianglemergeelem1.png b/doc/salome/gui/SMESH/images/meshtrianglemergeelem1.png
new file mode 100755 (executable)
index 0000000..0f9bd52
Binary files /dev/null and b/doc/salome/gui/SMESH/images/meshtrianglemergeelem1.png differ
diff --git a/doc/salome/gui/SMESH/images/movenodes.png b/doc/salome/gui/SMESH/images/movenodes.png
new file mode 100755 (executable)
index 0000000..16e9e62
Binary files /dev/null and b/doc/salome/gui/SMESH/images/movenodes.png differ
diff --git a/doc/salome/gui/SMESH/images/moving_nodes1.png b/doc/salome/gui/SMESH/images/moving_nodes1.png
new file mode 100755 (executable)
index 0000000..2bae388
Binary files /dev/null and b/doc/salome/gui/SMESH/images/moving_nodes1.png differ
diff --git a/doc/salome/gui/SMESH/images/moving_nodes2.png b/doc/salome/gui/SMESH/images/moving_nodes2.png
new file mode 100755 (executable)
index 0000000..b65e57a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/moving_nodes2.png differ
diff --git a/doc/salome/gui/SMESH/images/netgen2d.png b/doc/salome/gui/SMESH/images/netgen2d.png
new file mode 100644 (file)
index 0000000..b2a9f25
Binary files /dev/null and b/doc/salome/gui/SMESH/images/netgen2d.png differ
diff --git a/doc/salome/gui/SMESH/images/number_of_layers.png b/doc/salome/gui/SMESH/images/number_of_layers.png
new file mode 100644 (file)
index 0000000..846fa2c
Binary files /dev/null and b/doc/salome/gui/SMESH/images/number_of_layers.png differ
diff --git a/doc/salome/gui/SMESH/images/orientaation1.png b/doc/salome/gui/SMESH/images/orientaation1.png
new file mode 100755 (executable)
index 0000000..c23b0b8
Binary files /dev/null and b/doc/salome/gui/SMESH/images/orientaation1.png differ
diff --git a/doc/salome/gui/SMESH/images/patternmapping1.png b/doc/salome/gui/SMESH/images/patternmapping1.png
new file mode 100755 (executable)
index 0000000..14daae1
Binary files /dev/null and b/doc/salome/gui/SMESH/images/patternmapping1.png differ
diff --git a/doc/salome/gui/SMESH/images/patternmapping2.png b/doc/salome/gui/SMESH/images/patternmapping2.png
new file mode 100755 (executable)
index 0000000..fbcf355
Binary files /dev/null and b/doc/salome/gui/SMESH/images/patternmapping2.png differ
diff --git a/doc/salome/gui/SMESH/images/projection_1d.png b/doc/salome/gui/SMESH/images/projection_1d.png
new file mode 100644 (file)
index 0000000..1560aca
Binary files /dev/null and b/doc/salome/gui/SMESH/images/projection_1d.png differ
diff --git a/doc/salome/gui/SMESH/images/projection_2d.png b/doc/salome/gui/SMESH/images/projection_2d.png
new file mode 100644 (file)
index 0000000..91d446b
Binary files /dev/null and b/doc/salome/gui/SMESH/images/projection_2d.png differ
diff --git a/doc/salome/gui/SMESH/images/projection_3d.png b/doc/salome/gui/SMESH/images/projection_3d.png
new file mode 100644 (file)
index 0000000..aeffc7a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/projection_3d.png differ
diff --git a/doc/salome/gui/SMESH/images/remove.gif b/doc/salome/gui/SMESH/images/remove.gif
new file mode 100644 (file)
index 0000000..8b81cb2
Binary files /dev/null and b/doc/salome/gui/SMESH/images/remove.gif differ
diff --git a/doc/salome/gui/SMESH/images/remove_elements1.png b/doc/salome/gui/SMESH/images/remove_elements1.png
new file mode 100755 (executable)
index 0000000..538460f
Binary files /dev/null and b/doc/salome/gui/SMESH/images/remove_elements1.png differ
diff --git a/doc/salome/gui/SMESH/images/remove_elements2.png b/doc/salome/gui/SMESH/images/remove_elements2.png
new file mode 100755 (executable)
index 0000000..888188c
Binary files /dev/null and b/doc/salome/gui/SMESH/images/remove_elements2.png differ
diff --git a/doc/salome/gui/SMESH/images/remove_elements_icon.png b/doc/salome/gui/SMESH/images/remove_elements_icon.png
new file mode 100644 (file)
index 0000000..a2bb0f1
Binary files /dev/null and b/doc/salome/gui/SMESH/images/remove_elements_icon.png differ
diff --git a/doc/salome/gui/SMESH/images/remove_nodes1.png b/doc/salome/gui/SMESH/images/remove_nodes1.png
new file mode 100755 (executable)
index 0000000..94caae6
Binary files /dev/null and b/doc/salome/gui/SMESH/images/remove_nodes1.png differ
diff --git a/doc/salome/gui/SMESH/images/remove_nodes2.png b/doc/salome/gui/SMESH/images/remove_nodes2.png
new file mode 100755 (executable)
index 0000000..e9f8064
Binary files /dev/null and b/doc/salome/gui/SMESH/images/remove_nodes2.png differ
diff --git a/doc/salome/gui/SMESH/images/removeelements.png b/doc/salome/gui/SMESH/images/removeelements.png
new file mode 100755 (executable)
index 0000000..42a79b5
Binary files /dev/null and b/doc/salome/gui/SMESH/images/removeelements.png differ
diff --git a/doc/salome/gui/SMESH/images/removenodes.png b/doc/salome/gui/SMESH/images/removenodes.png
new file mode 100755 (executable)
index 0000000..cfcb777
Binary files /dev/null and b/doc/salome/gui/SMESH/images/removenodes.png differ
diff --git a/doc/salome/gui/SMESH/images/renumberelements.png b/doc/salome/gui/SMESH/images/renumberelements.png
new file mode 100755 (executable)
index 0000000..0812b50
Binary files /dev/null and b/doc/salome/gui/SMESH/images/renumberelements.png differ
diff --git a/doc/salome/gui/SMESH/images/renumbernodes.png b/doc/salome/gui/SMESH/images/renumbernodes.png
new file mode 100755 (executable)
index 0000000..90a0eda
Binary files /dev/null and b/doc/salome/gui/SMESH/images/renumbernodes.png differ
diff --git a/doc/salome/gui/SMESH/images/revolution1.png b/doc/salome/gui/SMESH/images/revolution1.png
new file mode 100755 (executable)
index 0000000..0334e3b
Binary files /dev/null and b/doc/salome/gui/SMESH/images/revolution1.png differ
diff --git a/doc/salome/gui/SMESH/images/revolution2.png b/doc/salome/gui/SMESH/images/revolution2.png
new file mode 100755 (executable)
index 0000000..5612f91
Binary files /dev/null and b/doc/salome/gui/SMESH/images/revolution2.png differ
diff --git a/doc/salome/gui/SMESH/images/rotation.png b/doc/salome/gui/SMESH/images/rotation.png
new file mode 100755 (executable)
index 0000000..aed7744
Binary files /dev/null and b/doc/salome/gui/SMESH/images/rotation.png differ
diff --git a/doc/salome/gui/SMESH/images/rotation1.png b/doc/salome/gui/SMESH/images/rotation1.png
new file mode 100755 (executable)
index 0000000..5a4ad99
Binary files /dev/null and b/doc/salome/gui/SMESH/images/rotation1.png differ
diff --git a/doc/salome/gui/SMESH/images/rotation2.png b/doc/salome/gui/SMESH/images/rotation2.png
new file mode 100755 (executable)
index 0000000..366771a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/rotation2.png differ
diff --git a/doc/salome/gui/SMESH/images/selectionfilterlibrary.png b/doc/salome/gui/SMESH/images/selectionfilterlibrary.png
new file mode 100755 (executable)
index 0000000..f07c096
Binary files /dev/null and b/doc/salome/gui/SMESH/images/selectionfilterlibrary.png differ
diff --git a/doc/salome/gui/SMESH/images/sewing1.png b/doc/salome/gui/SMESH/images/sewing1.png
new file mode 100755 (executable)
index 0000000..795d7a0
Binary files /dev/null and b/doc/salome/gui/SMESH/images/sewing1.png differ
diff --git a/doc/salome/gui/SMESH/images/sewing2.png b/doc/salome/gui/SMESH/images/sewing2.png
new file mode 100755 (executable)
index 0000000..66a4099
Binary files /dev/null and b/doc/salome/gui/SMESH/images/sewing2.png differ
diff --git a/doc/salome/gui/SMESH/images/sewing3.png b/doc/salome/gui/SMESH/images/sewing3.png
new file mode 100755 (executable)
index 0000000..6c74f1c
Binary files /dev/null and b/doc/salome/gui/SMESH/images/sewing3.png differ
diff --git a/doc/salome/gui/SMESH/images/sewing4.png b/doc/salome/gui/SMESH/images/sewing4.png
new file mode 100755 (executable)
index 0000000..cd9869a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/sewing4.png differ
diff --git a/doc/salome/gui/SMESH/images/smoothing.png b/doc/salome/gui/SMESH/images/smoothing.png
new file mode 100755 (executable)
index 0000000..0fda00a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/smoothing.png differ
diff --git a/doc/salome/gui/SMESH/images/smoothing1.png b/doc/salome/gui/SMESH/images/smoothing1.png
new file mode 100755 (executable)
index 0000000..763a530
Binary files /dev/null and b/doc/salome/gui/SMESH/images/smoothing1.png differ
diff --git a/doc/salome/gui/SMESH/images/smoothing2.png b/doc/salome/gui/SMESH/images/smoothing2.png
new file mode 100755 (executable)
index 0000000..bfce457
Binary files /dev/null and b/doc/salome/gui/SMESH/images/smoothing2.png differ
diff --git a/doc/salome/gui/SMESH/images/sort.gif b/doc/salome/gui/SMESH/images/sort.gif
new file mode 100644 (file)
index 0000000..28a5dff
Binary files /dev/null and b/doc/salome/gui/SMESH/images/sort.gif differ
diff --git a/doc/salome/gui/SMESH/images/straight_after.png b/doc/salome/gui/SMESH/images/straight_after.png
new file mode 100644 (file)
index 0000000..4572fea
Binary files /dev/null and b/doc/salome/gui/SMESH/images/straight_after.png differ
diff --git a/doc/salome/gui/SMESH/images/straight_before.png b/doc/salome/gui/SMESH/images/straight_before.png
new file mode 100644 (file)
index 0000000..200aad8
Binary files /dev/null and b/doc/salome/gui/SMESH/images/straight_before.png differ
diff --git a/doc/salome/gui/SMESH/images/symmetry1.png b/doc/salome/gui/SMESH/images/symmetry1.png
new file mode 100755 (executable)
index 0000000..c8fda3e
Binary files /dev/null and b/doc/salome/gui/SMESH/images/symmetry1.png differ
diff --git a/doc/salome/gui/SMESH/images/symmetry2.png b/doc/salome/gui/SMESH/images/symmetry2.png
new file mode 100755 (executable)
index 0000000..b92fdd9
Binary files /dev/null and b/doc/salome/gui/SMESH/images/symmetry2.png differ
diff --git a/doc/salome/gui/SMESH/images/symmetry3.png b/doc/salome/gui/SMESH/images/symmetry3.png
new file mode 100755 (executable)
index 0000000..b573636
Binary files /dev/null and b/doc/salome/gui/SMESH/images/symmetry3.png differ
diff --git a/doc/salome/gui/SMESH/images/translation1.png b/doc/salome/gui/SMESH/images/translation1.png
new file mode 100755 (executable)
index 0000000..f6909fb
Binary files /dev/null and b/doc/salome/gui/SMESH/images/translation1.png differ
diff --git a/doc/salome/gui/SMESH/images/translation2.png b/doc/salome/gui/SMESH/images/translation2.png
new file mode 100755 (executable)
index 0000000..d1923e6
Binary files /dev/null and b/doc/salome/gui/SMESH/images/translation2.png differ
diff --git a/doc/salome/gui/SMESH/images/union_groups1.png b/doc/salome/gui/SMESH/images/union_groups1.png
new file mode 100755 (executable)
index 0000000..7b2fc75
Binary files /dev/null and b/doc/salome/gui/SMESH/images/union_groups1.png differ
diff --git a/doc/salome/gui/SMESH/images/union_groups2.png b/doc/salome/gui/SMESH/images/union_groups2.png
new file mode 100755 (executable)
index 0000000..980e48d
Binary files /dev/null and b/doc/salome/gui/SMESH/images/union_groups2.png differ
diff --git a/doc/salome/gui/SMESH/images/union_groups3.png b/doc/salome/gui/SMESH/images/union_groups3.png
new file mode 100755 (executable)
index 0000000..caf6bb4
Binary files /dev/null and b/doc/salome/gui/SMESH/images/union_groups3.png differ
diff --git a/doc/salome/gui/SMESH/images/uniongroups.png b/doc/salome/gui/SMESH/images/uniongroups.png
new file mode 100755 (executable)
index 0000000..936c3b9
Binary files /dev/null and b/doc/salome/gui/SMESH/images/uniongroups.png differ
diff --git a/doc/salome/gui/SMESH/images/unionoftwotriangles.png b/doc/salome/gui/SMESH/images/unionoftwotriangles.png
new file mode 100755 (executable)
index 0000000..b9d2bdb
Binary files /dev/null and b/doc/salome/gui/SMESH/images/unionoftwotriangles.png differ
diff --git a/doc/salome/gui/SMESH/images/uniting_a_set_of_triangles1.png b/doc/salome/gui/SMESH/images/uniting_a_set_of_triangles1.png
new file mode 100755 (executable)
index 0000000..fb00167
Binary files /dev/null and b/doc/salome/gui/SMESH/images/uniting_a_set_of_triangles1.png differ
diff --git a/doc/salome/gui/SMESH/images/uniting_a_set_of_triangles2.png b/doc/salome/gui/SMESH/images/uniting_a_set_of_triangles2.png
new file mode 100755 (executable)
index 0000000..16d1351
Binary files /dev/null and b/doc/salome/gui/SMESH/images/uniting_a_set_of_triangles2.png differ
diff --git a/doc/salome/gui/SMESH/images/uniting_two_triangles1.png b/doc/salome/gui/SMESH/images/uniting_two_triangles1.png
new file mode 100755 (executable)
index 0000000..e94be3a
Binary files /dev/null and b/doc/salome/gui/SMESH/images/uniting_two_triangles1.png differ
diff --git a/doc/salome/gui/SMESH/images/uniting_two_triangles2.png b/doc/salome/gui/SMESH/images/uniting_two_triangles2.png
new file mode 100755 (executable)
index 0000000..5cac5f5
Binary files /dev/null and b/doc/salome/gui/SMESH/images/uniting_two_triangles2.png differ
diff --git a/doc/salome/gui/SMESH/index.htm b/doc/salome/gui/SMESH/index.htm
deleted file mode 100755 (executable)
index 3163eee..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whstub.js"></script><script language="javascript1.2" src="whstart.js"></script>
-<script language="javascript">
-<!--
-var strDefaultTopic = "about:blank";
-var nWebhelpNavPaneMode = 1;                   //1: DHTML 2:Applet 3:PureHTML 4:Noframeset
-var bNoApplet  = false;
-var strPaneDHTML  = "whd_nvp10.htm";           //whd_nvp10.htm  if tab enabled, whnframe.htm if tab disabled.
-var strPaneApplet = "whd_nvp20.htm";
-var strPaneList   = "whgdata/whnvp30.htm";
-
-var strHTML = "";
-var strPane = "";
-var nViewFrameType = -1;
-
-function CMRServer()
-{
-  this.m_cAgents = new Array;
-}
-var cMRServer = new CMRServer;
-
-//figure out which mode is the best
-if (!window.gAgent)
-{
-       // low end browser, we don't even try to determine it.
-       document.location = "whnjs.htm";
-}
-else
-{
-       if (!gbNav4&&!gbIE4&&!gbOpera7&&!gbSafari)
-               document.location = "whnjs.htm";
-       else if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))
-               document.location = "whnjs.htm";
-       else if (gbMac && gbIE4 && !gbIE5)
-               document.location = "whnjs.htm";
-       //figure out which mode is the best
-       else 
-       {
-               nViewFrameType=nWebhelpNavPaneMode;
-               if (nWebhelpNavPaneMode==1||nWebhelpNavPaneMode == 2)
-               {
-                       var gbDHTML=(nWebhelpNavPaneMode==1);
-                       if (gbNav4)                                                                             nViewFrameType = 2;
-                       if (gbNav4&&(gnVerMinor < 4.1))                                         nViewFrameType = 3;
-                       if (gbNav4&&(gnVerMinor == 4.6))                                        nViewFrameType = 3;
-                       if (gbIE4&&gbDHTML)                                                                     nViewFrameType = 1;
-                       if (gbIE4&&gbSunOS&&nWebhelpNavPaneMode==2)                     nViewFrameType = 3;
-                       if (gbNav6&&gbDHTML)                                                            nViewFrameType = 1;
-                       if (gbNav6&&!gbNav61&&nWebhelpNavPaneMode == 2)         nViewFrameType = 3;
-                       if (gbMac)                                                                                      nViewFrameType = 3;
-                       if (gbOpera7&&nViewFrameType == 2)                                      nViewFrameType = 3;
-                       if ((bNoApplet)&&(nViewFrameType == 2))                         nViewFrameType = 3;
-               }
-       }
-}
-
-if (nViewFrameType!=-1)
-{
-       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));
-       //The colordepth of the 16 color on Windows is 1. 
-       if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))
-       {
-          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.");
-          nViewFrameType = 3;
-       }
-
-       //figure out which one is navpane
-       if (nViewFrameType == 1)
-               strPane = strPaneDHTML;
-       else if (nViewFrameType == 2)
-               strPane = strPaneApplet;
-       else 
-               strPane = strPaneList;
-
-       var oParam = new Object();
-       oParam.sTopic = "";
-       var oMsg = new whMessage(WH_MSG_GETDEFAULTTOPIC, window, 1, oParam);
-       if (SendMessage(oMsg) && oParam.sTopic != "")
-               strDefaultTopic =  oParam.sTopic;
-
-
-       if (nViewFrameType == 1)
-       {
-               //DHTML (iframe or xml based)
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" frameborder=\"1\">";
-               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane + "\" scrolling=\"no\"></frame>";
-               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
-       }
-       else if (nViewFrameType == 2)
-       {
-               //applet (xml based)
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" framespacing=\"0\" frameborder=\"0\" border=\"0\">";
-               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane+ "\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\"></frame>";
-               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
-       }
-       else if (nViewFrameType == 3)
-       {
-               //generic html (pure html based)
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\">";
-               strHTML += "<frame title=\"navigation frame\" src=\"" + strPane + "\" name=\"bsscleft\"  scrolling=\"no\"></frame>";
-               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" scrolling=\"auto\"></frame>";
-               strHTML += "</frameset>";
-       } 
-       else if (nViewFrameType == 4)
-       {
-               //no navipane at all
-               strHTML += "<frameset  id=\"whPfset\" border=\"0\" cols=\"100%,*\">";
-               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" framespacing=\"0\" frameborder=\"0\" border=\"0\" scrolling=\"auto\">";
-               strHTML += "</frameset>";
-       }
-
-       document.write(strHTML);
-
-       RegisterListener2(window, WH_MSG_SHOWPANE);
-       RegisterListener2(window, WH_MSG_HIDEPANE);
-       RegisterListener2(window, WH_MSG_ISPANEVISIBLE);
-       window.onunload = window_unload;
-}
-
-function window_unload()
-{
-       UnRegisterListener2(window, WH_MSG_SHOWPANE);
-       UnRegisterListener2(window, WH_MSG_HIDEPANE);
-       UnRegisterListener2(window, WH_MSG_ISPANEVISIBLE);
-}
-
-
-function onSendMessage(oMsg)
-{
-       var nMsgId = oMsg.nMessageId;
-       if (nMsgId == WH_MSG_SHOWPANE)
-       {
-               getElement("whPfset").cols = "260,*";
-               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");
-               SendMessage(onMsg);
-               onMsg = new whMessage(WH_MSG_GETPANEINFO, this, 1, "");
-               if (SendMessage(onMsg))
-               {
-                       onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, onMsg.oParam);
-                       SendMessage(onMsg);
-               }
-               return false;
-       }
-       else if (nMsgId == WH_MSG_HIDEPANE)
-       {
-               getElement("whPfset").cols = "0,*";
-               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "invisible");
-               SendMessage(onMsg);
-               onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, "");
-               SendMessage(onMsg);
-               return false;
-       }
-       else if (nMsgId == WH_MSG_ISPANEVISIBLE)
-       {
-               var n = parseInt(getElement("whPfset").cols);
-               if (n > 0)
-               {
-                       oMsg.oParam.bVisible = true;
-               }
-               return false;
-       }
-       return true;
-}
-//-->
-</script>
-<body>
-<noscript>
-       <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>
-</noscript>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/index_csh.htm b/doc/salome/gui/SMESH/index_csh.htm
deleted file mode 100755 (executable)
index 867d877..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whutils.js"></script>
-<script language="javascript">
-<!--
-var gCSHFileName   = "whc_data.htm";
-var gCSHSuffixName1 = "_csh.html";
-var gCSHSuffixName2 = "_csh.htm";
-//-->
-</script>
-<script language="javascript">
-<!--
-gCSHFileName="cshdat_webhelp.htm";
-//-->
-</script>
-<script language="javascript">
-<!--
-var gasProj = new Array();
-gasProj[0] = _getPath(document.location.href);
-var gCurrent = 0;
-
-function addProject(strProj)
-{
-       var len  = gasProj.length;
-       if (strProj)
-       {
-               strProj = _replaceSlash(strProj);
-               if (strProj.lastIndexOf("/") != strProj.length - 1)
-                       strProj += "/";
-               var strPPath = _getFullPath(_getPath(document.location.href), strProj);
-               var bFound = false;
-               for (var i = 0; i < len; i ++)
-               {
-                       if (isSamePath(gasProj[i], strPPath))
-                       {
-                               bFound = true;
-                               break;
-                       }
-               }
-               if (!bFound)
-                       gasProj[len] = strPPath;
-       }
-}
-
-function isSamePath(strPath1, strPath2)
-{
-       return strPath1.toLowerCase() == strPath2.toLowerCase();
-}
-
-function goNext()
-{
-       gCurrent ++;
-       var len = gasProj.length;
-       if (gCurrent >= len)
-               return getHomePage()
-       else
-               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;
-       return "";
-}
-
-function getRelHomePage(strLocation)
-{
-       var strCurPPath = _getPath(strLocation);
-       var strOriPPath = _getPath(getHomePage());
-       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);
-       var strURL = getHomePage() + "#" + strRelPath;
-       return strURL;
-}
-
-function getHomePage()
-{
-       var strHomePage;
-       var strTmp = location.toString();
-       var nPos = strTmp.indexOf("#");
-       if (nPos != -1)
-       {
-          strHomePage = strTmp.substring(0, nPos);
-       }
-       else
-       {
-          strHomePage = strTmp;
-       }
-       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);
-       var nPos = strHomePage.indexOf(gCSHSuffixName2);
-       if (nPos != -1)
-       {
-          strHomePage = strHomePage.substring(0,nPos);
-          if (nPos1 != -1)
-            strHomePage += ".html";
-          else
-            strHomePage += ".htm";
-       }
-       return strHomePage;
-}
-//-->
-</script>
-</head>
-<frameset rows="1,*">
-<frame name="dumb" src="about:blank"></frame>
-<frame name="csh" src="cshdat_webhelp.htm"></frame>            
-</frameset>
-</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
deleted file mode 100755 (executable)
index b751bd4..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whutils.js"></script>
-<script language="javascript">
-<!--
-var gCSHFileName   = "whc_data.htm";
-var gCSHSuffixName1 = "_rhc.html";
-var gCSHSuffixName2 = "_rhc.htm";
-//-->
-</script>
-<script language="javascript">
-<!--
-gCSHFileName="cshdat_robohelp.htm";
-//-->
-</script>
-<script language="javascript">
-<!--
-var gasProj = new Array();
-gasProj[0] = _getPath(document.location.href);
-var gCurrent = 0;
-
-function addProject(strProj)
-{
-       var len  = gasProj.length;
-       if (strProj)
-       {
-               strProj = _replaceSlash(strProj);
-               if (strProj.lastIndexOf("/") != strProj.length - 1)
-                       strProj += "/";
-               var strPPath = _getFullPath(_getPath(document.location.href), strProj);
-               var bFound = false;
-               for (var i = 0; i < len; i ++)
-               {
-                       if (isSamePath(gasProj[i], strPPath))
-                       {
-                               bFound = true;
-                               break;
-                       }
-               }
-               if (!bFound)
-                       gasProj[len] = strPPath;
-       }
-}
-
-function isSamePath(strPath1, strPath2)
-{
-       return strPath1.toLowerCase() == strPath2.toLowerCase();
-}
-
-function goNext()
-{
-       gCurrent ++;
-       var len = gasProj.length;
-       if (gCurrent >= len)
-               return getHomePage()
-       else
-               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;
-       return "";
-}
-
-function getRelHomePage(strLocation)
-{
-       var strCurPPath = _getPath(strLocation);
-       var strOriPPath = _getPath(getHomePage());
-       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);
-       var strURL = getHomePage() + "#" + strRelPath;
-       return strURL;
-}
-
-function getHomePage()
-{
-       var strHomePage;
-       var strTmp = location.toString();
-       var nPos = strTmp.indexOf("#");
-       if (nPos != -1)
-       {
-          strHomePage = strTmp.substring(0, nPos);
-       }
-       else
-       {
-          strHomePage = strTmp;
-       }
-       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);
-       var nPos = strHomePage.indexOf(gCSHSuffixName2);
-       if (nPos != -1)
-       {
-          strHomePage = strHomePage.substring(0,nPos);
-          if (nPos1 != -1)
-            strHomePage += ".html";
-          else
-            strHomePage += ".htm";
-       }
-       return strHomePage;
-}
-//-->
-</script>
-</head>
-<frameset rows="1,*">
-<frame name="dumb" src="about:blank"></frame>
-<frame name="csh" src="cshdat_robohelp.htm"></frame>           
-</frameset>
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/1d_meshing_hypo.doc b/doc/salome/gui/SMESH/input/1d_meshing_hypo.doc
new file mode 100644 (file)
index 0000000..716ddd9
--- /dev/null
@@ -0,0 +1,167 @@
+/*!
+
+\page a1d_meshing_hypo_page 1D Meshing Hypotheses
+
+<br>
+<ul>
+<li>\ref arithmetic_1d_anchor "Arithmetic 1D"</li>
+<li>\ref average_length_anchor "Average Length"</li>
+<li>\ref deflection_1d_anchor "Deflection 1D"</li>
+<li>\ref number_of_segments_anchor "Number of segments"</li>
+<li>\ref start_and_end_length_anchor "Start and end length"</li>
+<li>\ref automatic_length_anchor "Automatic Length"</li>
+</ul>
+
+<br>
+\anchor arithmetic_1d_anchor
+<h2>Arithmetic 1D hypothesis</h2>
+
+<b>Arithmetic 1D</b> hypothesis allows to split edges into segments with a
+length that changes in arithmetic progression (Lk = Lk-1 + d)
+beginning from a given starting length and up to a given end length.
+
+\image html a-arithmetic1d.png
+
+\image html b-ithmetic1d.png
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_1d_arithmetic "Defining Arithmetic 1D hypothesis" operation.  
+
+<br>
+\anchor deflection_1d_anchor
+<h2>Deflection 1D hypothesis</h2>
+
+<b>Deflection 1D</b> hypothesis can be applied for meshing curvilinear edges
+composing your geometrical object. It uses only one parameter: the
+value of deflection.  
+\n A geometrical edge is divided into equal segments. The maximum
+distance between a point on the edge within a segment and the line
+connecting the ends of the segment should not exceed the specified
+value of deflection . Then mesh nodes are constructed at end segment
+locations and 1D mesh elements are constructed on segments.
+
+\image html a-deflection1d.png
+
+\image html b-flection1d.png
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_deflection_1d "Defining Deflection 1D hypothesis" operation.
+
+<br>
+\anchor average_length_anchor
+<h2>Average Length hypothesis</h2>
+
+<b>Average Length</b> hypothesis can be applied for meshing of edges
+composing your geometrical object. Definition of this hypothesis
+consists of setting the \b length of segments, which will split these
+edges, and the \b precision of rounding. The points on the edges
+generated by these segments will represent nodes of your mesh.
+Later these nodes will be used for meshing of the faces abutting to
+these edges.
+
+The \b precision parameter is used to allow rounding a number of
+segments, calculated from the edge length and average length of
+segment, to the lower integer, if this value outstands from it in
+bounds of the precision. Otherwise, the number of segments is rounded
+to the higher integer. Use value 0.5 to provide rounding to the
+nearest integer, 1.0 for the lower integer, 0.0 for the higher
+integer. Default value is 1e-07.
+
+\image html image41.gif
+
+\image html a-averagelength.png
+
+\image html b-erage_length.png
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_average_length "Defining Average Length" hypothesis
+operation.
+
+<br>
+\anchor number_of_segments_anchor
+<h2>Number of segments hypothesis</h2>
+
+<b>Number of segments</b> hypothesis can be applied for meshing of edges
+composing your geometrical object. Definition of this hypothesis
+consists of setting the number of segments, which will split these
+edges. In other words your edges will be split into a definite number
+of segments with approximately the same length. The points on the
+edges generated by these segments will represent nodes of your
+mesh. Later these nodes will be used for meshing of the faces abutting
+to these edges.
+
+\image html image46.gif
+
+You can set the type of distribution for this hypothesis in the
+<b>Hypothesis Construction</b> dialog bog :
+
+\image html a-nbsegments1.png
+
+<br><b>Equidistant Distribution</b> - all segments will have the same
+length, you define only the <b>Number of Segments</b>.
+
+\image html b-mberofsegments.png
+
+<br><b>Scale Distribution</b> - each next segment differs from the
+previous according to the formula: <b>A</b>i+1 = <b>A</b>i * k, where \b k is a
+<b>Scale Factor</b>.
+
+\image html a-nbsegments2.png
+
+<br><b>Distribution with Table Density</b> - you input a number of
+pairs <b>t - F(t)</b>, where \b t ranges from 0 to 1,  and the module computes the
+formula, which will rule the change of length of segments and shows
+the curve in the plot. You can select the <b>Conversion mode</b> from
+\b Exponent and <b>Cut negative</b>.
+
+\image html distributionwithtabledensity.png
+
+<br><b>Distribution with Analytic Density</b> - you input the formula,
+which will rule the change of length of segments and the module shows
+the curve in the plot.
+
+\image html distributionwithanalyticdensity.png
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_deflection_1d "Defining Number of Segments" hypothesis
+operation.
+
+<br>
+\anchor start_and_end_length_anchor
+<h2>Start and End Length hypothesis</h2>
+
+<b>Start and End Length</b> hypothesis allows to divide a geometrical edge
+into segments so that the first and the last segments have a specified
+length. The length of each but the first segment differs from length
+of the previous one by a constant factor. Then mesh nodes are
+constructed at segment ends location and 1D mesh elements are
+constructed on them.
+
+\image html a-startendlength.png
+
+\image html b-art_end_length.png
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_start_and_end_length "Defining Start and End Length"
+hypothesis operation.
+
+<br>
+\anchor automatic_length_anchor
+<h2>Automatic Length</h2>
+
+This hypothesis is automatically applied when you select <b>Assign a
+set of hypotheses</b> option in Create Mesh menu.
+
+\image html automaticlength.png
+
+The dialog box prompts you to define the quality of the future mesh by
+only one parameter, which is \b Fineness, ranging from 0 (coarse mesh,
+low number of elements) to 1 (extremely fine mesh, great number of
+elements). Compare one and the same object (sphere) meshed with
+minimum and maximum value of this parameter.
+
+\image html image147.gif
+
+\image html image148.gif
+
+*/
diff --git a/doc/salome/gui/SMESH/input/2d_meshing_hypo.doc b/doc/salome/gui/SMESH/input/2d_meshing_hypo.doc
new file mode 100644 (file)
index 0000000..05ab6dd
--- /dev/null
@@ -0,0 +1,51 @@
+/*!
+
+\page a2d_meshing_hypo_page 2D Meshing Hypotheses
+
+<br>
+<ul>
+<li>\ref max_element_area_anchor "Max Element Area"</li>
+<li>\ref length_from_edges_anchor "Length from Edges"</li>
+<li>\ref quadrangle_preference_anchor "Quadrangle Preference"</li>
+</ul>
+
+<br>
+\anchor max_element_area_anchor
+<h2>Max Element Area</h2>
+
+<b>Max Element Area</b> hypothesis is applied for meshing of 2D faces
+composing your geometrical object. Definition of this hypothesis
+consists of setting the <b>maximum area</b> of meshing elements (depending on
+the chosen meshing algorithm it can be <b>triangles</b> or <b>quadrangles</b>),
+which will compose the mesh of these 2D faces.
+
+\image html a-maxelarea.png
+
+\image html max_el_area.png
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_max_element_area "Maximum Element Area" hypothesis
+operation. 
+
+<br>
+\anchor length_from_edges_anchor
+<h2>Length from Edges</h2>
+
+<b>Length from edges</b> hypothesis builds 2D mesh segments having a
+length calculated as an average edge length for a given wire.
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_length_from_edges "Length from Edges" hypothesis operation.
+
+<br>
+\anchor quadrangle_preference_anchor
+<h2>Quadrangle Preference</h2>
+
+This algorithm can be used only together with Quadrangle (Mapping)
+algorithm. It allows to build quadrangular meshes even if the number
+of nodes at the opposite edges of a meshed face is not equal,
+otherwise this mesh will contain some triangular elements.
+<br>
+This hypothesis has one restriction on its work: the total quantity of
+segments on all four sides of the face must be even (divisible by 2).
+*/
diff --git a/doc/salome/gui/SMESH/input/about_hypo.doc b/doc/salome/gui/SMESH/input/about_hypo.doc
new file mode 100644 (file)
index 0000000..40b8ff5
--- /dev/null
@@ -0,0 +1,52 @@
+/*!
+
+\page about_hypo_page About Hypotheses
+
+\n \b Hypotheses represent boundary conditions which will be taken into
+account at calculations of meshes or submeshes basing on geometrical
+objects. These hypotheses allow you to manage the level of detail of
+the resulting meshes or submeshes: when applying different hypotheses
+with different parameters you can preset the quantity of meshing
+elements which will compose your mesh. So, it will be possible to
+generate a rough or a more refined mesh or submesh.
+
+In \b MESH there are the following Basic Hypotheses (to introduce
+them, you operate numerical values):
+<ul>
+<li>\ref a1d_meshing_hypo_page "1D Hypotheses" (for meshing of 
+<b>edges</b>):</li>
+<ul>
+<li>\ref arithmetic_1d_anchor "Arithmetic 1D"</li>
+<li>\ref average_length_anchor "Average Length"</li>
+<li>\ref deflection_1d_anchor "Deflection 1D"</li>
+<li>\ref number_of_segments_anchor "Number of segments"</li>
+<li>\ref start_and_end_length_anchor "Start and end length"</li>
+<li>\ref automatic_length_anchor "Automatic Length"</li>
+</ul>
+<li>\ref a2d_meshing_hypo_page "2D Hypotheses" (for meshing of <b>faces</b>):</li>
+<ul>
+<li>\ref max_element_area_anchor "Max Element Area"</li>
+<li>\ref length_from_edges_anchor "Length from Edges"</li>
+<li>\ref quadrangle_preference_anchor "Quadrangle Preference"</li>
+</ul>
+<li>3D Hypothesis (for meshing of <b>volumes</b>):</li>
+<ul>
+<li>\ref max_element_volume_hypo_page "Max Element Volume"</li>
+</ul>
+</ul>
+
+There also exist some 
+\ref additional_hypo_page "Additional Hypotheses":
+<ul>
+<li>Propagation of 1D Hypothesis on opposite edges</li>
+<li>Non conform mesh allowed</li>
+<li>Quadratic mesh</li>
+</ul>
+
+The choice of a hypothesis depends on:
+<ul>
+<li>the geometrical object (shape) which will be meshed</li>
+<li>the algorithm, which will be selected for meshing of this geometrical object (shape)</li>
+</ul>
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/about_meshes.doc b/doc/salome/gui/SMESH/input/about_meshes.doc
new file mode 100644 (file)
index 0000000..3864329
--- /dev/null
@@ -0,0 +1,86 @@
+/*!
+
+\page about_meshes_page About meshes
+
+\n \b MESH represents a discretization of a geometrical CAD model into
+a set of entities with a simple topology. In MESH there are two
+options of creation of meshes, you can:
+
+<ul>
+<li>generate meshes on the basis of geometrical shapes produced in the GEOM module,</li>
+<li>create your own meshes using the MESH functions destined for modification of generated meshes.</li>
+</ul>
+
+The topology of a mesh is described by the relationships between its
+entities including:
+
+<ul>
+<li>\b Node &mdash; 0D object of a mesh presented by a point with coordinates (x, y, z).</li>
+<li>\b Edge &mdash; 1D element of a mesh defined by two nodes.</li>
+<li>\b Face &mdash; 2D element of a mesh defined by three or four edges (closed contour).</li>
+<li>\b Volume &mdash; 3D element of a mesh defined by several faces.</li>
+</ul>
+
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;These entities are
+considered as topological entities and they don't
+imply any geometric representation. Only \b Nodes reference  geometric
+representations of points with definite coordinates. The node entity
+will contain  additional information about its position in the space
+and its relations with the meshed CAD model. Its position could be
+described in the following way:
+
+<ul>
+<li><b>2D position</b>. It is a free position defined by only two coordinates x,y.</li>
+<li><b>3D position</b>. It is a free position defined by three coordinates x,y and z. </li>
+<li><b>Surface position</b>. It characterizes the position of a node on a
+geometric surface and is defined by the u,v position in the parametric
+space of the corresponding surface.</li>
+<li><b>Line position</b>. It characterizes the position of a node on a
+geometric curve and is defined by the u parameter and the
+corresponding curve.</li>
+<li><b>Vertex position</b>. It characterizes the position of a node on a
+geometric point of the meshed CAD model and is defined by the x,y,z
+coordinates of the corresponding vertex.</li>
+</ul>
+
+<br><h2>Connections</h2>
+
+Each mesh entity bounds 0 or more mesh entities of higher
+dimension. In the same way each mesh entity is bounded by 0 or more
+mesh entities of lower dimension:
+
+<ul>
+<li>A node bounds edges, faces and volumes</li>
+<li>An edge bounds faces, and volumes</li>
+<li>A face bounds volumes</li>
+<li>A volume is bounded by faces, edges and nodes</li>
+<li>A face is bounded by edges, and nodes</li>
+<li>An edge is bounded by nodes</li>
+</ul>
+
+You can notice that there are two types of connections: \b inverse and
+\b direct connections.
+
+<br><h2>Inverse connections</h2>
+
+This relationship has a particularity that the order of bounded
+entities has not a direct meaning. Also the number of bounded entities
+is not fixed.
+
+\b Example: The edges surrounding a node. The 3rd edge has no more
+sense that the 5th one.
+
+<br><h2>Direct connections</h2>
+
+This relationship has a particularity that the order of bounding
+entities is meaningful. The number of bounding entities is fixed and
+depends on the type of the entity (hexahedron, tetrahedron,?).
+
+\b Example: An edge is composed of two nodes. A face is composed of 3
+or 4 edges depending if we are dealing with triangles or quadrangles.
+
+The connections are not only restricted to entities of one dimension
+higher or lower. For example some algorithms may be interested to
+retrieve all the faces surrounding a node.
+
+*/
diff --git a/doc/salome/gui/SMESH/input/about_quality_controls.doc b/doc/salome/gui/SMESH/input/about_quality_controls.doc
new file mode 100644 (file)
index 0000000..f197bae
--- /dev/null
@@ -0,0 +1,44 @@
+/*!
+
+\page about_quality_controls_page About quality controls
+
+\n <b>Mesh quality control</b> in MESH is destined for visual control of the generated mesh.
+
+Application of a definite quality control consists of usage of the
+corresponding algorithm, which calculates a value of a definite
+geometric characteristic (Area, Length of edges, etc) for all meshing
+elements, composing your mesh. Then all meshing elements are colored
+according the calculated values. The reference between the coloring of
+the meshing elements and these calculated values is shown with the
+help of a scalar bar, which is displayed near the presentation of your
+mesh.
+
+There are 1D, 2D and 3D quality controls.
+
+1D mesh quality controls:
+<ul>
+<li>\ref free_borders_page "Free borders"</li>
+<li>\ref borders_at_multi_connection_page "Borders at multi-connection"</li>
+<li>\ref length_page "Length"</li>
+</ul>
+
+2D mesh quality controls:
+<ul>
+<li>\ref free_edges_page "Free edges"</li>
+<li>\ref length_2d_page "Length 2D"</li>
+<li>\ref borders_at_multi_connection_2d_page "Borders at multi-connection 2D"</li>
+<li>\ref area_page "Area"</li>
+<li>\ref taper_page "Taper"</li>
+<li>\ref aspect_ratio_page "Aspect ratio"</li>
+<li>\ref minimum_angle_page "Minimum angle"</li>
+<li>\ref warping_page "Warping"</li>
+<li>\ref skew_page "Skew"</li>
+</ul>
+
+3D mesh quality controls:
+<ul>
+<li>\ref aspect_ratio_3d_page "Aspect ratio 3D"</li>
+<li>\ref volume_page "Volume"</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/adding_nodes_and_elements.doc b/doc/salome/gui/SMESH/input/adding_nodes_and_elements.doc
new file mode 100644 (file)
index 0000000..f55d75d
--- /dev/null
@@ -0,0 +1,140 @@
+/*!
+
+\page adding_nodes_and_elements_page Adding nodes and elements
+
+\n In MESH you can add to your mesh different elements such as:
+
+<ul>
+<li>\ref adding_nodes_anchor "Nodes"</li>
+<li>\ref adding_edges_anchor "Edges"</li>
+<li>\ref adding_triangles_anchor "Triangles"</li>
+<li>\ref adding_quadrangles_anchor "Quadrangles"</li>
+<li>\ref adding_polygons_anchor "Polygons"</li>
+<li>\ref adding_tetrahedrons_anchor "Tetrahedrons"</li>
+<li>\ref adding_hexahedrons_anchor "Hexahedrons"</li>
+<li>\ref adding_polyhedrons_anchor "Polyhedrons"</li>
+</ul>
+
+<em>To add a node or an element to your mesh:</em>
+<ol>
+<li>Select your mesh in the Object Browser or in the 3D viewer.</li>
+
+<li>From the \b Modification menu choose the \b Add item, the
+following associated submenu will appear:</li>
+
+\image html image146.gif
+
+From this submenu select the type of element which you would like to add to your mesh.
+</ol>
+
+<b>See Also</b> sample TUI Scripts of  
+\ref tui_adding_nodes_and_elements "Adding Nodes and Elements"
+operations.  
+
+<br>
+\anchor adding_nodes_anchor
+<h2>Adding nodes</h2>
+
+\image html addnode.png
+
+In this dialog box set coordinates for your node in the \b Coordinates
+set of fields and click the \b Apply or \b OK button. Your node will be
+created:
+
+\image html add_node.png
+
+<br>
+\anchor adding_edges_anchor
+<h2>Adding edges</h2>
+
+\image html addedge.png
+
+In this dialog box specify the nodes which will form your edge by
+selecting them in the 3D viewer with pressed Shift button and click
+the \b Apply or \b OK button. Your edge will be created:
+
+\image html add_edge.png
+
+<br>
+\anchor adding_triangles_anchor
+<h2>Adding triangles</h2>
+
+\image html addtriangle.png
+
+In this dialog box specify the nodes which will form your triangle by
+selecting them in the 3D viewer with pressed Shift button and click
+the \b Apply or \b OK button. Your triangle will be created:
+
+\image html add_triangle.png
+
+<br>
+\anchor adding_quadrangles_anchor
+<h2>Adding quadrangles</h2>
+
+\image html addquadrangle.png
+
+In this dialog box specify the nodes which will form your quadrangle
+by selecting them in the 3D viewer with pressed Shift button and click
+the \b Apply or \b OK button. Your quadrangle will be created:
+
+\image html add_quadrangle.png
+
+<br>
+\anchor adding_polygons_anchor
+<h2>Adding polygons</h2>
+
+\image html addpolygon.png
+
+In this dialog box specify the nodes which will form your polygon by
+selecting them in the 3D viewer with pressed Shift button and click
+the \b Apply or \b OK button.
+
+\image html add_polygone.png
+
+<br>
+\anchor adding_tetrahedrons_anchor
+<h2>Adding tetrahedrons</h2>
+
+\image html addtetrahedron.png
+
+In this dialog box specify the nodes which will form your tetrahedron
+by selecting them in the 3D viewer with pressed Shift button and click
+the \b Apply or \b OK button. Your tetrahedron will be created:
+
+\image html image70.jpg
+
+<br>
+\anchor adding_hexahedrons_anchor
+<h2>Adding hexahedrons</h2>
+
+\image html addhexahedron.png
+
+In this dialog box specify the nodes which will form your hexahedron
+by selecting them in the 3D viewer with pressed Shift button and click
+the \b Apply or \b OK button. Your hexahedron will be created:
+
+\image html image71.jpg
+
+<br>
+\anchor adding_polyhedrons_anchor
+<h2>Adding polyhedrons</h2>
+
+\image html a-createpolyhedralvolume.png
+
+There are two different ways to add polyhedral volumes. 
+\n If you select \b Node as <b>Elements Type</b> you will specify the
+nodes which will form the faces of your polyhedron by selecting the
+nodes in the 3D viewer with pressed Shift button and clicking the \b
+Add button to add the face in the list of Faces by Nodes, which will
+form your polyhedron. Note, that it could be very useful to toggle
+Polyhedron Preview checkbox to see the results of your selection.
+\n The second way is somewhat simpler, however, there are cases when
+it does not provide you with the necessary level of precision. If you
+select \b Face as <b>Elements Type</b>, you will be able to select the faces
+which will form your polyhedron in the 3D viewer with pressed Shift
+button. If you've managed to obtain the necessary result, click the
+\b Apply or \b OK button. Your polyhedron will be created:
+
+\image html add_polyhedron.png
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/adding_quadratic_elements.doc b/doc/salome/gui/SMESH/input/adding_quadratic_elements.doc
new file mode 100644 (file)
index 0000000..50d8eaf
--- /dev/null
@@ -0,0 +1,41 @@
+/*!
+
+\page adding_quadratic_elements_page Adding Quadratic Elements
+
+\n MESH modules allows you to work with <b>Quadratic Elements</b>.
+
+Quadratic Edge is not a straight but a broken line and can be defined
+by three points: first, middle and last. All more complex \b Quadratic
+\b Elements differ from ordinary ones in that they consist of Quadratic
+Edges.
+
+<em>To add a quadratic element to your mesh:</em>
+<ol>
+<li>Select your mesh in the Object Browser or in the 3D viewer.</li>
+
+<li>From the \b Modification menu choose the \b Add item and select
+one of the following:
+
+\image html image152.gif
+
+To create any <b>Quadratic Element</b> specify the nodes which will form your
+triangle by selecting them in the 3D viewer with pressed Shift
+button. Their numbers will appear in the dialog box as <b>Corner Nodes</b>
+(alternatively you can just input numbers in this field without
+selection).The edges formed by the corner nodes will appear in the
+table. To define the middle nodes for each edge double-click on the
+respective field and input the number of the node. All edges and the
+object formed by them will be displayed in the Object browser. When
+all edges are defined you will be able to click \b OK or \b Apply button to
+add the element to the mesh.
+
+\image html aqt.png
+
+\b Reverse button for Quadratic Edges switches the first and the last
+nodes. For all other elements it reverses the element.
+</li>
+</ol>
+
+
+
+*/
diff --git a/doc/salome/gui/SMESH/input/additional_hypo.doc b/doc/salome/gui/SMESH/input/additional_hypo.doc
new file mode 100644 (file)
index 0000000..9687bdf
--- /dev/null
@@ -0,0 +1,35 @@
+/*!
+
+\page additional_hypo_page Additional Hypotheses
+
+\n <b>Additional Hypotheses</b> can be applied as a supplement to the
+main hypotheses, introducing additional concepts to mesh creation.
+
+To define an <b>Additional Hypothesis</b> simply select it in
+<b>Create Mesh</b> menu. These hypotheses are actually changes in the
+rules of mesh creation and as such don't possess adjustable values.
+
+<h2>Non Conform mesh allowed hypothesis</h2>
+
+<b>Non Conform mesh allowed</b> hypothesis allows to generate non-conform
+meshes (that is, meshes having some edges ending on an edge or face of
+adjacent elements).
+
+<h2>Quadratic Mesh</h2>
+
+Quadratic Mesh hypothesis allows to build a quadratic mesh (whose
+edges are not straight but broken lines and can be defined by three
+points: first, middle and last) instead of an ordinary one.
+
+<h2>Propagation of 1D Hypothesis on opposite edges</h2>
+
+<b>Propagation of 1D Hypothesis on opposite edges</b> allows to propagate a
+hypothesis onto an opposite edge. If a local hypothesis and
+propagation are defined on an edge of a quadrangular face, the
+opposite edge will have the same hypothesis, unless another hypothesis
+has been locally defined on the opposite edge.
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_propagation "Propagation hypothesis" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/area.doc b/doc/salome/gui/SMESH/input/area.doc
new file mode 100644 (file)
index 0000000..553b9e9
--- /dev/null
@@ -0,0 +1,29 @@
+/*!
+
+\page area_page Area
+
+\n \b Area mesh quality control is based on the algorithm of area
+calculation of  meshing elements. It can be applied to meshes
+consisting of 2D meshing elements with 3 and 4 nodes (triangles and
+quadrangles).
+
+<em>To apply the Area quality control to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Area</b> or click <em>"Area"</em> button. 
+
+\image html image35.gif
+<center><em>"Area" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image5.jpg
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of an 
+\ref tui_area "Area quality control" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/aspect_ratio.doc b/doc/salome/gui/SMESH/input/aspect_ratio.doc
new file mode 100644 (file)
index 0000000..660b94c
--- /dev/null
@@ -0,0 +1,44 @@
+/*!
+
+\page aspect_ratio_page Aspect Ratio
+
+\n The <b>Aspect Ratio</b> quality criterion for mesh elements reveals
+the degree of conformity of a mesh element to the regular element of
+its type (with all edges having the same length).
+
+  
+
+- The <b>Aspect Ratio</b> of a \b triangle 2D element consisting of 3
+nodes is calculated by the formula:
+
+\image html formula4.png
+
+- The <b>Aspect Ratio</b> of a \b quadrangle 2D element consisting of
+ 4 nodes is the worst (i.e. the greatest) value from all triangles
+ which can be built taking three nodes of the quadrangle. There are
+ four triangles to consider:
+
+\image html image138.gif
+
+<em>To apply the Aspect Ratio quality criterion to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Aspect Ratio</b> or click <em>"Aspect
+Ratio"</em> button in the toolbar.
+
+\image html image37.gif
+<center><em>"Aspect Ratio" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image94.jpg
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of an 
+\ref tui_aspect_ratio "Aspect Ratio quality control" operation.
+
+*/
+
diff --git a/doc/salome/gui/SMESH/input/aspect_ratio_3d.doc b/doc/salome/gui/SMESH/input/aspect_ratio_3d.doc
new file mode 100644 (file)
index 0000000..1f57322
--- /dev/null
@@ -0,0 +1,40 @@
+/*!
+
+\page aspect_ratio_3d_page Aspect ratio 3D
+
+\n The <b>Aspect Ratio 3D</b> mesh quality criterion calculates the same
+parameter as the \ref aspect_ratio_page "Aspect ratio" criterion, but
+it is applied to 3D mesh elements: tetrahedrons, pentahedrons,
+hexahedrons, etc.
+
+- The <b>Aspect Ratio</b> of a \b tetrahedron 3D element is calculated
+by the formula:
+
+\image html formula1.png
+
+- Other element types like polyhedron, pentahedron and hexahedron use
+  the following formula:
+
+\image html formula2.png
+
+<em>To apply the Aspect Ratio 3D quality criterion to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Aspect Ratio 3D</b> or click <em>"Aspect Ratio 3D"</em> 
+button of the toolbar.
+
+\image html image144.gif
+<center><em>"Aspect Ratio 3D" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image86.jpg
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_aspect_ratio_3d "Aspect Ratio 3D quality control" operation. 
+
+*/
diff --git a/doc/salome/gui/SMESH/input/basic_meshing_algos.doc b/doc/salome/gui/SMESH/input/basic_meshing_algos.doc
new file mode 100644 (file)
index 0000000..fa17725
--- /dev/null
@@ -0,0 +1,61 @@
+/*!
+
+\page basic_meshing_algos_page Basic meshing algorithms
+
+\n The MESH module contains a set of meshing algorithms, which are
+used for meshing entities (1D, 2D, 3D) composing geometrical objects.
+
+<ul>
+<li>For meshing of 1D entities (<b>edges</b>):</li>
+
+<ul>
+<li>Wire Discretisation meshing algorithm - splits a wire into a
+number of mesh segments following any 1D hypothesis.</li>
+<li>Composite Side Discretisation algorithm - allows to apply any 1D
+hypothesis to a whole side of a geometrical face even if it is
+composed of several edges provided that they form C1 curve, have the
+same hypotheses assigned and form one side in all faces of the main
+shape of a mesh.</li>
+</ul>
+
+<li>For meshing of 2D entities (<b>faces</b>):</li>
+
+<ul>
+<li>Triangle meshing algorithms (Mefisto and Netgen 1D-2D ) - Faces
+are split into triangular elements.</li>
+<li>Quadrangle meshing algorithm (Mapping) - Faces are split into
+quadrangular elements.</li>
+</ul>
+
+\image html image123.gif
+
+\image html image124.gif
+
+<li>For meshing of 3D entities (<b>volume objects</b>):</li>
+
+<ul>
+<li>Hexahedron meshing algorithm (i,j,k) - Volumes are split into
+hexahedral (cubic) elements.</li>
+<li>Tetrahedron (Netgen) meshing algorithm - Volumes are split into
+tetrahedral (pyramidal) elements.</li>
+</ul>
+
+\image html image125.gif
+
+\image html image126.gif
+</ul>
+
+There also is a number of more specific algorithms:
+<ul>
+<li>\ref projection_algos_page "for meshing by projection of another mesh"</li>
+<li>\ref radial_prism_algo_page "for meshing geometrical objects with cavities"</li>
+<li>\ref prism_3d_algo_page "for meshing prismatic shapes"</li>
+</ul>
+
+\ref constructing_meshes_page "Constructing meshes" page describes in
+detail how to apply meshing algorithms.
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_defining_meshing_algos "Define Meshing Algorithm" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/borders_at_multi_connection.doc b/doc/salome/gui/SMESH/input/borders_at_multi_connection.doc
new file mode 100644 (file)
index 0000000..8f92d39
--- /dev/null
@@ -0,0 +1,16 @@
+/*!
+
+\page borders_at_multi_connection_page Borders at multi-connection
+
+\n This mesh quality control highlights borders of faces consisting of
+edges belonging to several faces. The amount of faces is specified by
+user.
+
+\image html image151.gif
+
+In this picture the borders at multi-connection are displayed in blue.
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_borders_at_multiconnection "Borders at Multi-Connection quality control" operation.
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/borders_at_multi_connection_2d.doc b/doc/salome/gui/SMESH/input/borders_at_multi_connection_2d.doc
new file mode 100644 (file)
index 0000000..a0fe042
--- /dev/null
@@ -0,0 +1,13 @@
+/*!
+
+\page borders_at_multi_connection_2d_page Borders at multi-connection 2D
+
+\n This mesh quality control highlights borders of elements of mesh,
+consisting of edges belonging to several elements of mesh.
+
+\image html image127.gif
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_borders_at_multiconnection_2d "Borders at Multi-Connection quality control" operation.
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/building_compounds.doc b/doc/salome/gui/SMESH/input/building_compounds.doc
new file mode 100644 (file)
index 0000000..5905565
--- /dev/null
@@ -0,0 +1,46 @@
+/*!
+
+\page building_compounds_page Building Compounds
+
+\n Compound Mesh is a combination of several meshes.
+
+<em>To Build a compound:</em>
+
+\par
+From the \b Mesh menu select <b>Build Compound</b> or click <em>"Build
+Compound Mesh"</em> button in the toolbar.
+
+\image html image161.gif
+<center><em>"Build Compound Mesh" button</em></center>
+
+\par
+The following dialog box will appear:
+
+\image html buildcompound.png
+
+\par
+<ul>
+<li>\b Name - allows selecting the name of the resulting \b Compound.</li>
+<li>\b Meshes - allows selecting the meshes which will be
+concatenated. They can be chosen in the Object Browser while holding
+\b Ctrl button.</li>
+<li><b>Processing identical groups</b> - allows selecting the method
+of processing the namesake existing on the united meshes.
+\n They can be either</li>
+<ul>
+<li>\b United - all elements of Group1 on Mesh_1 and Group1 on Mesh_2
+become the elements of Group1 on the Compound_Mesh, or</li>
+<li>\b Renamed - Group1 on Mesh_1 becomes Group1_1 and Group1 on Mesh_2
+becomes Group1_2. See \ref grouping_elements_page "Creating Groups"
+for more information about groups.</li>
+</ul>
+<li>You can simply unite meshes or choose to <b>Merge coincident nodes
+and elements</b>, in which case it is possible to define the \b Tolerance
+for this operation.</li>
+</ul>
+
+\n <b>Example:</b>
+
+\image html image160.gif
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/changing_orientation_of_elements.doc b/doc/salome/gui/SMESH/input/changing_orientation_of_elements.doc
new file mode 100644 (file)
index 0000000..5cd4e48
--- /dev/null
@@ -0,0 +1,44 @@
+/*!
+
+\page changing_orientation_of_elements_page Changing orientation of elements
+
+\n Orientation of an element is changed by reverting the order of
+nodes of the selected elements.
+
+<em>To change orientation of elements:</em>
+<ol>
+<li>Display a mesh or a submesh in the 3D viewer.</li>
+<li>In the \b Modification menu select the \b Orientation item or click
+<em>Orientation</em> button in the toolbar.
+
+\image html image79.gif
+<center><em>"Orientation" button</em></center>
+
+The following dialog box will appear:
+
+\image html orientaation1.png
+
+<ul>
+<li><b>The main list</b> shall contain the elements which will be
+reoriented. You can click on an element in the 3D viewer and it will
+be highlighted. After that click the \b Add button and the ID of this
+element will be added to the list. To remove a selected element or
+elements from the list click the \b Remove button. The \b Sort button
+allows to sort the list of elements IDs. The <b>Set filter</b> button
+allows to apply a definite filter to selection of elements of your
+group.</li>
+<li><b>Apply to all</b> radio button allows to modify the orientation
+of all elements of the currently displayed mesh or submesh.</li>
+<li><b>Select from</b> set of fields allows to choose a submesh or an
+existing group whose elements will be automatically added to the
+list.</li>
+</ul>
+
+</li>
+<li>Click the \b Apply or \b OK button to confirm the operation.</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_orientation "Change Orientation" operation. 
+
+*/
diff --git a/doc/salome/gui/SMESH/input/clipping.doc b/doc/salome/gui/SMESH/input/clipping.doc
new file mode 100644 (file)
index 0000000..858789e
--- /dev/null
@@ -0,0 +1,28 @@
+/*!
+
+\page clipping_page Clipping
+
+\n Using this menu you can create cross-section views (clipping planes)
+of your mesh.
+
+To start, click on the \em New button.
+
+\image html a-clipping2.png
+
+Now you can define the parameters of your cross-section: \b Orientation
+(X-Y, X-Z or Y-Z); \b Distance between the opposite extremities of the
+object, if it is set to 0.5 the object is split in two halves; and
+\b Rotation (in angle degrees) <b>around X</b> (Y to Z) and <b>around Y</b> (X to
+Z). If the <b>Show preview</b> button is on, you can see the clipping plane
+in the <b>3D Viewer</b>.
+
+\image html image79.jpg
+
+If the <b>Auto Apply</b> button is on, you can preview the
+cross-section in the <b>3D Viewer</b>.
+
+\image html image99.gif
+
+To get a new object from \b Clipping, click \b Ok.
+
+*/
diff --git a/doc/salome/gui/SMESH/input/constructing_groups_of_specific_elements.doc b/doc/salome/gui/SMESH/input/constructing_groups_of_specific_elements.doc
new file mode 100644 (file)
index 0000000..654b6aa
--- /dev/null
@@ -0,0 +1,17 @@
+/*!
+
+\page constructing_groups_of_specific_elements_page Constructing groups of specific elements
+
+\n In MESH you can easily construct groups of specific elements (nodes,
+edges, faces or volumes) which will be taken from a definite submesh.
+
+<em>To construct a group of specific elements:</em>
+
+\par
+Right-click on a submesh in the Object Browser and choose the
+<b>Construct Group</b> item or select your submesh in the Object Browser and
+in the \b Mesh menu choose the <b>Construct Group</b> item. MESH will construct
+several groups consisting of elements of the definite type: nodes,
+edges, faces or volumes.
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/constructing_meshes.doc b/doc/salome/gui/SMESH/input/constructing_meshes.doc
new file mode 100644 (file)
index 0000000..995ee43
--- /dev/null
@@ -0,0 +1,112 @@
+/*!
+
+\page constructing_meshes_page Constructing meshes
+
+\n Construction of a mesh consists of:
+<ul>
+<li>Selecting a geometrical object for meshing</li>
+<li>Applying \ref basic_meshing_algos_page "meshing algorithms" and
+\ref about_hypo_page "hypotheses" which will be used at computation of
+this mesh.</li>
+</ul>
+
+<em>To construct a mesh:</em>
+<ol>
+<li>In the \b Mesh menu select <b>Create Mesh</b> or click <em>"Create
+Mesh"</em> button in the toolbar. 
+
+\image html image32.gif
+<center><em>"Create Mesh" button</em></center>
+
+The following dialog box will appear: 
+
+\image html createmesh-inv.png
+</li>
+<li>For example, you need to mesh a 3d object.
+\n First, type the name for your mesh in the "Name" box, by default,
+it is "Mesh_1". Then select the object you wish to mesh in the Object
+Browser and click the "Add" button.
+
+\image html image120.gif
+<center><em>"Add" button</em></center>
+
+Now you can define 1d Algorithm and 1d Hypotheses, which will be
+applied to the edges of your object. (Note that any object has edges,
+even if their existence is not apparent, for example, a sphere has 4
+edges). Click the <em>"Add Hypothesis"</em>  button to add a hypothesis.
+
+\image html image121.gif
+<center><em>"Add Hypothesis" button</em></center>
+
+Click the <em>"Edit Hypothesis"</em> button to define values for the
+current hypothesis.
+
+\image html image122.gif
+<center><em>"Edit Hypothesis" button</em></center>
+
+The use of additional hypotheses is optional (i.e. you may leave
+"None" in this box).
+
+Proceed in the same way with 2d and 3d Algorithms and Hypotheses, note
+that the choice of hypotheses depends on the algorithm. There must be
+one Algorithm and one or several Hypotheses for each dimension of your
+object, otherwise you will not get any mesh at all. Of course, if you
+wish to mesh a face, which is a 2d object, you don't need to define 3d
+Algorithm and Hypotheses.
+\n In the <b>Object Browser</b> the structure of the new mesh will be
+displayed as follows:
+
+\image html image88.jpg
+
+It contains:
+<ul>
+<li>a reference to the geometrical object on the basis of which the mesh has been constructed;</li>
+<li><b>Applied hypotheses</b> folder containing the references to the
+hypotheses applied to the construction of the mesh;</li>
+<li><b>Applied algorithms</b> folder containing the references to the
+algorithms applied to the construction of the mesh.</li>
+</ul>
+
+There is an alternative way to create a mesh on an object simply by
+clicking <b>Assign a set of hypotheses</b> button and selecting between
+Automatic Tetrahedralization or Hexahedralization.  The program will
+automatically generate a 3D mesh with the most appropriate
+settings. In the same way you can apply this functionality for meshing
+2D objects, in which case 3D algorithms are not applied.</li>
+<li>Now, when everything is ready, select your mesh in the <b>Object
+Browser</b>. From the \b Mesh menu select \b Compute or click "Compute" button of the
+toolbar. 
+
+\image html image28.gif
+<center><em>"Compute" button</em></center>
+
+The Mesh Computation information box appears.
+
+\image html meshcomputationsucceed.png
+
+If the mesh computation failed, the information about the cause of the
+failure is provided.
+
+\image html meshcomputationfail.png
+
+After you select the error, <b>Show Subshape</b> button allows
+visualizing the mesh elements that cause it.
+
+\image html failed_computation.png
+
+<b>Publish Subshape</b> button allows importing it in a separate MED
+or UNV file.
+
+<b>NOTE</b> It is possible to define a 1D or a 2D mesh in a
+python script and then use such submeshes in the construction of a 3D
+mesh. For this, there exist two algorithms: <b>Use existing edges</b> and <b>Use
+existing faces</b>. They are not entirely usable from the GUI, so a
+mesh created using these algorithms should be exported into a python
+script, edited and then imported into the GUi. 
+
+Consider trying a sample script for construction of a mesh from our 
+\ref tui_creating_meshes_page "TUI Scripts" section.
+</li>
+</ol>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/constructing_submeshes.doc b/doc/salome/gui/SMESH/input/constructing_submeshes.doc
new file mode 100644 (file)
index 0000000..571740e
--- /dev/null
@@ -0,0 +1,53 @@
+/*!
+
+\page constructing_submeshes_page Constructing submeshes
+
+\n Construction of a submesh consists of:
+<ul>
+<li>Selecting a mesh which will encapsulate your submesh</li>
+<li>Selecting a geometrical object for meshing</li>
+<li>Applying one or several previously described 
+\ref about_hypo_page "hypotheses" and 
+\ref basic_meshing_algos_page "meshing algorithms" which will be used
+at computation of this submesh</li>
+</ul>
+
+<br><em>To construct a submesh:</em>
+\par
+From the \b Mesh menu select <b>Local Hyp.</b> or click <em>"Create
+Sum-mesh"</em> button in the toolbar.
+
+\image html image33.gif
+<center><em>"Create Sum-mesh" button</em></center>
+
+\par
+The following dialog box will appear:
+
+\image html createmesh-inv2.png
+
+\par
+It allows to define the \b Name, the parent \b Mesh and the \b
+Geometry (e.g. a face if the parent mesh has been built on box) of the
+submesh. You can define algorithms and hypotheses in the same way as
+in \ref constructing_meshes_page "Create mesh" menu.
+
+\par
+In the Object Browser the structure of the new submesh will be
+displayed as follows:
+
+\image html image10.jpg
+
+\par
+It contains:
+<ul>
+<li>a reference to the geometrical object on the basis of which the submesh has been constructed;</li>
+<li><b>Applied hypotheses</b> folder containing the references to the
+hypotheses applied to the construction of the submesh;</li>
+<li><b>Applied algorithms</b> folder containing the references to the
+algorithms applied to the construction of the submesh.</li>
+</ul>
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_construction_submesh "Construct Submesh" operation.
+
+*/
diff --git a/doc/salome/gui/SMESH/input/convert_to_from_quadratic_mesh.doc b/doc/salome/gui/SMESH/input/convert_to_from_quadratic_mesh.doc
new file mode 100644 (file)
index 0000000..84974a2
--- /dev/null
@@ -0,0 +1,40 @@
+/*!
+
+\page convert_to_from_quadratic_mesh_page Convert to/from Quadratic Mesh
+
+\n This functionality allows you to transtorm standard meshes to
+quadratic and vice versa. See \ref adding_quadratic_elements_page "Adding quadratic elements" 
+for more information about quadratic meshes.
+
+<em>To produce a conversion:</em>
+<ol>
+<li>From the Modification menu choose the Convert to/from Quadratic
+Mesh item, or click <em>"Convert to/from quadratic"</em> button in the
+toolbar.
+
+\image html image154.gif
+<center><em>"Convert to/from quadratic" button</em></center>
+
+The following dialog box will appear:
+
+\image html convert.png
+
+</li>
+<li>In this dialog box you should select:
+
+<ul>
+<li>if you wish to convert standard mesh to quadratic or quadratic to standard;</li>
+<li>if you wish to place medium nodes of the quadratic mesh on the geometry (meshed object).</li>
+</ul>
+
+\image html image156.gif
+<center>Standard mesh (coarse mesh on a torus)</center>
+
+\image html image155.gif
+<center>Quadratic mesh</center>
+
+</li>
+<li>Click the \b Apply or \b OK button.</li>
+</ol>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/creating_groups.doc b/doc/salome/gui/SMESH/input/creating_groups.doc
new file mode 100644 (file)
index 0000000..bba92d5
--- /dev/null
@@ -0,0 +1,84 @@
+/*!
+
+\page creating_groups_page Creating groups
+
+\n In MESH you can create groups of elements of different types. To
+create a group of elements in the \b Mesh menu select <b>Create
+Group</b>.
+\n To create any group you should define the following:
+<ul>
+<li><b>Mesh</b> - the name of the mesh whose elements will form your
+group. You can select your mesh in the Objet Browser or in the 3D
+viewer.</li>
+<li><b>Elements Type</b> - set of radio buttons allows to select the type of
+elements which will form your group:</li>
+<ul>
+<li><b>Nodes</b></li>
+<li><b>Edges</b></li>
+<li><b>Faces</b></li>
+<li><b>Volumes</b></li>
+</ul>
+<li><b>Name</b> field allows to enter the name of your new group.</li>
+</ul>
+SALOME Platform distinguishes between the two Group types:
+<b>Standalone Group</b> and <b>Group on Geometry</b>.
+
+<br><h2>Standalone Group</h2>
+
+<b>Standalone Group</b> consists of mesh elements, which you can define in
+two possible ways.
+<ul>
+<li>Choosing them manually with the mouse in the 3D Viewer. You can
+click on an element in the 3D viewer and it will be highlighted. After
+that click the \b Add button and the ID of this element will be added to
+the list.</li>
+<li>Applying Filters. The <b>Set filter</b> button allows to apply a
+definite filter to selection of the elements of your group. See more
+about filters on the
+\ref selection_filter_library_page "Selection filter library" page.</li>
+</ul>
+To remove a selected element or elements from the list click the
+\b Remove button. The <b>Sort List</b> button allows to sort the list of IDs of
+mesh elements.
+\n <b>Select from</b> set of fields allows to choose a submesh or an existing
+group whose elements of the previously defined type will be added to
+the list of elements which will form your group.
+\n <b>Color Number</b> (integer only, ranging from 0 to 9999) - allows to
+assign to the group a certain index, for example, defining boundary
+conditions. This feature introduces a useful element of preprocessing
+in Mesh module. Note that <b>Color number</b> attribute has nothing to do
+with the colors used for the display of the elements of the group.
+
+\image html creategroup.png
+
+\image html image130.gif
+<center>In this picture the brown cells belong to a group defined manually.</center>
+
+\image html image131.gif
+<center>In this picture the brown cells belong to the group defined by the criterion 
+<b>Taper > 0</b>.</center>
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_create_standalone_group "Create a Standalone Group"
+operation.  
+
+<br><h2>Group on Geometry</h2>
+
+To create a group on geometry check <b>Group on geometry</b> in the \b Group
+\b type field. <b>Group on geometry</b> contains the elements of a certain type
+belonging to the selected geometrical object. To define a group select
+in the Objet Browser or in the 3D viewer a geometrical object from
+which the elements will be taken. After confirmation of the operation
+a new group of mesh elements will be created.
+
+\image html a-creategroup.png
+
+\image html image132.gif
+<center>In this picture the cells which belong to a certain face are
+selected in green.</center>
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_create_group_on_geometry "Create a Group on Geometry"
+operation.
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/creating_meshes.doc b/doc/salome/gui/SMESH/input/creating_meshes.doc
new file mode 100644 (file)
index 0000000..3f392f2
--- /dev/null
@@ -0,0 +1,31 @@
+/*!
+
+\page creating_meshes_page Creating meshes
+
+<ul>
+<li>\subpage about_meshes_page</li>
+<li>\subpage importing_exporting_meshes_page</li>
+<li>\subpage constructing_meshes_page</li>
+<li>\subpage defining_algos_page</li>
+<ul>
+<li>\ref basic_meshing_algos_page</li>
+<li>\ref projection_algos_page</li>
+<li>\ref radial_prism_algo_page</li>
+<li>\ref segments_around_vertex_algo_page</li>
+<li>\ref prism_3d_algo_page</li>
+</ul>
+<li>\subpage defining_hypo_page</li>
+<ul>
+<li>\ref about_hypo_page</li>
+<li>\ref a1d_meshing_hypo_page</li>
+<li>\ref a2d_meshing_hypo_page</li>
+<li>\ref max_element_volume_hypo_page</li>
+<li>\ref netgen_2d_3d_hypo_page</li>
+<li>\ref additional_hypo_page</li>
+</ul>
+<li>\subpage constructing_submeshes_page</li>
+<li>\subpage building_compounds_page</li>
+<li>\subpage editing_meshes_page</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/cutting_quadrangles.doc b/doc/salome/gui/SMESH/input/cutting_quadrangles.doc
new file mode 100644 (file)
index 0000000..d857165
--- /dev/null
@@ -0,0 +1,63 @@
+/*!
+
+\page cutting_quadrangles_page Cutting quadrangles
+
+\n This operation allows to cut one or several quadrangle elements by
+addition of a supplementary edge which will connect two opposite
+corners.
+
+<em>To cut quadrangles:</em>
+<ol>
+<li>Display a mesh or a submesh in the 3D viewer.</li>
+<li>In the \b Modification menu select the <b>Cutting of quadrangles</b> item or
+click <em>"Cutting of quadrangles"</em> button in the toolbar.
+
+\image html image82.gif
+<center><em>"Cutting of quadrangles" button</em></center>
+
+The following dialog box will appear:
+
+\image html a-cuttingofquadrangles.png
+
+\par
+<ul>
+<li>The main list contains the list of quadrangles. You can click on
+an quadrangle in the 3D viewer and it will be highlighted (lock Shift
+keyboard button to select several quadrangles). Click \b Add button and
+the ID of this quadrangle will be added to the list. To remove a
+selected element or elements from the list click \b Remove button. <b>Sort
+list</b> button allows to sort the list of IDs. \b Filter button allows to
+apply a definite filter to the selection of quadrangles.</li>
+<li><b>Apply to all</b> radio button allows to modify the orientation of all
+quadrangles of the currently displayed mesh or submesh.</li>
+<li>\b Preview - provides a preview of cutting in the viewer.</li>
+</ul>
+
+<ul>
+<li>\b Criterion
+<ul>
+<li><b>Use diagonal 1-3</b> and <b>Use diagonal 2-4</b> allows to
+specify the opposite corners which will be connected by the cutting
+edge.</li>
+<li><b>Use numeric factor</b> - allows to apply the operation only to
+those objects which meet the chosen criterion (from the list of
+Quality Controls, i.e. Skew, Warping, Minimum Angle, etc.)</li>
+</ul>
+</li>
+<li><b>Select from</b> - allows to choose a submesh or an existing
+group whose quadrangle elements will be automatically added to the
+list.</li>
+</ul>
+
+</li>
+<li>Click the \b Apply or \b OK button to confirm the operation.</li>
+</ol>
+
+\image html image52.jpg
+
+\image html image51.jpg
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_cutting_quadrangles "Cutting Quadrangles" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/defining_algos.doc b/doc/salome/gui/SMESH/input/defining_algos.doc
new file mode 100644 (file)
index 0000000..1ddac9f
--- /dev/null
@@ -0,0 +1,13 @@
+/*!
+
+\page defining_algos_page Defining Algorithms
+
+<ul>
+<li>\subpage basic_meshing_algos_page</li>
+<li>\subpage projection_algos_page</li>
+<li>\subpage radial_prism_algo_page</li>
+<li>\subpage segments_around_vertex_algo_page</li>
+<li>\subpage prism_3d_algo_page</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/defining_hypo.doc b/doc/salome/gui/SMESH/input/defining_hypo.doc
new file mode 100644 (file)
index 0000000..5a4eb75
--- /dev/null
@@ -0,0 +1,14 @@
+/*!
+
+\page defining_hypo_page Defining hypotheses
+
+<ul>
+<li>\subpage about_hypo_page</li>
+<li>\subpage a1d_meshing_hypo_page</li>
+<li>\subpage a2d_meshing_hypo_page</li>
+<li>\subpage max_element_volume_hypo_page</li>
+<li>\subpage netgen_2d_3d_hypo_page</li>
+<li>\subpage additional_hypo_page</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/deleting_groups.doc b/doc/salome/gui/SMESH/input/deleting_groups.doc
new file mode 100644 (file)
index 0000000..02779cd
--- /dev/null
@@ -0,0 +1,19 @@
+/*!
+
+\page deleting_groups_page Deleting Groups
+
+\n To delete a group in the <b>Main Menu</b> select <b>Mesh -> Delete Groups</b> and
+select one or several groups you wish to delete in the 3D viewer or in
+the Object Browser.
+\n The selected groups will be listed in <b>Delete groups with contents</b>
+menu. Then click Ok button to remove the selected groups and close the
+menu or Apply button to remove them and proceed with the selection.
+
+\image html deletegroups.png
+\n Please, note that this operation <b>removes groups with their
+elements</b>. To delete a group and leave its elements intact, right-click
+on the group in the Object Browser and select \b Delete in the pop-up
+menu or select the group and choose <b>Edit -> Delete</b> in the <b>Main Menu</b>.
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/diagonal_inversion_of_elements.doc b/doc/salome/gui/SMESH/input/diagonal_inversion_of_elements.doc
new file mode 100644 (file)
index 0000000..871e110
--- /dev/null
@@ -0,0 +1,33 @@
+/*!
+
+\page diagonal_inversion_of_elements_page Diagonal inversion of elements
+
+\n In MESH you can inverse the diagonal (edge) of a pseudo-quadrangle
+formed by two neighboring triangles with one common edge.
+
+<em>To inverse the diagonal:</em>
+<ol>
+<li>From the \b Modification menu choose the <b>Diagonal inversion</b> item or
+click <em>"Diagonal Inversion"</em> button in the toolbar.
+
+\image html image70.gif
+<center><em>"Diagonal Inversion" button</em></center>
+
+The following dialog box shall appear:
+
+\image html diagonalinversion.png
+</li>
+<li>Enter the ID of the required edge in the \b Edge field or select
+this edge in the 3D viewer.</li>
+<li>Click the \b Apply or \b OK button.</li>
+</ol>
+
+\image html image38.jpg
+
+\image html image36.jpg
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_diagonal_inversion "Diagonal Inversion of Elements" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/display_entity.doc b/doc/salome/gui/SMESH/input/display_entity.doc
new file mode 100644 (file)
index 0000000..5706740
--- /dev/null
@@ -0,0 +1,12 @@
+/*!
+
+\page display_entity_page Display Entity
+
+\n In this submenu you can choose to display only volumes, faces or
+edges or combine them.
+
+\image html image56.jpg Only Faces
+
+\image html image58.gif Only Edges
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/display_mode.doc b/doc/salome/gui/SMESH/input/display_mode.doc
new file mode 100644 (file)
index 0000000..7ba8e54
--- /dev/null
@@ -0,0 +1,22 @@
+/*!
+
+\page display_mode_page Display Mode
+
+\n By default your objects are represented as set in \b Preferences.
+\n However, right-clicking on the mesh in the <b>Object Browser</b>,
+and selecting <b>Display Mode</b>, you can display your mesh as:
+
+\image html image53.gif Wireframe
+
+\image html image37.jpg Shading
+
+\image html image56.gif Nodes
+
+\b Wireframe can combine with \b Nodes and \b Shading.
+
+\b Shading and \b Wireframe modes can combine with \b Shrink, however
+\b Nodes can't.
+
+\image html image55.gif
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/editing_groups.doc b/doc/salome/gui/SMESH/input/editing_groups.doc
new file mode 100644 (file)
index 0000000..5658f2f
--- /dev/null
@@ -0,0 +1,27 @@
+/*!
+
+\page editing_groups_page Editing groups
+
+\n <em>To edit an existing group of elements:</em>
+<ol>
+<li>Select your group in the Object Browser and in the \b Mesh menu click
+the <b>Edit Group</b> item or <em>"Edit Group"</em> button in the toolbar.</li>
+
+\image html image74.gif
+<center><em>"Edit Group" button</em></center>
+
+The following dialog box will appear:
+
+\image html editgroup.png
+
+In this dialog box you can modify the name of your group and add or
+remove the elements forming it. For more information see 
+\ref creating_groups_page "Creating Groups" page.
+<li>Click the \b OK or \b Apply button to confirm modification of the
+group.</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of an 
+\ref tui_edit_group "Edit Group" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/editing_meshes.doc b/doc/salome/gui/SMESH/input/editing_meshes.doc
new file mode 100644 (file)
index 0000000..b36f784
--- /dev/null
@@ -0,0 +1,31 @@
+/*!
+
+\page editing_meshes_page Editing Meshes
+
+\n After you have created a mesh or submesh with definite applied
+hypotheses and algorithms you can edit your mesh by \b assigning new
+hypotheses and algorithms or \b unassigning the applied hypotheses and
+algorithms. The editing proceeds in the same way as <b>Mesh
+Creation</b>.
+
+\image html createmesh-inv3.png
+
+You can also change values for the current hypothesis by clicking the
+<em>"Edit Hypothesis"</em> button.
+
+\image html image122.gif
+<center><em>"Edit Hypothesis" button</em></center>
+
+See how a mesh constructed on one and the same geometrical object
+changes if we apply different algorithms to it.
+
+\image html edit_mesh1.png
+
+\image html edit_mesh_remove_hyp.png
+
+\image html edit_mesh_change_value_hyp.png
+
+<br><b>See Also</b> a sample TUI Script of an 
+\ref tui_editing_mesh "Edit Mesh" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/extrusion.doc b/doc/salome/gui/SMESH/input/extrusion.doc
new file mode 100644 (file)
index 0000000..674a9d9
--- /dev/null
@@ -0,0 +1,49 @@
+/*!
+
+\page extrusion_page Extrusion
+
+\n Extrusion is used to build mesh elements of plus one
+dimension than the input ones. Any line or planar element can be
+extruded. Line elements will extrude into quadrilateral plane elements.
+Triangular and Quadrilateral plane elements extrude into Pentahedron
+and Hexahedron solids respectively.
+
+<em>To use extrusion:</em>
+<ol>
+<li>From the \b Modification menu choose the \b Extrusion item or click
+<em>"Extrusion"</em> button in the toolbar. 
+
+\image html image91.gif
+<center><em>"Extrusion" button</em></center>
+
+The following dialog box will appear:
+
+\image html extrusionalongaline1.png
+
+\image html extrusionalongaline2.png
+</li>
+
+<li>In this dialog box you should select:
+<ul>
+<li>the type of elements which will be extruded (1D or 2D),</li>
+<li>specify the IDs of the elements which will be extruded by
+selecting them in the 3D viewer or select the whole mesh or
+submesh,</li>
+<li>specify the vector along which the elements will be extruded,</li>
+<li>number of steps.</li>
+</ul>
+<li> <b>Generate Groups</b> checkbox allows copying the groups of
+elements of the source mesh to the newly created one. </li>
+</li>
+
+<li>Click the \b Apply or \b OK button.</li>
+</ol>
+
+\image html image77.jpg
+
+\image html image76.jpg
+
+<br><b>See Also</b> a sample TUI Script of an 
+\ref tui_extrusion "Extrusion" operation. 
+
+*/
diff --git a/doc/salome/gui/SMESH/input/extrusion_along_path.doc b/doc/salome/gui/SMESH/input/extrusion_along_path.doc
new file mode 100644 (file)
index 0000000..ce96f99
--- /dev/null
@@ -0,0 +1,153 @@
+/*!
+
+\page extrusion_along_path_page Extrusion along a path
+
+\n In principle, <b>Extrusion along a path</b> works in the same way
+as \b Extrusion, the main difference is that we define not a vector,
+but a path of extrusion which must be a meshed edge. To get an idea of
+how this algorithm works, examine several examples, starting from the
+most simple case of extrusion along a straight edge. In all examples
+the same mesh will be extruded along different paths and with
+different parameters. This sample 2D mesh has two quadrangle faces and
+seven edges. Look at the picture, where white digits are the node
+numbers and green are the element numbers:
+
+\image html mesh_for_extr_along_path.png
+
+<br><center><h2>Extrusion along a straight edge</h2>(not using base point
+or angles)</center>
+
+\image html straight_before.png
+<center>The image shows a 1D path mesh, built on a linear edge, and the initial 2D mesh.</center>
+
+\image html straight_after.png
+<center> The image shows the result of extrusion of two edges
+(#1 and #2) of the initial mesh along the path. \n Node #1 of path mesh
+has been selected as Start node.</center>
+
+<br><center><h2>Extrusion along a curvilinear edge</h2>(with and
+without angles)</center>
+
+\image html curvi_simple_before.png
+<center>The image shows a 1D path mesh, built on curvilinear edge, and
+the initial  2D mesh.</center>
+
+\image html curvi_simple_after.png
+<center>The central image shows the result of extrusion of one edge
+(#2) of the initial mesh along the path. \n Node #1 of path mesh has
+been selected as <b>Start node</b>.</center>
+
+\image html curvi_angles_after.png
+<center>The same, but using angles {45, 45, 45, 0, -45, -45, -45}</center>
+
+<br><center><h2>Extrusion along a sub-mesh</h2></center>
+
+In this example the path mesh has been built on a wire (polyline with
+six edges). The first edge of the wire was used as <b>Shape (edge)</b>, node
+#1 as <b>Start node</b>. The angles have been defined as {10, 10, 10}. The
+middle edge (#4) of the initial mesh has been extruded.
+
+\image html edge_wire_before.png
+
+\image html edge_wire_after.png
+
+<br><center><h2>Extrusion of 2d elements along a sub-mesh</h2></center>
+
+This extrusion bases on the same path mesh as in the previous example
+but the third edge of the wire was set as <b>Shape (edge)</b> and node
+#4 as <b>Start node</b>. Please note, that the extrusion has been done
+in direction from node #4 to node #3, i.e. against the wire
+direction. In this example both faces of the initial mesh have been
+extruded.
+
+\image html edge_wire_3d_before.png
+
+\image html edge_wire_3d_after.png
+
+<br><center><h2>Extrusion of 2d elements along a closed path</h2></center>
+
+\image html circle_simple_before.png
+<center>The image shows a path mesh built on a closed edge
+(circle).</center>
+
+\image html circle_simple_after.png
+<center>The central image shows the result of extrusion of both faces
+of the initial mesh. \n Note, that no sewing has been done, so, there are
+six coincident nodes and two coincident faces in the resulting
+mesh.</center>
+
+\image html circle_angles_after.png
+<center>The same, but using angles {45, -45, 45, -45, 45, -45, 45,
+-45}</center>
+
+<br><em>To use Extrusion along a path:</em>
+<ol>
+<li>From the \b Modification menu choose the <b>Extrusion along a
+path</b> item or click <em>"Extrusion along a path"</em> button in the toolbar.
+
+\image html image101.gif
+<center><em>"Extrusion along a path" button</em></center>
+
+The following dialog box will appear:
+
+\image html extrusion1.png
+
+\image html extrusion2.png
+</li>
+
+<li>In the dialog box you should:
+<ul>
+<li>select the type of elements which will be extruded (1D or 2D),</li>
+<li>specify the <b>IDs of the elements</b> which will be extruded by
+selecting them in the 3D viewer or <b>Select the whole mesh, submesh
+or group</b>,
+</li>
+<li>define the Path along which the elements will be extruded,
+\n Path definition consists of several elements:
+<ul>
+<li>\b Mesh - containing a 1D sub-mesh on the edge, along which proceeds the extrusion</li>
+<li><b>Shape (edge)</b> - as the mesh can be complex, the edge is used to define the sub-mesh for the path</li>
+<li><b>Start node</b> - the first or the last node on the edge. It is used to define the direction of extrusion </li>
+</ul>
+</li>
+<li> <b>Generate Groups</b> checkbox allows copying the groups of
+elements of the source mesh to the newly created one. </li>
+</ul>
+</li>
+
+<li>There are two optional parameters, which can be very useful:
+<ul>
+<li>If the path of extrusion is curvilinear, at each iteration the
+extruded shape is rotated to keep its initial angularity to the
+curve. By default, the <b>Base Point</b> around which the shape is rotated is
+the mass center of the shape, however, you can specify any point as
+the <b>Base Point</b> and the shape will be rotated with respect to this
+point.
+</li>
+<li>The shape can also be rotated around the path to get the resulting
+mesh in a helical fashion. You can set the values of angles at the
+right, add them to the list of angles at the left by pressing the <em>"Add"</em>
+button and remove them from the list by pressing the <em>"Remove"</em> button. 
+
+\image html image105.gif
+<center><em>"Add" button</em></center>
+
+\image html image106.gif
+<center><em>"Remove" button</em></center>
+
+</li>
+</ul>
+</li>
+
+<li>Click the \b Apply or \b OK button. Mesh edges will be extruded into
+faces, faces into volumes. The external surface of the resulting 3d
+mesh (if faces have been extruded) is covered with faces, and corners
+with edges. If the path is closed, the resulting mesh can contain
+duplicated nodes and faces, because no sewing is done.
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of an 
+\ref tui_extrusion_along_path "Extrusion along a Path" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/free_borders.doc b/doc/salome/gui/SMESH/input/free_borders.doc
new file mode 100644 (file)
index 0000000..824fbd9
--- /dev/null
@@ -0,0 +1,15 @@
+/*!
+
+\page free_borders_page Free borders
+
+\n This mesh quality control highlights borders of faces consisting of
+edges belonging to one face only.
+
+\image html free_borders1.png
+
+In this picture the free borders are displayed in white.
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_free_borders "Free Borders quality control" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/free_edges.doc b/doc/salome/gui/SMESH/input/free_edges.doc
new file mode 100644 (file)
index 0000000..2d51733
--- /dev/null
@@ -0,0 +1,15 @@
+/*!
+
+\page free_edges_page Free edges
+
+\n This mesh quality control highlights borders of  elements of mesh
+consisting of edges belonging to one element of mesh only.
+
+\image html free_edges.png
+<center>In this picture some elements of mesh have been deleted and
+the "holes" are outlined in red.</center>
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_free_edges "Free Edges quality control" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/grouping_elements.doc b/doc/salome/gui/SMESH/input/grouping_elements.doc
new file mode 100644 (file)
index 0000000..a9a6367
--- /dev/null
@@ -0,0 +1,14 @@
+/*!
+
+\page grouping_elements_page Grouping elements
+
+<ul>
+<li>\subpage creating_groups_page</li>
+<li>\subpage editing_groups_page</li>
+<li>\subpage using_operations_on_groups_page</li>
+<li>\subpage constructing_groups_of_specific_elements_page</li>
+<li>\subpage deleting_groups_page</li>
+<li>\subpage selection_filter_library_page</li>
+</ul>
+
+*/
diff --git a/doc/salome/gui/SMESH/input/importing_exporting_meshes.doc b/doc/salome/gui/SMESH/input/importing_exporting_meshes.doc
new file mode 100644 (file)
index 0000000..e016fff
--- /dev/null
@@ -0,0 +1,37 @@
+/*!
+
+\page importing_exporting_meshes_page Importing and exporting meshes
+
+\n In MESH there is a functionality allowing importation/exportation
+of meshes from \b MED, \b UNV (I-DEAS 10), \b DAT (Nastran) and STL format files.
+
+<em>To import a mesh:</em>
+
+<ol>
+<li>From the \b File menu choose the \b Import item, from its sub-menu
+select the corresponding format (MED, UNV and DAT) of the file containing
+your mesh.</li>
+<li>In the standard <b>Search File</b> dialog box find the file for
+importation.</li>
+<li>Click the \b OK button.</li>
+</ol>
+
+\image html meshimportmesh.png
+
+<em>To export a mesh:</em>
+
+<ol>
+<li>Select the object you wish to export.</li>
+<li>From the \b File menu choose the \b Export item, from its sub-menu
+select the format (MED, UNV, DAT and STL) of the file which will contain your
+exported mesh.</li>
+<li>In the standard <b>Search File</b> select a location for the
+exported file and enter its name.</li>
+<li>Click the \b OK button.</li>
+</ol>
+
+\image html meshexportmesh.png
+
+<br><b>See Also</b> a sample TUI Script of an \ref tui_export_mesh "Export Mesh" operation.
+
+*/
diff --git a/doc/salome/gui/SMESH/input/index.doc b/doc/salome/gui/SMESH/input/index.doc
new file mode 100644 (file)
index 0000000..f09cdea
--- /dev/null
@@ -0,0 +1,114 @@
+/*!
+
+\mainpage SMESH Module Reference Documentation
+
+<ul>
+<li>\subpage introduction_to_mesh_page</li>
+<li>\subpage running_mesh_module_page</li>
+<li>\subpage introduction_to_mesh_python_page</li>
+<li>\subpage creating_meshes_page</li>
+<ul>
+<li>\ref about_meshes_page</li>
+<li>\ref importing_exporting_meshes_page</li>
+<li>\ref constructing_meshes_page</li>
+<li>\ref defining_algos_page</li>
+<ul>
+<li>\ref basic_meshing_algos_page</li>
+<li>\ref projection_algos_page</li>
+<li>\ref radial_prism_algo_page</li>
+<li>\ref segments_around_vertex_algo_page</li>
+<li>\ref prism_3d_algo_page</li>
+</ul>
+<li>\ref defining_hypo_page</li>
+<ul>
+<li>\ref about_hypo_page</li>
+<li>\ref a1d_meshing_hypo_page</li>
+<li>\ref a2d_meshing_hypo_page</li>
+<li>\ref max_element_volume_hypo_page</li>
+<li>\ref netgen_2d_3d_hypo_page</li>
+<li>\ref additional_hypo_page</li>
+</ul>
+<li>\ref constructing_submeshes_page</li>
+<li>\ref building_compounds_page</li>
+<li>\ref editing_meshes_page</li>
+</ul>
+<li>\subpage viewing_meshes_page</li>
+<ul>
+<li>\ref viewing_meshes_overview_page</li>
+<li>\ref mesh_infos_page</li>
+<li>\ref numbering_page</li>
+<li>\ref display_mode_page</li>
+<li>\ref display_entity_page</li>
+<li>\ref transparency_page</li>
+<li>\ref clipping_page</li>
+</ul>
+<li>\subpage quality_controls_page</li>
+<ul>
+<li>\ref about_quality_controls_page</li>
+<li>\ref free_borders_page</li>
+<li>\ref borders_at_multi_connection_page</li>
+<li>\ref length_page</li>
+<li>\ref free_edges_page</li>
+<li>\ref length_2d_page</li>
+<li>\ref borders_at_multi_connection_2d_page</li>
+<li>\ref area_page</li>
+<li>\ref taper_page</li>
+<li>\ref aspect_ratio_page</li>
+<li>\ref minimum_angle_page</li>
+<li>\ref warping_page</li>
+<li>\ref skew_page</li>
+<li>\ref aspect_ratio_3d_page</li>
+<li>\ref volume_page</li>
+</ul>
+<li>\subpage grouping_elements_page</li>
+<ul>
+<li>\ref creating_groups_page</li>
+<li>\ref editing_groups_page</li>
+<li>\ref using_operations_on_groups_page</li>
+<li>\ref constructing_groups_of_specific_elements_page</li>
+<li>\ref deleting_groups_page</li>
+<li>\ref selection_filter_library_page</li>
+</ul>
+<li>\subpage modifying_meshes_page</li>
+<ul>
+<li>\ref adding_nodes_and_elements_page</li>
+<li>\ref adding_quadratic_elements_page</li>
+<li>\ref removing_nodes_and_elements_page</li>
+<li>\ref renumbering_nodes_and_elements_page</li>
+<li>\ref transforming_meshes_page</li>
+<ul>
+<li>\ref translation_page</li>
+<li>\ref rotation_page</li>
+<li>\ref symmetry_page</li>
+<li>\ref sewing_meshes_page</li>
+<li>\ref merging_nodes_page</li>
+<li>\ref merging_elements_page</li>
+</ul>
+<li>\ref moving_nodes_page</li>
+<li>\ref mesh_through_point_page</li>
+<li>\ref diagonal_inversion_of_elements_page</li>
+<li>\ref uniting_two_triangles_page</li>
+<li>\ref uniting_set_of_triangles_page</li>
+<li>\ref changing_orientation_of_elements_page</li>
+<li>\ref cutting_quadrangles_page</li>
+<li>\ref smoothing_page</li>
+<li>\ref extrusion_page</li>
+<li>\ref extrusion_along_path_page</li>
+<li>\ref revolution_page</li>
+<li>\ref pattern_mapping_page</li>
+<li>\ref convert_to_from_quadratic_mesh_page</li>
+</ul>
+<li>\subpage smeshpy_interface_page</li>
+<li>\subpage tui_scripts_page</li>
+<ul>
+<li>\ref tui_creating_meshes_page</li>
+<li>\ref tui_viewing_meshes_page</li>
+<li>\ref tui_defining_hypotheses_page</li>
+<li>\ref tui_quality_controls_page</li>
+<li>\ref tui_grouping_elements_page</li>
+<li>\ref tui_modifying_meshes_page</li>
+<li>\ref tui_transforming_meshes_page</li>
+</ul>
+</ul>
+
+*/
diff --git a/doc/salome/gui/SMESH/input/introduction_to_mesh.doc b/doc/salome/gui/SMESH/input/introduction_to_mesh.doc
new file mode 100644 (file)
index 0000000..5b80bb1
--- /dev/null
@@ -0,0 +1,64 @@
+/*!
+
+\page introduction_to_mesh_page Introduction to MESH
+
+\n \b MESH module of SALOME is destined for:
+<ul>
+<li>\ref importing_exporting_meshes_page "import and export of meshes in MED format",</li>
+<li>\ref constructing_meshes_page "meshing geometrical models"
+previously created or imported by the GEOM component. MESH module
+allows to apply 1D, 2D, 3D meshing algorithms and a set of hypotheses:
+<ul>
+<li>\ref arithmetic_1d_anchor "Arithmetic 1D"</li>
+<li>\ref average_length_anchor "Average Length"</li>
+<li>\ref deflection_1d_anchor "Deflection 1D"</li>
+<li>\ref number_of_segments_anchor "Number of segments"</li>
+<li>\ref start_and_end_length_anchor "Start and end length"</li>
+<li>\ref automatic_length_anchor "Automatic Length"</li>
+<li>\ref max_element_area_anchor "Max Element Area"</li>
+<li>\ref length_from_edges_anchor "Length from Edges"</li>
+<li>\ref quadrangle_preference_anchor "Quadrangle Preference"</li>
+<li>\ref max_element_volume_hypo_page "Max Element Volume"</li>
+</ul>
+</li>
+<li>modification of locally generated meshes by
+<ul>
+<li>\ref adding_nodes_and_elements_page "Addition" of nodes and elements</li>
+<li>\ref removing_nodes_and_elements_page "Removal" of nodes and elements </li>
+</ul>
+</li>
+<li>\ref creating_groups_page "grouping mesh elements" and 
+\ref using_operations_on_groups_page "performing operations on these groups"</li>
+<li>\ref about_quality_controls_page "quality control" of meshes basing on a set of definite criteria - 
+
+<b>for edges:</b>
+<ul>
+<li>\ref length_page "Length of edges"</li>
+<li>\ref borders_at_multi_connection_page "Borders at multi-connection"</li>
+<li>\ref free_borders_page "Free borders"</li>
+</ul>
+
+<b>for faces:</b>
+<ul>
+<li>\ref area_page "Area"</li>
+<li>\ref free_edges_page "Free edges"</li>
+<li>\ref borders_at_multi_connection_2d_page "Borders at multi-connection 2D"</li>
+<li>\ref length_2d_page "Length 2D"</li>
+<li>\ref minimum_angle_page "Minimum angle"</li>
+<li>\ref taper_page "Taper"</li>
+<li>\ref aspect_ratio_page "Aspect Ratio"</li>
+<li>\ref warping_page "Warping"</li>
+<li>\ref skew_page "Skew"</li>
+</ul>
+
+<b>for solids:</b>
+<ul>
+<li>\ref aspect_ratio_3d_page "Aspect ratio 3D"</li>
+<li>\ref volume_page "Volume"</li>
+</ul>
+</li>
+</ul>
+
+\image html image7.jpg
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/introduction_to_mesh_python.doc b/doc/salome/gui/SMESH/input/introduction_to_mesh_python.doc
new file mode 100644 (file)
index 0000000..2fcc329
--- /dev/null
@@ -0,0 +1,77 @@
+/*!
+
+\page introduction_to_mesh_python_page Introduction to MESH module python interface
+
+\n Package smesh provides a standard API for creation and edition of meshes. 
+\n Below you can see an example of usage of the package smesh for 3d mesh generation. 
+
+<h2>Example of 3d mesh generation with NETGEN:</h2>
+
+\n from geompy import * 
+\n import smesh 
+
+<b># Geometry</b>
+\n <b># an assembly of a box, a cylinder and a truncated cone meshed with tetrahedral</b>. 
+
+<b># Define values</b>
+\n name = "ex21_lamp" 
+\n cote = 60 
+\n section = 20 
+\n size = 200 
+\n radius_1 = 80 
+\n radius_2 = 40 
+\n height = 100 
+
+<b># Build a box</b>
+\n box = MakeBox(-cote, -cote, -cote, +cote, +cote, +cote) 
+
+<b># Build a cylinder</b>
+\n pt1 = MakeVertex(0, 0, cote/3) 
+\n di1 = MakeVectorDXDYDZ(0, 0, 1) 
+\n cyl = MakeCylinder(pt1, di1, section, size) 
+
+<b># Build a truncated cone</b>
+\n pt2 = MakeVertex(0, 0, size) 
+\n cone = MakeCone(pt2, di1, radius_1, radius_2, height) 
+
+<b># Fuse </b>
+\n box_cyl = MakeFuse(box, cyl) 
+\n piece = MakeFuse(box_cyl, cone) 
+
+<b># Add in study</b>
+\n addToStudy(piece, name) 
+
+<b># Create a group of faces</b>
+\n group = CreateGroup(piece, ShapeType["FACE"]) 
+\n group_name = name + "_grp" 
+\n addToStudy(group, group_name) 
+\n group.SetName(group_name) 
+
+<b># Add faces in the group</b>
+\n faces = SubShapeAllIDs(piece, ShapeType["FACE"]) 
+\n UnionIDs(group, faces) 
+
+<b># Create a mesh</b>
+
+<b># Define a mesh on a geometry</b>
+\n tetra = smesh.Mesh(piece, name) 
+
+<b># Define 1D hypothesis</b>
+\n algo1d = tetra.Segment() 
+\n algo1d.LocalLength(10) 
+
+<b># Define 2D hypothesis</b>
+\n algo2d = tetra.Triangle() 
+\n algo2d.LengthFromEdges() 
+
+<b># Define 3D hypothesis</b>
+\n algo3d = tetra.Tetrahedron(smesh.NETGEN) 
+\n algo3d.MaxElementVolume(100) 
+
+<b># Compute the mesh</b>
+\n tetra.Compute() 
+
+<b># Create a groupe of faces</b>
+\n tetra.Group(group)
+
+*/
diff --git a/doc/salome/gui/SMESH/input/length.doc b/doc/salome/gui/SMESH/input/length.doc
new file mode 100644 (file)
index 0000000..e821029
--- /dev/null
@@ -0,0 +1,13 @@
+/*!
+
+\page length_page Length
+
+\n Length quality control criterion returns a value of length of
+edge.
+
+\image html length-crit.png
+
+<br><b>See Also</b> a sample TUI Script of a  
+\ref tui_length_1d "Length quality control" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/length_2d.doc b/doc/salome/gui/SMESH/input/length_2d.doc
new file mode 100644 (file)
index 0000000..50bab55
--- /dev/null
@@ -0,0 +1,28 @@
+/*!
+
+\page length_2d_page Length 2D
+
+\n This quality control criterion consists of calculation of length of
+the edges combining the meshing elements (triangles and quadrangles)
+of your mesh.
+
+<em>To apply the Length 2D quality criterion to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer. </li>
+
+<li>Choose <b>Controls > Length 2D</b> or click <em>"Length 2D"</em>
+button in the toolbar. 
+
+\image html image34.gif
+<center><em>"Length 2D" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored according to the applied mesh quality control criterion:
+
+\image html length2d.png
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_length_2d "Length 2D quality control" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/max_element_volume_hypo.doc b/doc/salome/gui/SMESH/input/max_element_volume_hypo.doc
new file mode 100644 (file)
index 0000000..1dd4591
--- /dev/null
@@ -0,0 +1,16 @@
+/*!
+
+\page max_element_volume_hypo_page Max Element Volume hypothesis
+
+\n <b>Max Element Volume </b> hypothesis is applied for meshing of 3D objects
+composing your geometrical object. Definition of this hypothesis
+consists of setting the <b>maximum volume</b> of 3D meshing elements
+(depending on the chosen meshing algorithm it can be \b hexahedrons or
+\b tetrahedrons), which will compose the mesh of these 3D objects.
+
+\image html a-maxelvolume.png
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_max_element_volume "Maximum Element Volume hypothesis" operation.  
+
+*/
diff --git a/doc/salome/gui/SMESH/input/merging_elements.doc b/doc/salome/gui/SMESH/input/merging_elements.doc
new file mode 100644 (file)
index 0000000..fef7cd2
--- /dev/null
@@ -0,0 +1,56 @@
+/*!
+
+\page merging_elements_page Merging Elements
+
+\n This functionality allows to merge coincident elements of a mesh
+selectable in the dialog box.
+
+\image html mergeelems.png
+
+<ul>
+<li>\b Name is the name of the mesh whose elements will be merged.</li>
+<li>\b Tolerance is a maximum distance between elements sufficient for
+merging.
+<ul>
+<li>\b Detect button generates the list of coincident elements for the given
+\b Tolerance.</li>
+</ul>
+</li>
+<li><b>Coincident elements</b> is a list of groupes of elements for
+merging. All elements of each group will form one after the operation.
+<ul>
+<li>\b Remove button deletes the selected group from the list.</li>
+<li>\b Add button adds to the list a group of elements selected in the
+viewer with pressed "Shift" key.</li>
+<li><b>Select all</b> checkbox selects all groups.</li>
+</ul>
+</li>
+<li><b>Edit selected group</b> list allows editing the selected
+group:
+<br><br>
+\image html add.gif
+<center>adds to the group the element selected in the viewer.</center>
+<br>
+\image html remove.gif
+<center>removes from the group the selected element.</center>
+<br>
+\image html sort.gif
+<center>moves the selected element to the first position in the
+group. This means that all other elements will be merged into this
+one.</center><br>
+</li>
+</ul>
+</li>
+<li>To confirm your choice click \b OK or \b Apply button.</li>
+</ol>
+
+In this picture you see a triangle which coincides with one of the
+elements of the mesh. After we apply <b>Merge Elements</b> functionality, the
+triangle will be completely merged with the mesh.
+
+\image html meshtrianglemergeelem1.png
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_merging_elements "Merge Elements" operation.  
+
+*/
diff --git a/doc/salome/gui/SMESH/input/merging_nodes.doc b/doc/salome/gui/SMESH/input/merging_nodes.doc
new file mode 100644 (file)
index 0000000..7c5d622
--- /dev/null
@@ -0,0 +1,61 @@
+/*!
+
+\page merging_nodes_page Merging nodes
+
+\n This functionality allows user to detect groups of coincident nodes
+with desirable tolerance, edit these groups and merge.
+
+<em>To merge nodes of your mesh:</em>
+<ol>
+<li>From the \b Modification choose \b Transformation and  from its
+sub-menu select the <b>Merge nodes</b> item. The following dialog box
+shall appear:
+
+\image html mergenodes.png
+
+<ul>
+<li>\b Name is the name of the mesh whose nodes will be merged.</li>
+<li>\b Tolerance is a maximum distance between nodes sufficient for
+merging.
+<ul>
+<li>\b Detect button generates the list of coincident nodes for the given
+\b Tolerance.</li>
+</ul>
+</li>
+<li><b>Coincident nodes</b> is a list of groupes of nodes for
+merging. All nodes of each group will form one after the
+operation.
+<ul>
+<li>\b Remove button deletes the selected group from the list.</li>
+<li>\b Add button adds to the list a group of nodes selected in the
+viewer with pressed "Shift" key.</li>
+<li><b>Select all</b> checkbox selects all groups.</li>
+</ul>
+</li>
+<li><b>Edit selected group</b> list allows editing the selected
+group:
+<br><br>
+\image html add.gif
+<center>adds to the group the node selected in the viewer.</center>
+<br>
+\image html remove.gif
+<center>removes from the group the selected node.</center>
+<br>
+\image html sort.gif
+<center>moves the selected node to the first position in the
+group. This means that all other nodes will be merged into this
+one.</center><br>
+</li>
+</ul>
+</li>
+<li>To confirm your choice click \b OK or \b Apply button.</li>
+</ol>
+
+\image html merging_nodes1.png
+
+\image html merging_nodes2.png
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_merging_nodes "Merge Nodes" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/mesh_infos.doc b/doc/salome/gui/SMESH/input/mesh_infos.doc
new file mode 100644 (file)
index 0000000..2598289
--- /dev/null
@@ -0,0 +1,63 @@
+/*!
+
+\page mesh_infos_page Mesh infos
+
+\n There are three information boxes: <b>Standard Mesh
+Infos</b>, <b>Advanced Mesh Infos</b> and <b> Mesh Element Info</b>.
+
+<br>
+\anchor standard_mesh_infos_anchor
+<h2>Standard Mesh Infos</h2>
+
+The <b>Standard Mesh Infos</b> box gives only the information on the
+number of elements of maximum dimension and the number of nodes in the
+mesh. However, from this Info you can learn about groups selected on
+this mesh.
+\n To view the <b>Standard Mesh Infos</b>, select your mesh or submesh
+in the <b>Object Browser</b> and select <b>Standard Mesh Infos</b>
+from the \b Mesh menu or click <em>"Standard Mesh Infos"</em> button
+in the toolbar. 
+
+\image html image49.gif
+<center><em>"Standard Mesh Infos" button</em></center>
+
+The following information will be displayed:
+
+\image html a-standmeshinfo.png
+
+<br>
+\anchor advanced_mesh_infos_anchor
+<h2>Advanced Mesh Infos</h2>
+
+The <b>Advanced Mesh Infos</b> box gives more information about the mesh,
+including the total number of faces and volumes and their geometrical
+types.
+\n To view the <b>Advanced Mesh Infos</b>, select your mesh or submesh
+in the <b>Object Browser</b> and select <b>Advanced Mesh Infos</b>
+from the \b Mesh menu or click <em>"Advanced Mesh Infos"</em> button
+in the toolbar.
+
+\image html image50.gif
+<center><em>"Advanced Mesh Infos" button</em></center>
+
+The following information will be displayed:
+
+\image html advanced_mesh_infos.png
+
+In case you get Mesh Infos via a \ref tui_viewing_mesh_infos "TUI script", 
+the information is displayed in Python Console.
+
+\image html b-mesh_infos.png
+
+<br>
+\anchor mesh_element_info_anchor
+<h2>Mesh Element Info</h2> 
+
+The <b>Mesh Element Info</b> box gives basic information about the
+type and the coordinates of the selected mesh element. 
+
+\image html eleminfo1.png
+
+\image html eleminfo2.png 
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/mesh_through_point.doc b/doc/salome/gui/SMESH/input/mesh_through_point.doc
new file mode 100644 (file)
index 0000000..cd0d68e
--- /dev/null
@@ -0,0 +1,34 @@
+/*!
+
+\page mesh_through_point_page Mesh through point
+
+\n In mesh you can define a node at a certain point either by creation
+of a new node, by movement of the node closest to the point or by
+movement of any node to the point.
+
+<em>To create a mesh passing through a point:</em>
+<ol>
+<li>From the \b Modification menu choose the <b>Mesh through point</b> item or
+click <em>"Mesh to pass through a point"</em> button in the toolbar.
+
+\image html mesh_node_to_point.png
+<center><em>"Mesh to pass through a point" button</em></center>
+
+The following dialog box shall appear:
+
+\image html meshtopass.png
+
+</li>
+<li>Enter the coordinates of the point.</li>
+<li>Choose one of several methods: you can either \b Create a new node at
+the indicated point or Move the existing node to the point. In the
+latter case you can check in <b>Automatic search</b> of the closest node or
+select the necessary node manually. \b Preview check-box allows to see
+the results of the operation.</li>
+<li>Click the \b Apply or \b OK button.</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_mesh_through_point "Mesh through point" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/minimum_angle.doc b/doc/salome/gui/SMESH/input/minimum_angle.doc
new file mode 100644 (file)
index 0000000..1723745
--- /dev/null
@@ -0,0 +1,28 @@
+/*!
+
+\page minimum_angle_page Minimum angle
+
+\n <b>Minimum angle</b> mesh quality criterion consists of calculation of the
+minimum value of angle between two adjacent sides of a 2D meshing
+element (triangle or quadrangle).
+
+<em>To apply the Minimum angle quality criterion to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Minimum angle</b> or click <em>"Minimum Angle"</em> button.
+
+\image html image38.gif
+<center><em>"Minimum Angle" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image92.jpg
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_minimum_angle "Minimum Angle quality control" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/modifying_meshes.doc b/doc/salome/gui/SMESH/input/modifying_meshes.doc
new file mode 100644 (file)
index 0000000..d7e1cdb
--- /dev/null
@@ -0,0 +1,34 @@
+/*!
+
+\page modifying_meshes_page Modifying meshes
+
+<ul>
+<li>\subpage adding_nodes_and_elements_page</li>
+<li>\subpage adding_quadratic_elements_page</li>
+<li>\subpage removing_nodes_and_elements_page</li>
+<li>\subpage renumbering_nodes_and_elements_page</li>
+<li>\subpage transforming_meshes_page</li>
+<ul>
+<li>\ref translation_page</li>
+<li>\ref rotation_page</li>
+<li>\ref symmetry_page</li>
+<li>\ref sewing_meshes_page</li>
+<li>\ref merging_nodes_page</li>
+<li>\ref merging_elements_page</li>
+</ul>
+<li>\subpage moving_nodes_page</li>
+<li>\subpage mesh_through_point_page</li>
+<li>\subpage diagonal_inversion_of_elements_page</li>
+<li>\subpage uniting_two_triangles_page</li>
+<li>\subpage uniting_set_of_triangles_page</li>
+<li>\subpage changing_orientation_of_elements_page</li>
+<li>\subpage cutting_quadrangles_page</li>
+<li>\subpage smoothing_page</li>
+<li>\subpage extrusion_page</li>
+<li>\subpage extrusion_along_path_page</li>
+<li>\subpage revolution_page</li>
+<li>\subpage pattern_mapping_page</li>
+<li>\subpage convert_to_from_quadratic_mesh_page</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/moving_nodes.doc b/doc/salome/gui/SMESH/input/moving_nodes.doc
new file mode 100644 (file)
index 0000000..2c0cd79
--- /dev/null
@@ -0,0 +1,36 @@
+/*!
+
+\page moving_nodes_page Moving nodes
+
+\n In MESH you can change the location of any node of your mesh. In
+this case all adjacent elements (edges) will be also transformed right
+after the displaced node.
+
+<em>To displace a node:</em>
+<ol>
+<li>From the \b Modification menu choose the <b>Move node</b> item or
+click <em>"Move Node"</em> button in the toolbar.
+
+\image html image67.gif
+<center><em>"Move Node" button</em></center>
+
+The following dialog box shall appear:
+
+\image html movenodes.png
+
+</li>
+<li>Enter the ID of the required node in the <b>Node ID</b> field or
+select this node in the 3D viewer. The coordinates of your node will
+be automatically displayed in the \b Coordinates set of fields.</li>
+<li>Set new coordinates for your node in the \b Coordinates set of fields.</li>
+<li>Click the \b Apply or \b OK button.</li>
+</ol>
+
+\image html moving_nodes1.png
+
+\image html moving_nodes2.png
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_moving_nodes "Moving Nodes" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/netgen_2d_3d_hypo.doc b/doc/salome/gui/SMESH/input/netgen_2d_3d_hypo.doc
new file mode 100644 (file)
index 0000000..395283c
--- /dev/null
@@ -0,0 +1,37 @@
+/*!
+
+\page netgen_2d_3d_hypo_page Netgen 2D and 3D hypotheses
+
+\n <b>Netgen 2D</b> and <b>Netgen 3D</b> hypotheses work only with <b>Netgen 1D-2D</b> and
+<b>Netgen 1D-2D-3D</b> algorithms. These algorithms do not require
+definition of lower-level  hypotheses and algorithms (2D and 1D for
+meshing 3D objects and 1D for meshing 2D objects). They prove to be
+useful if lower-level meshing is homogeneous for all wires and faces
+of the meshed object.
+
+\image html netgen2d.png
+
+<ul>
+<li><b>Name</b> - allows to define the name for the algorithm (Netgen
+2D (or 3D) Parameters by default).</li>
+<li><b>Max Size</b> - maximum linear dimensions for mesh cells.</li>
+<li><b>Second Order</b> - if this box is checked in, the algorithm will
+create second order nodes on the mesh, which actually will become
+\ref adding_quadratic_elements_page "Quadratic".</li>
+<li><b>Fineness</b> - ranging from Very Coarse to Very Fine allows to set the
+level of meshing detalization using the three parameters below. You
+can select Custom to define them manually.</li>
+<li><b>Growth rate</b> - allows to define how much the linear dimensions of
+two adjacent cells can differ (i.e. 0.3 means 30%).</li>
+<li><b>Nb. Segs per Edge</b> and <b>Nb Segs per Radius</b> - allows to define the
+minimum number of mesh segments in which edges and radiuses will be
+split.</li>
+<li><b>Allow Quadrangles</b> - allows to use quadrangle elements in a
+triangle 2D mesh. This checkbox is not present in Netgen 3D parameters
+because currently building a tetrahedral mesh with quadrangle faces is
+not possible.</li>
+<li><b>Optimize</b> - if this box is checked in, the algorithm will try to
+create regular (possessing even sides) elements.</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/numbering.doc b/doc/salome/gui/SMESH/input/numbering.doc
new file mode 100644 (file)
index 0000000..78d8fb4
--- /dev/null
@@ -0,0 +1,38 @@
+/*!
+
+\page numbering_page Numbering
+
+<br><h2>Displaying nodes numbers</h2>
+
+In MESH you can display the ID numbers of all nodes of your mesh in
+the viewer.
+
+<em>To display ID numbers of nodes:</em>
+<ol>
+<li>Display your mesh in the viewer</li>
+<li>Right-click on the mesh in the 3D viewer and from the associated
+pop-up menu choose <b>Numbering > Display Nodes #</b>.</li>
+</ol>
+
+It will look like as follows:
+
+\image html image96.jpg
+
+<br><h2>Displaying elements numbers</h2>
+
+In MESH you can display the ID numbers of all meshing elements
+composing your mesh in the viewer.
+
+<em>To display ID numbers of elements:</em>
+<ol>
+<li>Display your mesh in the viewer</li>
+<li>Right-click on the mesh in the 3D viewer and from the associated
+pop-up menu choose <b>Numbering > Display Elements #</b>.</li>
+</ol>
+
+It will look like as follows:
+
+\image html image95.jpg
+
+*/
+
diff --git a/doc/salome/gui/SMESH/input/pattern_mapping.doc b/doc/salome/gui/SMESH/input/pattern_mapping.doc
new file mode 100644 (file)
index 0000000..e9ce361
--- /dev/null
@@ -0,0 +1,135 @@
+/*!
+
+\page pattern_mapping_page Pattern mapping
+
+<br><h2>About patterns</h2>
+
+The pattern describes a mesh to generate: positions of nodes within a
+geometrical domain and nodal connectivity of elements. As well, a
+pattern specifies the so-called key-points, i.e. nodes that will be
+located at geometrical vertices. Pattern description is stored in
+\<pattern_name\>.smp file.
+
+The smp file contains 4 sections:
+<ol>
+<li>The first line holds the number of nodes (N).</li>
+
+<li>The next N lines describe nodes coordinates. Each line holds 2
+coordinates of a node.</li>
+
+<li>A key-points line: indices of nodes to be mapped on geometrical
+vertices. An index n refers to a node described on an n-th line of
+section 2. The first node index is zero.</li>
+
+<li>The rest lines describe nodal connectivity of elements, one line
+for an element. A line holds indices of nodes forming an element. An
+index n refers to a node described on an n-th line of the section
+2. The first node index is zero. There must be 3 or 4 indices on a
+line: only 2d elements are allowed.</li>
+</ol>
+
+The 2D pattern must contain at least one element and at least one
+key-point. All key-points must lay on boundaries.
+
+An example of a simple smp file and a preview of a pattern described
+in this file:
+
+\image html image94.gif
+
+<br><h2>Application of pattern mapping</h2>
+
+<em>To apply pattern mapping to a geometrical object:</em>
+
+From the \b Modification menu choose the <b>Pattern Mapping</b> item or click 
+<em>"Pattern mapping"</em> button in the toolbar.
+
+\image html image98.gif
+<center><em>"Pattern mapping" button</em></center>
+
+The following dialog box shall appear:
+
+\image html patternmapping1.png
+
+\image html patternmapping2.png
+
+To apply a pattern to a geometrical object, you should specify:
+<ul>
+<li>a face having the number of vertices equal to the number of
+key-points in the pattern; the number of key-points on internal
+boundaries of a pattern must also be equal to the number of vertices
+on internal boundaries of a face;</li>
+<li>a vertex to which the first key-point should be mapped;</li>
+<li>reverse or not the order of key-points. (The order of vertices of
+a face is counterclockwise looking from outside).</li>
+</ul>
+
+Then you either load a .smp pattern file previously created manually
+by clicking on the <em>"Load pattern"</em> button, or click on the \b
+New button for automatic generation.
+\n For an automatic generation you just specify a geometrical face
+having a mesh built on it. Mesh nodes lying on face vertices become
+key-points. Additionally, you may choose the way of getting nodes
+coordinates by <b>projecting nodes on the face</b> instead of using
+"positions on face" generated by mesher (if there is any). Faces
+having a seam edge can?t be used for automatic pattern creation.
+
+When creating a pattern from an existing mesh, there are two possible
+cases:
+<ol>
+<li>A sub-mesh on face is selected. A pattern is created from the 2d
+elements bound to a face by mesher. Node coordinates are either
+"positions on face" computed by mesher, or coordinates got by node
+projection on a geometrical surface, according to your choice.</li>
+<li>A mesh where the main shape is a face, is selected. A pattern is
+created from all the 2d elements in a mesh. If all mesh elements are
+build by mesher, the user can select the way of getting nodes
+coordinates, else all nodes are projected on a face surface.</li>
+</ol>
+
+\image html a-patterntype.png
+
+\image html a-patterntype1.png
+
+<br><h2>Mapping algorithm</h2>
+
+The mapping algorithm is as follows:
+<ol>
+<li>Key-points are set in the order that they are encountered when
+walking along a pattern boundary so that elements are on the left. The
+first key-point is preserved.
+</li>
+
+<li>Find geometrical vertices corresponding to key-points by vertices
+order in a face boundary; here, "Reverse order of key-points" flag is
+taken into account.
+
+\image html image95.gif
+</li>
+
+<li>Boundary nodes of a pattern are mapped onto edges of a face: a
+node located between certain key-points on a pattern boundary is
+mapped on a geometrical edge limited by corresponding geometrical
+vertices. Node position on an edge reflects its distance from two
+key-points.
+
+\image html image96.gif
+</li>
+
+<li>Coordinates of a non-boundary node in a parametric space of a face
+are defined as following. In a parametric space of a pattern, a node
+lays at the intersection of two iso-lines, each of which intersects a
+pattern boundary at least at two points. Knowing mapped positions of
+boundary nodes, we find where isoline-boundary intersection points are
+mapped to, and hence we can find mapped isolines direction and then,
+two node positions on two mapped isolines. The eventual mapped
+position of a node is found as an average of positions on mapped
+isolines.
+
+\image html image97.gif
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_pattern_mapping "Pattern Mapping" operation.
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/prism_3d_algo.doc b/doc/salome/gui/SMESH/input/prism_3d_algo.doc
new file mode 100644 (file)
index 0000000..272bef2
--- /dev/null
@@ -0,0 +1,20 @@
+/*!
+
+\page prism_3d_algo_page 3D extrusion meshing algorithm
+
+3D extrusion algorithm can be used for meshing prisms, i.e. <b>3D Shapes</b>
+defined by two opposing faces having the same number of vertices and
+edges and meshed using the \ref projection_algos_page "2D Projection"
+algorithm. These two faces should be connected by quadrangle "side"
+faces.
+
+The opposing faces can be meshed with either quadrangles or triangles,
+while the side faces should be meshed with quadrangles only.
+
+\image html image157.gif
+
+As you can see, the <b>3D extrusion</b> algorithm permits to build and to
+have in the same 3D mesh such elements as hexahedrons, prisms and
+polyhedrons.
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/projection_algos.doc b/doc/salome/gui/SMESH/input/projection_algos.doc
new file mode 100644 (file)
index 0000000..02a617e
--- /dev/null
@@ -0,0 +1,74 @@
+/*!
+
+\page projection_algos_page Projection Algorithms
+
+\n Projection algorithms allow to define the mesh of a geometrical
+object by the projection of another already meshed geometrical object.
+
+<b>Projection 1D</b> algorithm permits to define the mesh of an edge
+(or group of edges)
+by the projection of another already meshed edge (or group of edges).
+\n To apply this algorithm select the edge to be meshed (indicated in
+the field \b Geometry of <b>Create mesh</b> dialog box),
+<b>Projection1D</b> in the list of 1D algorithms and click the
+<em>"Add Hypothesis"</em> button.
+The following dialog box will appear:
+
+\image html projection_1d.png
+
+In this menu you can define the \b Name of the algorithm, the algeady
+meshed source \b Edge and the \b Mesh (optional, use it if there are several
+different meshes on the same edge). It could also be necessary to
+define the orientation of edges, which is done by indicating the
+<b>Source Vertex</b> being the first point of the Source Edge and the 
+<b>Target Vertex</b> being the first point of the created \b Edge. For
+a group of edges, <b>Source</b> and <b>Target</b> vertices should be
+shared by only one edge of the group. If <b>Source</b> and
+<b>Target</b> vectors are specified, the elements of the group must be ajacent.
+
+\n <b>Projection 2D</b> algorithm permits to define the mesh of a face
+(or group of faces) by the
+projection of another already meshed face (or group of faces). This
+algorithm works only
+if all edges of the target face have been meshed as 1D Projections of
+the edges of the source face.
+
+To apply this algorithm select the face to be meshed (indicated in the
+field \b Geometry of <b>Create mesh</b> dialog box), <b>Projection
+2D</b> in the list
+of 2D algorithms and click the <em>"Add Hypothesis"</em> button. The
+following dialog box will appear:
+
+\image html projection_2d.png
+
+In this menu you can define the \b Name of the algorithm, the algeady
+meshed source \b Face and the \b Mesh (optional, use it if there are several
+different meshes on the same face). It could also be necessary to
+define the orientation of mesh on the face, which is done by
+indicating two <b>Source Vertices</b>, which belong to the same edge of the
+source face, and two <b>Target Vertices</b>, which belong to the same edge of
+the created \b Face.
+
+\n <b>Projection 3D</b> algorithm permits to define the mesh of a shape by
+the projection of another already meshed shape.  This algorithm works
+only if all faces and edges of the target face have been meshed as 1D
+Projections of the faces and edges of the source face. Another
+limitation is that this algorithm currently works only on boxes.
+
+To apply this algorithm select the solid to be meshed (indicated in
+the field \b Geometry of <b>Create mesh</b> dialog box), <b>Projection
+3D</b> in the list of 3D algorithms and click the  button. The
+following dialog box will appear:
+
+\image html projection_3d.png
+
+In this menu you can define the \b Name of the algorithm, the algeady
+meshed source <b>3D shape</b> and the \b Mesh (optional, use it if there are
+several different meshes on the same shape). It could also be
+necessary to define the orientation of mesh on the shape, which is
+done by indicating two <b>Source Vertices</b>, which belong to the same edge
+of the source <b>3D Shape</b>, and two <b>Target Vertices</b>, which belong to the
+same edge of the source <b>3D Shape</b>.
+
+*/
+
diff --git a/doc/salome/gui/SMESH/input/quality_controls.doc b/doc/salome/gui/SMESH/input/quality_controls.doc
new file mode 100644 (file)
index 0000000..5a36e7b
--- /dev/null
@@ -0,0 +1,23 @@
+/*!
+
+\page quality_controls_page Quality controls
+
+<ul>
+<li>\subpage about_quality_controls_page</li>
+<li>\subpage free_borders_page</li>
+<li>\subpage borders_at_multi_connection_page</li>
+<li>\subpage length_page</li>
+<li>\subpage free_edges_page</li>
+<li>\subpage length_2d_page</li>
+<li>\subpage borders_at_multi_connection_2d_page</li>
+<li>\subpage area_page</li>
+<li>\subpage taper_page</li>
+<li>\subpage aspect_ratio_page</li>
+<li>\subpage minimum_angle_page</li>
+<li>\subpage warping_page</li>
+<li>\subpage skew_page</li>
+<li>\subpage aspect_ratio_3d_page</li>
+<li>\subpage volume_page</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/radial_prism_algo.doc b/doc/salome/gui/SMESH/input/radial_prism_algo.doc
new file mode 100644 (file)
index 0000000..756e032
--- /dev/null
@@ -0,0 +1,24 @@
+/*!
+
+\page radial_prism_algo_page Radial Prism
+
+\n This algorithm applies to the meshing of a hollow 3D shape,
+i.e. such shape should be composed of two meshed shells: an outer
+shell and an internal shell without intersection with the outer
+shell. One of the shells should be a 2D Projection of the other
+shell. The meshes of the shells can consist both of triangles and
+quadrangles.
+
+The Radial Prism algorithm would fill the space between the two shells
+with meshes.
+
+This algorithm also needs the information concerning the number and
+distribution of mesh layers between the inner and the outer shapes.
+
+\image html number_of_layers.png
+
+Distribution of layers can be set with any of 1D Hypotheses.
+
+\image html distribution_of_layers.png
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/removing_nodes_and_elements.doc b/doc/salome/gui/SMESH/input/removing_nodes_and_elements.doc
new file mode 100644 (file)
index 0000000..be1944a
--- /dev/null
@@ -0,0 +1,76 @@
+/*!
+
+\page removing_nodes_and_elements_page Removing nodes and elements
+
+\n In MESH you can remove nodes and all types of cells of your mesh.
+
+<ul>
+<li>\ref removing_nodes_anchor "Nodes"</li>
+<li>\ref removing_elements_anchor "Elements"</li>
+</ul>
+
+<br>
+\anchor removing_nodes_anchor
+<h2>Removing nodes</h2>
+
+<em>To remove a node:</em>
+<ol>
+<li>Select your mesh in the Object Browser or in the 3D viewer.</li>
+
+<li>From the Modification menu choose Remove and from the associated
+submenu select the Remove nodes, or just click <em>"Remove nodes"</em>
+button in the toolbar.
+
+\image html image88.gif
+<center><em>"Remove nodes" button</em></center>
+
+The following dialog box will appear:
+
+\image html removenodes.png
+
+In this dialog box you can specify one or several nodes (with pressed
+Shift button) by choosing them in the 3D viewer.
+</li>
+</ol>
+
+\note Be careful while removing nodes because if you remove a definite
+node of your mesh all adjacent elements will be also deleted.
+
+\image html remove_nodes1.png
+
+\image html remove_nodes2.png
+
+<br>
+\anchor removing_elements_anchor
+<h2>Removing elements</h2>
+
+<em>To remove an element:</em>
+<ol>
+<li>Select your mesh in the Object Browser or in the 3D viewer.</li>
+
+<li>From the \b Modification menu choose \b Remove and from the
+associated submenu select the Remove elements, or just click
+<em>"Remove elements"</em> button in the toolbar.
+
+\image html remove_elements_icon.png
+<center><em>"Remove elements" button</em></center>
+
+The following dialog box will appear:
+
+\image html removeelements.png
+
+In this dialog box you can specify one or several elements of your
+mesh (with pressed Shift button) by choosing them in the 3D viewer.
+</li>
+<li>Click OK or Apply  to confirm deletion of the specified elements.</li>
+</ol>
+
+\image html remove_elements1.png
+
+\image html remove_elements2.png
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_removing_nodes_and_elements "Removing Nodes and Elements" operation.  
+
+*/
+
diff --git a/doc/salome/gui/SMESH/input/renumbering_nodes_and_elements.doc b/doc/salome/gui/SMESH/input/renumbering_nodes_and_elements.doc
new file mode 100644 (file)
index 0000000..9ed74c3
--- /dev/null
@@ -0,0 +1,61 @@
+/*!
+
+\page renumbering_nodes_and_elements_page Renumbering nodes and elements
+
+\n In MESH you can renumber the nodes and elements of your mesh.
+
+<ul>
+<li>\ref renumbering_nodes_anchor "Nodes"</li>
+<li>\ref renumbering_elements_anchor "Elements"</li>
+</ul>
+
+<br>
+\anchor renumbering_nodes_anchor
+<h2>Renumbering nodes</h2>
+
+<em>To renumber the nodes of your mesh:</em>
+<ol>
+<li>In the \b Modification menu select \b Renumbering submenu and
+choose the \b Nodes item or click <em>"Renumbering nodes"</em> button
+in the toolbar.
+
+\image html image63.gif
+<center><em>"Renumbering nodes" button</em></center>
+
+The following dialog box will appear:
+
+\image html renumbernodes.png
+</li>
+
+<li>Fill the \b Mesh field by selecting your mesh in the Object
+Browser or in the 3D viewer.</li>
+<li>Click the \b Apply or \b OK button to perform the operation.</li>
+</ol>
+
+<br>
+\anchor renumbering_elements_anchor
+<h2>Renumbering elements</h2>
+
+<em>To renumber the elements of your mesh:</em>
+<ol>
+<li>In the \b Modification menu select \b Renumbering submenu and
+choose the \b Elements item or click <em>"Renumbering elements"</em>
+button in the toolbar.
+
+\image html image64.gif
+<center><em>"Renumbering elements" button</em></center>
+
+The following dialog box will appear:
+
+\image html renumberelements.png
+</li>
+
+<li>Fill the \b Mesh field by selecting your mesh in the Object
+Browser or in the 3D viewer.</li>
+<li>Click the \b Apply or \b OK button to perform the operation.</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_renumbering_nodes_and_elements "Renumbering Nodes and Elements" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/revolution.doc b/doc/salome/gui/SMESH/input/revolution.doc
new file mode 100644 (file)
index 0000000..60ee2ab
--- /dev/null
@@ -0,0 +1,51 @@
+/*!
+
+\page revolution_page Revolution
+
+\n Revolution is a type of surface meshing by generation from
+discretized lines. It is used to build mesh elements of plus one
+dimension than the swept ones. Each swept 1D element produces one or
+more quadrangles (or triangles if one node of a rotated element lays
+on the revolution axis).
+
+<em>To apply revolution:</em>
+<ol>
+<li>From the \b Modification menu choose the \b Revolution item or click
+<em>"Revolution"</em> button in the toolbar.
+
+\image html image92.gif
+<center><em>"Revolution" button</em></center>
+
+The following dialog box shall appear:
+
+\image html revolution1.png
+
+\image html revolution2.png
+</li>
+
+<li>
+In this dialog box you should specify:
+<ul>
+<li>the type of elements which will be extruded (1D or 2D),</li>
+<li>specify the IDs of the elements which will be revolved by
+selecting them in the 3D viewer or select the whole mesh or
+submesh,</li>
+<li>specify the axis (point and vector) around which the elements will
+be revolved,</li>
+<li>angle of rotation,</li>
+<li>number of steps,</li>
+<li>tolerance of rotation</li>
+</ul>
+<li> <b>Generate Groups</b> checkbox allows copying the groups of
+elements of the source mesh to the newly created one. </li>
+</li>
+
+<li>Click the \b Apply or \b OK button.</li>
+</ol>
+
+\image html image78.jpg
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_revolution "Revolution" operation.
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/rotation.doc b/doc/salome/gui/SMESH/input/rotation.doc
new file mode 100644 (file)
index 0000000..bf2ca49
--- /dev/null
@@ -0,0 +1,37 @@
+/*!
+
+\page rotation_page Rotation
+
+\n This geometrical operation allows to rotate in space your mesh or
+some of its elements.
+
+<em>To rotate your mesh:</em>
+\par
+From the \b Modification choose \b Transformation and  from its sub-menu
+select the \b Rotation item. The following dialog box shall appear:
+
+\image html rotation.png
+\par 
+In this dialog box you can specify the elements which should be
+rotated and the rotation parameters:
+<ul>
+<li>\b Axis: point and vector</li>
+<li>\b Angle of rotation</li>
+</ul>
+
+\n Toggle the corresponding checkbox to <b> Select whole mesh, submesh or group.</b>  
+\n When <b>Move elements</b> radio button is selected, the source mesh (or elements) is created at the new location and erased from its previous location
+\n When <b>Copy elements</b> radio button is selected,the source mesh (or elements) is created at the new location, but it also remains at its previous location and is considered one and single mesh with the result of the rotation.
+\n When <b>Create as new mesh</b> radio button is selected, the source mesh (or elements) remains at its previous location and a new mesh is created at the new location and appears in the Object Browser with the default name MeshName_rotated (you can change this name in the adjacent box).
+\n <b> Copy groups </b> checkbox allows copying the groups of elements of the source mesh to the newly created one.
+\par
+
+
+\image html rotation1.png
+
+\image html rotation2.png
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_rotation "Rotation" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/running_mesh_module.doc b/doc/salome/gui/SMESH/input/running_mesh_module.doc
new file mode 100644 (file)
index 0000000..d7a7944
--- /dev/null
@@ -0,0 +1,16 @@
+/*!
+
+\page running_mesh_module_page Running MESH module
+
+\n To start MESH module in SALOME click "Mesh" icon in the "Modules" toolbar or
+select \b Mesh from the Choose box.
+
+\image html image25.jpg
+<center><em>"Mesh" icon</em></center>
+
+The desktop of the SALOME platform will be updated with additional
+toolbars and menus related to the \b MESH component .
+
+\image html a-viewgeneral.png
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/segments_around_vertex_algo.doc b/doc/salome/gui/SMESH/input/segments_around_vertex_algo.doc
new file mode 100644 (file)
index 0000000..f6250d2
--- /dev/null
@@ -0,0 +1,17 @@
+/*!
+
+\page segments_around_vertex_algo_page Segments around Vertex
+
+\n <b>Segments around Vertex</b> algorithm is considered to be a 0D meshing
+algorithm, but, of course, it doesn't mesh nodes. It allows to define
+the local size of the elements in the neighborhood of a certain
+node. If we choose an object of higher dimension, it applies to all
+its tops, i.e. corners of a box.  The 0D algorithm combines with the
+algorithms of higher dimensions, but it is not necessarily required
+for their successful implementation.
+
+This algorithm allows only one hypothesis.
+
+\image html lengthnearvertex.png
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/selection_filter_library.doc b/doc/salome/gui/SMESH/input/selection_filter_library.doc
new file mode 100644 (file)
index 0000000..613febb
--- /dev/null
@@ -0,0 +1,46 @@
+/*!
+
+\page selection_filter_library_page Selection filter library
+
+\n Selection filter library is a powerful tool enabling to create
+filters to be used on meshes. You can access to it from the Main Menu
+via <b>Tools / Selection filter library</b>.
+
+\image html selectionfilterlibrary.png
+
+<b>Library file name</b> shows the path and the file name where your
+filters will be stored. By clicking the <em>Browse</em> button you can load an
+existing filter library.
+\n <b>Names of filters</b> lists the filters created or uploaded for
+the current study. You can \b Add or \b Delete filters.
+\n In <b>Filter name</b> box you can specify the name for your
+filter. By default it is prefixed with the corresponding entity type.
+\n Each filter can be applicable to \b Nodes, \b Edges, \b Faces or \b
+Volumes. You can combine many criteria in one filter, but they all
+must be of the same <b>Entity type</b>.
+\n The \b Add button creates a new criterion at the end of the list of
+criteria. The \b Insert button creates a new criterion before the
+selected criterion. The \b Remove button deletes the selected
+criterion. The \b Clear button deletes all criteria.
+\n Each <b>Entity type</b> has its specific list of criteria, however all
+filters have common syntax. For each criterion you should specify the
+<b>Threshold Value</b> and whether we search for the elements that should be
+\b More, \b Less or \b Equal to this \b Value. You should also specify if the
+criterion is \b Unary or \b Binary.   
+\n Some criteria should have the additional parameter of \b Tolerance.
+
+When we create a <b>Standalone Group</b> using filters (for this click
+<b>Set Filters</b> button in the <b>Create Group</b> menu), the menu
+for setting filters looks a bit differently. Toggling <b>Insert filter
+in viewer</b> checkbox enables to preview the group selected with your
+current filter in the viewer.
+\n In the \b Source field you choose if the filter will be applied to
+the whole \b Mesh, the <b>Initial Selection</b> or the <b>Current Group</b>. 
+\n <b>Copy from...</b> button gives you a possibility to load an
+existing filter from <b>Selection filter library</b> and <b>Add
+to...</b> button gives you a possibility to save your current filter
+in the Library.
+
+\image html a-filteronedges.png
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/sewing_meshes.doc b/doc/salome/gui/SMESH/input/sewing_meshes.doc
new file mode 100644 (file)
index 0000000..e40f8fd
--- /dev/null
@@ -0,0 +1,159 @@
+/*!
+
+\page sewing_meshes_page Sewing meshes
+
+\n In SMESH you can sew elements of  different meshes. The current
+functionality allows you to sew:
+<ul>
+<li>\ref free_borders_anchor "Free borders"</li>
+<li>\ref conform_free_borders_anchor "Conform free borders"</li>
+<li>\ref border_to_side_anchor "Border to side"</li>
+<li>\ref side_elements_anchor "Side elements"</li>
+</ul>
+
+<em>To sew elements of different meshes:</em>
+<ol>
+<li>From the \b Modification menu choose the \b Transformation item
+and from its sub-menu select the \b Sewing item.</li>
+<li>Check in the dialog box one of the radio buttons corresponding to
+the type of sewing operation you would like to perform.</li>
+<li>Fill the other fields available in the dialog box.</li>
+<li>Click the \b OK or \b Apply button to perform the operation of sewing.</li>
+</ol>
+
+<br>
+\anchor free_borders_anchor
+<h2>Sew free borders</h2>
+
+This functionality allows you to unite two free borders of a 2D mesh.
+
+\image html sewing1.png
+
+For sewing free borders you should define three points on each border:
+first, second and the last node:
+<ul>
+<li>the first node specifies beginning of the border;</li>
+<li>the second node specifies the part of the border which should be
+considered (as far as the free border usually forms a closed
+contour);</li>
+<li>the last node specifies the end of the border.</li>
+</ul>
+
+You can select these nodes in the 3D viewer or define by its id.
+
+The first and the second nodes should belong to the same link of a
+face. The second and the last nodes of a border can be the same. The
+first and the last nodes of two borders can be the same. The
+corresponding end nodes of two borders will be merged. Intermediate
+nodes of two borders will be either merged or inserted into faces of
+the opposite border.
+
+The sewing algorithm is as follows:
+<ol>
+<li>The parameter (U) of each node within a border is computed. So
+that the first node has U=0.0, the last node has U=1.0, for the rest
+nodes 0.0 < U < 1.0;</li>
+<li>Compare node parameters of the two borders. If two nodes of the
+opposite borders have close parameters, they are merged, i.e. a node
+of the first border is replaced in all elements by a node of the
+second border. If a node has no node with a close parameter in the
+opposite border, it is inserted into an edge of element of the
+opposite border, an element is split. Two nodes are considered close
+enough to merge, if difference of their parameters is less than one
+fifth of minimum length of adjacent face edges on the borders.</li>
+</ol>
+
+\image html image22.jpg
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_sew_free_borders "Sew Free Borders" operation.
+
+<br>
+\anchor conform_free_borders_anchor
+<h2>Sew conform free borders</h2>
+
+This functionality can be used to unite two free borders of a 2D mesh.
+
+\image html sewing2.png
+
+The borders of meshes for sewing are defined as for "Sew free borders"
+except that the second free border is not limited and can be defined
+by the first and the second nodes only. The first nodes of two borders
+can be the same.
+
+The algorithm is following: counting nodes starting at the first ones,
+the n-th node of the first border is merged with the n-th node of the
+other border, until the end of either of borders. Nodes of the first
+border are replaced in all elements with corresponding nodes of the
+second border.
+\n For sewing conform free borders you should define three points on
+the first border and two points on the second one. User can select
+these nodes in 3D viewer or define node by its id.
+
+\image html image22.jpg
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_sew_conform_free_borders "Sew Conform Free Borders"
+operation.
+
+<br>
+\anchor border_to_side_anchor
+<h2>Sew border to side</h2>
+
+"Sew border to side" is intended to sew a free border to a mesh
+surface.
+\n The free border is defined as for "Sewing of free borders". The
+place where to sew the border is defined by two nodes, between which
+the border faces are placed, so that the first border node is merged
+with the first node on the side and the last node of the border is
+merged with the second specified node on the side.
+
+\image html sewing3.png
+
+The algorithm is following.
+<ol>
+<li>Find a sequence of linked nodes on the side such that the found
+links to be most co-directed with the links of the free border.</li>
+<li>Sew two sequences of nodes using algorithm of "Sewing of free berders".
+\n For sewing border to side you should define three points on the
+border and two points on the side. User can select these nodes in 3D
+viewer or define node by its id.</li>
+</ol>
+
+\image html image30.jpg
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_sew_meshes_border_to_side "Sew Border to Side" operation.  
+
+<br>
+\anchor side_elements_anchor
+<h2>Sew side elements</h2>
+
+This operation is intended to unite two mesh surfaces.
+
+\image html sewing4.png 
+
+Surfaces may be defined by either 2d or 3d elements. The number of
+given elements of the sides must be the same. The sets of given
+elements must be topologically equal, i.e. each node of one element
+set must have a corresponding node in the other element set and
+corresponding nodes must be equally linked. If there are 3d elements
+in a set, only their free faces must obey to that rule.
+\n Two corresponding nodes on each side must be specified. They must
+belong to one element and must be located on an element set boundary.
+
+Sewing algorithm finds and merges the corresponding nodes starting
+from the specified ones.
+
+\image html image31.jpg
+
+\image html image32.jpg
+
+For sewing side elements you should define elements for sewing and two
+nodes for merging on the each side. User can select these elements and
+nodes in 3D viewer or define them by its id.
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_sew_side_elements "Sew Side Elements" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/skew.doc b/doc/salome/gui/SMESH/input/skew.doc
new file mode 100644 (file)
index 0000000..582ada3
--- /dev/null
@@ -0,0 +1,32 @@
+/*!
+
+\page skew_page Skew
+
+\n \b Skew mesh quality criterion reflects the angle between the lines
+that join opposite sides of a quadrangle element or the greatesr angle
+between three medians in triangle elements. This mesh quality
+criterion can be applied to elements composed of 4 and 3 nodes
+(quadrangles and triangles).
+
+\image html image27.jpg
+
+<em>To apply the Skew quality criterion to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Skew</b> or click <em>"Skew"</em> button of the toolbar.
+
+\image html image40.gif
+<center><em>"Skew" button </em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image93.jpg
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_skew "Skew quality control" operation.  
+
+*/
diff --git a/doc/salome/gui/SMESH/input/smeshpy_interface.doc b/doc/salome/gui/SMESH/input/smeshpy_interface.doc
new file mode 100644 (file)
index 0000000..4fbf3d3
--- /dev/null
@@ -0,0 +1,10 @@
+/*!
+
+\page smeshpy_interface_page Python interface smesh.py
+
+\n Python package smesh defines several classes, destined for easy and
+clear mesh creation and edition (see the \ref introduction_to_mesh_python_page "example").
+
+\n Also, please see \ref smeshDC "documentation for smesh.py"
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/smoothing.doc b/doc/salome/gui/SMESH/input/smoothing.doc
new file mode 100644 (file)
index 0000000..f1991d6
--- /dev/null
@@ -0,0 +1,77 @@
+/*!
+
+\page smoothing_page Smoothing
+
+\n Smoothing is used to adjust the locations of element corners
+(nodes) to reduce distortions in these elements.
+
+<em>To apply smoothing to the elements of your mesh:</em>
+<ol>
+<li>Display a mesh or a submesh in the 3D viewer.</li>
+<li>In the \b Modification menu select the \b Smoothing item or click
+<em>"Smoothing"</em> button in the toolbar.
+
+\image html image84.gif
+<center><em>"Smoothing" button</em></center>
+
+The dialog box contains the following fields which should be
+specified:
+
+\image html smoothing.png
+
+<ul>
+<li><b>Id Elements</b> field allows to specify the elements which
+should be smoothed by selecting them in the 3D viewer (lock \b Shift
+button to select several elements).</li>
+<li><b>Select whole mesh, submesh or group</b> - smoothing is applied
+to the whole mesh or its part.</li>
+<li><b>Fixed nodes ids:</b> some nodes keep their location during
+smoothing. If a mesh is built on a geometry shape, the nodes built on
+geometrical edges are always fixed. If smoothing is applied to a part
+of a mesh then the boundary nodes of an elements set are also
+fixed. Any other nodes may be additionally fixed.</li>
+<li><b>Smoothing Method:</b>
+<ul>
+<li>\b Laplacian smoothing pulls a node toward the center of
+surrounding nodes directly connected to that node along an element
+edge. 
+<li>\b Centroidal smoothing pulls a node toward the
+element-area-weighted centroid of the surrounding elements. </li>
+
+Typically, the  Laplacian method will produce the mesh with the least element
+distortion. It is also the faster method.Centroidal smoothing usually
+produces  a mesh that has more uniform element sizes. Both methods
+produce good results with "free" meshes.</li>
+</ul>
+
+\image html image83.gif
+
+</li>
+<li><b>Iteration limit:</b> both of the smoothing methods use an
+iterative procedure to converge toward a smoothed mesh. All nodes are
+smoothed according to one of the techniques shown above. Then the
+smoothing is reevaluated with the updated nodal locations. This
+process continues until the maximum number of iterations has been
+exceeded, or all elements has aspect ratio less or equal than the
+specified one.</li>
+<li><b>Max. aspect ratio</b> allows to define the quality at which the
+smoothing algorithm should stop the iterations as the target of the
+operation has been reached.</li>
+<li>When <b>in parametric space</b> radio button is checked, the
+algorithm tries to improve the shape of faces in the parametric space
+of geometrical surfaces on which they are generated, else the shape of
+faces in the 3D space is improved. </li>   
+</ul>
+
+</li>
+<li>Click the \b Apply or \b OK button to confirm the operation.</li>
+</ol>
+
+\image html smoothing1.png
+
+\image html smoothing2.png
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_smoothing "Smoothing" operation.  
+
+*/
diff --git a/doc/salome/gui/SMESH/input/symmetry.doc b/doc/salome/gui/SMESH/input/symmetry.doc
new file mode 100644 (file)
index 0000000..efbad65
--- /dev/null
@@ -0,0 +1,42 @@
+/*!
+
+\page symmetry_page Symmetry
+
+\n This geometrical operation allows to perform a symmetrical copy of
+your mesh or some of its elements.
+
+<em>To apply symmetry to your mesh:</em>
+\par
+From the \b Modification choose \b Transformation and  from its
+sub-menu select the \b Symmetry item. The following dialog box shall
+appear:
+
+\image html symmetry1.png
+
+\image html symmetry2.png
+
+\image html symmetry3.png
+
+\par
+This operation has three options, you can symmetrically copy your mesh
+or some of its elements specifying:
+<ul>
+<li>one point</li>
+<li>one axis (point and vector)</li>
+<li>one plane (point and normal)</li>
+</ul>
+
+
+\n Toggle the corresponding checkbox to <b> Select whole mesh, submesh or group.</b>  
+\n When <b>Move elements</b> radio button is selected, the source mesh (or elements) is created at the new location and erased from its previous location
+\n When <b>Copy elements</b> radio button is selected,the source mesh (or elements) is created at the new location, but it also remains at its previous location and is considered one and single mesh with the result of the translation.
+\n When <b>Create as new mesh</b> radio button is selected, the source mesh (or elements) remains at its previous location and a new mesh is created at the new location and appears in the Object Browser with the default name MeshName_mirrored (you can change this name in the adjacent box).
+\n <b> Copy groups </b> checkbox allows copying the groups of elements of the source mesh to the newly created one.
+
+.
+\par
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_symmetry "Symmetry" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/taper.doc b/doc/salome/gui/SMESH/input/taper.doc
new file mode 100644 (file)
index 0000000..a207990
--- /dev/null
@@ -0,0 +1,32 @@
+/*!
+
+\page taper_page Taper
+
+\n \b Taper mesh quality criterion represents the ratio of the areas
+of two triangles separated by a diagonal. So it can be calculated only
+for elements consisting of 4 nodes.
+
+\image html image25.gif
+
+<br><em>To apply the Taper quality criterion to your mesh:</em>
+
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Taper</b> or click <em>"Taper"</em> button in
+the toolbar.
+
+\image html image36.gif
+<center><em>"Taper" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image90.jpg
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_taper "Taper quality control" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/transforming_meshes.doc b/doc/salome/gui/SMESH/input/transforming_meshes.doc
new file mode 100644 (file)
index 0000000..206c640
--- /dev/null
@@ -0,0 +1,14 @@
+/*!
+
+\page transforming_meshes_page Transforming meshes
+
+<ul>
+<li>\subpage translation_page</li>
+<li>\subpage rotation_page</li>
+<li>\subpage symmetry_page</li>
+<li>\subpage sewing_meshes_page</li>
+<li>\subpage merging_nodes_page</li>
+<li>\subpage merging_elements_page</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/translation.doc b/doc/salome/gui/SMESH/input/translation.doc
new file mode 100644 (file)
index 0000000..1f48901
--- /dev/null
@@ -0,0 +1,35 @@
+/*!
+
+\page translation_page Translation
+
+\n This geometrical operation allows to translate in space your mesh
+or some of its elements.
+
+<em>To translate your mesh:</em>
+\par
+From the \b Modification choose \b Transformation and from its
+sub-menu select the \b Translation item. The following dialog box
+shall appear:
+
+\image html translation1.png
+
+\image html translation2.png
+
+\par
+This operation has two options, you can translate in space your mesh
+or some of its elements specifying:
+<ul>
+<li>two points (starting and ending)</li>
+<li>one vector</li>
+</ul>
+Toggle the corresponding checkbox to <b>Select whole mesh, submesh or
+group</b>.
+\n When <b>Move elements</b> radio button is selected, the source mesh (or elements) is created at the new location and erased from its previous location
+\n When <b>Copy elements</b> radio button is selected,the source mesh (or elements) is created at the new location, but it also remains at its previous location and is considered one and single mesh with the result of the translation.
+\n When <b>Create as new mesh</b> radio button is selected, the source mesh (or elements) remains at its previous location and a new mesh is created at the new location and appears in the Object Browser with the default name MeshName_translated (you can change this name in the adjacent box).
+\n <b> Copy groups </b> checkbox allows copying the groups of elements of the source mesh to the newly created one.
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_translation "Translation" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/transparency.doc b/doc/salome/gui/SMESH/input/transparency.doc
new file mode 100644 (file)
index 0000000..91734ab
--- /dev/null
@@ -0,0 +1,11 @@
+/*!
+
+\page transparency_page Transparency
+
+\image html a-transparency.png
+
+Using this slider you can set the transparency of shading. Absolutely
+transparent shading will be invisible. By default it is absolutely
+opaque.
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/tui_creating_meshes.doc b/doc/salome/gui/SMESH/input/tui_creating_meshes.doc
new file mode 100644 (file)
index 0000000..f174e86
--- /dev/null
@@ -0,0 +1,184 @@
+/*!
+
+\page tui_creating_meshes_page Creating Meshes
+
+\n First of all see \ref introduction_to_mesh_python_page "Example of 3d mesh generation",
+ which is an example of good python script style for Mesh module.
+
+<br>
+<h2>Construction of a Mesh</h2>
+
+\code
+import geompy
+import smesh
+
+# create a box
+box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
+idbox = geompy.addToStudy(box, "box")
+
+# create a mesh
+tetra = smesh.Mesh(box, "MeshBox")
+
+algo1D = tetra.Segment()
+algo1D.NumberOfSegments(7)
+
+algo2D = tetra.Triangle()
+algo2D.MaxElementArea(800.)
+
+algo3D = tetra.Tetrahedron(smesh.NETGEN)
+algo3D.MaxElementVolume(900.)
+
+# compute the mesh
+ret = tetra.Compute()
+if ret == 0:
+    print "problem when computing the mesh"
+else:
+    print "mesh computed"
+    pass
+\endcode
+
+<br>
+\anchor tui_construction_submesh
+<h2>Construction of a Submesh</h2>
+
+\code
+from geompy import *
+import smesh
+
+# create a box
+box = MakeBoxDXDYDZ(10., 10., 10.)
+addToStudy(box, "Box")
+
+# select one edge of the box for definition of a local hypothesis
+p5 = MakeVertex(5., 0., 0.)
+EdgeX = GetEdgeNearPoint(box, p5)
+addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]")
+
+# create a hexahedral mesh on the box
+quadra = smesh.Mesh(box, "Box : quadrangle 2D mesh")
+
+# create a regular 1D algorithm for the faces
+algo1D = quadra.Segment()
+
+# define "NumberOfSegments" hypothesis to cut
+# all the edges in a fixed number of segments
+algo1D.NumberOfSegments(4)
+
+# create a quadrangle 2D algorithm for the faces
+quadra.Quadrangle()
+
+# construct a submesh on the edge with a local hypothesis
+algo_local = quadra.Segment(EdgeX)
+
+# define "Arithmetic1D" hypothesis to cut the edge in several segments with increasing arithmetic length
+algo_local.Arithmetic1D(1, 4)
+
+# define "Propagation" hypothesis that propagates all other hypotheses
+# on all edges of the opposite side in case of quadrangular faces
+algo_local.Propagation()
+
+# compute the mesh
+quadra.Compute()
+
+\endcode
+
+<br>
+\anchor tui_editing_mesh
+<h2>Editing of a mesh</h2>
+
+\code
+import geompy
+import smesh
+
+def PrintMeshInfo(theMesh):
+    aMesh = theMesh.GetMesh()
+    print "Information about mesh:"
+    print "Number of nodes       : ", aMesh.NbNodes()
+    print "Number of edges       : ", aMesh.NbEdges()
+    print "Number of faces       : ", aMesh.NbFaces()
+    print "Number of volumes     : ", aMesh.NbVolumes()
+    pass
+
+# create a box
+box = geompy.MakeBox(0., 0., 0., 20., 20., 20.)
+geompy.addToStudy(box, "box")
+
+# select one edge of the box for definition of a local hypothesis
+subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["EDGE"])
+edge = subShapeList[0]
+name = geompy.SubShapeName(edge, box)
+geompy.addToStudyInFather(box, edge, name)
+
+# create a mesh
+tria = smesh.Mesh(box, "Mesh 2D")
+algo1D = tria.Segment()
+hyp1 = algo1D.NumberOfSegments(3)
+algo2D = tria.Triangle()
+hyp2 = algo2D.MaxElementArea(10.)
+
+# create a sub-mesh
+algo_local = tria.Segment(edge)
+hyp3 = algo_local.Arithmetic1D(1, 6)
+hyp4 = algo_local.Propagation()
+
+# compute the mesh
+tria.Compute()
+PrintMeshInfo(tria)
+
+# remove a local hypothesis
+mesh = tria.GetMesh()
+mesh.RemoveHypothesis(edge, hyp4)
+
+# compute the mesh
+tria.Compute()
+PrintMeshInfo(tria)
+
+# change the value of the 2D hypothesis
+hyp2.SetMaxElementArea(2.)
+
+# compute the mesh
+tria.Compute()
+PrintMeshInfo(tria)
+\endcode
+
+<br>
+\anchor tui_export_mesh
+<h2>Export of a Mesh</h2>
+
+\code
+import geompy
+import smesh
+
+# create a box
+box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
+idbox = geompy.addToStudy(box, "box")
+
+# create a mesh
+tetra = smesh.Mesh(box, "MeshBox")
+
+algo1D = tetra.Segment()
+algo1D.NumberOfSegments(7)
+
+algo2D = tetra.Triangle()
+algo2D.MaxElementArea(800.)
+
+algo3D = tetra.Tetrahedron(smesh.NETGEN)
+algo3D.MaxElementVolume(900.)
+
+# compute the mesh
+tetra.Compute()
+
+# export the mesh in a MED file
+tetra.ExportMED("/tmp/meshMED.med", 0)
+\endcode
+
+<br>
+<h2>How to mesh a cylinder with hexahedrons?</h2>
+Here you can see an example of python script, creating a hexahedral
+mesh on a cylinder. And a picture below the source code of the script,
+demonstrating the resulting mesh.
+\include ex24_cylinder.py
+
+\image html mesh_cylinder_hexa.png
+
+*/
diff --git a/doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc b/doc/salome/gui/SMESH/input/tui_defining_hypotheses.doc
new file mode 100644 (file)
index 0000000..bd9fbbb
--- /dev/null
@@ -0,0 +1,385 @@
+/*!
+
+\page tui_defining_hypotheses_page Defining Hypotheses and Algorithms
+
+<h2>Defining 1D Hypotheses</h2>
+
+<br>
+\anchor tui_1d_arithmetic
+<h3>1D Arithmetic</h3>
+
+\code
+import geompy
+import smesh
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(10., 10., 10.)
+geompy.addToStudy(box, "Box")
+
+# create a hexahedral mesh on the box
+hexa = smesh.Mesh(box, "Box : hexahedrical mesh")
+
+# create a Regular 1D algorithm for edges
+algo1D = hexa.Segment()
+
+# define "Arithmetic1D" hypothesis to cut all edges in several segments with increasing arithmetic length 
+algo1D.Arithmetic1D(1, 4)
+
+# create a quadrangle 2D algorithm for faces
+hexa.Quadrangle()
+
+# create a hexahedron 3D algorithm for solids
+hexa.Hexahedron()
+
+# compute the mesh
+hexa.Compute()
+\endcode
+
+<br>
+\anchor tui_deflection_1d
+<h3>Deflection 1D and Number of Segments</h3>
+
+\code
+import geompy
+import smesh
+
+# create a face from arc and straight segment
+px = geompy.MakeVertex(100., 0.  , 0.  )
+py = geompy.MakeVertex(0.  , 100., 0.  )
+pz = geompy.MakeVertex(0.  , 0.  , 100.)
+
+exy = geompy.MakeEdge(px, py)
+arc = geompy.MakeArc(py, pz, px)
+
+wire = geompy.MakeWire([exy, arc])
+
+isPlanarFace = 1
+face1 = geompy.MakeFace(wire, isPlanarFace)
+geompy.addToStudy(face1,"Face1")
+
+# get edges from the face
+e_straight,e_arc = geompy.SubShapeAll(face1, geompy.ShapeType["EDGE"])
+geompy.addToStudyInFather(face1, e_arc, "Arc Edge")
+
+# create hexahedral mesh
+hexa = smesh.Mesh(face1, "Face : triangle mesh")
+
+# define "NumberOfSegments" hypothesis to cut a straight edge in a fixed number of segments
+algo1D = hexa.Segment()
+algo1D.NumberOfSegments(6)
+
+# define "MaxElementArea" hypothesis
+algo2D = hexa.Triangle()
+algo2D.MaxElementArea(70.0)
+
+# define a local "Deflection1D" hypothesis on the arc
+algo_local = hexa.Segment(e_arc)
+algo_local.Deflection1D(1.0)
+
+# compute the mesh
+hexa.Compute()
+\endcode
+
+<br>
+\anchor tui_start_and_end_length
+<h3>Start and End Length</h3>
+
+\code
+from geompy import *
+import smesh
+
+# create a box
+box = MakeBoxDXDYDZ(10., 10., 10.)
+addToStudy(box, "Box")
+
+# get one edge of the box to put local hypothesis on
+p5 = MakeVertex(5., 0., 0.)
+EdgeX = GetEdgeNearPoint(box, p5)
+addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]")
+
+# create a hexahedral mesh on the box
+hexa = smesh.Mesh(box, "Box : hexahedrical mesh")
+
+# set algorithms
+algo1D = hexa.Segment()
+hexa.Quadrangle()
+hexa.Hexahedron()
+
+# define "NumberOfSegments" hypothesis to cut an edge in a fixed number of segments
+algo1D.NumberOfSegments(4)
+
+# create a local hypothesis
+algo_local = hexa.Segment(EdgeX)
+
+# define "StartEndLength" hypothesis to cut an edge in several segments with increasing geometric length
+algo_local.StartEndLength(1, 6)
+
+# define "Propagation" hypothesis that propagates all other hypothesis
+# on all edges on the opposite side in case of quadrangular faces
+algo_local.Propagation()
+
+# compute the mesh
+hexa.Compute()
+\endcode
+
+<br>
+\anchor tui_average_length
+<h3>Average Length</h3>
+
+\code
+from geompy import *
+import smesh
+
+# create a box
+box = MakeBoxDXDYDZ(10., 10., 10.)
+addToStudy(box, "Box")
+
+# get one edge of the box to put local hypothesis on
+p5 = MakeVertex(5., 0., 0.)
+EdgeX = GetEdgeNearPoint(box, p5)
+addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]")
+
+# create a hexahedral mesh on the box
+hexa = smesh.Mesh(box, "Box : hexahedrical mesh")
+
+# set algorithms
+algo1D = hexa.Segment()
+hexa.Quadrangle()
+hexa.Hexahedron()
+
+# define "NumberOfSegments" hypothesis to cut all edges in a fixed number of segments
+algo1D.NumberOfSegments(4)
+
+# create a sub-mesh
+algo_local = hexa.Segment(EdgeX)
+
+# define "LocalLength" hypothesis to cut an edge in several segments with the same length
+algo_local.LocalLength(2.)
+
+# define "Propagation" hypothesis that propagates all other hypothesis
+# on all edges on the opposite side in case of quadrangular faces
+algo_local.Propagation()
+
+# compute the mesh
+hexa.Compute()
+\endcode
+
+<br><h2>Defining 2D and 3D hypotheses</h2>
+
+<br>
+\anchor tui_max_element_area
+<h3>Maximum Element Area</h3>
+
+\code
+import geompy
+import smesh
+import salome 
+
+# create a face
+px   = geompy.MakeVertex(100., 0.  , 0.  )
+py   = geompy.MakeVertex(0.  , 100., 0.  )
+pz   = geompy.MakeVertex(0.  , 0.  , 100.)
+
+vxy = geompy.MakeVector(px, py)
+arc = geompy.MakeArc(py, pz, px)
+wire = geompy.MakeWire([vxy, arc])
+
+isPlanarFace = 1
+face = geompy.MakeFace(wire, isPlanarFace)
+
+# add the face in the study
+id_face = geompy.addToStudy(face, "Face to be meshed")
+
+# create a mesh
+tria_mesh = smesh.Mesh(face, "Face : triangulation")
+
+# define 1D meshing:
+algo = tria_mesh.Segment()
+algo.NumberOfSegments(20)
+
+# define 2D meshing:
+
+# assign triangulation algorithm
+algo = tria_mesh.Triangle()
+
+# apply "Max Element Area" hypothesis to each triangle
+algo.MaxElementArea(100)
+
+# compute the mesh
+tria_mesh.Compute()
+\endcode
+
+<br>
+\anchor tui_max_element_volume
+<h3>Maximum Element Volume</h3>
+
+\code
+import geompy
+import smesh
+
+# create a cylinder
+cyl = geompy.MakeCylinderRH(30., 50.)
+geompy.addToStudy(cyl, "cyl")
+
+# create a mesh on the cylinder
+tetra = smesh.Mesh(cyl, "Cylinder : tetrahedrical mesh")
+
+# assign algorithms
+algo1D = tetra.Segment()
+algo2D = tetra.Triangle()
+algo3D = tetra.Tetrahedron(smesh.NETGEN)
+
+# assign 1D and 2D hypotheses
+algo1D.NumberOfSegments(7)
+algo2D.MaxElementArea(150.)
+
+# assign Max Element Volume hypothesis
+algo3D.MaxElementVolume(200.)
+
+# compute the mesh
+ret = tetra.Compute()
+if ret == 0:
+    print "probleme when computing the mesh"
+else:
+    print "Computation succeded"
+\endcode
+
+<br>
+\anchor tui_length_from_edges
+<h3>Length from Edges</h3>
+
+\code
+import geompy
+import smesh
+
+# create sketchers
+sketcher1 = geompy.MakeSketcher("Sketcher:F 0 0:TT 70 0:TT 70 70:TT 0 70:WW")
+sketcher2 = geompy.MakeSketcher("Sketcher:F 20 20:TT 50 20:TT 50 50:TT 20 50:WW")
+
+# create a face from two wires
+isPlanarFace = 1
+face1 = geompy.MakeFaces([sketcher1, sketcher2], isPlanarFace)
+geompy.addToStudy(face1, "Face1")
+
+# create a mesh
+tria = smesh.Mesh(face1, "Face : triangle 2D mesh")
+
+# Define 1D meshing
+algo1D = tria.Segment()
+algo1D.NumberOfSegments(2)
+
+# create and assign the algorithm for 2D meshing with triangles
+algo2D = tria.Triangle()
+
+# create and assign "LengthFromEdges" hypothesis to build triangles based on the length of the edges taken from the wire
+algo2D.LengthFromEdges()
+
+# compute the mesh
+tria.Compute()
+\endcode
+
+<br><h2>Defining Additional Hypotheses</h2>
+
+<br>
+\anchor tui_propagation
+<h3>Propagation</h3>
+
+\code
+from geompy import *
+import smesh
+
+# create a box
+box = MakeBoxDXDYDZ(10., 10., 10.)
+addToStudy(box, "Box")
+
+# get one edge of the box to put local hypothesis on
+p5 = MakeVertex(5., 0., 0.)
+EdgeX = GetEdgeNearPoint(box, p5)
+addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]")
+
+# create a hexahedral mesh on the box
+hexa = smesh.Mesh(box, "Box : hexahedrical mesh")
+
+# set global algorithms and hypotheses
+algo1D = hexa.Segment()
+hexa.Quadrangle()
+hexa.Hexahedron()
+algo1D.NumberOfSegments(4)
+
+# create a sub-mesh with local 1D hypothesis and propagation
+algo_local = hexa.Segment(EdgeX)
+
+# define "Arithmetic1D" hypothesis to cut an edge in several segments with increasing length
+algo_local.Arithmetic1D(1, 4)
+
+# define "Propagation" hypothesis that propagates all other 1D hypotheses
+# from all edges on the opposite side of a face in case of quadrangular faces
+algo_local.Propagation()
+
+# compute the mesh
+hexa.Compute()
+\endcode
+
+<br>
+\anchor tui_defining_meshing_algos
+<h2>Defining Meshing Algorithms</h2>
+
+\code
+import geompy
+import smesh
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(10., 10., 10.)
+geompy.addToStudy(box, "Box")
+
+# 1. Create a hexahedral mesh on the box
+hexa = smesh.Mesh(box, "Box : hexahedrical mesh")
+
+# create a Regular 1D algorithm for edges
+algo1D = hexa.Segment()
+
+# create a quadrangle 2D algorithm for faces
+algo2D = hexa.Quadrangle()
+
+# create a hexahedron 3D algorithm for solids
+algo3D = hexa.Hexahedron()
+
+# define hypotheses
+algo1D.Arithmetic1D(1, 4)
+
+# compute the mesh
+hexa.Compute()
+
+# 2. Create a tetrahedral mesh on the box
+tetra = smesh.Mesh(box, "Box : tetrahedrical mesh")
+
+# create a Regular 1D algorithm for edges
+algo1D = tetra.Segment()
+
+# create a Mefisto 2D algorithm for faces
+algo2D = tetra.Triangle()
+
+# create a Netgen 3D algorithm for solids
+algo3D = tetra.Tetrahedron(smesh.NETGEN)
+
+# define hypotheses
+algo1D.Arithmetic1D(1, 4)
+algo2D.LengthFromEdges()
+
+# compute the mesh
+tetra.Compute()
+
+# 3. Create a tetrahedral mesh on the box with NETGEN_2D3D algorithm
+tetraN = smesh.Mesh(box, "Box : tetrahedrical mesh by NETGEN_2D3D")
+
+# create a Netgen_2D3D algorithm for solids
+algo3D = tetraN.Tetrahedron(smesh.FULL_NETGEN) 
+
+# define hypotheses
+n23_params = algo3D.Parameters()
+
+# compute the mesh
+tetraN.Compute()
+\endcode
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/tui_grouping_elements.doc b/doc/salome/gui/SMESH/input/tui_grouping_elements.doc
new file mode 100644 (file)
index 0000000..8b9f639
--- /dev/null
@@ -0,0 +1,277 @@
+/*!
+
+\page tui_grouping_elements_page Grouping Elements
+
+<br>
+\anchor tui_create_standalone_group
+<h2>Create a Standalone Group</h2>
+
+\code
+import SMESH_mechanic
+
+smesh  = SMESH_mechanic.smesh
+mesh   = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Get ids of all faces with area > 100 
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 100.)
+
+anIds = mesh.GetIdsFromFilter(aFilter) 
+
+# create a group consisting of faces with area > 100
+aGroup = mesh.MakeGroupByIds("Area > 100", smesh.FACE, anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+\image html create_group.png
+
+<br>
+\anchor tui_create_group_on_geometry
+<h2>Create a Group on Geometry</h2>
+
+\code
+import salome
+import geompy
+import smesh
+
+# create a box
+box = geompy.MakeBox(0., 0., 0., 100., 100., 100.)
+geompy.addToStudy(box, "box")
+
+# add the first face of the box to the study
+subShapeList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
+face = subShapeList[0]
+geompy.addToStudyInFather(box, face, "face 1") 
+
+# create group of edges on the face
+aGeomGroupE = geompy.CreateGroup(face, geompy.ShapeType["EDGE"])
+geompy.AddObject(aGeomGroupE, 3)
+geompy.AddObject(aGeomGroupE, 6)
+geompy.AddObject(aGeomGroupE, 8)
+geompy.AddObject(aGeomGroupE, 10)
+geompy.addToStudyInFather(face, aGeomGroupE, "Group of Edges")
+
+# create quadrangle 2D mesh on the box
+quadra = smesh.Mesh(box, "Box : quadrangle 2D mesh")
+algo1D = quadra.Segment()
+quadra.Quadrangle()
+algo1D.NumberOfSegments(7) 
+
+# compute the mesh
+quadra.Compute()
+
+# create SMESH group on the face with name "SMESHGroup1"
+aSmeshGroup1 = quadra.GroupOnGeom(face, "SMESHGroup1")
+
+# create SMESH group on <aGeomGroupE> with default name
+aSmeshGroup2 = quadra.GroupOnGeom(aGeomGroupE) 
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_edit_group
+<h2>Edit a Group</h2>
+
+\code
+import SMESH_mechanic
+
+smesh  = SMESH_mechanic.smesh
+mesh   = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Get ids of all faces with area > 35
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 35.)
+
+anIds = mesh.GetIdsFromFilter(aFilter) 
+
+print "Criterion: Area > 35, Nb = ", len(anIds)
+
+# create a group by adding elements with area > 35
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Area > 35")
+aGroup.Add(anIds) 
+
+# Get ids of all faces with area > 40
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 40.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area > 40, Nb = ", len(anIds) 
+
+# create a group of elements with area [35; 40] by removing elements with area > 40 from group aGroup
+aGroup.Remove(anIds) 
+
+# print the result
+aGroupElemIDs = aGroup.GetListOfID()
+
+print "Criterion: 35 < Area < 40, Nb = ", len(aGroupElemIDs)
+
+j = 1
+for i in range(len(aGroupElemIDs)):
+  if j > 20: j = 1; print ""
+  print aGroupElemIDs[i],
+  j = j + 1
+  pass
+print ""
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+\image html editing_groups1.png
+
+\image html editing_groups2.png
+
+<br>
+\anchor tui_union_of_two_groups
+<h2>Union of two groups</h2>
+
+\code
+import SMESH_mechanic
+
+smesh  = SMESH_mechanic.smesh
+mesh   = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : AREA > 20
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 20.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area > 20, Nb = ", len( anIds ) 
+
+# create a group by adding elements with area > 20
+aGroup1 = mesh.CreateEmptyGroup(SMESH.FACE, "Area > 20")
+aGroup1.Add(anIds)
+
+# Criterion : AREA = 20
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_EqualTo, 20.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area = 20, Nb = ", len( anIds ) 
+
+# create a group by adding elements with area = 20
+aGroup2 = mesh.CreateEmptyGroup( smesh.FACE, "Area = 20" )
+
+aGroup2.Add(anIds)
+
+# create union group : area >= 20
+aGroup3 = mesh.UnionGroups(aGroup1, aGroup2, "Area >= 20")
+print "Criterion: Area >= 20, Nb = ", len(aGroup3.GetListOfID())
+
+# Criterion : AREA < 20
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, 20.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area < 20, Nb = ", len(anIds)
+
+# create a group by adding elements with area < 20
+aGroup4 = mesh.CreateEmptyGroup(smesh.FACE, "Area < 20")
+aGroup4.Add(anIds)
+
+# create union group : area >= 20 and area < 20
+aGroup5 = mesh.UnionGroups(aGroup3, aGroup4, "Any Area")
+print "Criterion: Any Area, Nb = ", len(aGroup5.GetListOfID())
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+\image html union_groups1.png
+
+\image html union_groups2.png
+
+\image html union_groups3.png
+
+<br>
+\anchor tui_intersection_of_two_groups
+<h2>Intersection of two groups</h2>
+
+\code
+import SMESH_mechanic
+
+smesh  = SMESH_mechanic.smesh
+mesh   = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : AREA > 20
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 20.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area > 20, Nb = ", len(anIds) 
+
+# create a group by adding elements with area > 20
+aGroup1 = mesh.CreateEmptyGroup(SMESH.FACE, "Area > 20")
+aGroup1.Add(anIds)
+
+# Criterion : AREA < 60
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, 60.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area < 60, Nb = ", len(anIds) 
+
+# create a group by adding elements with area < 60
+aGroup2 = mesh.CreateEmptyGroup(SMESH.FACE, "Area < 60")
+aGroup2.Add(anIds)
+
+# create an intersection of groups : 20 < area < 60
+aGroup3 = mesh.IntersectGroups(aGroup1, aGroup2, "20 < Area < 60")
+print "Criterion: 20 < Area < 60, Nb = ", len(aGroup3.GetListOfID())
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+\image html intersect_groups1.png
+
+\image html intersect_groups2.png
+
+\image html intersect_groups3.png
+
+<br>
+\anchor tui_cut_of_two_groups
+<h2>Cut of two groups</h2>
+
+\code
+import SMESH_mechanic
+
+smesh  = SMESH_mechanic.smesh
+mesh   = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : AREA > 20
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, 20.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area > 20, Nb = ", len(anIds) 
+
+# create a group by adding elements with area > 20
+aGroupMain = mesh.MakeGroupByIds("Area > 20", smesh.FACE, anIds)
+
+# Criterion : AREA < 60
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, 60.)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+print "Criterion: Area < 60, Nb = ", len(anIds) 
+
+# create a group by adding elements with area < 60
+aGroupTool = mesh.MakeGroupByIds("Area < 60", smesh.FACE, anIds)
+# create a cut of groups : area >= 60
+aGroupRes = mesh.CutGroups(aGroupMain, aGroupTool, "Area >= 60")
+print "Criterion: Area >= 60, Nb = ", len(aGroupRes.GetListOfID())
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+\image html cut_groups1.png
+
+\image html cut_groups2.png
+
+\image html cut_groups3.png
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/tui_modifying_meshes.doc b/doc/salome/gui/SMESH/input/tui_modifying_meshes.doc
new file mode 100644 (file)
index 0000000..342968f
--- /dev/null
@@ -0,0 +1,817 @@
+/*!
+
+\page tui_modifying_meshes_page Modifying Meshes
+
+<br>
+\anchor tui_adding_nodes_and_elements
+<h2>Adding Nodes and Elements</h2>
+
+<br>
+\anchor tui_add_node
+<h3>Add Node</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+
+# add node
+new_id = mesh.AddNode(50, 10, 0)
+print ""
+if new_id == 0: print "KO node addition."
+else:           print "New Node has been added with ID ", new_id
+\endcode
+
+<br>
+\anchor tui_add_edge
+<h3>Add Edge</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+print ""
+
+# add node
+n1 = mesh.AddNode(50, 10, 0)
+if n1 == 0: print "KO node addition." 
+
+# add edge
+e1 = mesh.AddEdge([n1, 38])
+if e1 == 0: print "KO edge addition."
+else:       print "New Edge has been added with ID ", e1
+\endcode
+
+<br>
+\anchor tui_add_triangle
+<h3>Add Triangle</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+print ""
+
+# add node
+n1 = mesh.AddNode(50, 10, 0)
+if n1 == 0: print "KO node addition."
+
+# add triangle
+t1 = mesh.AddFace([n1, 38, 39])
+if t1 == 0: print "KO triangle addition."
+else:       print "New Triangle has been added with ID ", t1
+\endcode
+
+<br>
+\anchor tui_add_quadrangle
+<h3>Add Quadrangle</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+print ""
+
+# add node
+n1 = mesh.AddNode(50, 10, 0)
+if n1 == 0: print "KO node addition."
+
+n2 = mesh.AddNode(40, 20, 0)
+if n2 == 0: print "KO node addition."
+
+# add quadrangle
+q1 = mesh.AddFace([n2, n1, 38, 39])
+if q1 == 0: print "KO quadrangle addition."
+else:       print "New Quadrangle has been added with ID ", q1
+\endcode
+
+<br>
+\anchor tui_add_tetrahedron
+<h3>Add Tetrahedron</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+print ""
+
+# add node
+n1 = mesh.AddNode(50, 10, 0)
+if n1 == 0: print "KO node addition."
+
+# add tetrahedron
+t1 = mesh.AddVolume([n1, 38, 39, 246])
+if t1 == 0: print "KO tetrahedron addition."
+else:       print "New Tetrahedron has been added with ID ", t1
+\endcode
+
+<br>
+\anchor tui_add_hexahedron
+<h3>Add Hexahedron</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+print ""
+
+# add nodes
+nId1 = mesh.AddNode(50, 10, 0)
+nId2 = mesh.AddNode(47, 12, 0)
+nId3 = mesh.AddNode(50, 10, 10)
+nId4 = mesh.AddNode(47, 12, 10)
+
+if nId1 == 0 or nId2 == 0 or nId3 == 0 or nId4 == 0: print "KO node addition."
+
+# add hexahedron
+vId = mesh.AddVolume([nId2, nId1, 38, 39, nId4, nId3, 245, 246])
+if vId == 0: print "KO Hexahedron addition."
+else:        print "New Hexahedron has been added with ID ", vId
+\endcode
+
+<br>
+\anchor tui_add_polygon
+<h3>Add Polygon</h3>
+
+\code
+import math
+import salome
+
+import smesh
+
+# create an empty mesh structure
+mesh = smesh.Mesh() 
+
+# a method to build a polygonal mesh element with <nb_vert> angles:
+def MakePolygon (a_mesh, x0, y0, z0, radius, nb_vert):
+    al = 2.0 * math.pi / nb_vert
+    node_ids = []
+
+    # Create nodes for a polygon
+    for ii in range(nb_vert):
+        nid = mesh.AddNode(x0 + radius * math.cos(ii*al),
+                           y0 + radius * math.sin(ii*al),
+                                                     z0)
+        node_ids.append(nid)
+        pass
+
+    # Create a polygon
+    return mesh.AddPolygonalFace(node_ids)
+
+# Create three polygons
+f1 = MakePolygon(mesh, 0, 0,  0, 30, 13)
+f2 = MakePolygon(mesh, 0, 0, 10, 21,  9)
+f3 = MakePolygon(mesh, 0, 0, 20, 13,  6)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_add_polyhedron
+<h3>Add Polyhedron</h3>
+
+\code
+import salome
+import math
+
+# create an empty mesh structure
+mesh = smesh.Mesh()  
+
+# Create nodes for 12-hedron with pentagonal faces
+al = 2 * math.pi / 5.0
+cosal = math.cos(al)
+aa = 13
+rr = aa / (2.0 * math.sin(al/2.0))
+dr = 2.0 * rr * cosal
+r1 = rr + dr
+dh = rr * math.sqrt(2.0 * (1.0 - cosal * (1.0 + 2.0 * cosal)))
+hh = 2.0 * dh - dr * (rr*(cosal - 1) + (rr + dr)*(math.cos(al/2) - 1)) / dh
+
+dd = [] # top
+cc = [] # below top
+bb = [] # above bottom
+aa = [] # bottom
+
+for i in range(5):
+    cos_bot = math.cos(i*al)
+    sin_bot = math.sin(i*al)
+
+    cos_top = math.cos(i*al + al/2.0)
+    sin_top = math.sin(i*al + al/2.0)
+
+    nd = mesh.AddNode(rr * cos_top, rr * sin_top, hh     ) # top
+    nc = mesh.AddNode(r1 * cos_top, r1 * sin_top, hh - dh) # below top
+    nb = mesh.AddNode(r1 * cos_bot, r1 * sin_bot,      dh) # above bottom
+    na = mesh.AddNode(rr * cos_bot, rr * sin_bot,       0) # bottom
+    dd.append(nd) # top
+    cc.append(nc) # below top
+    bb.append(nb) # above bottom
+    aa.append(na) # bottom
+    pass
+
+# Create a polyhedral volume (12-hedron with pentagonal faces)
+MeshEditor.AddPolyhedralVolume([dd[0], dd[1], dd[2], dd[3], dd[4],  # top
+                                dd[0], cc[0], bb[1], cc[1], dd[1],  # -
+                                dd[1], cc[1], bb[2], cc[2], dd[2],  # -
+                                dd[2], cc[2], bb[3], cc[3], dd[3],  # - below top
+                                dd[3], cc[3], bb[4], cc[4], dd[4],  # -
+                                dd[4], cc[4], bb[0], cc[0], dd[0],  # -
+                                aa[4], bb[4], cc[4], bb[0], aa[0],  # .
+                                aa[3], bb[3], cc[3], bb[4], aa[4],  # .
+                                aa[2], bb[2], cc[2], bb[3], aa[3],  # . above bottom
+                                aa[1], bb[1], cc[1], bb[2], aa[2],  # .
+                                aa[0], bb[0], cc[0], bb[1], aa[1],  # .
+                                aa[0], aa[1], aa[2], aa[3], aa[4]], # bottom
+                               [5,5,5,5,5,5,5,5,5,5,5,5])
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_removing_nodes_and_elements
+<h2>Removing Nodes and Elements</h2>
+
+<br>
+\anchor tui_removing_nodes
+<h3>Removing Nodes</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+
+# remove nodes #246 and #255
+res = mesh.RemoveNodes([246, 255])
+if res == 1: print "Nodes removing is OK!"
+else:        print "KO nodes removing."
+\endcode
+
+<br>
+\anchor tui_removing_elements
+<h3>Removing Elements</h3>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+
+# remove three elements: #850, #859 and #814
+res = mesh.RemoveElements([850, 859, 814])
+if res == 1: print "Elements removing is OK!"
+else:        print "KO Elements removing."
+\endcode
+
+<br>
+\anchor tui_renumbering_nodes_and_elements
+<h2>Renumbering Nodes and Elements</h2>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+
+mesh.RenumberNodes()
+
+mesh.RenumberElements()
+\endcode
+
+<br>
+\anchor tui_moving_nodes
+<h2>Moving Nodes</h2>
+
+\code
+import SMESH_mechanic
+
+mesh = SMESH_mechanic.mesh
+
+# move node #38
+mesh.MoveNode(38, 20., 10., 0.)
+\endcode
+
+<br>
+\anchor tui_mesh_through_point
+<h2>Mesh through point</h2>
+
+\code
+from geompy import *
+from smesh import *
+
+box = MakeBoxDXDYDZ(200, 200, 200)
+
+mesh = Mesh( box )
+mesh.Segment().AutomaticLength(0.1)
+mesh.Quadrangle()
+mesh.Compute()
+
+# find node at (0,0,0)
+node000 = None
+for vId in SubShapeAllIDs( box, ShapeType["VERTEX"]):
+    if node000: break
+    nodeIds = mesh.GetSubMeshNodesId( vId, True )
+    for node in nodeIds:
+        xyz = mesh.GetNodeXYZ( node )
+        if xyz[0] == 0 and xyz[1] == 0 and xyz[2] == 0 :
+            node000 = node
+            pass
+        pass
+    pass
+
+if not node000:
+    raise "node000 not found"
+
+# find node000 using the tested function 
+n = mesh.FindNodeClosestTo( -1,-1,-1 )
+if not n == node000:
+    raise "FindNodeClosestTo() returns " + str( n ) + " != " + str( node000 )
+
+# check if any node will be found for a point inside a box
+n = mesh.FindNodeClosestTo( 100, 100, 100 )
+if not n > 0:
+    raise "FindNodeClosestTo( 100, 100, 100 ) fails"
+
+# move node000 to a new location
+x,y,z = -10, -10, -10
+n = mesh.MeshToPassThroughAPoint( x,y,z )
+if not n == node000:
+    raise "FindNodeClosestTo() returns " + str( n ) + " != " + str( node000 )
+
+# check the coordinates of the node000
+xyz = mesh.GetNodeXYZ( node000 )
+if not ( xyz[0] == x and xyz[1] == y and xyz[2] == z) :
+    raise "Wrong coordinates: " + str( xyz ) + " != " + str( [x,y,z] )
+\endcode
+
+<br>
+\anchor tui_diagonal_inversion
+<h2>Diagonal Inversion</h2>
+
+\code
+import salome
+import smesh
+
+# create an empty mesh structure
+mesh = smesh.Mesh() 
+
+# create the following mesh:
+# .----.----.----.
+# |   /|   /|   /|
+# |  / |  / |  / |
+# | /  | /  | /  |
+# |/   |/   |/   |
+# .----.----.----.
+
+bb = [0, 0, 0, 0]
+tt = [0, 0, 0, 0]
+ff = [0, 0, 0, 0, 0, 0]
+
+bb[0] = mesh.AddNode( 0., 0., 0.)
+bb[1] = mesh.AddNode(10., 0., 0.)
+bb[2] = mesh.AddNode(20., 0., 0.)
+bb[3] = mesh.AddNode(30., 0., 0.)
+
+tt[0] = mesh.AddNode( 0., 15., 0.)
+tt[1] = mesh.AddNode(10., 15., 0.)
+tt[2] = mesh.AddNode(20., 15., 0.)
+tt[3] = mesh.AddNode(30., 15., 0.)
+
+ff[0] = mesh.AddFace([bb[0], bb[1], tt[1]])
+ff[1] = mesh.AddFace([bb[0], tt[1], tt[0]])
+ff[2] = mesh.AddFace([bb[1], bb[2], tt[2]])
+ff[3] = mesh.AddFace([bb[1], tt[2], tt[1]])
+ff[4] = mesh.AddFace([bb[2], bb[3], tt[3]])
+ff[5] = mesh.AddFace([bb[2], tt[3], tt[2]])
+
+# inverse the diagonal bb[1] - tt[2]
+print "\nDiagonal inversion ... ",
+res = mesh.InverseDiag(bb[1], tt[2])
+if not res: print "failed!"
+else:       print "done."
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_uniting_two_triangles
+<h2>Uniting two Triangles</h2>
+
+\code
+import salome
+import smesh
+
+# create an empty mesh structure
+mesh = smesh.Mesh() 
+
+# create the following mesh:
+# .----.----.----.
+# |   /|   /|   /|
+# |  / |  / |  / |
+# | /  | /  | /  |
+# |/   |/   |/   |
+# .----.----.----.
+
+bb = [0, 0, 0, 0]
+tt = [0, 0, 0, 0]
+ff = [0, 0, 0, 0, 0, 0]
+
+bb[0] = mesh.AddNode( 0., 0., 0.)
+bb[1] = mesh.AddNode(10., 0., 0.)
+bb[2] = mesh.AddNode(20., 0., 0.)
+bb[3] = mesh.AddNode(30., 0., 0.)
+
+tt[0] = mesh.AddNode( 0., 15., 0.)
+tt[1] = mesh.AddNode(10., 15., 0.)
+tt[2] = mesh.AddNode(20., 15., 0.)
+tt[3] = mesh.AddNode(30., 15., 0.)
+
+ff[0] = mesh.AddFace([bb[0], bb[1], tt[1]])
+ff[1] = mesh.AddFace([bb[0], tt[1], tt[0]])
+ff[2] = mesh.AddFace([bb[1], bb[2], tt[2]])
+ff[3] = mesh.AddFace([bb[1], tt[2], tt[1]])
+ff[4] = mesh.AddFace([bb[2], bb[3], tt[3]])
+ff[5] = mesh.AddFace([bb[2], tt[3], tt[2]]) 
+
+# delete the diagonal bb[1] - tt[2]
+print "\nUnite two triangles ... ",
+res = mesh.DeleteDiag(bb[1], tt[2])
+if not res: print "failed!"
+else:       print "done."
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_uniting_set_of_triangles
+<h2>Uniting a Set of Triangles</h2>
+
+\code
+import salome
+import smesh
+
+# create an empty mesh structure
+mesh = smesh.Mesh() 
+
+# create the following mesh:
+# .----.----.----.
+# |   /|   /|   /|
+# |  / |  / |  / |
+# | /  | /  | /  |
+# |/   |/   |/   |
+# .----.----.----.
+
+bb = [0, 0, 0, 0]
+tt = [0, 0, 0, 0]
+ff = [0, 0, 0, 0, 0, 0]
+
+bb[0] = mesh.AddNode( 0., 0., 0.)
+bb[1] = mesh.AddNode(10., 0., 0.)
+bb[2] = mesh.AddNode(20., 0., 0.)
+bb[3] = mesh.AddNode(30., 0., 0.)
+
+tt[0] = mesh.AddNode( 0., 15., 0.)
+tt[1] = mesh.AddNode(10., 15., 0.)
+tt[2] = mesh.AddNode(20., 15., 0.)
+tt[3] = mesh.AddNode(30., 15., 0.)
+
+ff[0] = mesh.AddFace([bb[0], bb[1], tt[1]])
+ff[1] = mesh.AddFace([bb[0], tt[1], tt[0]])
+ff[2] = mesh.AddFace([bb[1], bb[2], tt[2]])
+ff[3] = mesh.AddFace([bb[1], tt[2], tt[1]])
+ff[4] = mesh.AddFace([bb[2], bb[3], tt[3]])
+ff[5] = mesh.AddFace([bb[2], tt[3], tt[2]])
+
+# unite a set of triangles
+print "\nUnite a set of triangles ... ",
+res = mesh.TriToQuad([ff[2], ff[3], ff[4], ff[5]], smesh.FT_MinimumAngle, 60.)
+if not res: print "failed!"
+else:       print "done."
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_orientation
+<h2>Orientation</h2>
+
+\code
+import salome
+import smesh
+
+# create an empty mesh structure
+mesh = smesh.Mesh() 
+
+# build five quadrangles:
+dx = 10
+dy = 20
+
+n1  = mesh.AddNode(0.0 * dx, 0, 0)
+n2  = mesh.AddNode(1.0 * dx, 0, 0)
+n3  = mesh.AddNode(2.0 * dx, 0, 0)
+n4  = mesh.AddNode(3.0 * dx, 0, 0)
+n5  = mesh.AddNode(4.0 * dx, 0, 0)
+n6  = mesh.AddNode(5.0 * dx, 0, 0)
+n7  = mesh.AddNode(0.0 * dx, dy, 0)
+n8  = mesh.AddNode(1.0 * dx, dy, 0)
+n9  = mesh.AddNode(2.0 * dx, dy, 0)
+n10 = mesh.AddNode(3.0 * dx, dy, 0)
+n11 = mesh.AddNode(4.0 * dx, dy, 0)
+n12 = mesh.AddNode(5.0 * dx, dy, 0)
+
+f1 = mesh.AddFace([n1, n2, n8 , n7 ])
+f2 = mesh.AddFace([n2, n3, n9 , n8 ])
+f3 = mesh.AddFace([n3, n4, n10, n9 ])
+f4 = mesh.AddFace([n4, n5, n11, n10])
+f5 = mesh.AddFace([n5, n6, n12, n11]) 
+
+# Change the orientation of the second and the fourth faces.
+mesh.Reorient([2, 4])
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_cutting_quadrangles
+<h2>Cutting Quadrangles</h2>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh  = SMESH_mechanic.mesh
+
+# cut two quadrangles: 405 and 406
+mesh.QuadToTri([405, 406], smesh.FT_MinimumAngle)
+\endcode
+
+<br>
+\anchor tui_smoothing
+<h2>Smoothing</h2>
+
+\code
+import salome
+import geompy
+
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh
+
+# select the top face
+faces = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh, geompy.ShapeType["FACE"])
+face = faces[3]
+geompy.addToStudyInFather(SMESH_mechanic.shape_mesh, face, "face planar with hole")
+
+# create a group of faces to be smoothed
+GroupSmooth = mesh.GroupOnGeom(face, "Group of faces (smooth)", smesh.FACE)
+
+# perform smoothing
+
+# boolean SmoothObject(Object, IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method)
+res = mesh.SmoothObject(GroupSmooth, [], 20, 2., smesh.CENTROIDAL_SMOOTH)
+print "\nSmoothing ... ",
+if not res: print "failed!"
+else:       print "done."
+
+salome.sg.updateObjBrowser(1) 
+\endcode
+
+<br>
+\anchor tui_extrusion
+<h2>Extrusion</h2>
+
+\code
+import salome
+import geompy
+
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh 
+
+# select the top face
+faces = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh, geompy.ShapeType["FACE"])
+face = faces[7]
+geompy.addToStudyInFather(SMESH_mechanic.shape_mesh, face, "face circular top")
+
+# create a vector for extrusion
+point = smesh.PointStruct(0., 0., 5.)
+vector = smesh.DirStruct(point)
+
+# create a group to be extruded
+GroupTri = mesh.GroupOnGeom(face, "Group of faces (extrusion)", smesh.FACE)
+
+# perform extrusion of the group
+mesh.ExtrusionSweepObject(GroupTri, vector, 5)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_extrusion_along_path
+<h2>Extrusion along a Path</h2>
+
+\code
+import math
+import salome
+
+# Geometry
+import geompy
+
+# 1. Create points
+points = [[0, 0], [50, 30], [50, 110], [0, 150], [-80, 150], [-130, 70], [-130, -20]]
+
+iv = 1
+vertices = []
+for point in points:
+    vert = geompy.MakeVertex(point[0], point[1], 0)
+    geompy.addToStudy(vert, "Vertex_" + `iv`)
+    vertices.append(vert)
+    iv += 1
+    pass
+
+# 2. Create edges and wires
+Edge_straight = geompy.MakeEdge(vertices[0], vertices[4])
+Edge_bezierrr = geompy.MakeBezier(vertices)
+Wire_polyline = geompy.MakePolyline(vertices)
+Edge_Circle   = geompy.MakeCircleThreePnt(vertices[0], vertices[1], vertices[2])
+
+geompy.addToStudy(Edge_straight, "Edge_straight")
+geompy.addToStudy(Edge_bezierrr, "Edge_bezierrr")
+geompy.addToStudy(Wire_polyline, "Wire_polyline")
+geompy.addToStudy(Edge_Circle  , "Edge_Circle")
+
+# 3. Explode wire on edges, as they will be used for mesh extrusion
+Wire_polyline_edges = geompy.SubShapeAll(Wire_polyline, geompy.ShapeType["EDGE"])
+for ii in range(len(Wire_polyline_edges)):
+    geompy.addToStudyInFather(Wire_polyline, Wire_polyline_edges[ii], "Edge_" + `ii + 1`)
+    pass
+
+# Mesh
+import smesh
+
+# Mesh the given shape with the given 1d hypothesis
+def Mesh1D(shape1d, nbSeg, name):
+  mesh1d_tool = smesh.Mesh(shape1d, name)
+  algo = mesh1d_tool.Segment()
+  hyp  = algo.NumberOfSegments(nbSeg)
+  isDone = mesh1d_tool.Compute()
+  if not isDone: print 'Mesh ', name, ': computation failed'
+  return mesh1d_tool
+
+# Create a mesh with six nodes, seven edges and two quadrangle faces
+def MakeQuadMesh2(mesh_name):
+  quad_1 = smesh.Mesh(name = mesh_name)
+  
+  # six nodes
+  n1 = quad_1.AddNode(0, 20, 10)
+  n2 = quad_1.AddNode(0, 40, 10)
+  n3 = quad_1.AddNode(0, 40, 30)
+  n4 = quad_1.AddNode(0, 20, 30)
+  n5 = quad_1.AddNode(0,  0, 30)
+  n6 = quad_1.AddNode(0,  0, 10)
+
+  # seven edges
+  quad_1.AddEdge([n1, n2]) # 1
+  quad_1.AddEdge([n2, n3]) # 2
+  quad_1.AddEdge([n3, n4]) # 3
+  quad_1.AddEdge([n4, n1]) # 4
+  quad_1.AddEdge([n4, n5]) # 5
+  quad_1.AddEdge([n5, n6]) # 6
+  quad_1.AddEdge([n6, n1]) # 7
+
+  # two quadrangle faces
+  quad_1.AddFace([n1, n2, n3, n4]) # 8
+  quad_1.AddFace([n1, n4, n5, n6]) # 9
+  return [quad_1, [1,2,3,4,5,6,7], [8,9]]
+
+# Path meshes
+Edge_straight_mesh = Mesh1D(Edge_straight, 7, "Edge_straight")
+Edge_bezierrr_mesh = Mesh1D(Edge_bezierrr, 7, "Edge_bezierrr")
+Wire_polyline_mesh = Mesh1D(Wire_polyline, 3, "Wire_polyline")
+Edge_Circle_mesh   = Mesh1D(Edge_Circle  , 8, "Edge_Circle")
+
+# Initial meshes (to be extruded)
+[quad_1, ee_1, ff_1] = MakeQuadMesh2("quad_1")
+[quad_2, ee_2, ff_2] = MakeQuadMesh2("quad_2")
+[quad_3, ee_3, ff_3] = MakeQuadMesh2("quad_3")
+[quad_4, ee_4, ff_4] = MakeQuadMesh2("quad_4")
+[quad_5, ee_5, ff_5] = MakeQuadMesh2("quad_5")
+[quad_6, ee_6, ff_6] = MakeQuadMesh2("quad_6")
+[quad_7, ee_7, ff_7] = MakeQuadMesh2("quad_7")
+
+# ExtrusionAlongPath
+# IDsOfElements, PathMesh, PathShape, NodeStart,
+# HasAngles, Angles, HasRefPoint, RefPoint
+refPoint = smesh.PointStruct(0, 0, 0)
+a10 = 10.0*math.pi/180.0
+a45 = 45.0*math.pi/180.0
+
+# 1. Extrusion of two mesh edges along a straight path
+error = quad_1.ExtrusionAlongPath([1,2], Edge_straight_mesh, Edge_straight, 1,
+                                  0, [], 0, refPoint)
+
+# 2. Extrusion of one mesh edge along a curved path
+error = quad_2.ExtrusionAlongPath([2], Edge_bezierrr_mesh, Edge_bezierrr, 1,
+                                  0, [], 0, refPoint)
+
+# 3. Extrusion of one mesh edge along a curved path with usage of angles
+error = quad_3.ExtrusionAlongPath([2], Edge_bezierrr_mesh, Edge_bezierrr, 1,
+                                  1, [a45, a45, a45, 0, -a45, -a45, -a45], 0, refPoint)
+
+# 4. Extrusion of one mesh edge along the path, which is a part of a meshed wire
+error = quad_4.ExtrusionAlongPath([4], Wire_polyline_mesh, Wire_polyline_edges[0], 1,
+                                  1, [a10, a10, a10], 0, refPoint)
+
+# 5. Extrusion of two mesh faces along the path, which is a part of a meshed wire
+error = quad_5.ExtrusionAlongPath(ff_5 , Wire_polyline_mesh, Wire_polyline_edges[2], 4,
+                                  0, [], 0, refPoint)
+
+# 6. Extrusion of two mesh faces along a closed path
+error = quad_6.ExtrusionAlongPath(ff_6 , Edge_Circle_mesh, Edge_Circle, 1,
+                                  0, [], 0, refPoint)
+
+# 7. Extrusion of two mesh faces along a closed path with usage of angles
+error = quad_7.ExtrusionAlongPath(ff_7, Edge_Circle_mesh, Edge_Circle, 1,
+                                  1, [a45, -a45, a45, -a45, a45, -a45, a45, -a45], 0, refPoint)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_revolution
+<h2>Revolution</h2>
+
+\code
+import math
+
+import SMESH_mechanic
+
+mesh  = SMESH_mechanic.mesh
+smesh = SMESH_mechanic.smesh
+
+# create a group of faces to be revolved
+FacesRotate = [492, 493, 502, 503]
+GroupRotate = mesh.CreateGroup(SMESH.FACE,"Group of faces (rotate)")
+GroupRotate.Add(FacesRotate)
+
+# define revolution angle and axis
+angle45 = 45 * math.pi / 180
+axisXYZ = SMESH.AxisStruct(-38.3128, -73.3658, -23.321, -13.3402, -13.3265, 6.66632)
+
+# perform revolution of an object
+mesh.RotationSweepObject(GroupRotate, axisXYZ, angle45, 4, 1e-5) 
+\endcode
+
+<br>
+\anchor tui_pattern_mapping
+<h2>Pattern Mapping</h2>
+
+\code
+import geompy
+
+import smesh
+
+# define the geometry
+Box_1 = geompy.MakeBoxDXDYDZ(200., 200., 200.)
+geompy.addToStudy(Box_1, "Box_1")
+
+faces = geompy.SubShapeAll(Box_1, geompy.ShapeType["FACE"])
+Face_1 = faces[0]
+Face_2 = faces[1]
+
+geompy.addToStudyInFather(Box_1, Face_1, "Face_1")
+geompy.addToStudyInFather(Box_1, Face_2, "Face_2")
+
+# build a quadrangle mesh 3x3 on Face_1
+Mesh_1 = smesh.Mesh(Face_1)
+algo1D = Mesh_1.Segment()
+algo1D.NumberOfSegments(3)
+Mesh_1.Quadrangle()
+
+isDone = Mesh_1.Compute()
+if not isDone: print 'Mesh Mesh_1 : computation failed'
+
+# build a triangle mesh on Face_2
+Mesh_2 = smesh.Mesh(Face_2)
+
+algo1D = Mesh_2.Segment()
+algo1D.NumberOfSegments(1)
+algo2D = Mesh_2.Triangle()
+algo2D.MaxElementArea(240)
+
+isDone = Mesh_2.Compute()
+if not isDone: print 'Mesh Mesh_2 : computation failed'
+
+# create a pattern
+pattern = smesh.GetPattern()
+
+isDone = pattern.LoadFromFace(Mesh_2.GetMesh(), Face_2, 0)
+if (isDone != 1): print 'LoadFromFace :', pattern.GetErrorCode()
+
+# apply the pattern to a face of the first mesh
+pattern.ApplyToMeshFaces(Mesh_1.GetMesh(), [17], 0, 0)
+
+isDone = pattern.MakeMesh(Mesh_1.GetMesh(), 0, 0)
+if (isDone != 1): print 'MakeMesh :', pattern.GetErrorCode()  
+\endcode
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/tui_quality_controls.doc b/doc/salome/gui/SMESH/input/tui_quality_controls.doc
new file mode 100644 (file)
index 0000000..e1b8b70
--- /dev/null
@@ -0,0 +1,575 @@
+/*!
+
+\page tui_quality_controls_page Quality Controls
+
+<br>
+\anchor tui_free_borders
+<h2>Free Borders</h2>
+
+\code
+import salome
+import geompy
+
+import smesh
+
+# create open shell: a box without one plane
+box = geompy.MakeBox(0., 0., 0., 20., 20., 15.)
+FaceList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
+FaceList.remove(FaceList[5])
+box = geompy.MakeShell(FaceList)
+idbox = geompy.addToStudy(box, "box")
+
+# create a mesh
+mesh = smesh.Mesh(box, "Mesh_free_borders")
+algo = mesh.Segment()
+algo.NumberOfSegments(5)
+algo = mesh.Triangle()
+algo.MaxElementArea(20.)
+mesh.Compute() 
+
+# criterion : free borders
+aFilter = smesh.GetFilter(smesh.EDGE, smesh.FT_FreeBorders) 
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Free borders Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+  if j > 20: j = 1; print ""
+  print anIds[i],
+  j = j + 1
+  pass
+print ""
+
+# create a group
+aGroup = mesh.CreateGroup(SMESH.EDGE, "Free borders")
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_borders_at_multiconnection
+<h2>Borders at Multiconnection</h2>
+
+\code
+import salome
+import geompy
+
+import smesh
+import SMESH
+
+# create open shell: a box without one plane
+box = geompy.MakeBox(0., 0., 0., 20., 20., 15.)
+FaceList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
+FaceList.remove(FaceList[5])
+box = geompy.MakeShell(FaceList)
+idbox = geompy.addToStudy(box, "box")
+
+# create a mesh
+mesh = smesh.Mesh(box, "Mesh_borders_at_multi-connections")
+algo = mesh.Segment()
+algo.NumberOfSegments(5)
+algo = mesh.Triangle()
+algo.MaxElementArea(20.)
+mesh.Compute() 
+
+# Criterion : Borders at multi-connection
+nb_conn = 2
+
+aFilter = smesh.GetFilter(smesh.EDGE, smesh.FT_MultiConnection, smesh.FT_EqualTo, nb_conn)
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Borders at multi-connections Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+  if j > 20: j = 1; print ""
+  print anIds[i],
+  j = j + 1
+  pass
+print ""
+
+# create a group
+aGroup = mesh.CreateGroup(SMESH.EDGE, "Borders at multi-connections")
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_length_1d
+<h2>Length 1D</h2>
+
+\code
+import salome
+import geompy
+
+import smesh
+
+# create open shell: a box without one plane
+box = geompy.MakeBox(0., 0., 0., 20., 20., 15.)
+FaceList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
+FaceList.remove(FaceList[5])
+box = geompy.MakeShell(FaceList)
+idbox = geompy.addToStudy(box, "box")
+
+# create a mesh
+mesh = smesh.Mesh(box, "Mesh_Length_1D")
+algo = mesh.Segment()
+algo.NumberOfSegments(5)
+algo = mesh.Triangle()
+algo.MaxElementArea(20.)
+mesh.Compute() 
+
+# Criterion : Length > 3.
+length_margin = 3.
+
+aFilter = smesh.GetFilter(smesh.EDGE, smesh.FT_Length, smesh.FT_MoreThan, length_margin)
+anIds = mesh.GetIdsFromFilter(aFilter) 
+
+# print the result
+print "Criterion: Edges length > ", length_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+  if j > 20: j = 1; print ""
+  print anIds[i],
+  j = j + 1
+  pass
+print ""
+
+# create a group
+aGroup = mesh.CreateGroup(SMESH.EDGE, "Edges with length > " + `length_margin`)
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_free_edges
+<h2>Free Edges</h2>
+
+\code
+import SMESH_mechanic
+
+smesh  = SMESH_mechanic.smesh
+mesh   = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+aFilterMgr = smesh.CreateFilterManager()
+
+# Remove some elements to obtain free edges
+# Criterion : AREA > 95.
+area_margin = 95.
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, area_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+mesh.RemoveElements(anIds)
+
+# Criterion : Free Edges
+aBorders = mesh.GetFreeBorders() 
+
+# create groups
+aGroupF = mesh.CreateGroup(SMESH.FACE, "Faces with free edges")
+aGroupN = mesh.CreateGroup(SMESH.NODE, "Nodes on free edges")
+
+# fill groups with elements, corresponding to the criterion
+print ""
+print "Criterion: Free edges Nb = ", len(aBorders)
+for i in range(len(aBorders)):
+  aBorder = aBorders[i]
+  print "Face # ", aBorder.myElemId, " : Edge between nodes (",
+  print aBorder.myPnt1, ", ", aBorder.myPnt2, ")"
+
+  aGroupF.Add([aBorder.myElemId])
+  aGroupN.Add([aBorder.myPnt1, aBorder.myPnt2])
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_length_2d
+<h2>Length 2D</h2>
+
+\code
+import salome
+import geompy
+
+import smesh
+
+# create open shell: a box without one plane
+box = geompy.MakeBox(0., 0., 0., 20., 20., 15.)
+FaceList = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
+FaceList.remove(FaceList[5])
+box = geompy.MakeShell(FaceList)
+idbox = geompy.addToStudy(box, "box")
+
+# create a mesh
+mesh = smesh.Mesh(box, "Mesh_Length_2D")
+algo = mesh.Segment()
+algo.NumberOfSegments(5)
+algo = mesh.Triangle()
+algo.MaxElementArea(20.)
+mesh.Compute()
+
+# Criterion : Length 2D > 5.7
+length_margin = 5.7
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Length2D, smesh.FT_MoreThan, length_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Edges length 2D > ", length_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+  if j > 20: j = 1; print ""
+  print anIds[i],
+  j = j + 1
+  pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Faces with length 2D > " + `length_margin`)
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_borders_at_multiconnection_2d
+<h2>Borders at Multiconnection 2D</h2>
+
+\code
+import salome
+import geompy
+
+import smesh
+
+# create a compound of two glued boxes
+box1 = geompy.MakeBox(0., 0., 0., 20., 20., 15.)
+box2 = geompy.MakeTranslation(box1, 0., 20., 0)
+comp = geompy.MakeCompound([box1, box2])
+box = geompy.MakeGlueFaces(comp, 0.000001)
+idbox = geompy.addToStudy(box, "box")
+
+# create a mesh
+mesh = smesh.Mesh(box, "Box compound : 2D triangle mesh")
+algo = mesh.Segment()
+algo.NumberOfSegments(5)
+algo = mesh.Triangle()
+algo.MaxElementArea(20.)
+mesh.Compute() 
+
+# Criterion : MULTI-CONNECTION 2D = 3
+nb_conn = 3
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_MultiConnection2D, smesh.FT_EqualTo, nb_conn)
+
+anIds = mesh.GetIdsFromFilter(aFilter) 
+
+# print the result
+print "Criterion: Borders at multi-connection 2D = ", nb_conn, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+  if j > 20: j = 1; print ""
+  print anIds[i],
+  j = j + 1
+  pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Borders at multi-connection 2D = " + `nb_conn`)
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_area
+<h2>Area</h2>
+
+\code
+import SMESH_mechanic
+
+smesh  = SMESH_mechanic.smesh
+mesh   = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : AREA > 100.
+area_margin = 100.
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, area_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter) 
+
+# print the result
+print "Criterion: Area > ", area_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+  if j > 20: j = 1; print ""
+  print anIds[i],
+  j = j + 1
+  pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Area > " + `area_margin`)
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)  
+\endcode
+
+<br>
+\anchor tui_taper
+<h2>Taper</h2>
+
+\code
+import SMESH_mechanic
+
+smesh  = SMESH_mechanic.smesh
+mesh   = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : Taper > 3e-20
+taper_margin = 3e-20
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Taper, smesh.FT_MoreThan, taper_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter) 
+
+# print the result
+print "Criterion: Taper > ", taper_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+  if j > 20: j = 1; print ""
+  print anIds[i],
+  j = j + 1
+  pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Taper > " + `taper_margin`)
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_aspect_ratio
+<h2>Aspect Ratio</h2>
+
+\code
+import SMESH_mechanic
+
+smesh  = SMESH_mechanic.smesh
+mesh   = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : ASPECT RATIO > 1.8
+ar_margin = 1.8
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_AspectRatio, smesh.FT_MoreThan, ar_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter) 
+
+# print the result
+print "Criterion: Aspect Ratio > ", ar_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+  if j > 20: j = 1; print ""
+  print anIds[i],
+  j = j + 1
+  pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Aspect Ratio > " + `ar_margin`)
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_minimum_angle
+<h2>Minimum Angle</h2>
+
+\code
+import SMESH_mechanic
+
+smesh  = SMESH_mechanic.smesh
+mesh   = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : MINIMUM ANGLE < 35.
+min_angle = 35.
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_MinimumAngle, smesh.FT_LessThan, min_angle)
+
+anIds = mesh.GetIdsFromFilter(aFilter) 
+
+# print the result
+print "Criterion: Minimum Angle < ", min_angle, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+  if j > 20: j = 1; print ""
+  print anIds[i],
+  j = j + 1
+  pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Minimum Angle < " + `min_angle`)
+
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_warping
+<h2>Warping</h2>
+
+\code
+import SMESH_mechanic
+
+smesh  = SMESH_mechanic.smesh
+mesh   = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : WARP ANGLE > 1e-15
+wa_margin = 1e-15
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Warping, smesh.FT_MoreThan, wa_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter) 
+
+# print the result
+print "Criterion: Warp > ", wa_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+  if j > 20: j = 1; print ""
+  print anIds[i],
+  j = j + 1
+  pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Warp > " + `wa_margin`)
+
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1) 
+\endcode
+
+<br>
+\anchor tui_skew
+<h2>Skew</h2>
+
+\code
+import SMESH_mechanic
+
+smesh  = SMESH_mechanic.smesh
+mesh   = SMESH_mechanic.mesh
+salome = SMESH_mechanic.salome
+
+# Criterion : Skew > 38.
+skew_margin = 38.
+
+aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Skew, smesh.FT_MoreThan, skew_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter)
+
+# print the result
+print "Criterion: Skew > ", skew_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+  if j > 20: j = 1; print ""
+  print anIds[i],
+  j = j + 1
+  pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.FACE, "Skew > " + `skew_margin`)
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_aspect_ratio_3d
+<h2>Aspect Ratio 3D</h2>
+
+\code
+import SMESH_mechanic_tetra 
+
+smesh  = SMESH_mechanic_tetra.smesh
+mesh   = SMESH_mechanic_tetra.mesh
+salome = SMESH_mechanic_tetra.salome
+
+# Criterion : ASPECT RATIO 3D > 4.5
+ar_margin = 4.5
+
+aFilter = smesh.GetFilter(smesh.VOLUME, smesh.FT_AspectRatio3D, smesh.FT_MoreThan, ar_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter) 
+
+# print the result
+print "Criterion: Aspect Ratio 3D > ", ar_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+  if j > 20: j = 1; print ""
+  print anIds[i],
+  j = j + 1
+  pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.VOLUME, "Aspect Ratio 3D > " + `ar_margin`)
+
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br>
+\anchor tui_volume
+<h2>Volume</h2>
+
+\code
+import SMESH_mechanic_tetra
+
+smesh  = SMESH_mechanic_tetra.smesh
+mesh   = SMESH_mechanic_tetra.mesh
+salome = SMESH_mechanic_tetra.salome
+
+# Criterion : VOLUME < 7.
+volume_margin = 7.
+
+aFilter = smesh.GetFilter(smesh.VOLUME, smesh.FT_Volume3D, smesh.FT_LessThan, volume_margin)
+
+anIds = mesh.GetIdsFromFilter(aFilter) 
+
+# print the result
+print ""
+print "Criterion: Volume < ", volume_margin, " Nb = ", len(anIds)
+j = 1
+for i in range(len(anIds)):
+  if j > 20: j = 1; print ""
+  print anIds[i],
+  j = j + 1
+  pass
+print ""
+
+# create a group
+aGroup = mesh.CreateEmptyGroup(smesh.VOLUME, "Volume < " + `volume_margin`)
+
+aGroup.Add(anIds)
+
+salome.sg.updateObjBrowser(1) 
+\endcode
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/tui_scripts.doc b/doc/salome/gui/SMESH/input/tui_scripts.doc
new file mode 100644 (file)
index 0000000..4c19b9d
--- /dev/null
@@ -0,0 +1,15 @@
+/*!
+
+\page tui_scripts_page TUI Scripts
+
+<ul>
+<li>\subpage tui_creating_meshes_page</li>
+<li>\subpage tui_viewing_meshes_page</li>
+<li>\subpage tui_defining_hypotheses_page</li>
+<li>\subpage tui_quality_controls_page</li>
+<li>\subpage tui_grouping_elements_page</li>
+<li>\subpage tui_modifying_meshes_page</li>
+<li>\subpage tui_transforming_meshes_page</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc b/doc/salome/gui/SMESH/input/tui_transforming_meshes.doc
new file mode 100644 (file)
index 0000000..163afe0
--- /dev/null
@@ -0,0 +1,322 @@
+/*!
+
+\page tui_transforming_meshes_page Transforming Meshes
+
+<br><h2>Transforming Meshes</h2>
+
+<br>
+\anchor tui_translation
+<h3>Translation</h3>
+
+\code
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh 
+mesh = SMESH_mechanic.mesh 
+
+# define translation vector
+point = smesh.PointStruct(-150., -150., 0.)
+vector =smesh.DirStruct(point) 
+
+# translate a mesh
+doCopy = 1
+
+mesh.Translate([], vector, doCopy)
+\endcode
+
+<br>
+\anchor tui_rotation
+<h3>Rotation</h3>
+
+\code
+import math
+
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh 
+
+# define rotation axis and angle
+axisXYZ = smesh.AxisStruct(0., 0., 0., 5., 5., 20.)
+angle270 = 1.5 * math.pi
+
+# rotate a mesh
+mesh.Rotate([], axisXYZ, angle270, 1)  
+\endcode
+
+<br>
+\anchor tui_symmetry
+<h3>Symmetry</h3>
+
+\code
+import math
+
+import SMESH_mechanic
+
+smesh = SMESH_mechanic.smesh
+mesh = SMESH_mechanic.mesh 
+
+# create a symmetrical copy of the mesh mirrored through a point
+axis = SMESH.AxisStruct(0, 0, 0, 0, 0, 0)
+
+mesh.Mirror([], axis, smesh.POINT, 1)
+\endcode
+
+<br>
+\anchor tui_merging_nodes
+<h3>Merging Nodes</h3>
+
+\code
+import SMESH_mechanic
+mesh = SMESH_mechanic.mesh
+
+# merge nodes
+Tolerance = 25.0
+
+GroupsOfNodes =  mesh.FindCoincidentNodes(Tolerance)
+mesh.MergeNodes(GroupsOfNodes)  
+\endcode
+
+<br>
+\anchor tui_merging_elements
+<h3>Merging Elements</h3>
+
+\code
+import salome
+import geompy
+import smesh
+
+# create a face to be meshed
+px = geompy.MakeVertex(100., 0.  , 0.  )
+py = geompy.MakeVertex(0.  , 100., 0.  )
+pz = geompy.MakeVertex(0.  , 0.  , 100.)
+
+vxy = geompy.MakeVector(px, py)
+arc = geompy.MakeArc(py, pz, px)
+
+wire = geompy.MakeWire([vxy, arc])
+isPlanarFace = 1
+
+face1 = geompy.MakeFace(wire, isPlanarFace)
+id_face1 = geompy.addToStudy(face1, "Face1")
+
+# create a circle to be an extrusion path
+px1 = geompy.MakeVertex( 100.,  100.,  0.)
+py1 = geompy.MakeVertex(-100., -100.,  0.)
+pz1 = geompy.MakeVertex(   0.,    0., 50.)
+
+circle = geompy.MakeCircleThreePnt(py1, pz1, px1)
+id_circle = geompy.addToStudy(circle, "Path")
+# create a 2D mesh on the face
+trias = smesh.Mesh(face1, "Face : 2D mesh")
+
+algo1D = trias.Segment()
+algo1D.NumberOfSegments(6)
+algo2D = trias.Triangle()
+algo2D.LengthFromEdges()
+
+trias.Compute()
+
+# create a path mesh
+circlemesh = smesh.Mesh(circle, "Path mesh")
+algo = circlemesh.Segment()
+algo.NumberOfSegments(10)
+circlemesh.Compute()
+
+# extrusion of the mesh
+trias.ExtrusionAlongPath([], circlemesh, circle,
+                         1, 0, [], 0, smesh.PointStruct(0, 0, 0))
+
+# merge nodes
+print "Number of nodes before MergeNodes:", 
+trias.NbNodes()
+tolerance = 0.001
+array_of_nodes_groups = trias.FindCoincidentNodes(tolerance)
+
+trias.MergeNodes(array_of_nodes_groups)
+
+print "Number of nodes after MergeNodes:", trias.NbNodes()
+print ""
+print "Number of elements before MergeEqualElements:"
+print "Edges      : ", trias.NbEdges()
+print "Triangles  : ", trias.NbTriangles()
+print "Quadrangles: ", trias.NbQuadrangles()
+print "Volumes    : ", trias.NbVolumes()
+
+# merge elements
+trias.MergeEqualElements()
+print "Number of elements after MergeEqualElements:"
+print "Edges      : ", trias.NbEdges()
+print "Triangles  : ", trias.NbTriangles()
+print "Quadrangles: ", trias.NbQuadrangles()
+print "Volumes    : ", trias.NbVolumes()
+
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br><h2>Sewing Meshes</h2>
+
+<br>
+\anchor tui_sew_meshes_border_to_side
+<h3>Sew Meshes Border to Side</h3>
+
+\code
+import geompy
+import smesh
+
+# create two faces of a box
+box1 = geompy.MakeBox(0., 0., -10., 30., 20., 25.)
+facesList1 = geompy.SubShapeAll(box1, geompy.ShapeType["FACE"])
+face1 = facesList1[2]
+
+box2 = geompy.MakeBox(0., 5., 0., 20., 20., 15.)
+facesList2 = geompy.SubShapeAll(box2, geompy.ShapeType["FACE"])
+face2 = facesList2[1]
+
+edgesList = geompy.SubShapeAll(face2, geompy.ShapeType["EDGE"])
+edge1 = edgesList[2]
+
+aComp = geompy.MakeCompound([face1, face2])
+geompy.addToStudy(aComp, "Two faces")
+
+# create a mesh on two faces
+mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh")
+
+algo1D = mesh.Segment()
+algo1D.NumberOfSegments(9)
+algo2D = mesh.Quadrangle()
+
+algo_local = mesh.Segment(edge1)
+algo_local.Arithmetic1D(1, 4)
+algo_local.Propagation()
+
+mesh.Compute()
+
+# sew border to side
+# FirstNodeIDOnFreeBorder, SecondNodeIDOnFreeBorder, LastNodeIDOnFreeBorder,
+# FirstNodeIDOnSide, LastNodeIDOnSide,
+# CreatePolygons, CreatePolyedrs
+mesh.SewBorderToSide(5, 45, 6, 113, 109, 0, 0)
+\endcode
+
+<br>
+\anchor tui_sew_conform_free_borders
+<h3>Sew Conform Free Borders</h3>
+
+\code
+import geompy
+import smesh
+
+# create two faces of the box
+box1 = geompy.MakeBox(0., 0., -10., 20., 20., 15.)
+facesList1 = geompy.SubShapeAll(box1, geompy.ShapeType["FACE"])
+face1 = facesList1[2]
+
+box2 = geompy.MakeBox(0., 5., 0., 20., 20., 15.)
+facesList2 = geompy.SubShapeAll(box2, geompy.ShapeType["FACE"])
+face2 = facesList2[1]
+
+edgesList = geompy.SubShapeAll(face2, geompy.ShapeType["EDGE"])
+edge1 = edgesList[2]
+
+aComp = geompy.MakeCompound([face1, face2])
+geompy.addToStudy(aComp, "Two faces")
+
+# create a mesh on two faces
+mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh")
+
+algo1D = mesh.Segment()
+algo1D.NumberOfSegments(9)
+algo2D = mesh.Quadrangle()
+
+algo_local = mesh.Segment(edge1)
+algo_local.Arithmetic1D(1, 4)
+algo_local.Propagation()
+
+mesh.Compute()
+
+# sew conform free borders
+# FirstNodeID1, SecondNodeID1, LastNodeID1, FirstNodeID2, SecondNodeID2
+mesh.SewConformFreeBorders(5, 45, 6, 3, 24) 
+\endcode
+
+<br>
+\anchor tui_sew_free_borders
+<h3>Sew Free Borders</h3>
+
+\code
+import geompy
+import smesh
+
+# create two faces of the box
+box1 = geompy.MakeBox(0., 0., 0., 20., 20., 15.)
+facesList1 = geompy.SubShapeAll(box1, geompy.ShapeType["FACE"])
+face1 = facesList1[2]
+
+box2 = geompy.MakeBox(0., 5., 0., 20., 20., 15.)
+facesList2 = geompy.SubShapeAll(box2, geompy.ShapeType["FACE"])
+face2 = facesList2[1]
+
+edgesList = geompy.SubShapeAll(face2, geompy.ShapeType["EDGE"])
+edge1 = edgesList[2]
+
+aComp = geompy.MakeCompound([face1, face2])
+geompy.addToStudy(aComp, "Two faces")
+
+# create a mesh on two faces
+mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh")
+
+algo1D = mesh.Segment()
+algo1D.NumberOfSegments(4)
+algo2D = mesh.Quadrangle()
+
+algo_local = mesh.Segment(edge1)
+algo_local.Arithmetic1D(1, 4)
+algo_local.Propagation()
+
+mesh.Compute()
+
+# sew free borders
+# FirstNodeID1, SecondNodeID1, LastNodeID1,
+# FirstNodeID2, SecondNodeID2, LastNodeID2, CreatePolygons, CreatePolyedrs
+mesh.SewFreeBorders(6, 21, 5, 1, 12, 3, 0, 0)
+\endcode
+
+<br>
+\anchor tui_sew_side_elements
+<h3>Sew Side Elements</h3>
+
+\code
+import geompy
+import smesh
+
+# create two boxes
+box1 = geompy.MakeBox(0.,  0., 0., 10., 10., 10.)
+box2 = geompy.MakeBox(0., 15., 0., 20., 25., 10.)
+
+EdgesList = geompy.SubShapeAll(box2, geompy.ShapeType["EDGE"])
+
+aComp = geompy.MakeCompound([box1, box2])
+geompy.addToStudy(aComp, "Two boxes")
+
+# create a mesh on two boxes
+mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh")
+
+algo1D = mesh.Segment()
+algo1D.NumberOfSegments(2)
+algo2D = mesh.Quadrangle()
+
+algo_local = mesh.Segment(EdgesList[8])
+algo_local.NumberOfSegments(4)
+algo_local.Propagation()
+
+mesh.Compute()
+
+# sew side elements
+# IDsOfSide1Elements, IDsOfSide2Elements,
+# NodeID1OfSide1ToMerge, NodeID1OfSide2ToMerge, NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge
+mesh.SewSideElements([69, 70, 71, 72], [91, 92, 89, 90], 8, 38, 23, 58)
+\endcode
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/tui_viewing_meshes.doc b/doc/salome/gui/SMESH/input/tui_viewing_meshes.doc
new file mode 100644 (file)
index 0000000..59681c1
--- /dev/null
@@ -0,0 +1,47 @@
+/*!
+
+\page tui_viewing_meshes_page Viewing Meshes
+
+<br>
+\anchor tui_viewing_mesh_infos
+<h2>Viewing Mesh Infos</h2>
+
+\code
+import geompy
+import smesh
+
+# create a box
+box = geompy.MakeBox(0., 0., 0., 20., 20., 20.)
+geompy.addToStudy(box, "box")
+
+# create a mesh
+tetra = smesh.Mesh(box, "MeshBox")
+
+algo1D = tetra.Segment()
+algo1D.NumberOfSegments(3)
+
+algo2D = tetra.Triangle()
+algo2D.MaxElementArea(10.)
+
+algo3D = tetra.Tetrahedron(smesh.NETGEN)
+algo3D.MaxElementVolume(900.)
+
+# compute the mesh
+tetra.Compute()
+
+# print information about the mesh
+print "Information about mesh:" 
+print "Number of nodes       : ", tetra.NbNodes()
+print "Number of edges       : ", tetra.NbEdges()
+print "Number of faces       : ", tetra.NbFaces()
+print "          triangles   : ", tetra.NbTriangles()
+print "          quadrangles : ", tetra.NbQuadrangles()
+print "          polygons    : ", tetra.NbPolygons()
+print "Number of volumes     : ", tetra.NbVolumes()
+print "          tetrahedrons: ", tetra.NbTetras()
+print "          hexahedrons : ", tetra.NbHexas()
+print "          prisms      : ", tetra.NbPrisms()
+print "          pyramids    : ", tetra.NbPyramids()
+print "          polyhedrons : ", tetra.NbPolyhedrons() 
+\endcode
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/uniting_set_of_triangles.doc b/doc/salome/gui/SMESH/input/uniting_set_of_triangles.doc
new file mode 100644 (file)
index 0000000..fc3a74a
--- /dev/null
@@ -0,0 +1,53 @@
+/*!
+
+\page uniting_set_of_triangles_page Uniting a set of triangles
+
+\n In contrast to the previous operation this one allows to unite at
+once many triangles if they have adjacent edges.
+
+<em>To union several triangles:</em>
+<ol>
+<li>Display a mesh or a submesh in the 3D viewer.</li>
+<li>In the \b Modification menu select the <b>Union of triangles</b>
+item or click <em>"Union of triangles"</em> button in the toolbar.
+
+\image html image80.gif
+<center><em>"Union of triangles" button</em></center>
+
+The following dialog box will appear:
+
+\image html a-unionoftriangles.png
+
+<ul>
+<li><b>The main list</b> shall contain the triangles which will be
+united. You can click on an triangle in the 3D viewer and it will be
+highlighted. After that click the \b Add button and the ID of this
+triangle will be added to the list. To remove a selected element or
+elements from the list click the \b Remove button. The \b Sort button allows
+to sort the list of IDs. The <b>Set filter</b> button allows to apply a
+definite filter to selection of triangles.</li>
+<li><b>Apply to all</b> radio button allows to modify connectivity and
+type of all triangles of the currently displayed mesh or submesh.</li>
+<li>\b Criterion menu allows to apply the operation only to those
+object which meet the chosen criterion (from the list of Quality
+Controls, i.e. Skew, Warping, Minimum Angle, etc.)</li>
+<li><b>Select from</b> set of fields allows to choose a submesh or an
+existing group whose triangle elements will be automatically added to
+the list.</li>
+</ul>
+
+</li>
+<li>Click the \b Apply or \b OK button to confirm the operation.</li>
+</ol>
+
+If some selected triangle elements have no adjacent edges with one of
+the others, the operation on these elements shall take no effect.
+
+\image html uniting_a_set_of_triangles1.png
+
+\image html uniting_a_set_of_triangles2.png
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_uniting_set_of_triangles "Uniting a Set of Triangles" operation.  
+
+*/
diff --git a/doc/salome/gui/SMESH/input/uniting_two_triangles.doc b/doc/salome/gui/SMESH/input/uniting_two_triangles.doc
new file mode 100644 (file)
index 0000000..36d46f6
--- /dev/null
@@ -0,0 +1,34 @@
+/*!
+
+\page uniting_two_triangles_page Uniting two triangles
+
+\n In MESH you can union two neighboring triangles (cells) by deletion
+of the common edge.
+
+<em>To unite two triangles:</em>
+<ol>
+<li>From the \b Modification menu choose the <b>Union of two
+triangles</b> item or click <em>"Union of two triangles"</em> button
+in the toolbar.
+
+\image html image71.gif
+<center><em>"Union of two triangles" button</em></center>
+
+The following dialog box shall appear:
+
+\image html unionoftwotriangles.png
+
+</li>
+<li>Enter the ID of the required edge in the \b Edge  field or select
+this edge in the 3D viewer.</li>
+<li>Click the \b Apply or \b OK button.</li>
+</ol>
+
+\image html uniting_two_triangles1.png
+
+\image html uniting_two_triangles2.png
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_uniting_two_triangles "Uniting Two Triangles" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/using_operations_on_groups.doc b/doc/salome/gui/SMESH/input/using_operations_on_groups.doc
new file mode 100644 (file)
index 0000000..c6d4d75
--- /dev/null
@@ -0,0 +1,123 @@
+/*!
+
+\page using_operations_on_groups_page Using operations on groups
+
+\n In MESH you can perform some Boolean operations on groups, which
+belong to one and the same mesh.
+<ul>
+<li>\ref union_anchor "Union"</li>
+<li>\ref intersection_anchor "Intersection"</li>
+<li>\ref cut_anchor "Cut"</li>
+</ul>
+
+
+<br>
+\anchor union_anchor
+<h2>Union of two groups</h2>
+
+This operation allows to create a new group in such a way that all
+mesh elements that are present in the initial groups will be added to
+the new one.
+
+<em>To union two groups:</em>
+<ol>
+<li>In the \b Mesh menu select the <b>Union Groups</b> item. The following
+dialog box will appear:
+
+\image html uniongroups.png
+
+In this dialog box you should specify the name of the resulting group
+and two groups which will be united.
+
+For example, we have two groups Group1 and Group2. 
+\n The result of their \b Union will be Group12:
+
+\image html image133.gif
+<center>Group1</center>
+
+\image html image134.gif
+<center>Group2</center>
+
+\image html image135.gif
+<center>Group12</center>
+</li>
+<li>Click the \b Ok or \b Apply button to confirm creation of the group.</li>
+</ol>
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_union_of_two_groups "Union of two Groups" operation.
+
+<br>
+\anchor intersection_anchor
+<h2>Intersection of two groups</h2>
+
+This operation allows to create a new group in such a way that all
+mesh elements that are present in both initial groups are added to the
+new one.
+
+<em>To intersect two groups:</em>
+<ol>
+<li>In the \b Mesh menu select the <b>Intersect Groups</b> item. The
+following dialog box will appear:
+
+\image html intersectgroups.png
+
+In this dialog box you should specify the name of the resulting group
+and two groups which will be intersected.
+
+For example, we have two groups Group1 and Group2. 
+\n The result of their \b Intersection will be Group12a:
+
+\image html image133.gif
+<center>Group1</center>
+
+\image html image134.gif
+<center>Group2</center>
+
+\image html image136.gif
+<center>Group12a</center>
+</li>
+<li>Click the \b Ok or \b Apply button to confirm creation of the group.</li>
+</ol>
+
+<b>See Also</b> a sample TUI Script of an  
+\ref tui_intersection_of_two_groups "Intersection of two Groups" operation.  
+
+<br>
+\anchor cut_anchor
+<h2>Cut of two groups</h2>
+
+This operation allows to create a new group in such a way that all
+mesh elements that are present in the main group but are absent in the
+tool group are added to the new one.
+
+<em>To cut two groups:</em>
+<ol>
+<li>In the \b Mesh menu select the <b>Cut Groups</b> item. The
+following dialog box will appear:
+
+\image html cutgroups.png
+
+In this dialog box you should specify the name of the resulting group
+and two groups which will be cut.
+
+For example, we have two groups Group1 and Group2. 
+\n The result of their \b Cut will be Group12b:
+
+\image html image133.gif
+<center>Group1</center>
+
+\image html image134.gif
+<center>Group2</center>
+
+\image html image137.gif
+<center>Group12b</center>
+</li>
+<li>Click the \b Ok or \b Apply button to confirm creation of the
+group.</li>
+</ol>
+
+<b>See Also</b> a sample TUI Script of a 
+\ref tui_cut_of_two_groups "Cut of two Groups" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/viewing_meshes.doc b/doc/salome/gui/SMESH/input/viewing_meshes.doc
new file mode 100644 (file)
index 0000000..aac10da
--- /dev/null
@@ -0,0 +1,15 @@
+/*!
+
+\page viewing_meshes_page Viewing meshes
+
+<ul>
+<li>\subpage viewing_meshes_overview_page</li>
+<li>\subpage mesh_infos_page</li>
+<li>\subpage numbering_page</li>
+<li>\subpage display_mode_page</li>
+<li>\subpage display_entity_page</li>
+<li>\subpage transparency_page</li>
+<li>\subpage clipping_page</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/viewing_meshes_overview.doc b/doc/salome/gui/SMESH/input/viewing_meshes_overview.doc
new file mode 100644 (file)
index 0000000..5cddd5d
--- /dev/null
@@ -0,0 +1,50 @@
+/*!
+
+\page viewing_meshes_overview_page Overview
+
+\n After definition of algorithms and hypotheses a new mesh is listed
+in the Object Browser. Right-click on it and select \b Compute - the
+mesh will be automatically displayed in the <b>VTK 3D Viewer</b>. 
+Alternatively click <b>Display only</b> to hide all other objects at
+the same time.
+
+<b>VTK 3D Viewer</b> is detailly described in the documentation on <b>GUI module</b>.
+\n After the mesh has appeared in the Viewer, you can select it with
+left mouse click and  get information about it, change its
+presentation parameters and access to other useful options by
+right-clicking on the selected mesh.
+
+\image html dialog.png
+
+<ul>
+<li><b>Hide all</b> - allows to hide all objects in the viewer.</li>
+<li><b>Update</b> - refreshes the presentation of your mesh in the
+Object Browser, applying all recent changes. </li>
+<li>\ref advanced_mesh_infos_anchor "Advanced Mesh Infos" -  provides
+more detailed information about the mesh.</li>
+<li>\ref standard_mesh_infos_anchor "Standard Mesh Infos" - provides
+basic information about the mesh.</li>
+<li>\ref mesh_element_info_anchor "Mesh Element Info" - provides basic
+information about the selected element of the mesh. </li>
+<li>\ref numbering_page "Numbering"  - allows to display the ID
+numbers of all meshing elements or nodes composing your mesh in the
+viewer.</li>
+<li>\ref display_mode_page "Display Mode" - allows to select between
+Wireframe, Shading and Nodes presentation.</li>
+<li>\ref display_entity_page "Display Entity" - allows to display
+Faces, Edges or both.</li>
+<li><b>Colors / Size</b> - allows to select color and size of
+meshes.</li>
+<li>\ref transparency_page "Transparency" - allows to change the
+transparency of mesh elements.</li>
+<li>\ref clipping_page "Clipping" - allows to create cross-sections of the selected objects.</li>
+<li>\ref about_quality_controls_page "Controls" - graphically
+presents various information about meshes.</li>
+<li><b>Hide</b> - allows to hide the selected mesh from the viewer.</li>
+<li><b>Show Only</b> -allows to display only the selected mesh, hiding all other from the viewer.</li>
+<li><b>Dump view</b> - exports an object from the viewer in bmp, png, jpg or jpeg image format.</li>
+<li><b>Change background</b> - allows to redefine the background color. By default it is black.</li>
+</ul>
+
+*/
+
diff --git a/doc/salome/gui/SMESH/input/volume.doc b/doc/salome/gui/SMESH/input/volume.doc
new file mode 100644 (file)
index 0000000..391b090
--- /dev/null
@@ -0,0 +1,28 @@
+/*!
+
+\page volume_page Volume
+
+\n \b Volume mesh quality criterion reflects the volume of meshes of a
+3D object.
+
+<em>To apply the Volume quality criterion to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Volume</b> or click <em>"Volume"</em> button
+in the toolbar.
+
+\image html image145.gif
+<center><em>"Volume" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image143.gif
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_volume "Volume quality control" operation.  
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/input/warping.doc b/doc/salome/gui/SMESH/input/warping.doc
new file mode 100644 (file)
index 0000000..9b97aa6
--- /dev/null
@@ -0,0 +1,43 @@
+/*!
+
+\page warping_page Warping
+
+\image html image24.gif
+
+\n \b Warping indicates that a face is not planar and is applied only to
+2D elements with 4 nodes. This quality control criterion is based on a
+projection plane created by:
+<ol>
+<li>bisecting the four element edges,</li>
+<li>creating a point on the plane at the vector average of the
+corners, where the x-axis extends from the point to the bisector on
+edge 2.</li>
+</ol>
+The plane normal is in the direction of the cross product of the
+x-axis and the vector from the origin to the bisector of edge 3. Every
+corner of the quad will then be a distance ?h? from the plane. The
+length of each half edge is measured and the shortest length is
+assigned ?l?. The warp angle is the arcsine of the ratio of the
+projection height ?h? to the half edge length ?l?.
+
+<em>To apply the Warping quality criterion to your mesh:</em>
+<ol>
+<li>Display your mesh in the viewer.</li>
+
+<li>Choose <b>Controls > Warping Angle</b> or click <em>"Warping angle"</em>
+button of the toolbar.
+
+\image html image39.gif
+<center><em>"Warping angle" button</em></center>
+
+Your mesh will be displayed in the viewer with its elements colored
+according to the applied mesh quality control criterion:
+
+\image html image97.jpg
+</li>
+</ol>
+
+<br><b>See Also</b> a sample TUI Script of a 
+\ref tui_warping "Warping quality control" operation.  
+
+*/
diff --git a/doc/salome/gui/SMESH/length.htm b/doc/salome/gui/SMESH/length.htm
deleted file mode 100755 (executable)
index db7b0ae..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Length</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-p.whs2 { margin-left:40px; }
-img_whs3 { border:none; width:165px; height:239px; float:none; border-style:none; }
-p.whs4 { margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs4 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nQuality controls\nLength");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Length</h1>
-
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The Length quality control criterion returns a value 
- of length of edge.</p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><img src="pics/length-crit.png" x-maintain-ratio="TRUE" width="165px" height="239px" border="0" class="img_whs3"></p>
-
-<p>&nbsp;</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> 
- a sample TUI Script of a <a href="quality_controls.htm#bookmark2">&nbsp;Length 
- quality control</a> operation. &nbsp;</p>
-
-<p>.</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/merge_elements.htm b/doc/salome/gui/SMESH/merge_elements.htm
deleted file mode 100755 (executable)
index f210b6a..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Merge Elements</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-img_whs2 { border:none; width:313px; height:221px; float:none; border-style:none; }
-img_whs3 { border:none; width:235px; height:150px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nModifying meshes\nTransforming meshes\nMerging Elements");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Merging Elements</h1>
-
-<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 
- of a mesh selectable in the dialog box. </p>
-
-<p><img src="pics/mergeelems.png" x-maintain-ratio="TRUE" width="313px" height="221px" border="0" class="img_whs2"></p>
-
-<p>In this picture you see a triangle which coincides with one of the elements 
- of the mesh. After we apply <span style="font-weight: bold;"><B>Merge Elements</B></span> 
- functionality, the triangle will be completely merged with the mesh. </p>
-
-<p><img src="pics/meshtrianglemergeelem1.png" x-maintain-ratio="TRUE" width="235px" height="150px" border="0" class="img_whs3"></p>
-
-<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
- Also</B></span> a sample TUI Script of a <a href="transforming_meshes.htm#bookmark8">Merge 
- Elements</a> operation. &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/mesh.htm b/doc/salome/gui/SMESH/mesh.htm
deleted file mode 100755 (executable)
index f849df8..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>mesh</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-h1.whs1 { margin-top:0pt; margin-bottom:0pt; font-size:24pt; }
-p.whs2 { margin-top:0pt; margin-bottom:0pt; }
-img_whs3 { border:none; width:30px; height:30px; float:none; border-style:none; }
-ul.whs4 { list-style:disc; }
-ul.whs5 { list-style:circle; }
-p.whs6 { margin-left:40px; margin-top:0pt; margin-bottom:0pt; }
-img_whs7 { border:none; width:472px; height:355px; border-style:none; float:right; }
-p.whs8 { margin-left:40px; font-weight:bold; margin-top:0pt; margin-bottom:0pt; }
-ol.whs9 { list-style:disc; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "h1.whs1 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs8 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nIntroduction to Mesh");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1 class="whs1">Introduction to MESH</h1>
-
-<p class="whs2">&nbsp;</p>
-
-<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> 
- module of SALOME is destined for: </p>
-
-<ul type="disc" class="whs4">
-       
-       <li class=kadov-p><p class="whs2"><a href="files/importing_and_exporting_meshes.htm">import and export of meshes 
- in MED format</a>,</p></li>
-       
-       <li class=kadov-p><p class="whs2"><a href="files/constructing_meshes.htm">meshing geometrical models</a> previously 
- created or imported by the GEOM component. MESH module allows to apply 
- 1D, 2D, 3D meshing algorithms and a set of hypotheses:</p></li>
-       
-       <ul type="circle" class="whs5">
-               
-               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#arithmetic_1D">Arithmetic 1D</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#Average_length">Average Length</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#deflection_1D">Deflection 1D </a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#Number_of_elements">Number of segments</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#start_and_end_length">Start and end length</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#automatic_length">Automatic Length</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#max_element_area">Max Element 
- Area</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#length_from_edges">Length 
- from Edges</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#quadrangle preference">Quadrangle 
- Preference</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/max._element_volume_hypothsis.htm">Max Element Volume</a></p></li>
-       </ul>
-       
-       <li class=kadov-p><p class="whs2">modification 
- of locally generated meshes by</p></li>
-       
-       <ul type="circle" class="whs5">
-               
-               <li class=kadov-p><p class="whs2"><a href="files/adding_nodes_and_elements.htm">Addition</a> of nodes and elements</p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/removing_nodes_and_elements.htm">Removal</a> of nodes and 
- elements</p></li>
-       </ul>
-       
-       <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 
- operations on these groups</a> </p></li>
-       
-       <li class=kadov-p><p class="whs2"><a href="files/about_quality_controls.htm">quality control</a> of meshes 
- basing on a set of definite criteria -</p></li>
-</ul>
-
-<p class="whs6"><img src="image7.jpg" x-maintain-ratio="TRUE" width="472px" height="355px" align="right" border="0" class="img_whs7"></p>
-
-<p class="whs8">for edges:</p>
-
-<ol type="disc" class="whs9">
-       
-       <ul type="circle" class="whs5">
-               
-               <li class=kadov-p><p class="whs2"><a href="length.htm">Length of edges</a> </p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="borders_at_multi-connection.htm">Borders at multi-connection</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="free_borders.htm">Free borders</a></p></li>
-       </ul>
-</ol>
-
-<p class="whs8">for faces:</p>
-
-<ol type="disc" class="whs9">
-       
-       <ul type="circle" class="whs5">
-               
-               <li class=kadov-p><p class="whs2"><a href="files/area_of_elements.htm">Area</a> </p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="free_edges.htm">Free edges</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="borders_at_multiconnection_2d.htm">Borders at multi-connection 2D</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/length_of_edges.htm">Length 2D</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/minimum_angle.htm">Minimum angle</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/taper.htm">Taper</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/aspect_ratio.htm">Aspect Ratio</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/warp.htm">Warping</a> </p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="files/skew.htm">Skew</a></p></li>
-       </ul>
-</ol>
-
-<p class="whs8">for solids:</p>
-
-<ol type="disc" class="whs9">
-       
-       <ul type="circle" class="whs5">
-               
-               <li class=kadov-p><p class="whs2"><a href="aspect_ratio_3d.htm">Aspect ratio 3D</a></p></li>
-               
-               <li class=kadov-p><p class="whs2"><a href="volume.htm">Volume</a></p></li>
-       </ul>
-</ol>
-
-<p class="whs2">.</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/mesh_through_point.htm b/doc/salome/gui/SMESH/mesh_through_point.htm
deleted file mode 100755 (executable)
index bf8e6f4..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Mesh through point</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 { font-family:'Arial Black' , sans-serif; font-style:italic; margin-left:0px; }\r
-p.whs2 { margin-left:36px; }\r
-img_whs3 { border:none; width:27px; height:29px; border-style:none; }\r
-img_whs4 { border:none; width:355px; height:366px; float:none; border-style:none; }\r
-p.whs5 { margin-left:40px; font-family:'Times New Roman' , serif; font-style:normal; }\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-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\nModifying meshes\nMesh through point");\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>Mesh through point</h1>\r
-\r
-<p>In mesh you can define a node at a certain point either by creation \r
- of a new node, by movement of the node closest to the point or by movement \r
- of any node to the point.</p>\r
-\r
-<p class="whs1">To create a mesh passing through a point:</p>\r
-\r
-<p class="whs2">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Mesh through point \r
- </B></span>item or click <img src="image159.gif" width="27px" height="29px" border="0" class="img_whs3"> button in the toolbar. The following \r
- dialog box shall appear:</p>\r
-\r
-<p class="whs2"><img src="pics/meshtopass.png" x-maintain-ratio="TRUE" width="355px" height="366px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs2">2. Enter the coordinates of the point</p>\r
-\r
-<p class="whs2">3. Choose one of several methods: you can \r
- either <span style="font-weight: bold;"><B>Create</B></span> a new node at the \r
- indicated point or Move the existing node to the point. In the latter \r
- case you can check in <span style="font-weight: bold;"><B>Automatic search</B></span> \r
- of the closest node or select the necessary node manually. <span style="font-weight: bold;"><B>Preview</B></span> \r
- check-box allows to see the results of the operation. </p>\r
-\r
-<p class="whs2">4. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
-\r
-<p>&nbsp;<span style="font-weight: bold;"><B>See \r
- Also</B></span> a sample TUI Script of a <a href="modifying_meshes.htm#bookmark14">Mesh \r
- through point</a> operation. &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs5">&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/modifying_meshes.htm b/doc/salome/gui/SMESH/modifying_meshes.htm
deleted file mode 100755 (executable)
index e33ea8c..0000000
+++ /dev/null
@@ -1,1881 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Modifying Meshes</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style>
-<!--
-P { margin-top:0pt; margin-bottom:0pt; }
-LI.kadov-P {  }
--->
-</style><style type="text/css">
-<!--
-p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
-p.whs2 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
-p.whs3 { margin-top:0pt; margin-bottom:0pt; }
-h4.whs4 { margin-top:0pt; margin-bottom:0pt; }
-p.whs5 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
-p.whs6 { margin-top:0.5pt; margin-bottom:0pt; }
-p.whs7 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; font-weight:bold; font-size:13.5pt; }
-p.whs8 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
-p.whs9 { font-family:'Lucida Console' , monospace; }
-p.whs10 { font-family:'Times New Roman' , serif; }
-p.whs11 { margin-left:36px; font-family:'Lucida Console' , monospace; }
-p.whs12 { margin-left:36px; }
-p.whs13 { margin-left:0px; font-family:'Times New Roman' , serif; }
-p.whs14 { font-family:'Lucida Console' , monospace; margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "h4.whs4 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs7 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs8 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs13 {margin-left:1pt; }";
-  strNSS += "p.whs14 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nTUI Scripts\nModifying Meshes");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Modifying Meshes</h1>
-
-<h3><a name=bookmark>Adding Nodes and Elements</a></h3>
-
-<h4>Add Node</h4>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add node</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">new_id 
- = mesh.AddNode(50, 10, 0)</span></p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">if new_id == 0: 
- print &quot;KO node addition.&quot;</p>
-
-<p class="whs1">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;New Node has been added with ID &quot;, new_id &nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<h4>Add Edge</h4>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add node</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">n1 
- = mesh.AddNode(50, 10, 0)</span></p>
-
-<p class="whs1">if n1 == 0: print 
- &quot;KO node addition.&quot; </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add edge</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">e1 
- = mesh.AddEdge([n1, 38])</span></p>
-
-<p class="whs1">if e1 == 0: print 
- &quot;KO edge addition.&quot;</p>
-
-<p class="whs1">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;New Edge has been added with ID &quot;, e1 </p>
-
-<h4>Add Triangle</h4>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add node</p>
-
-<p class="whs1">n1 = mesh.AddNode(50, 
- 10, 0)</p>
-
-<p class="whs1">if n1 == 0: print 
- &quot;KO node addition.&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add triangle</p>
-
-<p class="whs1">t1 = mesh.AddFace([n1, 
- 38, 39])</p>
-
-<p class="whs1">if t1 == 0: print 
- &quot;KO triangle addition.&quot;</p>
-
-<p class="whs1">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;New Triangle has been added with ID &quot;, t1 </p>
-
-<h4>Add Quadrangle</h4>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"># add node</p>
-
-<p class="whs1">n1 = mesh.AddNode(50, 
- 10, 0)</p>
-
-<p class="whs1">if n1 == 0: print 
- &quot;KO node addition.&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">n2 = mesh.AddNode(40, 
- 20, 0)</p>
-
-<p class="whs1">if n2 == 0: print 
- &quot;KO node addition.&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># add quadrangle</p>
-
-<p class="whs1">q1 = mesh.AddFace([n2, 
- n1, 38, 39])</p>
-
-<p class="whs1">if q1 == 0: print 
- &quot;KO quadrangle addition.&quot;</p>
-
-<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">else: 
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;New Quadrangle has been added with ID &quot;, q1</span> </p>
-
-<h4>Add Tetrahedron</h4>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add node</p>
-
-<p class="whs1">n1 = mesh.AddNode(50, 
- 10, 0)</p>
-
-<p class="whs1">if n1 == 0: print 
- &quot;KO node addition.&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add tetrahedron</p>
-
-<p class="whs1">t1 = mesh.AddVolume([n1, 
- 38, 39, 246])</p>
-
-<p class="whs1">if t1 == 0: print 
- &quot;KO tetrahedron addition.&quot;</p>
-
-<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">else: 
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;New Tetrahedron has been added with ID &quot;, t1</span> </p>
-
-<h4>Add Hexahedron</h4>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add nodes</p>
-
-<p class="whs1">nId1 = mesh.AddNode(50, 
- 10, 0)</p>
-
-<p class="whs1">nId2 = mesh.AddNode(47, 
- 12, 0)</p>
-
-<p class="whs1">nId3 = mesh.AddNode(50, 
- 10, 10)</p>
-
-<p class="whs1">nId4 = mesh.AddNode(47, 
- 12, 10)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">if nId1 == 0 or 
- nId2 == 0 or nId3 == 0 or nId4 == 0: print &quot;KO node addition.&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add hexahedron</p>
-
-<p class="whs1">vId = mesh.AddVolume([nId2, 
- nId1, 38, 39, nId4, nId3, 245, 246])</p>
-
-<p class="whs1">if vId == 0: print 
- &quot;KO Hexahedron addition.&quot;</p>
-
-<p class="whs1">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;New Hexahedron has been added with ID &quot;, vId </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h4>Add Polygon</h4>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- math</span></p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create an empty mesh 
- structure</p>
-
-<p class="whs1">mesh = smesh.Mesh() 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># a method to build 
- a polygonal mesh element with &lt;nb_vert&gt; angles:</p>
-
-<p class="whs1">def MakePolygon 
- (a_mesh, x0, y0, z0, radius, nb_vert):</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;al 
- = 2.0 * math.pi / nb_vert</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;node_ids 
- = []</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 
- Create nodes for a polygon</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;for 
- ii in range(nb_vert):</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nid 
- = mesh.AddNode(x0 + radius * math.cos(ii*al),</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y0 
- + radius * math.sin(ii*al),</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z0)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node_ids.append(nid)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pass</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 
- Create a polygon</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;return 
- mesh.AddPolygonalFace(node_ids)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># Create three polygons</p>
-
-<p class="whs1">f1 = MakePolygon(mesh, 
- 0, 0, &nbsp;0, 
- 30, 13)</p>
-
-<p class="whs1">f2 = MakePolygon(mesh, 
- 0, 0, 10, 21, &nbsp;9)</p>
-
-<p class="whs1">f3 = MakePolygon(mesh, 
- 0, 0, 20, 13, &nbsp;6)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<h4>Add Polyhedron</h4>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- salome</span></p>
-
-<p class="whs1">import math</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create an empty mesh 
- structure</p>
-
-<p class="whs1">mesh = smesh.Mesh() 
- &nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># Create nodes for 
- 12-hedron with pentagonal faces</p>
-
-<p class="whs1">al = 2 * math.pi 
- / 5.0</p>
-
-<p class="whs1">cosal = math.cos(al)</p>
-
-<p class="whs1">aa = 13</p>
-
-<p class="whs1">rr = aa / (2.0 * 
- math.sin(al/2.0))</p>
-
-<p class="whs1">dr = 2.0 * rr * 
- cosal</p>
-
-<p class="whs1">r1 = rr + dr</p>
-
-<p class="whs1">dh = rr * math.sqrt(2.0 
- * (1.0 - cosal * (1.0 + 2.0 * cosal)))</p>
-
-<p class="whs1">hh = 2.0 * dh - 
- dr * (rr*(cosal - 1) + (rr + dr)*(math.cos(al/2) - 1)) / dh</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">dd = [] <span style="font-family: 'Times New Roman', serif;"># 
- top</span></p>
-
-<p class="whs1">cc = [] <span style="font-family: 'Times New Roman', serif;"># 
- below top</span></p>
-
-<p class="whs1">bb = [] <span style="font-family: 'Times New Roman', serif;"># 
- above bottom</span></p>
-
-<p class="whs1">aa = [] <span style="font-family: 'Times New Roman', serif;"># 
- bottom</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">for i in range(5):</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;cos_bot 
- = math.cos(i*al)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;sin_bot 
- = math.sin(i*al)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;<span 
- style="margin-top: 0pt;
-               margin-bottom: 0pt;
-               font-family: 'Lucida Console', monospace;">cos_top 
- = math.cos(i*al + al/2.0)</span></p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;sin_top 
- = math.sin(i*al + al/2.0)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;nd 
- = mesh.AddNode(rr * cos_top, rr * sin_top, hh &nbsp;&nbsp;&nbsp;&nbsp;) 
- <span style="font-family: 'Times New Roman', serif;"># top</span></p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;nc 
- = mesh.AddNode(r1 * cos_top, r1 * sin_top, hh - dh) <span style="font-family: 'Times New Roman', serif;"># 
- below top</span></p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;nb 
- = mesh.AddNode(r1 * cos_bot, r1 * sin_bot, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dh) 
- <span style="font-family: 'Times New Roman', serif;"># above bottom</span></p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;na 
- = mesh.AddNode(rr * cos_bot, rr * sin_bot, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0) 
- <span style="font-family: 'Times New Roman', serif;"># bottom</span></p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;dd.append(nd) 
- <span style="font-family: 'Times New Roman', serif;"># top</span></p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;cc.append(nc) 
- <span style="font-family: 'Times New Roman', serif;"># below top</span></p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;bb.append(nb) 
- <span style="font-family: 'Times New Roman', serif;"># above bottom</span></p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;aa.append(na) 
- <span style="font-family: 'Times New Roman', serif;"># bottom</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;pass</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># Create a polyhedral 
- volume (12-hedron with pentagonal faces)</p>
-
-<p class="whs1">MeshEditor.AddPolyhedralVolume([dd[0], 
- dd[1], dd[2], dd[3], dd[4], &nbsp;<span style="font-family: 'Times New Roman', serif;"># 
- top</span></p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dd[0], 
- cc[0], bb[1], cc[1], dd[1], &nbsp;# 
- -</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dd[1], 
- cc[1], bb[2], cc[2], dd[2], &nbsp;# 
- -</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dd[2], 
- cc[2], bb[3], cc[3], dd[3], &nbsp;<span style="font-family: 'Times New Roman', serif;"># 
- - below top</span></p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dd[3], 
- cc[3], bb[4], cc[4], dd[4], &nbsp;# 
- -</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dd[4], 
- cc[4], bb[0], cc[0], dd[0], &nbsp;# 
- -</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aa[4], 
- bb[4], cc[4], bb[0], aa[0], &nbsp;# 
- .</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aa[3], 
- bb[3], cc[3], bb[4], aa[4], &nbsp;# 
- .</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aa[2], 
- bb[2], cc[2], bb[3], aa[3], &nbsp;<span style="font-family: 'Times New Roman', serif;"># 
- . above bottom</span></p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aa[1], 
- bb[1], cc[1], bb[2], aa[2], &nbsp;# 
- .</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aa[0], 
- bb[0], cc[0], bb[1], aa[1], &nbsp;# 
- .</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aa[0], 
- aa[1], aa[2], aa[3], aa[4]], <span style="font-family: 'Times New Roman', serif;"># 
- bottom</span></p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[5,5,5,5,5,5,5,5,5,5,5,5])</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark1>Removing Nodes and Elements</a></h3>
-
-<h4 class="whs4">Removing Nodes</h4>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- SMESH_mechanic</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># remove nodes #246 
- and #255</p>
-
-<p class="whs1">res = mesh.RemoveNodes([246, 
- 255])</p>
-
-<p class="whs1">if res == 1: print 
- &quot;Nodes removing is OK!&quot;</p>
-
-<p class="whs1">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;KO nodes removing.&quot; </p>
-
-<p class="whs3">&nbsp;</p>
-
-<h4>Removing Elements</h4>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># remove three elements: 
- #850, #859 and #814</p>
-
-<p class="whs1">res = mesh.RemoveElements([850, 
- 859, 814])</p>
-
-<p class="whs1">if res == 1: print 
- &quot;Elements removing is OK!&quot;</p>
-
-<p class="whs1">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;KO Elements removing.&quot; &nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark2>Renumbering Nodes and Elements</a></h3>
-
-<p class="whs5">import SMESH_mechanic</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"><span style="font-family: 'Lucida Console', monospace;">mesh.RenumberNodes()</span> 
- </p>
-
-<h3><a name=bookmark3>Moving Nodes</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"># move node #38</p>
-
-<p class="whs1">mesh.MoveNode(38, 
- 20., 10., 0.) </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs7"><a name=bookmark14
-                                                                       style="font-weight: bold; font-size: 13.5pt;">Mesh 
- through point</a></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs1">from geompy import 
- *</p>
-
-<p class="whs1">from smesh import 
- *</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">box = MakeBoxDXDYDZ(200, 
- 200, 200)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">mesh = Mesh( box 
- )</p>
-
-<p class="whs1">mesh.Segment().AutomaticLength(0.1)</p>
-
-<p class="whs1">mesh.Quadrangle()</p>
-
-<p class="whs1">mesh.Compute()</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"># find node at (0,0,0)</p>
-
-<p class="whs1">node000 = None</p>
-
-<p class="whs1">for vId in SubShapeAllIDs( 
- box, ShapeType[&quot;VERTEX&quot;]):</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;if 
- node000: break</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;nodeIds 
- = mesh.GetSubMeshNodesId( vId, True )</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;for 
- node in nodeIds:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xyz 
- = mesh.GetNodeXYZ( node )</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if 
- xyz[0] == 0 and xyz[1] == 0 and xyz[2] == 0 :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node000 
- = node</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pass</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pass</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;pass</p>
-
-<p class="whs1">if not node000:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;raise 
- &quot;node000 not found&quot;</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"># find node000 using the 
- tested function </p>
-
-<p class="whs1">n = mesh.FindNodeClosestTo( 
- -1,-1,-1 )</p>
-
-<p class="whs1">if not n == node000:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;raise 
- &quot;FindNodeClosestTo() returns &quot; + str( n ) + &quot; != &quot; 
- + str( node000 )</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"># check if any node will 
- be found for a point inside a box</p>
-
-<p class="whs1">n = mesh.FindNodeClosestTo( 
- 100, 100, 100 )</p>
-
-<p class="whs1">if not n &gt; 0:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;raise 
- &quot;FindNodeClosestTo( 100, 100, 100 ) fails&quot;</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"># move node000 to a new 
- location</p>
-
-<p class="whs1">x,y,z = -10, -10, 
- -10</p>
-
-<p class="whs1">n = mesh.MeshToPassThroughAPoint( 
- x,y,z )</p>
-
-<p class="whs1">if not n == node000:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;raise 
- &quot;FindNodeClosestTo() returns &quot; + str( n ) + &quot; != &quot; 
- + str( node000 )</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"># check the coordinates 
- of the node000</p>
-
-<p class="whs1">xyz = mesh.GetNodeXYZ( 
- node000 )</p>
-
-<p class="whs1">if not ( xyz[0] 
- == x and xyz[1] == y and xyz[2] == z) :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;raise 
- &quot;Wrong coordinates: &quot; + str( xyz ) + &quot; != &quot; + str( 
- [x,y,z] )</p>
-
-<h3><a name=bookmark4>Diagonal Inversion</a></h3>
-
-<p class="whs5">import salome</p>
-
-<p class="whs5">import smesh</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs8"># create an empty mesh 
- structure</p>
-
-<p class="whs5">mesh = smesh.Mesh() 
- </p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs8"># create the following 
- mesh:</p>
-
-<p class="whs5"># .----.----.----.</p>
-
-<p class="whs5"># | &nbsp;&nbsp;/| 
- &nbsp;&nbsp;/| 
- &nbsp;&nbsp;/|</p>
-
-<p class="whs5"># | &nbsp;/ 
- | &nbsp;/ | &nbsp;/ 
- |</p>
-
-<p class="whs5"># | / &nbsp;| 
- / &nbsp;| / &nbsp;|</p>
-
-<p class="whs5"># |/ &nbsp;&nbsp;|/ 
- &nbsp;&nbsp;|/ 
- &nbsp;&nbsp;|</p>
-
-<p class="whs5"># .----.----.----.</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5">bb = [0, 0, 0, 0]</p>
-
-<p class="whs5">tt = [0, 0, 0, 0]</p>
-
-<p class="whs5">ff = [0, 0, 0, 0, 
- 0, 0]</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5">bb[0] = mesh.AddNode( 
- 0., 0., 0.)</p>
-
-<p class="whs5">bb[1] = mesh.AddNode(10., 
- 0., 0.)</p>
-
-<p class="whs5">bb[2] = mesh.AddNode(20., 
- 0., 0.)</p>
-
-<p class="whs5">bb[3] = mesh.AddNode(30., 
- 0., 0.)</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5">tt[0] = mesh.AddNode( 
- 0., 15., 0.)</p>
-
-<p class="whs5">tt[1] = mesh.AddNode(10., 
- 15., 0.)</p>
-
-<p class="whs5">tt[2] = mesh.AddNode(20., 
- 15., 0.)</p>
-
-<p class="whs5">tt[3] = mesh.AddNode(30., 
- 15., 0.)</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5">ff[0] = mesh.AddFace([bb[0], 
- bb[1], tt[1]])</p>
-
-<p class="whs5">ff[1] = mesh.AddFace([bb[0], 
- tt[1], tt[0]])</p>
-
-<p class="whs5">ff[2] = mesh.AddFace([bb[1], 
- bb[2], tt[2]])</p>
-
-<p class="whs5">ff[3] = mesh.AddFace([bb[1], 
- tt[2], tt[1]])</p>
-
-<p class="whs5">ff[4] = mesh.AddFace([bb[2], 
- bb[3], tt[3]])</p>
-
-<p class="whs5">ff[5] = mesh.AddFace([bb[2], 
- tt[3], tt[2]])</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs8"># inverse the diagonal 
- bb[1] - tt[2]</p>
-
-<p class="whs5">print &quot;\nDiagonal 
- inversion ... &quot;,</p>
-
-<p class="whs5">res = mesh.InverseDiag(bb[1], 
- tt[2])</p>
-
-<p class="whs5">if not res: print 
- &quot;failed!&quot;</p>
-
-<p class="whs5">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;done.&quot;</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
- </p>
-
-<h3><a name=bookmark5>Uniting two Triangles</a></h3>
-
-<p class="whs9">import salome</p>
-
-<p class="whs9">import smesh</p>
-
-<p>&nbsp;</p>
-
-<p># create an empty mesh structure</p>
-
-<p class="whs9">mesh = smesh.Mesh() 
- </p>
-
-<p>&nbsp;</p>
-
-<p># create the following mesh:</p>
-
-<p class="whs9"># .----.----.----.</p>
-
-<p class="whs9"># | &nbsp;&nbsp;/| 
- &nbsp;&nbsp;/| 
- &nbsp;&nbsp;/|</p>
-
-<p class="whs9"># | &nbsp;/ 
- | &nbsp;/ | &nbsp;/ 
- |</p>
-
-<p class="whs9"># | / &nbsp;| 
- / &nbsp;| / &nbsp;|</p>
-
-<p class="whs9"># |/ &nbsp;&nbsp;|/ 
- &nbsp;&nbsp;|/ 
- &nbsp;&nbsp;|</p>
-
-<p class="whs9"># .----.----.----.</p>
-
-<p>&nbsp;</p>
-
-<p class="whs9">bb = [0, 0, 0, 0]</p>
-
-<p class="whs9">tt = [0, 0, 0, 0]</p>
-
-<p class="whs9">ff = [0, 0, 0, 0, 
- 0, 0]</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">bb[0] 
- = mesh.AddNode( 0., 0., 0.)</span></p>
-
-<p class="whs9">bb[1] = mesh.AddNode(10., 
- 0., 0.)</p>
-
-<p class="whs9">bb[2] = mesh.AddNode(20., 
- 0., 0.)</p>
-
-<p class="whs9">bb[3] = mesh.AddNode(30., 
- 0., 0.)</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">tt[0] = mesh.AddNode( 
- 0., 15., 0.)</p>
-
-<p class="whs9">tt[1] = mesh.AddNode(10., 
- 15., 0.)</p>
-
-<p class="whs9">tt[2] = mesh.AddNode(20., 
- 15., 0.)</p>
-
-<p class="whs9">tt[3] = mesh.AddNode(30., 
- 15., 0.)</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">ff[0] = mesh.AddFace([bb[0], 
- bb[1], tt[1]])</p>
-
-<p class="whs9">ff[1] = mesh.AddFace([bb[0], 
- tt[1], tt[0]])</p>
-
-<p class="whs9">ff[2] = mesh.AddFace([bb[1], 
- bb[2], tt[2]])</p>
-
-<p class="whs9">ff[3] = mesh.AddFace([bb[1], 
- tt[2], tt[1]])</p>
-
-<p class="whs9">ff[4] = mesh.AddFace([bb[2], 
- bb[3], tt[3]])</p>
-
-<p class="whs9">ff[5] = mesh.AddFace([bb[2], 
- tt[3], tt[2]]) </p>
-
-<p>&nbsp;</p>
-
-<p># delete the diagonal bb[1] - tt[2]</p>
-
-<p class="whs9">print &quot;\nUnite 
- two triangles ... &quot;,</p>
-
-<p class="whs9">res = mesh.DeleteDiag(bb[1], 
- tt[2])</p>
-
-<p class="whs9">if not res: print 
- &quot;failed!&quot;</p>
-
-<p class="whs9">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;done.&quot;</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
- </p>
-
-<h3><a name=bookmark6>Uniting a Set of Triangles</a></h3>
-
-<p class="whs9">import salome</p>
-
-<p class="whs9">import smesh</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs10"># create an empty mesh 
- structure</p>
-
-<p class="whs9">mesh = smesh.Mesh() 
- </p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs10"># create the following 
- mesh:</p>
-
-<p class="whs9"># .----.----.----.</p>
-
-<p class="whs9"># | &nbsp;&nbsp;/| 
- &nbsp;&nbsp;/| 
- &nbsp;&nbsp;/|</p>
-
-<p class="whs9"># | &nbsp;/ 
- | &nbsp;/ | &nbsp;/ 
- |</p>
-
-<p class="whs9"># | / &nbsp;| 
- / &nbsp;| / &nbsp;|</p>
-
-<p class="whs9"># |/ &nbsp;&nbsp;|/ 
- &nbsp;&nbsp;|/ 
- &nbsp;&nbsp;|</p>
-
-<p class="whs9"># .----.----.----.</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">bb = [0, 0, 0, 0]</p>
-
-<p class="whs9">tt = [0, 0, 0, 0]</p>
-
-<p class="whs9">ff = [0, 0, 0, 0, 
- 0, 0]</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">bb[0] 
- = mesh.AddNode( 0., 0., 0.)</span></p>
-
-<p class="whs9">bb[1] = mesh.AddNode(10., 
- 0., 0.)</p>
-
-<p class="whs9">bb[2] = mesh.AddNode(20., 
- 0., 0.)</p>
-
-<p class="whs9">bb[3] = mesh.AddNode(30., 
- 0., 0.)</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">tt[0] = mesh.AddNode( 
- 0., 15., 0.)</p>
-
-<p class="whs9">tt[1] = mesh.AddNode(10., 
- 15., 0.)</p>
-
-<p class="whs9">tt[2] = mesh.AddNode(20., 
- 15., 0.)</p>
-
-<p class="whs9">tt[3] = mesh.AddNode(30., 
- 15., 0.)</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">ff[0] = mesh.AddFace([bb[0], 
- bb[1], tt[1]])</p>
-
-<p class="whs9">ff[1] = mesh.AddFace([bb[0], 
- tt[1], tt[0]])</p>
-
-<p class="whs9">ff[2] = mesh.AddFace([bb[1], 
- bb[2], tt[2]])</p>
-
-<p class="whs9">ff[3] = mesh.AddFace([bb[1], 
- tt[2], tt[1]])</p>
-
-<p class="whs9">ff[4] = mesh.AddFace([bb[2], 
- bb[3], tt[3]])</p>
-
-<p class="whs9">ff[5] = mesh.AddFace([bb[2], 
- tt[3], tt[2]])</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs10"># unite a set of triangles</p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">print 
- &quot;\nUnite a set of triangles ... &quot;,</span></p>
-
-<p class="whs9">res = mesh.TriToQuad([ff[2], 
- ff[3], ff[4], ff[5]], smesh.FT_MinimumAngle, 60.)</p>
-
-<p class="whs9">if not res: print 
- &quot;failed!&quot;</p>
-
-<p class="whs9">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;done.&quot;</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">salome.sg.updateObjBrowser(1) 
- &nbsp;</p>
-
-<h3><a name=bookmark12>Orientation</a></h3>
-
-<p class="whs9">import salome</p>
-
-<p class="whs9">import smesh</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p># create an empty mesh structure</p>
-
-<p class="whs9">mesh = smesh.Mesh() 
- </p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs10"># build five quadrangles:</p>
-
-<p class="whs9">dx = 10</p>
-
-<p class="whs9">dy = 20</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">n1 
- &nbsp;= mesh.AddNode(0.0 
- * dx, 0, 0)</span></p>
-
-<p class="whs9">n2 &nbsp;= 
- mesh.AddNode(1.0 * dx, 0, 0)</p>
-
-<p class="whs9">n3 &nbsp;= 
- mesh.AddNode(2.0 * dx, 0, 0)</p>
-
-<p class="whs9">n4 &nbsp;= 
- mesh.AddNode(3.0 * dx, 0, 0)</p>
-
-<p class="whs9">n5 &nbsp;= 
- mesh.AddNode(4.0 * dx, 0, 0)</p>
-
-<p class="whs9">n6 &nbsp;= 
- mesh.AddNode(5.0 * dx, 0, 0)</p>
-
-<p class="whs9">n7 &nbsp;= 
- mesh.AddNode(0.0 * dx, dy, 0)</p>
-
-<p class="whs9">n8 &nbsp;= 
- mesh.AddNode(1.0 * dx, dy, 0)</p>
-
-<p class="whs9">n9 &nbsp;= 
- mesh.AddNode(2.0 * dx, dy, 0)</p>
-
-<p class="whs9">n10 = mesh.AddNode(3.0 
- * dx, dy, 0)</p>
-
-<p class="whs9">n11 = mesh.AddNode(4.0 
- * dx, dy, 0)</p>
-
-<p class="whs9">n12 = mesh.AddNode(5.0 
- * dx, dy, 0)</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">f1 = mesh.AddFace([n1, 
- n2, n8 , n7 ])</p>
-
-<p class="whs9">f2 = mesh.AddFace([n2, 
- n3, n9 , n8 ])</p>
-
-<p class="whs9">f3 = mesh.AddFace([n3, 
- n4, n10, n9 ])</p>
-
-<p class="whs9">f4 = mesh.AddFace([n4, 
- n5, n11, n10])</p>
-
-<p class="whs9">f5 = mesh.AddFace([n5, 
- n6, n12, n11]) </p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs10"># Change the orientation 
- of the second and the fourth faces.</p>
-
-<p class="whs9">mesh.Reorient([2, 
- 4])</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs9">&nbsp;</p>
-
-<h3><a name=bookmark7>Cutting Quadrangles</a></h3>
-
-<p class="whs9">import SMESH_mechanic</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">smesh = SMESH_mechanic.smesh</p>
-
-<p class="whs9">mesh &nbsp;= 
- SMESH_mechanic.mesh</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs10"># cut two quadrangles: 
- 405 and 406</p>
-
-<p class="whs9">mesh.QuadToTri([405, 
- 406], smesh.FT_MinimumAngle) &nbsp;</p>
-
-<p class="whs10">&nbsp;</p>
-
-<h3><a name=bookmark8>Smoothing</a></h3>
-
-<p class="whs9">import salome</p>
-
-<p class="whs9">import geompy</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">import SMESH_mechanic</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">smesh 
- = SMESH_mechanic.smesh</span></p>
-
-<p class="whs9">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs10"># select the top face</p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">faces 
- = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh, geompy.ShapeType[&quot;FACE&quot;])</span></p>
-
-<p class="whs9">face = faces[3]</p>
-
-<p class="whs9">geompy.addToStudyInFather(SMESH_mechanic.shape_mesh, 
- face, &quot;face planar with hole&quot;)</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"># create a group of 
- faces to be smoothed</p>
-
-<p class="whs9">GroupSmooth = mesh.GroupOnGeom(face, 
- &quot;Group of faces (smooth)&quot;, smesh.FACE)</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"># perform smoothing</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"># boolean SmoothObject(Object, 
- IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method)</p>
-
-<p class="whs9">res = mesh.SmoothObject(GroupSmooth, 
- [], 20, 2., smesh.CENTROIDAL_SMOOTH)</p>
-
-<p class="whs9">print &quot;\nSmoothing 
- ... &quot;,</p>
-
-<p class="whs9">if not res: print 
- &quot;failed!&quot;</p>
-
-<p class="whs9">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;done.&quot;</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs9">&nbsp;</p>
-
-<h3><a name=bookmark9>Extrusion</a></h3>
-
-<p class="whs9">import salome</p>
-
-<p class="whs9">import geompy</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">import SMESH_mechanic</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">smesh 
- = SMESH_mechanic.smesh</span></p>
-
-<p class="whs9">mesh = SMESH_mechanic.mesh 
- </p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs10"># select the top face</p>
-
-<p class="whs9">faces = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs9">face = faces[7]</p>
-
-<p class="whs9">geompy.addToStudyInFather(SMESH_mechanic.shape_mesh, 
- face, &quot;face circular top&quot;)</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"># create a vector 
- for extrusion</p>
-
-<p class="whs9">point = smesh.PointStruct(0., 
- 0., 5.)</p>
-
-<p class="whs9">vector = smesh.DirStruct(point)</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"># create a group to 
- be extruded</p>
-
-<p class="whs9">GroupTri = mesh.GroupOnGeom(face, 
- &quot;Group of faces (extrusion)&quot;, smesh.FACE)</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"># perform extrusion 
- of the group</p>
-
-<p class="whs9">mesh.ExtrusionSweepObject(GroupTri, 
- vector, 5)</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs10"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
- </p>
-
-<h3><a name=bookmark10>Extrusion along a Path</a></h3>
-
-<p class="whs9">import math</p>
-
-<p class="whs9">import salome</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs10"># Geometry</p>
-
-<p class="whs9">import geompy</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs10"># 1. Create points</p>
-
-<p class="whs9">points = [[0, 0], 
- [50, 30], [50, 110], [0, 150], [-80, 150], [-130, 70], [-130, -20]]</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">iv = 1</p>
-
-<p class="whs9">vertices = []</p>
-
-<p class="whs9">for point in points:</p>
-
-<p class="whs11">vert 
- = geompy.MakeVertex(point[0], point[1], 0)</p>
-
-<p class="whs11">geompy.addToStudy(vert, 
- &quot;Vertex_&quot; + `iv`)</p>
-
-<p class="whs11">vertices.append(vert)</p>
-
-<p class="whs11">iv 
- += 1</p>
-
-<p class="whs11">pass</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs10"># 2. Create edges and 
- wires</p>
-
-<p class="whs9">Edge_straight = geompy.MakeEdge(vertices[0], 
- vertices[4])</p>
-
-<p class="whs9">Edge_bezierrr = geompy.MakeBezier(vertices)</p>
-
-<p class="whs9">Wire_polyline = geompy.MakePolyline(vertices)</p>
-
-<p class="whs9">Edge_Circle &nbsp;&nbsp;= 
- geompy.MakeCircleThreePnt(vertices[0], vertices[1], vertices[2])</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">geompy.addToStudy(Edge_straight, 
- &quot;Edge_straight&quot;)</p>
-
-<p class="whs9">geompy.addToStudy(Edge_bezierrr, 
- &quot;Edge_bezierrr&quot;)</p>
-
-<p class="whs9">geompy.addToStudy(Wire_polyline, 
- &quot;Wire_polyline&quot;)</p>
-
-<p class="whs9">geompy.addToStudy(Edge_Circle 
- &nbsp;, &quot;Edge_Circle&quot;)</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs10"># 3. Explode wire on 
- edges, as they will be used for mesh extrusion</p>
-
-<p class="whs9">Wire_polyline_edges 
- = geompy.SubShapeAll(Wire_polyline, geompy.ShapeType[&quot;EDGE&quot;])</p>
-
-<p class="whs9">for ii in range(len(Wire_polyline_edges)):</p>
-
-<p class="whs11">geompy.addToStudyInFather(Wire_polyline, 
- Wire_polyline_edges[ii], &quot;Edge_&quot; + `ii + 1`)</p>
-
-<p class="whs11">pass</p>
-
-<p class="whs12">&nbsp;</p>
-
-<p class="whs10"># Mesh</p>
-
-<p class="whs9">import smesh</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs13"># Mesh 
- the given shape with the given 1d hypothesis</p>
-
-<p class="whs14">def 
- Mesh1D(shape1d, nbSeg, name):</p>
-
-<p class="whs14">&nbsp;&nbsp;mesh1d_tool 
- = smesh.Mesh(shape1d, name)</p>
-
-<p class="whs14">&nbsp;&nbsp;algo 
- = mesh1d_tool.Segment()</p>
-
-<p class="whs14">&nbsp;&nbsp;hyp 
- &nbsp;= algo.NumberOfSegments(nbSeg)</p>
-
-<p class="whs14">&nbsp;&nbsp;isDone 
- = mesh1d_tool.Compute()</p>
-
-<p class="whs14">&nbsp;&nbsp;if 
- not isDone: print 'Mesh ', name, ': computation failed'</p>
-
-<p class="whs14">&nbsp;&nbsp;return 
- mesh1d_tool</p>
-
-<p class="whs13"># Create 
- a mesh with six nodes, seven edges and two quadrangle faces</p>
-
-<p class="whs14">def 
- MakeQuadMesh2(mesh_name):</p>
-
-<p class="whs14">&nbsp;&nbsp;quad_1 
- = smesh.Mesh(name = mesh_name)</p>
-
-<p class="whs14">&nbsp;&nbsp;</p>
-
-<p class="whs14">&nbsp;&nbsp;<span 
- style="font-family: 'Times New Roman', serif;"># 
- six nodes</span></p>
-
-<p class="whs14">&nbsp;&nbsp;n1 
- = quad_1.AddNode(0, 20, 10)</p>
-
-<p class="whs14">&nbsp;&nbsp;n2 
- = quad_1.AddNode(0, 40, 10)</p>
-
-<p class="whs14">&nbsp;&nbsp;n3 
- = quad_1.AddNode(0, 40, 30)</p>
-
-<p class="whs14">&nbsp;&nbsp;n4 
- = quad_1.AddNode(0, 20, 30)</p>
-
-<p class="whs14">&nbsp;&nbsp;n5 
- = quad_1.AddNode(0, &nbsp;0, 
- 30)</p>
-
-<p class="whs14">&nbsp;&nbsp;n6 
- = quad_1.AddNode(0, &nbsp;0, 
- 10)</p>
-
-<p class="whs14">&nbsp;&nbsp;</p>
-
-<p class="whs14">&nbsp;&nbsp;<span 
- style="font-family: 'Times New Roman', serif;"># 
- seven edges</span></p>
-
-<p class="whs14">&nbsp;&nbsp;quad_1.AddEdge([n1, 
- n2]) # 1</p>
-
-<p class="whs14">&nbsp;&nbsp;quad_1.AddEdge([n2, 
- n3]) # 2</p>
-
-<p class="whs14">&nbsp;&nbsp;quad_1.AddEdge([n3, 
- n4]) # 3</p>
-
-<p class="whs14">&nbsp;&nbsp;quad_1.AddEdge([n4, 
- n1]) # 4</p>
-
-<p class="whs14">&nbsp;&nbsp;quad_1.AddEdge([n4, 
- n5]) # 5</p>
-
-<p class="whs14">&nbsp;&nbsp;quad_1.AddEdge([n5, 
- n6]) # 6</p>
-
-<p class="whs14">&nbsp;&nbsp;quad_1.AddEdge([n6, 
- n1]) # 7</p>
-
-<p class="whs14">&nbsp;</p>
-
-<p class="whs14">&nbsp;&nbsp;<span 
- style="font-family: 'Times New Roman', serif;"># 
- two quadrangle faces</span></p>
-
-<p class="whs14">&nbsp;&nbsp;quad_1.AddFace([n1, 
- n2, n3, n4]) # 8</p>
-
-<p class="whs14">&nbsp;&nbsp;quad_1.AddFace([n1, 
- n4, n5, n6]) # 9</p>
-
-<p class="whs14">&nbsp;&nbsp;return 
- [quad_1, [1,2,3,4,5,6,7], [8,9]]</p>
-
-<p class="whs14">&nbsp;</p>
-
-<p class="whs13"># Path 
- meshes</p>
-
-<p class="whs14">Edge_straight_mesh 
- = Mesh1D(Edge_straight, 7, &quot;Edge_straight&quot;)</p>
-
-<p class="whs14">Edge_bezierrr_mesh 
- = Mesh1D(Edge_bezierrr, 7, &quot;Edge_bezierrr&quot;)</p>
-
-<p class="whs14">Wire_polyline_mesh 
- = Mesh1D(Wire_polyline, 3, &quot;Wire_polyline&quot;)</p>
-
-<p class="whs14">Edge_Circle_mesh 
- &nbsp;&nbsp;= 
- Mesh1D(Edge_Circle &nbsp;, 
- 8, &quot;Edge_Circle&quot;)</p>
-
-<p class="whs14">&nbsp;</p>
-
-<p class="whs13"># Initial 
- meshes (to be extruded)</p>
-
-<p class="whs14">[quad_1, 
- ee_1, ff_1] = MakeQuadMesh2(&quot;quad_1&quot;)</p>
-
-<p class="whs14">[quad_2, 
- ee_2, ff_2] = MakeQuadMesh2(&quot;quad_2&quot;)</p>
-
-<p class="whs14">[quad_3, 
- ee_3, ff_3] = MakeQuadMesh2(&quot;quad_3&quot;)</p>
-
-<p class="whs14">[quad_4, 
- ee_4, ff_4] = MakeQuadMesh2(&quot;quad_4&quot;)</p>
-
-<p class="whs14">[quad_5, 
- ee_5, ff_5] = MakeQuadMesh2(&quot;quad_5&quot;)</p>
-
-<p class="whs14">[quad_6, 
- ee_6, ff_6] = MakeQuadMesh2(&quot;quad_6&quot;)</p>
-
-<p class="whs14">[quad_7, 
- ee_7, ff_7] = MakeQuadMesh2(&quot;quad_7&quot;)</p>
-
-<p class="whs14">&nbsp;</p>
-
-<p class="whs13"># ExtrusionAlongPath</p>
-
-<p class="whs13"># IDsOfElements, 
- PathMesh, PathShape, NodeStart,</p>
-
-<p class="whs13"># HasAngles, 
- Angles, HasRefPoint, RefPoint</p>
-
-<p class="whs14">refPoint 
- = smesh.PointStruct(0, 0, 0)</p>
-
-<p class="whs14">a10 
- = 10.0*math.pi/180.0</p>
-
-<p class="whs14">a45 
- = 45.0*math.pi/180.0</p>
-
-<p class="whs14">&nbsp;</p>
-
-<p class="whs13"># 1. 
- Extrusion of two mesh edges along a straight path</p>
-
-<p class="whs14">error 
- = quad_1.ExtrusionAlongPath([1,2], Edge_straight_mesh, Edge_straight, 
- 1,</p>
-
-<p class="whs14">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0, 
- [], 0, refPoint)</p>
-
-<p class="whs14">&nbsp;</p>
-
-<p class="whs13"># 2. 
- Extrusion of one mesh edge along a curved path</p>
-
-<p class="whs14">error 
- = quad_2.ExtrusionAlongPath([2], Edge_bezierrr_mesh, Edge_bezierrr, 1,</p>
-
-<p class="whs14">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0, 
- [], 0, refPoint)</p>
-
-<p class="whs14">&nbsp;</p>
-
-<p class="whs13"># 3. 
- Extrusion of one mesh edge along a curved path with usage of angles</p>
-
-<p class="whs14">error 
- = quad_3.ExtrusionAlongPath([2], Edge_bezierrr_mesh, Edge_bezierrr, 1,</p>
-
-<p class="whs14">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1, 
- [a45, a45, a45, 0, -a45, -a45, -a45], 0, refPoint)</p>
-
-<p class="whs14">&nbsp;</p>
-
-<p class="whs13"># 4. 
- Extrusion of one mesh edge along the path, which is a part of a meshed 
- wire</p>
-
-<p class="whs14">error 
- = quad_4.ExtrusionAlongPath([4], Wire_polyline_mesh, Wire_polyline_edges[0], 
- 1,</p>
-
-<p class="whs14">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1, 
- [a10, a10, a10], 0, refPoint)</p>
-
-<p class="whs14">&nbsp;</p>
-
-<p class="whs13"># 5. 
- Extrusion of two mesh faces along the path, which is a part of a meshed 
- wire</p>
-
-<p class="whs14">error 
- = quad_5.ExtrusionAlongPath(ff_5 , Wire_polyline_mesh, Wire_polyline_edges[2], 
- 4,</p>
-
-<p class="whs14">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0, 
- [], 0, refPoint)</p>
-
-<p class="whs14">&nbsp;</p>
-
-<p class="whs13"># 6. 
- Extrusion of two mesh faces along a closed path</p>
-
-<p class="whs14">error 
- = quad_6.ExtrusionAlongPath(ff_6 , Edge_Circle_mesh, Edge_Circle, 1,</p>
-
-<p class="whs14">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0, 
- [], 0, refPoint)</p>
-
-<p class="whs14">&nbsp;</p>
-
-<p class="whs13"># 7. 
- Extrusion of two mesh faces along a closed path with usage of angles</p>
-
-<p class="whs14">error 
- = quad_7.ExtrusionAlongPath(ff_7, Edge_Circle_mesh, Edge_Circle, 1,</p>
-
-<p class="whs14">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1, 
- [a45, -a45, a45, -a45, a45, -a45, a45, -a45], 0, refPoint)</p>
-
-<p class="whs14">&nbsp;</p>
-
-<p class="whs14">salome.sg.updateObjBrowser(1) 
- </p>
-
-<h3><a name=bookmark11>Revolution</a></h3>
-
-<p class="whs9">import math</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">import SMESH_mechanic</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">mesh 
- &nbsp;= SMESH_mechanic.mesh</span></p>
-
-<p class="whs9">smesh = SMESH_mechanic.smesh</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs10"># create a group of faces 
- to be revolved</p>
-
-<p class="whs9">FacesRotate = [492, 
- 493, 502, 503]</p>
-
-<p class="whs9">GroupRotate = mesh.CreateGroup(SMESH.FACE,&quot;Group 
- of faces (rotate)&quot;)</p>
-
-<p class="whs9">GroupRotate.Add(FacesRotate)</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs10"># define revolution angle 
- and axis</p>
-
-<p class="whs9">angle45 = 45 * math.pi 
- / 180</p>
-
-<p class="whs9">axisXYZ = SMESH.AxisStruct(-38.3128, 
- -73.3658, -23.321, -13.3402, -13.3265, 6.66632)</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs10"># perform revolution 
- of an object</p>
-
-<p class="whs9">mesh.RotationSweepObject(GroupRotate, 
- axisXYZ, angle45, 4, 1e-5) </p>
-
-<p class="whs10">&nbsp;</p>
-
-<h3><a name=bookmark13>Pattern Mapping</a></h3>
-
-<p class="whs9">import geompy</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9">import smesh</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"># define the geometry</p>
-
-<p class="whs10">Box_1 = geompy.MakeBoxDXDYDZ(200., 
- 200., 200.)</p>
-
-<p class="whs10">geompy.addToStudy(Box_1, 
- &quot;Box_1&quot;)</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs10">faces = geompy.SubShapeAll(Box_1, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs10">Face_1 = faces[0]</p>
-
-<p class="whs10">Face_2 = faces[1]</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs10">geompy.addToStudyInFather(Box_1, 
- Face_1, &quot;Face_1&quot;)</p>
-
-<p class="whs10">geompy.addToStudyInFather(Box_1, 
- Face_2, &quot;Face_2&quot;)</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs9"># build a quadrangle 
- mesh 3x3 on Face_1</p>
-
-<p class="whs10">Mesh_1 = smesh.Mesh(Face_1)</p>
-
-<p class="whs10">algo1D = Mesh_1.Segment()</p>
-
-<p class="whs10">algo1D.NumberOfSegments(3)</p>
-
-<p class="whs10">Mesh_1.Quadrangle()</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs10">isDone = Mesh_1.Compute()</p>
-
-<p class="whs10">if not isDone: print 
- 'Mesh Mesh_1 : computation failed'</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs9"># build a triangle 
- mesh on Face_2</p>
-
-<p class="whs10">Mesh_2 = smesh.Mesh(Face_2)</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs10">algo1D = Mesh_2.Segment()</p>
-
-<p class="whs10">algo1D.NumberOfSegments(1)</p>
-
-<p class="whs10">algo2D = Mesh_2.Triangle()</p>
-
-<p class="whs10">algo2D.MaxElementArea(240)</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs10">isDone = Mesh_2.Compute()</p>
-
-<p class="whs10">if not isDone: print 
- 'Mesh Mesh_2 : computation failed'</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs9"># create a pattern</p>
-
-<p class="whs10">pattern = smesh.GetPattern()</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs10">isDone = pattern.LoadFromFace(Mesh_2.GetMesh(), 
- Face_2, 0)</p>
-
-<p class="whs10">if (isDone != 1): print 
- 'LoadFromFace :', pattern.GetErrorCode()</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs9"># apply the pattern 
- to a face of the first mesh</p>
-
-<p class="whs10">pattern.ApplyToMeshFaces(Mesh_1.GetMesh(), 
- [17], 0, 0)</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs10">isDone = pattern.MakeMesh(Mesh_1.GetMesh(), 
- 0, 0)</p>
-
-<p class="whs10">if (isDone != 1): print 
- 'MakeMesh :', pattern.GetErrorCode() &nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/netgen_2d_and_3d_hypotheses.htm b/doc/salome/gui/SMESH/netgen_2d_and_3d_hypotheses.htm
deleted file mode 100644 (file)
index 1413f3b..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Netgen 2D and 3D hypotheses</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:0px; }\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:365px; height:353px; float:none; border-style:none; }\r
-ul.whs5 { list-style:disc; }\r
-p.whs6 { margin-left:40px; margin-top:0px; margin-bottom: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.whs1 {margin-left:1pt; }";\r
-  strNSS += "p.whs6 {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\nCreating meshes\nDefining hypotheses\nNetgen 2D and 3D hypotheses");\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>Netgen 2D and 3D hypotheses</h1>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> Netgen 2D</B></span> and <span style="font-weight: bold;"><B>Netgen</B></span> \r
- <span style="font-weight: bold;"><B>3D</B></span> hypotheses work only with <span \r
- style="font-weight: bold;"><B>Netgen 1D-2D</B></span> and <span style="font-weight: bold;"><B>Netgen</B></span> \r
- <span style="font-weight: bold;"><B>1D-2D-3D </B></span>algorithms. These algorithms \r
- do not require definition of lower-level &nbsp;hypotheses \r
- and algorithms (2D and 1D for meshing 3D objects and 1D for meshing 2D \r
- objects). They prove to be useful if lower-level meshing is homogeneous \r
- for all wires and faces of the meshed object.</p>\r
-\r
-<p class="whs3"><img src="pics/netgen2d.png" x-maintain-ratio="TRUE" width="365px" height="353px" border="0" class="img_whs4"></p>\r
-\r
-<ul type="disc" class="whs5">\r
-       \r
-       <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Name</B></span> \r
- - allows to define the name for the algorithm (Netgen 2D (or 3D) Parameters \r
- by default)</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Max \r
- Size</B></span> - maximum linear dimensions for mesh cells.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Second \r
- Order</B></span> - if this box is checked in, the algorithm will create second \r
- order nodes on the mesh, which actually will become <a href="adding_quadratic_nodes_and_elements.htm">Quadratic</a>. \r
- &nbsp;&nbsp;</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Fineness</B></span> \r
- - ranging from Very Coarse to Very Fine allows to set the level of meshing \r
- detalization using the three parameters below. You can select Custom to \r
- define them manually.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Growth \r
- rate</B></span> - allows to define how much the linear dimensions of two adjacent \r
- cells can differ (i.e. 0.3 means 30%).</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Nb. \r
- Segs per Edge</B></span> and<span style="font-weight: bold;"><B> Nb Segs per \r
- Radius</B></span> - allows to define the minimum number of mesh segments in \r
- which edges and radiuses will be split. </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Allow \r
- Quadrangles</B></span> - allows to use quadrangle elements in a triangle 2D \r
- mesh. This checkbox is not present in Netgen 3D parameters because currently \r
- building a tetrahedral mesh with quadrangle faces is not possible.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Optimize</B></span> \r
- - if this box is checked in, the algorithm will try to create regular \r
- (possessing even sides) elements.</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/note1.gif b/doc/salome/gui/SMESH/note1.gif
deleted file mode 100755 (executable)
index b53e21d..0000000
Binary files a/doc/salome/gui/SMESH/note1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/pattern_mapping.htm b/doc/salome/gui/SMESH/pattern_mapping.htm
deleted file mode 100755 (executable)
index 87685f0..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Pattern mapping</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-p.whs2 { margin-left:40px; }
-img_whs3 { border:none; width:626px; height:471px; border-style:none; }
-img_whs4 { border:none; width:22px; height:28px; border-style:none; }
-table.whs5 { x-cell-content-align:top; width:64.066%; border-spacing:0px; }
-col.whs6 { width:56.089%; }
-col.whs7 { width:43.911%; }
-tr.whs8 { x-cell-content-align:top; }
-td.whs9 { width:56.089%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
-p.whs10 { margin-right:0px; }
-img_whs11 { border:none; width:306px; height:632px; float:none; border-style:none; }
-td.whs12 { width:43.911%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
-img_whs13 { border:none; width:306px; height:670px; float:none; border-style:none; }
-img_whs14 { border:none; width:34px; height:34px; border-style:none; }
-table.whs15 { x-cell-content-align:top; width:68.686%; border-spacing:0px; }
-col.whs16 { width:50.224%; }
-col.whs17 { width:49.776%; }
-td.whs18 { width:50.224%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
-img_whs19 { border:none; width:306px; height:428px; float:none; border-style:none; }
-td.whs20 { width:49.776%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
-img_whs21 { border:none; width:306px; height:248px; float:none; border-style:none; }
-p.whs22 { margin-left:0px; }
-img_whs23 { border:none; width:554px; height:279px; border-style:none; }
-img_whs24 { border:none; width:572px; height:233px; border-style:none; }
-img_whs25 { border:none; width:606px; height:249px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs10 {margin-right:1pt; }";
-  strNSS += "p.whs22 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nModifying meshes\nPattern mapping");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Pattern mapping</h1>
-
-<h3>About patterns</h3>
-
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The pattern describes a mesh to generate: positions of 
- nodes within a geometrical domain and nodal connectivity of elements. 
- As well, a pattern specifies the so-called key-points, i.e. nodes that 
- will be located at geometrical vertices. Pattern description is stored 
- in &lt;pattern_name&gt;.smp file.</p>
-
-<p>&nbsp;</p>
-
-<p>The smp file contains 4 sections:</p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">1. The first line holds the number of nodes 
- (N).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">2. The next N lines describe nodes coordinates. 
- Each line holds 2 coordinates of a node.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">3. A key-points line: indices of nodes to 
- be mapped on geometrical vertices. An index n refers to a node described 
- on an n-th line of section 2. The first node index is zero.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">4. The rest lines describe nodal connectivity 
- of elements, one line for an element. A line holds indices of nodes forming 
- an element. An index n refers to a node described on an n-th line of the 
- section 2. The first node index is zero. There must be 3 or 4 indices 
- on a line: only 2d elements are allowed.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p>The 2D pattern must contain at least one element and at least one key-point. 
- All key-points must lay on boundaries.</p>
-
-<p>&nbsp;</p>
-
-<p>An example of a simple smp file and a preview of a pattern described 
- in this file:</p>
-
-<p>&nbsp;</p>
-
-<p><img src="image94.gif" width="626px" height="471px" border="0" class="img_whs3"></p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<h3>Application of pattern mapping</h3>
-
-<p class=TODO>To apply pattern mapping to a geometrical object:</p>
-
-<p class=TODO>&nbsp;</p>
-
-<p class="whs2">1. From the <span style="font-weight: bold;"><B>Modification 
- </B></span>menu choose the <span style="font-weight: bold;"><B>Pattern Mapping 
- </B></span>item or click <img src="image98.gif" width="22px" height="28px" border="0" class="img_whs4"> button in the toolbar. The following 
- dialog box shall appear:</p>
-
-<p class="whs2">&nbsp;</p>
-
-<table x-use-null-cells cellspacing="0" width="64.066%" class="whs5">
-<col class="whs6">
-<col class="whs7">
-
-<tr valign="top" class="whs8">
-<td width="56.089%" class="whs9">
-<p class="whs10"><img src="pics/patternmapping1.png" x-maintain-ratio="TRUE" width="306px" height="632px" border="0" class="img_whs11"></td>
-<td width="43.911%" class="whs12">
-<p><img src="pics/patternmapping2.png" x-maintain-ratio="TRUE" width="306px" height="670px" border="0" class="img_whs13"></td></tr>
-</table>
-
-<p class="whs2">&nbsp;</p>
-
-<p>To apply a pattern to a geometrical object, you should specify:</p>
-
-<p class="whs2">- a face having the number of vertices equal 
- to the number of key-points in the pattern; the number of key-points on 
- internal boundaries of a pattern must also be equal to the number of vertices 
- on internal boundaries of a face;</p>
-
-<p class="whs2">- a vertex to which the first key-point should 
- be mapped,</p>
-
-<p class="whs2">- reverse or not the order of key-points. 
- (The order of vertices of a face is counterclockwise looking from outside).</p>
-
-<p>&nbsp;</p>
-
-<p>Then you either load a .smp pattern file previously created manually 
- by clicking on the <img src="image108.gif" width="34px" height="34px" border="0" class="img_whs14"> button, or click on the <span style="font-weight: bold;"><B>New</B></span> 
- button for automatic generation.</p>
-
-<p>For an automatic generation you just specify a geometrical face having 
- a mesh built on it. Mesh nodes lying on face vertices become key-points. 
- Additionally, you may choose the way of getting nodes coordinates by <span 
- style="font-weight: bold;"><B>projecting nodes on the face</B></span> instead 
- of using &quot;positions on face&quot; generated by mesher (if there is 
- any). Faces having a seam edge can\92t be used for automatic pattern creation.</p>
-
-<p>&nbsp;</p>
-
-<p>When creating a pattern from an existing mesh, there are two possible 
- cases:</p>
-
-<p>&nbsp;</p>
-
-<p>1. A sub-mesh on face is selected. A pattern is created from the 2d 
- elements bound to a face by mesher. Node coordinates are either &quot;positions 
- on face&quot; computed by mesher, or coordinates got by node projection 
- on a geometrical surface, according to your choice.</p>
-
-<p>2. A mesh where the main shape is a face, is selected. A pattern is 
- created from all the 2d elements in a mesh. If all mesh elements are build 
- by mesher, the user can select the way of getting nodes coordinates, else 
- all nodes are projected on a face surface.</p>
-
-<table x-use-null-cells cellspacing="0" width="68.686%" class="whs15">
-<col class="whs16">
-<col class="whs17">
-
-<tr valign="top" class="whs8">
-<td width="50.224%" class="whs18">
-<p><img src="pics/a-patterntype.png" x-maintain-ratio="TRUE" width="306px" height="428px" border="0" class="img_whs19"></td>
-<td width="49.776%" class="whs20">
-<p><img src="pics/a-patterntype1.png" x-maintain-ratio="TRUE" width="306px" height="248px" border="0" class="img_whs21"></td></tr>
-</table>
-
-<p>&nbsp;</p>
-
-<h3>Mapping algorithm:</h3>
-
-<p class="whs22">The mapping algorithm is as follows:</p>
-
-<p class="whs22">&nbsp;</p>
-
-<p class="whs2">1. Key-points are set in the order that they 
- are encountered when walking along a pattern boundary so that elements 
- are on the left. The first key-point is preserved.</p>
-
-<p class="whs2">2. Find geometrical vertices corresponding 
- to key-points by vertices order in a face boundary; here, &quot;Reverse 
- order of key-points&quot; flag is taken into account.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><img src="image95.gif" width="554px" height="279px" border="0" class="img_whs23"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">3. Boundary nodes of a pattern are mapped 
- onto edges of a face: a node located between certain key-points on a pattern 
- boundary is mapped on a geometrical edge limited by corresponding geometrical 
- vertices. Node position on an edge reflects its distance from two key-points.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><img src="image96.gif" width="572px" height="233px" border="0" class="img_whs24"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">4. Coordinates of a non-boundary node in 
- a parametric space of a face are defined as following. In a parametric 
- space of a pattern, a node lays at the intersection of two iso-lines, 
- each of which intersects a pattern boundary at least at two points. Knowing 
- mapped positions of boundary nodes, we find where isoline-boundary intersection 
- points are mapped to, and hence we can find mapped isolines direction 
- and then, two node positions on two mapped isolines. The eventual mapped 
- position of a node is found as an average of positions on mapped isolines.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><img src="image97.gif" width="606px" height="249px" border="0" class="img_whs25"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p>&nbsp;<span style="font-weight: bold;"><B>See 
- Also</B></span> a sample TUI Script of a <a href="modifying_meshes.htm#bookmark13">Pattern 
- Mapping</a><a href="modifying_meshes.htm#bookmark11"> </a>operation. &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/pics/dialog.png b/doc/salome/gui/SMESH/pics/dialog.png
new file mode 100755 (executable)
index 0000000..38ece87
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/dialog.png differ
diff --git a/doc/salome/gui/SMESH/pics/eleminfo1.png b/doc/salome/gui/SMESH/pics/eleminfo1.png
new file mode 100755 (executable)
index 0000000..5e2c2a0
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/eleminfo1.png differ
diff --git a/doc/salome/gui/SMESH/pics/eleminfo2.png b/doc/salome/gui/SMESH/pics/eleminfo2.png
new file mode 100755 (executable)
index 0000000..3ff8d1d
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/eleminfo2.png differ
index 9314da8c345beb0b6e7989033a01f8228152ad74..dbd87877e0b73dd08f13fa9d530379dc7e42e508 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/mergeelems.png and b/doc/salome/gui/SMESH/pics/mergeelems.png differ
diff --git a/doc/salome/gui/SMESH/presentation.htm b/doc/salome/gui/SMESH/presentation.htm
deleted file mode 100755 (executable)
index 21c5ae4..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Presentation</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { margin-left:40px; }
-img_whs2 { border:none; height:274px; width:260px; border-style:none; }
-p.whs3 { font-weight:bold; margin-left:40px; }
-img_whs4 { border:none; height:285px; width:261px; border-style:none; }
-p.whs5 { font-weight:bold; }
-img_whs6 { border:none; width:263px; height:277px; border-style:none; }
-p.whs7 { font-weight:normal; }
-img_whs8 { border:none; height:287px; width:259px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nViewing meshes\nDisplay Mode");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Display Mode</h1>
-
-<p>By default your objects are represented as set in <span style="font-weight: bold;"><B>Preferences.</B></span></p>
-
-<p>However, right-clicking on the mesh in the <span style="font-weight: bold;"><B>Object 
- Browser, </B></span>and selecting<span style="font-weight: bold;"><B> Display 
- Mode, </B></span>you can display your mesh as<span style="font-weight: bold;"><B>: 
- </B></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs1"><span style="font-weight: bold;"><B>Wireframe 
- </B></span></p>
-
-<p class="whs1"><img src="image53.gif" height="274px" width="260px" border="0" class="img_whs2"></p>
-
-<p>&nbsp;</p>
-
-<p class="whs1"><span style="font-weight: bold;"><B>Shading</B></span></p>
-
-<p class="whs3"><img src="image37.jpg" height="285px" width="261px" border="0" class="img_whs4"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs3"><span style="font-weight: normal;">or 
- </span>Nodes.</p>
-
-<p class="whs3"><img src="image56.gif" width="263px" height="277px" border="0" class="img_whs6"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5">Wireframe <span style="font-weight: normal;">can 
- combine with</span> Nodes<span style="font-weight: normal;"> and</span> 
- Shading.</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5">Shading<span style="font-weight: normal;"> 
- and</span> Wireframe<span style="font-weight: normal;"> modes can combine 
- with</span> Shrink, <span style="font-weight: normal;">however</span> 
- Nodes <span style="font-weight: normal;">can't.</span></p>
-
-<p class="whs7"><img src="image55.gif" height="287px" width="259px" border="0" class="img_whs8"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/prism_3d_algorithm.htm b/doc/salome/gui/SMESH/prism_3d_algorithm.htm
deleted file mode 100644 (file)
index 9bdf4a4..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>3D extrusion meshing algorithm</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:24px; margin-top:0pt; margin-bottom:0pt; }\r
-img_whs2 { border:none; width:324px; height:337px; border-style:none; }\r
-p.whs3 { margin-top:0pt; margin-bottom:0pt; 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.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt;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\nCreating meshes\nDefining Algorithms\n3D extrusion meshing algorithm");\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>3D extrusion meshing algorithm</h1>\r
-\r
-<p>3D extrusion algorithm can be used for meshing prisms, i.e.\r
-<span style="font-weight: bold;"><B>3D Shapes</B></span> defined by\r
- two opposing faces having the same number of vertices and edges and meshed using the \r
- <a href="projection_algorithms.htm">2D Projection</a> algorithm. These \r
- two faces should be connected by quadrangle &quot;side&quot; faces.</p>\r
-\r
-<p><span style="margin-left: 24px;\r
-                               margin-top: 0pt;\r
-                               margin-bottom: 0pt;">The opposing faces can be meshed with \r
- either quadrangles or triangles, while the side faces should be meshed \r
- with quadrangles only. </span></p>\r
-\r
-<p class="whs1"><img src="image157.gif" width="324px" height="337px" border="0" class="img_whs2"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs3">As you can see, the <span style="font-weight: bold;"><B>3D extrusion</B></span> \r
- algorithm permits to build and to have in the same 3D mesh such elements \r
- as hexahedrons, prisms and polyhedrons.</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/projection_algorithms.htm b/doc/salome/gui/SMESH/projection_algorithms.htm
deleted file mode 100644 (file)
index 3e1059b..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Projection Algorithms</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
-img_whs2 { border:none; width:30px; height:29px; border-style:none; }\r
-p.whs3 { margin-left:40px; }\r
-img_whs4 { border:none; width:270px; height:285px; float:none; border-style:none; }\r
-img_whs5 { border:none; width:30px; height:29px; border-style:none; }\r
-img_whs6 { border:none; width:280px; height:351px; float:none; }\r
-p.whs7 { 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.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs7 {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\nCreating meshes\nDefining Algorithms\nProjection Algorithms");\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>Projection Algorithms</h1>\r
-\r
-<p class="whs1">Projection algorithms allow \r
- to define the mesh of a geometrical object by the projection of another \r
- already meshed geometrical object. </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B>Projection \r
- 1D</B></span> algorithm permits to define the mesh of an edge by the projection \r
- of another already meshed edge.</p>\r
-\r
-<p class="whs1">To apply this algorithm \r
- select the edge to be meshed (indicated in the field <span style="font-weight: bold;"><B>Geometry</B></span> \r
- of<span style="font-weight: bold;"><B> Create mesh</B></span> dialog box), <span \r
- style="font-weight: bold;"><B>Projection 1D</B></span> in the list of 1D algorithms \r
- and click the <img src="image122.gif" width="30px" height="29px" border="0" class="img_whs2"> button. The following dialog box will appear: \r
- </p>\r
-\r
-<p class="whs3"><img src="pics/projection_1d.png" x-maintain-ratio="TRUE" width="270px" height="285px" border="0" class="img_whs4"></p>\r
-\r
-<p>In this menu you can define the <span style="font-weight: bold;"><B>Name</B></span> \r
- of the algorithm, the algeady meshed source <span style="font-weight: bold;"><B>Edge</B></span> \r
- and the <span style="font-weight: bold;"><B>Mesh</B></span> (optional, use it \r
- if there are several different meshes on the same edge). It could also \r
- be necessary to define the orientation of edges, which is done by indicating \r
- the <span style="font-weight: bold;"><B>Source Vertex</B></span> being the first \r
- point of the Source Edge and the <span style="font-weight: bold;"><B>Target \r
- Vertex </B></span>being the first point of the created <span style="font-weight: bold;"><B>Edge.</B></span></p>\r
-\r
-<p><span style="font-weight: bold;"><B>Projection 2D</B></span> algorithm<span \r
- style="font-weight: bold;"> <B></B></span>permits to define the mesh of a face \r
- by the projection of another already meshed face. This algorithm works \r
- only if all edges of the<span style="font-weight: bold;"> <B></B></span>target \r
- face have been meshed as 1D Projections of the edges of the source face.</p>\r
-\r
-<p>To apply this algorithm select the face to be meshed (indicated in the \r
- field <span style="font-weight: bold;"><B>Geometry</B></span> of<span style="font-weight: bold;"><B> \r
- Create mesh</B></span> dialog box), <span style="font-weight: bold;"><B>Projection \r
- 2D</B></span> in the list of 2D algorithms and click the <img src="image122.gif" width="30px" height="29px" border="0" class="img_whs5"> button. \r
- The following dialog box will appear: </p>\r
-\r
-<p class="whs3"><img src="pics/projection_2d.png" x-maintain-ratio="TRUE" width="280px" height="351px" border="0" class="img_whs6"></p>\r
-\r
-<p>In this menu you can define the <span style="font-weight: bold;"><B>Name</B></span> \r
- of the algorithm, the algeady meshed source <span style="font-weight: bold;"><B>Face</B></span> \r
- and the <span style="font-weight: bold;"><B>Mesh</B></span> (optional, use it \r
- if there are several different meshes on the same face). It could also \r
- be necessary to define the orientation of mesh on the face, which is done \r
- by indicating two <span style="font-weight: bold;"><B>Source Vertices, </B></span>which \r
- belong to the same edge of the<span style="font-weight: bold;"> <B></B></span>source \r
- face, and two<span style="font-weight: bold;"><B> Target Vertices,</B></span> \r
- which belong to the same edge of the created<span style="font-weight: bold;"><B> \r
- Face. </B></span></p>\r
-\r
-<p><span style="font-weight: bold;"><B>Projection 3D</B></span> algorithm permits \r
- to define the mesh of a shape by the projection of another already meshed \r
- shape. &nbsp;This \r
- algorithm works only if all faces and edges of the<span style="font-weight: bold;"> \r
- <B></B></span>target face have been meshed as 1D Projections of the faces and \r
- edges of the source face. Another limitation is that this algorithm currently \r
- works only on boxes. </p>\r
-\r
-<p>To apply this algorithm select the solid to be meshed (indicated in \r
- the field <span style="font-weight: bold;"><B>Geometry</B></span> of<span style="font-weight: bold;"><B> \r
- Create mesh</B></span> dialog box), <span style="font-weight: bold;"><B>Projection \r
- 3D</B></span> in the list of 3D algorithms and click the <img src="image122.gif" width="30px" height="29px" border="0" class="img_whs5"> button. \r
- The following dialog box will appear: </p>\r
-\r
-<p class="whs3"><img src="pics/projection_3d.png" x-maintain-ratio="TRUE" width="280px" height="351px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs7">In this menu you can define the <span style="font-weight: bold;"><B>Name</B></span> \r
- of the algorithm, the algeady meshed source <span style="font-weight: bold;"><B>3D \r
- shape</B></span> and the <span style="font-weight: bold;"><B>Mesh</B></span> (optional, \r
- use it if there are several different meshes on the same shape). It could \r
- also be necessary to define the orientation of mesh on the shape, which \r
- is done by indicating two <span style="font-weight: bold;"><B>Source Vertices,</B></span> \r
- which belong to the same edge of the<span style="font-weight: bold;"> \r
- <B></B></span>source <span style="font-weight: bold;"><B>3D Shape,</B></span> and two<span \r
- style="font-weight: bold;"><B> Target Vertices,</B></span> which belong to the \r
- same edge of the<span style="font-weight: bold;"> <B></B></span>source <span \r
- style="font-weight: bold;"><B>3D Shape. </B></span></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/quality_controls.htm b/doc/salome/gui/SMESH/quality_controls.htm
deleted file mode 100755 (executable)
index 064d7b9..0000000
+++ /dev/null
@@ -1,1270 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Quality Controls</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
-p.whs2 { margin-top:0pt; margin-bottom:0pt; }
-p.whs3 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nTUI Scripts\nQuality Controls");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Quality Controls</h1>
-
-<h3><a name=bookmark>Free Borders</a></h3>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># create open shell: a 
- box without one plane</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">box 
- = geompy.MakeBox(0., 0., 0., 20., 20., 15.)</span></p>
-
-<p class="whs1">FaceList = geompy.SubShapeAll(box, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs1">FaceList.remove(FaceList[5])</p>
-
-<p class="whs1">box = geompy.MakeShell(FaceList)</p>
-
-<p class="whs1">idbox = geompy.addToStudy(box, 
- &quot;box&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a mesh</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">mesh 
- = smesh.Mesh(box, &quot;Mesh_free_borders&quot;)</span></p>
-
-<p class="whs1">algo = mesh.Segment()</p>
-
-<p class="whs1">algo.NumberOfSegments(5)</p>
-
-<p class="whs1">algo = mesh.Triangle()</p>
-
-<p class="whs1">algo.MaxElementArea(20.)</p>
-
-<p class="whs1">mesh.Compute() </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># criterion : free borders</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter 
- = smesh.GetFilter(smesh.EDGE, smesh.FT_FreeBorders)</span><span style="margin-top: 0pt;
-       margin-bottom: 0pt;
-       font-family: 'Lucida Console', monospace;"> </span></p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># print the result</p>
-
-<p class="whs1">print &quot;Criterion: 
- Free borders Nb = &quot;, len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1">&nbsp;&nbsp;if 
- j &gt; 20: j = 1; print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- anIds[i],</p>
-
-<p class="whs1">&nbsp;&nbsp;j 
- = j + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;pass</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># create a group</p>
-
-<p class="whs1">aGroup = mesh.CreateGroup(SMESH.EDGE, 
- &quot;Free borders&quot;)</p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
- </p>
-
-<h3><a name=bookmark1>Borders at Multiconnection</a></h3>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs1">import SMESH</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create open shell: 
- a box without one plane</p>
-
-<p class="whs1">box = geompy.MakeBox(0., 
- 0., 0., 20., 20., 15.)</p>
-
-<p class="whs1">FaceList = geompy.SubShapeAll(box, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs1">FaceList.remove(FaceList[5])</p>
-
-<p class="whs1">box = geompy.MakeShell(FaceList)</p>
-
-<p class="whs1">idbox = geompy.addToStudy(box, 
- &quot;box&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create a mesh</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">mesh 
- = smesh.Mesh(box, &quot;Mesh_borders_at_multi-connections&quot;)</span></p>
-
-<p class="whs1">algo = mesh.Segment()</p>
-
-<p class="whs1">algo.NumberOfSegments(5)</p>
-
-<p class="whs1">algo = mesh.Triangle()</p>
-
-<p class="whs1">algo.MaxElementArea(20.)</p>
-
-<p class="whs1">mesh.Compute() </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># Criterion : Borders 
- at multi-connection</p>
-
-<p class="whs1">nb_conn = 2</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter 
- = smesh.GetFilter(smesh.EDGE, smesh.FT_MultiConnection, smesh.FT_EqualTo, 
- nb_conn)</span></p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print &quot;Criterion: 
- Borders at multi-connections Nb = &quot;, len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1">&nbsp;&nbsp;if 
- j &gt; 20: j = 1; print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- anIds[i],</p>
-
-<p class="whs1">&nbsp;&nbsp;j 
- = j + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;pass</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1">aGroup = mesh.CreateGroup(SMESH.EDGE, 
- &quot;Borders at multi-connections&quot;)</p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<h3><a name=bookmark2>Length 1D</a></h3>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># create open shell: a 
- box without one plane</p>
-
-<p class="whs1">box = geompy.MakeBox(0., 
- 0., 0., 20., 20., 15.)</p>
-
-<p class="whs1">FaceList = geompy.SubShapeAll(box, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs1">FaceList.remove(FaceList[5])</p>
-
-<p class="whs1">box = geompy.MakeShell(FaceList)</p>
-
-<p class="whs1">idbox = geompy.addToStudy(box, 
- &quot;box&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># create a mesh</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">mesh 
- = smesh.Mesh(box, &quot;Mesh_Length_1D&quot;)</span></p>
-
-<p class="whs1">algo = mesh.Segment()</p>
-
-<p class="whs1">algo.NumberOfSegments(5)</p>
-
-<p class="whs1">algo = mesh.Triangle()</p>
-
-<p class="whs1">algo.MaxElementArea(20.)</p>
-
-<p class="whs1">mesh.Compute() </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># Criterion : Length &gt; 
- 3.</p>
-
-<p class="whs1">length_margin = 
- 3.</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter 
- = smesh.GetFilter(smesh.EDGE, smesh.FT_Length, smesh.FT_MoreThan, length_margin)</span></p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter) 
- </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># print the result</p>
-
-<p class="whs1">print &quot;Criterion: 
- Edges length &gt; &quot;, length_margin, &quot; Nb = &quot;, len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1">&nbsp;&nbsp;if 
- j &gt; 20: j = 1; print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- anIds[i],</p>
-
-<p class="whs1">&nbsp;&nbsp;j 
- = j + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;pass</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># create a group</p>
-
-<p class="whs1">aGroup = mesh.CreateGroup(SMESH.EDGE, 
- &quot;Edges with length &gt; &quot; + `length_margin`)</p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
- </p>
-
-<h3><a name=bookmark3>Free Edges</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">smesh &nbsp;= 
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh &nbsp;&nbsp;= 
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># Remove some elements 
- to obtain free edges</p>
-
-<p class="whs3"># Criterion : AREA 
- &gt; 95.</p>
-
-<p class="whs1">area_margin = 95.</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter 
- = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, area_margin)</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">mesh.RemoveElements(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># Criterion : Free 
- Edges</p>
-
-<p class="whs1">aBorders = mesh.GetFreeBorders() 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create groups</p>
-
-<p class="whs1">aGroupF = mesh.CreateGroup(SMESH.FACE, 
- &quot;Faces with free edges&quot;)</p>
-
-<p class="whs1">aGroupN = mesh.CreateGroup(SMESH.NODE, 
- &quot;Nodes on free edges&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># fill groups with 
- elements, corresponding to the criterion</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">print &quot;Criterion: 
- Free edges Nb = &quot;, len(aBorders)</p>
-
-<p class="whs1">for i in range(len(aBorders)):</p>
-
-<p class="whs1">&nbsp;&nbsp;aBorder 
- = aBorders[i]</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- &quot;Face # &quot;, aBorder.myElemId, &quot; : Edge between nodes (&quot;,</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- aBorder.myPnt1, &quot;, &quot;, aBorder.myPnt2, &quot;)&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">&nbsp;&nbsp;<span 
- style="margin-top: 0pt;
-               margin-bottom: 0pt;
-               font-family: 'Lucida Console', monospace;">aGroupF.Add([aBorder.myElemId])</span></p>
-
-<p class="whs1">&nbsp;&nbsp;aGroupN.Add([aBorder.myPnt1, 
- aBorder.myPnt2])</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark4>Length 2D</a></h3>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create open shell: 
- a box without one plane</p>
-
-<p class="whs1">box = geompy.MakeBox(0., 
- 0., 0., 20., 20., 15.)</p>
-
-<p class="whs1">FaceList = geompy.SubShapeAll(box, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs1">FaceList.remove(FaceList[5])</p>
-
-<p class="whs1">box = geompy.MakeShell(FaceList)</p>
-
-<p class="whs1">idbox = geompy.addToStudy(box, 
- &quot;box&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create a mesh</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">mesh 
- = smesh.Mesh(box, &quot;Mesh_Length_2D&quot;)</span></p>
-
-<p class="whs1">algo = mesh.Segment()</p>
-
-<p class="whs1">algo.NumberOfSegments(5)</p>
-
-<p class="whs1">algo = mesh.Triangle()</p>
-
-<p class="whs1">algo.MaxElementArea(20.)</p>
-
-<p class="whs1">mesh.Compute()</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># Criterion : Length 
- 2D &gt; 5.7</p>
-
-<p class="whs1">length_margin = 
- 5.7</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter 
- = smesh.GetFilter(smesh.FACE, smesh.FT_Length2D, smesh.FT_MoreThan, length_margin)</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print &quot;Criterion: 
- Edges length 2D &gt; &quot;, length_margin, &quot; Nb = &quot;, len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1">&nbsp;&nbsp;if 
- j &gt; 20: j = 1; print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- anIds[i],</p>
-
-<p class="whs1">&nbsp;&nbsp;j 
- = j + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;pass</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup 
- = mesh.CreateEmptyGroup(smesh.FACE, &quot;Faces with length 2D &gt; &quot; 
- + `length_margin`)</span></p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs2">&nbsp;</p>
-
-<h3><a name=bookmark5>Borders at Multiconnection 2D</a></h3>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"># create a compound 
- of two glued boxes</p>
-
-<p class="whs1">box1 = geompy.MakeBox(0., 
- 0., 0., 20., 20., 15.)</p>
-
-<p class="whs1">box2 = geompy.MakeTranslation(box1, 
- 0., 20., 0)</p>
-
-<p class="whs1">comp = geompy.MakeCompound([box1, 
- box2])</p>
-
-<p class="whs1">box = geompy.MakeGlueFaces(comp, 
- 0.000001)</p>
-
-<p class="whs1">idbox = geompy.addToStudy(box, 
- &quot;box&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create a mesh</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">mesh 
- = smesh.Mesh(box, &quot;Box compound : 2D triangle mesh&quot;)</span></p>
-
-<p class="whs1">algo = mesh.Segment()</p>
-
-<p class="whs1">algo.NumberOfSegments(5)</p>
-
-<p class="whs1">algo = mesh.Triangle()</p>
-
-<p class="whs1">algo.MaxElementArea(20.)</p>
-
-<p class="whs1">mesh.Compute() </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># Criterion : MULTI-CONNECTION 
- 2D = 3</p>
-
-<p class="whs1">nb_conn = 3</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter 
- = smesh.GetFilter(smesh.FACE, smesh.FT_MultiConnection2D, smesh.FT_EqualTo, 
- nb_conn)</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print &quot;Criterion: 
- Borders at multi-connection 2D = &quot;, nb_conn, &quot; Nb = &quot;, 
- len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1">&nbsp;&nbsp;if 
- j &gt; 20: j = 1; print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- anIds[i],</p>
-
-<p class="whs1">&nbsp;&nbsp;j 
- = j + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;pass</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup 
- = mesh.CreateEmptyGroup(smesh.FACE, &quot;Borders at multi-connection 
- 2D = &quot; + `nb_conn`)</span></p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark6>Area</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">smesh &nbsp;= 
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh &nbsp;&nbsp;= 
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># Criterion : AREA &gt; 
- 100.</p>
-
-<p class="whs1">area_margin = 100.</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, 
- smesh.FT_Area, smesh.FT_MoreThan, area_margin)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter) 
- </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># print the result</p>
-
-<p class="whs1">print &quot;Criterion: 
- Area &gt; &quot;, area_margin, &quot; Nb = &quot;, len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1">&nbsp;&nbsp;if 
- j &gt; 20: j = 1; print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- anIds[i],</p>
-
-<p class="whs1">&nbsp;&nbsp;j 
- = j + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;pass</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a group</p>
-
-<p class="whs1">aGroup = mesh.CreateEmptyGroup(smesh.FACE, 
- &quot;Area &gt; &quot; + `area_margin`)</p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
- &nbsp;</p>
-
-<h3><a name=bookmark7>Taper</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">smesh &nbsp;= 
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh &nbsp;&nbsp;= 
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># Criterion : Taper 
- &gt; 3e-20</p>
-
-<p class="whs1">taper_margin = 3e-20</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, 
- smesh.FT_Taper, smesh.FT_MoreThan, taper_margin)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print &quot;Criterion: 
- Taper &gt; &quot;, taper_margin, &quot; Nb = &quot;, len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1">&nbsp;&nbsp;if 
- j &gt; 20: j = 1; print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- anIds[i],</p>
-
-<p class="whs1">&nbsp;&nbsp;j 
- = j + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;pass</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup 
- = mesh.CreateEmptyGroup(smesh.FACE, &quot;Taper &gt; &quot; + `taper_margin`)</span></p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- &nbsp;</p>
-
-<h3><a name=bookmark8>Aspect Ratio</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">smesh &nbsp;= 
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh &nbsp;&nbsp;= 
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># Criterion : ASPECT 
- RATIO &gt; 1.8</p>
-
-<p class="whs1">ar_margin = 1.8</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter 
- = smesh.GetFilter(smesh.FACE, smesh.FT_AspectRatio, smesh.FT_MoreThan, 
- ar_margin)</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print &quot;Criterion: 
- Aspect Ratio &gt; &quot;, ar_margin, &quot; Nb = &quot;, len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1">&nbsp;&nbsp;if 
- j &gt; 20: j = 1; print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- anIds[i],</p>
-
-<p class="whs1">&nbsp;&nbsp;j 
- = j + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;pass</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup 
- = mesh.CreateEmptyGroup(smesh.FACE, &quot;Aspect Ratio &gt; &quot; + `ar_margin`)</span></p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark9>Minimum Angle</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">smesh &nbsp;= 
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh &nbsp;&nbsp;= 
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># Criterion : MINIMUM 
- ANGLE &lt; 35.</p>
-
-<p class="whs1">min_angle = 35.</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, 
- smesh.FT_MinimumAngle, smesh.FT_LessThan, min_angle)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print &quot;Criterion: 
- Minimum Angle &lt; &quot;, min_angle, &quot; Nb = &quot;, len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1">&nbsp;&nbsp;if 
- j &gt; 20: j = 1; print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- anIds[i],</p>
-
-<p class="whs1">&nbsp;&nbsp;j 
- = j + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;pass</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup 
- = mesh.CreateEmptyGroup(smesh.FACE, &quot;Minimum Angle &lt; &quot; + 
- `min_angle`)</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark10>Warping</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">smesh &nbsp;= 
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh &nbsp;&nbsp;= 
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># Criterion : WARP 
- ANGLE &gt; 1e-15</p>
-
-<p class="whs1">wa_margin = 1e-15</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, 
- smesh.FT_Warping, smesh.FT_MoreThan, wa_margin)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print &quot;Criterion: 
- Warp &gt; &quot;, wa_margin, &quot; Nb = &quot;, len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1">&nbsp;&nbsp;if 
- j &gt; 20: j = 1; print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- anIds[i],</p>
-
-<p class="whs1">&nbsp;&nbsp;j 
- = j + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;pass</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1">aGroup = mesh.CreateEmptyGroup(smesh.FACE, 
- &quot;Warp &gt; &quot; + `wa_margin`)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark12>Skew</a></h3>
-
-<p class="whs1">import SMESH_mechanic</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">smesh &nbsp;= 
- SMESH_mechanic.smesh</p>
-
-<p class="whs1">mesh &nbsp;&nbsp;= 
- SMESH_mechanic.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic.salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># Criterion : Skew 
- &gt; 38.</p>
-
-<p class="whs1">skew_margin = 38.</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, 
- smesh.FT_Skew, smesh.FT_MoreThan, skew_margin)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print &quot;Criterion: 
- Skew &gt; &quot;, skew_margin, &quot; Nb = &quot;, len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1">&nbsp;&nbsp;if 
- j &gt; 20: j = 1; print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- anIds[i],</p>
-
-<p class="whs1">&nbsp;&nbsp;j 
- = j + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;pass</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup 
- = mesh.CreateEmptyGroup(smesh.FACE, &quot;Skew &gt; &quot; + `skew_margin`)</span></p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark11>Aspect Ratio 3D</a></h3>
-
-<p class="whs1">import SMESH_mechanic_tetra 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">smesh &nbsp;= 
- SMESH_mechanic_tetra.smesh</p>
-
-<p class="whs1">mesh &nbsp;&nbsp;= 
- SMESH_mechanic_tetra.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic_tetra.salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># Criterion : ASPECT 
- RATIO 3D &gt; 4.5</p>
-
-<p class="whs1">ar_margin = 4.5</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.VOLUME, 
- smesh.FT_AspectRatio3D, smesh.FT_MoreThan, ar_margin)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># print the result</p>
-
-<p class="whs1">print &quot;Criterion: 
- Aspect Ratio 3D &gt; &quot;, ar_margin, &quot; Nb = &quot;, len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1">&nbsp;&nbsp;if 
- j &gt; 20: j = 1; print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- anIds[i],</p>
-
-<p class="whs1">&nbsp;&nbsp;j 
- = j + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;pass</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs3"># create a group</p>
-
-<p class="whs1">aGroup = mesh.CreateEmptyGroup(smesh.VOLUME, 
- &quot;Aspect Ratio 3D &gt; &quot; + `ar_margin`)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<h3><a name=Volume>Volume</a></h3>
-
-<p class="whs1">import SMESH_mechanic_tetra</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">smesh &nbsp;= 
- SMESH_mechanic_tetra.smesh</p>
-
-<p class="whs1">mesh &nbsp;&nbsp;= 
- SMESH_mechanic_tetra.mesh</p>
-
-<p class="whs1">salome = SMESH_mechanic_tetra.salome</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># Criterion : VOLUME &lt; 
- 7.</p>
-
-<p class="whs1">volume_margin = 
- 7.</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">aFilter = smesh.GetFilter(smesh.VOLUME, 
- smesh.FT_Volume3D, smesh.FT_LessThan, volume_margin)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter) 
- </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># print the result</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs1">print &quot;Criterion: 
- Volume &lt; &quot;, volume_margin, &quot; Nb = &quot;, len(anIds)</p>
-
-<p class="whs1">j = 1</p>
-
-<p class="whs1">for i in range(len(anIds)):</p>
-
-<p class="whs1">&nbsp;&nbsp;if 
- j &gt; 20: j = 1; print &quot;&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;print 
- anIds[i],</p>
-
-<p class="whs1">&nbsp;&nbsp;j 
- = j + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;pass</p>
-
-<p class="whs1">print &quot;&quot;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># create a group</p>
-
-<p class="whs1">aGroup = mesh.CreateEmptyGroup(smesh.VOLUME, 
- &quot;Volume &lt; &quot; + `volume_margin`)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">aGroup.Add(anIds)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1) 
- </span>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/radial_prism.htm b/doc/salome/gui/SMESH/radial_prism.htm
deleted file mode 100644 (file)
index 3ca4485..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Radial Prism</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:0px; }\r
-p.whs2 { margin-left:48px; }\r
-img_whs3 { border:none; width:270px; height:179px; float:none; border-style:none; }\r
-img_whs4 { border:none; width:299px; height:182px; float:none; border-style:none; }\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-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\nCreating meshes\nDefining Algorithms\nRadial Prism Algorithm");\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>Radial Prism</h1>\r
-\r
-<p>This algorithm applies to the meshing of a hollow 3D shape, i.e. such \r
- shape should be composed of two meshed shells: an outer shell and an internal \r
- shell without intersection with the outer shell. One of the shells should \r
- be a 2D Projection of the other shell. The meshes of the shells can consist \r
- both of triangles and quadrangles.</p>\r
-\r
-<p class="whs1">The Radial Prism algorithm would fill the \r
- space between the two shells with meshes. </p>\r
-\r
-<p class="whs1">This algorithm also needs the information \r
- concerning the number and distribution of mesh layers between the inner \r
- and the outer shapes.</p>\r
-\r
-<p class="whs2">&nbsp;<img src="pics/number_of_layers.png" x-maintain-ratio="TRUE" width="270px" height="179px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">Distribution of layers can be set with any \r
- of 1D Hypotheses. </p>\r
-\r
-<p class="whs2"><img src="pics/distribution_of_layers.png" x-maintain-ratio="TRUE" width="299px" height="182px" border="0" class="img_whs4"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&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/revolution.htm b/doc/salome/gui/SMESH/revolution.htm
deleted file mode 100755 (executable)
index b5d7a66..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Revolution</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { margin-left:40px; }
-img_whs2 { border:none; width:24px; height:25px; border-style:none; }
-img_whs3 { border:none; width:390px; height:437px; float:none; border-style:none; }
-ul.whs4 { list-style:disc; }
-img_whs5 { border:none; width:350px; height:201px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nModifying meshes\nRevolution");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Revolution</h1>
-
-<p>Revolution is a type of surface meshing by generation from discretized 
- lines. It is used to build mesh elements of plus one dimension than the 
- swept ones. Each swept 1D element produces one or more quadrangles (or 
- triangles if one node of a rotated element lays on the revolution axis).</p>
-
-<p>&nbsp;</p>
-
-<p class=TODO>To apply revolution:</p>
-
-<p class=TODO>&nbsp;</p>
-
-<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification 
- </B></span>menu choose the <span style="font-weight: bold;"><B>Revolution </B></span>item 
- or click <img src="image92.gif" width="24px" height="25px" border="0" class="img_whs2"> button in the toolbar. The following dialog box 
- shall appear:</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1"><img src="pics/revolution1.png" x-maintain-ratio="TRUE" width="390px" height="437px" border="0" class="img_whs3"></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1"><img src="pics/revolution2.png" x-maintain-ratio="TRUE" width="390px" height="437px" border="0" class="img_whs3"></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">2. In this dialog box you should specify:</p>
-
-<ul type="disc" class="whs4">
-       
-       <li class=kadov-p><p class="whs1">the type of elements 
- which will be extruded (1D or 2D),</p></li>
-       
-       <li class=kadov-p><p class="whs1">specify the IDs of 
- the elements which will be revolved by selecting them in the 3D viewer 
- or select the whole mesh or submesh,</p></li>
-       
-       <li class=kadov-p><p class="whs1">specify the axis (point 
- and vector) around which the elements will be revolved,</p></li>
-       
-       <li class=kadov-p><p class="whs1">angle of rotation,</p></li>
-       
-       <li class=kadov-p><p class="whs1">number of steps,</p></li>
-       
-       <li class=kadov-p><p class="whs1">tolerance of rotation</p></li>
-</ul>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply 
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class=TODO
-       style="margin-left: 40px;"><img src="image78.jpg" width="350px" height="201px" border="0" class="img_whs5"></p>
-
-<p class=TODO>&nbsp;</p>
-
-<p>&nbsp;<span style="font-weight: bold;"><B>See 
- Also</B></span> a sample TUI Script of a <a href="grouping_elements.htm#bookmark3">&nbsp;</a><a href="modifying_meshes.htm#bookmark11">Revolution</a> 
- operation. &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/segments_around_vertex_algorithm.htm b/doc/salome/gui/SMESH/segments_around_vertex_algorithm.htm
deleted file mode 100755 (executable)
index 7e73af2..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Segments around Vertex Algorithm</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:270px; height:179px; 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\nCreating meshes\nDefining Algorithms\nSegments around Vertex Algorithm");\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>Segments around Vertex</h1>\r
-\r
-<p><span style="font-weight: bold;"><B>Segments around Vertex</B></span> algorithm \r
- is considered to be a 0D \r
- meshing algorithm, but, of course, it doesn't mesh nodes. It allows to \r
- define the local size of the elements in the neighborhood of a certain \r
- node. If we choose an object of higher dimension, it applies to all its \r
- tops, i.e. corners of a box. &nbsp;The \r
- 0D algorithm combines with the algorithms of higher dimensions, but it \r
- is not necessarily required for their successful implementation. </p>\r
-\r
-<p>This algorithm allows only one hypothesis. </p>\r
-\r
-<p class="whs1"><img src="pics/lengthnearvertex.png" x-maintain-ratio="TRUE" width="270px" height="179px" border="0" class="img_whs2"></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/selection_filter_library.htm b/doc/salome/gui/SMESH/selection_filter_library.htm
deleted file mode 100755 (executable)
index 2a2cb8d..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Selection filter library</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-weight:bold; }
-img_whs2 { border:none; width:624px; height:776px; float:none; border-style:none; }
-img_whs3 { border:none; width:31px; height:30px; border-style:none; }
-img_whs4 { border:none; width:624px; height:525px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nGrouping elements\nSelection filter library");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Selection filter library</h1>
-
-<p>Selection filter library is a powerful tool enabling to create filters 
- to be used on meshes. You can access to it from the Main Menu via <span 
- style="font-weight: bold;"><B>Tools / Selection filter library.</B></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs1"><img src="pics/selectionfilterlibrary.png" x-maintain-ratio="TRUE" width="624px" height="776px" border="0" class="img_whs2"></p>
-
-<p>&nbsp;</p>
-
-<p class="whs1">Library file name s<span style="font-weight: normal;">hows 
- the path and the file name where your filters will be stored. By clicking 
- the</span> <img src="image103.gif" width="31px" height="30px" border="0" class="img_whs3"> <span style="font-weight: normal;">browse button 
- you can load an existing filter library.</span></p>
-
-<p><span style="font-weight: bold;"><B>Names of filters</B></span> lists the filters 
- created or uploaded for the current study. You can <span style="font-weight: bold;"><B>Add</B></span> 
- or <span style="font-weight: bold;"><B>Delete</B></span> filters. &nbsp;</p>
-
-<p>In <span style="font-weight: bold;"><B>Filter name</B></span> box you can specify 
- the name for your filter. By default it is prefixed with the corresponding 
- entity type.</p>
-
-<p>Each filter can be applicable to <span style="font-weight: bold;"><B>Nodes, 
- Edges, Faces</B></span> or <span style="font-weight: bold;"><B>Volumes</B></span>. 
- You can combine many criteria in one filter, but they all must be of the 
- same <span style="font-weight: bold;"><B>Entity type</B></span>. </p>
-
-<p>The <span style="font-weight: bold;"><B>Add</B></span> button creates a new 
- criterion at the end of the list of criteria. The <span style="font-weight: bold;"><B>Insert</B></span> 
- button creates a new criterion before the selected criterion. The <span 
- style="font-weight: bold;"><B>Remove</B></span> button deletes the selected criterion. 
- The <span style="font-weight: bold;"><B>Clear</B></span> button deletes all criteria. 
- &nbsp;</p>
-
-<p>Each <span style="font-weight: bold;"><B>Entity type</B></span> has its specific 
- list of criteria, however all filters have common syntax. For each criterion 
- you should specify the <span style="font-weight: bold;"><B>Threshold Value</B></span> 
- and whether we search for the elements that should be <span style="font-weight: bold;"><B>More, 
- Less or Equal</B></span> to this <span style="font-weight: bold;"><B>Value</B></span>. 
- You should also specify if the criterion is <span style="font-weight: bold;"><B>Unary</B></span> 
- or <span style="font-weight: bold;"><B>Binary.</B></span> &nbsp;&nbsp;</p>
-
-<p>Some criteria should have the additional parameter of <span style="font-weight: bold;"><B>Tolerance</B></span>.</p>
-
-<p>&nbsp;</p>
-
-<p>When we create a <span style="font-weight: bold;"><B>Standalone Group</B></span> 
- using filters (for this click <span style="font-weight: bold;"><B>Set Filters</B></span> 
- button in the <span style="font-weight: bold;"><B>Create Group</B></span> menu), 
- the menu for setting filters looks a bit differently. Toggling <span style="font-weight: bold;"><B>Insert 
- filter in viewer</B></span> checkbox enables to preview the group selected 
- with your current filter in the viewer. </p>
-
-<p>In the <span style="font-weight: bold;"><B>Source</B></span> field you choose 
- if the filter will be applied to the whole <span style="font-weight: bold;"><B>Mesh</B></span>, 
- the<span style="font-weight: bold;"><B> Initial Selection </B></span>or the<span 
- style="font-weight: bold;"><B> Current Group. </B></span></p>
-
-<p><span style="font-weight: bold;"><B>Copy from...</B></span> button gives you 
- a possibility to load an existing filter from <span style="font-weight: bold;"><B>Selection 
- filter library</B></span> and <span style="font-weight: bold;"><B>Add to...</B></span> 
- button gives you a possibility to save your current filter in the Library. 
- &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p><img src="pics/a-filteronedges.png" x-maintain-ratio="TRUE" width="624px" height="525px" border="0" class="img_whs4"></p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/smesh.log b/doc/salome/gui/SMESH/smesh.log
deleted file mode 100755 (executable)
index 4222c00..0000000
+++ /dev/null
@@ -1,553 +0,0 @@
-|SourceProjectName:SMESH.hpr
-|DestinationProjectName:index.htm
-whhost.js
-whmsg.js
-whmozemu.js
-whproxy.js
-whstub.js
-whutils.js
-whver.js
-whform.js
-whphost.js
-whstart.js
-whtopic.js
-whframes.js
-whlang.js
-whskin_info.htm
-whskin_blank.htm
-whskin_pickup.htm
-whskin_homepage.htm
-whskin_tw.htm
-whnjs.htm
-whthost.js
-whtdhtml.htm
-whihost.js
-whibody.htm
-whiform.htm
-whfhost.js
-whfbody.htm
-whfform.htm
-whghost.js
-whgbody.htm
-whgdhtml.htm
-whgdef.htm
-whproj.js
-whproj.xml
-whproj.htm
-whxdata\whtoc.xml
-whxdata\whidx.xml
-whxdata\whfts.xml
-whxdata\whglo.xml
-whdata\whtoc.js
-whdata\whtoc.htm
-whdata\whtdata.js
-whdata\whidx.js
-whdata\whidx.htm
-whdata\whidata.js
-whdata\whfts.js
-whdata\whfts.htm
-whdata\whglo.js
-whdata\whglo.htm
-whdata\whgdata.js
-whdata\whftdata.js
-whdata\whfwdata.js
-whres.xml
-webhelp.jar
-webhelp.cab
-whgdata\whnvp30.htm
-whgdata\whnvp31.htm
-whgdata\whnvp32.htm
-whgdata\whnvp33.htm
-whgdata\whnvt30.htm
-whgdata\whnvt31.htm
-whgdata\whnvt32.htm
-whgdata\whnvt33.htm
-whgdata\whnvf30.htm
-whgdata\whnvf31.htm
-whgdata\whnvf32.htm
-whgdata\whnvf33.htm
-whgdata\whnvl31.htm
-whgdata\whnvl32.htm
-whgdata\whnvl33.htm
-whgdata\whexpbar.gif
-cshdat_webhelp.htm
-whcsh_home.htm
-whcshdata.htm
-cshdat_robohelp.htm
-whd_topic.xml
-whd_nvp10.htm
-whd_nvp20.htm
-whd_tabs.htm
-whd_dpns.htm
-whd_tab0.gif
-whd_tab1.gif
-whd_tab2.gif
-whd_tab3.gif
-whd_tab4.gif
-whd_tab5.gif
-whd_tab6.gif
-whd_tab7.gif
-whd_tab8.gif
-whd_toc1.gif
-whd_toc2.gif
-whd_toc3.gif
-whd_toc4.gif
-whd_show0.gif
-whd_show1.gif
-whd_show2.gif
-whd_hide0.gif
-whd_hide1.gif
-whd_hide2.gif
-whd_sync0.gif
-whd_sync1.gif
-whd_sync2.gif
-whd_prev0.gif
-whd_prev1.gif
-whd_prev2.gif
-whd_next0.gif
-whd_next1.gif
-whd_next2.gif
-whd_wbsh0.gif
-whd_wbsh1.gif
-whd_wbsh2.gif
-whidhtml.htm
-whfdhtml.htm
-index_hha.hhk
-index.hhc
-index.hhk
-about_viewing_meshes.htm
-adding_quadratic_nodes_and_elements.htm
-aspect_ratio_3d.htm
-borders_at_multi-connection.htm
-borders_at_multiconnection_2d.htm
-building_compounds.htm
-clipping.htm
-constructing_meshes.htm
-convert_to_from_quadratic_mesh.htm
-defining_hypotheses_tui.htm
-deleting_groups.htm
-display_entity.htm
-extrusion.htm
-extrusion_along_a_path.htm
-files\about_hypotheses.htm
-files\about_meshes.htm
-files\about_meshing_algorithms.htm
-files\about_quality_controls.htm
-files\adding_nodes_and_elements.htm
-files\area_of_elements.htm
-files\arithmetic_1d.htm
-files\aspect_ratio.htm
-files\changing_orientation_of_elements.htm
-files\constructing_groups_of_specific_elements.htm
-files\constructing_meshes.htm
-files\constructing_submeshes.htm
-files\creating_groups.htm
-files\cutting_quadrangles.htm
-files\diagonal_iversion_of_elements.htm
-files\displacing_nodes.htm
-files\displaying_nodes_numbers.htm
-files\editing_groups.htm
-files\importing_and_exporting_meshes.htm
-files\length_of_edges.htm
-files\max._element_area_hypothesis.htm
-files\max._element_volume_hypothsis.htm
-files\merging_nodes.htm
-files\minimum_angle.htm
-files\non_conform_mesh_allowed_hypothesis.htm
-files\reassigning_hypotheses_and_algorithms.htm
-files\removing_nodes_and_elements.htm
-files\renumbering_nodes_and_elements.htm
-files\rotation.htm
-files\running_smesh_module.htm
-files\sewing_meshes.htm
-files\skew.htm
-files\smoothing.htm
-files\symmetry.htm
-files\taper.htm
-files\translation.htm
-files\uniting_a_set_of_triangles.htm
-files\uniting_two_triangles.htm
-files\using_operations_on_groups.htm
-files\viewing_mesh_info.htm
-files\vtk_3d_viewer.htm
-files\warp.htm
-free_borders.htm
-free_edges.htm
-grouping_elements.htm
-length.htm
-merge_elements.htm
-mesh.htm
-mesh_through_point.htm
-modifying_meshes.htm
-namespacesmesh.html
-netgen_2d_and_3d_hypotheses.htm
-pattern_mapping.htm
-presentation.htm
-prism_3d_algorithm.htm
-projection_algorithms.htm
-quality_controls.htm
-radial_prism.htm
-revolution.htm
-segments_around_vertex_algorithm.htm
-selection_filter_library.htm
-smesh.py_introduction.htm
-transforming_meshes.htm
-transparency.htm
-viewing_meshes.htm
-volume.htm
-ehelp.xml
-texture_horiz_ltbluebubbles.jpg
-index.glo
-default.css
-pics\curvi_simple_after.png
-pics\image89.gif
-pics\image100.gif
-pics\image78.gif
-pics\image23.gif
-pics\b-mesh_infos.png
-pics\remove_nodes2.png
-pics\moving_nodes1.png
-pics\smoothing2.png
-pics\a-maxelarea.png
-pics\patternmapping1.png
-image94.jpg
-image106.gif
-image91.gif
-image80.gif
-pics\distributionwithtabledensity.png
-pics\moving_nodes2.png
-image7.jpg
-pics\patternmapping2.png
-pics\extrusionalongaline1.png
-pics\addquadrangle.png
-image95.jpg
-pics\sewing1.png
-image92.gif
-image51.jpg
-image70.gif
-pics\meshtopass.png
-pics\image157.gif
-pics\extrusion1.png
-pics\curvi_angles_after.png
-pics\straight_before.png
-pics\image102.gif
-pics\length2d.png
-pics\free_borders1.png
-pics\a-creategroup.png
-pics\a-startendlength.png
-pics\a-patterntype.png
-pics\extrusionalongaline2.png
-pics\orientaation1.png
-pics\unionoftwotriangles.png
-image96.jpg
-pics\sewing2.png
-image119.gif
-image108.gif
-image52.jpg
-image82.gif
-image71.gif
-image30.jpg
-pics\lengthnearvertex.png
-pics\straight_after.png
-pics\cut_groups1.png
-pics\uniting_a_set_of_triangles1.png
-pics\b-erage_length.png
-pics\removeelements.png
-image97.jpg
-pics\sewing3.png
-image86.jpg
-image50.gif
-image94.gif
-image83.gif
-image31.jpg
-pics\aqt.png
-pics\distributionwithanalyticdensity.png
-pics\meshexportmesh.png
-pics\image27.gif
-pics\cut_groups2.png
-pics\edit_mesh_change_value_hyp.png
-pics\add_node.png
-pics\uniting_a_set_of_triangles2.png
-pics\max_el_area.png
-image10.jpg
-pics\a-filteronedges.png
-pics\revolution1.png
-pics\addhexahedron.png
-pics\addtriangle.png
-pics\editgroup.png
-pics\sewing4.png
-image95.gif
-image76.jpg
-image84.gif
-image32.jpg
-image40.gif
-i_blue.jpg
-image160.gif
-pics\number_of_layers.png
-pics\netgen2d.png
-pics\mesh_for_extr_along_path.png
-pics\meshtrianglemergeelem1.png
-pics\image138.gif
-pics\cut_groups3.png
-pics\revolution2.png
-pics\renumberelements.png
-pics\intersectgroups.png
-image88.jpg
-image30.gif
-image96.gif
-image77.jpg
-image74.gif
-image63.gif
-image22.jpg
-image41.gif
-image161.gif
-pics\createmesh-inv.png
-pics\image139.gif
-pics\b-art_end_length.png
-pics\b-mberofsegments.png
-pics\b-flection1d.png
-pics\a-unionoftriangles.png
-image56.jpg
-image53.gif
-image20.gif
-image97.gif
-image78.jpg
-image64.gif
-image23.jpg
-pics\buildcompound.png
-pics\projection_3d.png
-image151.gif
-pics\selectionfilterlibrary.png
-pics\intersect_groups1.png
-pics\create_group.png
-pics\add_triangle.png
-pics\add_edge.png
-pics\rotation1.png
-pics\merging_nodes1.png
-pics\translation1.png
-pics\cutgroups.png
-image79.jpg
-image98.gif
-image32.gif
-pics\projection_2d.png
-pics\advanced_mesh_infos.png
-pics\image108.gif
-pics\image91.gif
-image152.gif
-pics\automaticlength.png
-pics\intersect_groups2.png
-image130.gif
-pics\rotation2.png
-pics\merging_nodes2.png
-pics\a-cuttingofquadrangles.png
-pics\a-transparency.png
-pics\a-viewgeneral.png
-pics\smoothing.png
-pics\translation2.png
-image99.gif
-image55.gif
-image88.gif
-image36.jpg
-image33.gif
-image25.jpg
-pics\projection_1d.png
-pics\view_rotation_point.png
-image153.gif
-pics\image109.gif
-image15.jpg
-image142.gif
-pics\intersect_groups3.png
-image131.gif
-pics\edit_mesh1.png
-pics\b-ithmetic1d.png
-pics\mergenodes.png
-pics\rotation.png
-pics\addnode.png
-image120.gif
-image56.gif
-image37.jpg
-image67.gif
-image34.gif
-pics\convert.png
-image154.gif
-pics\edge_wire_3d_after.png
-pics\graduatedaxes1.png
-pics\length-crit.png
-image143.gif
-pics\editing_groups1.png
-image132.gif
-pics\a-maxelvolume.png
-pics\a-averagelength.png
-pics\movenodes.png
-pics\removenodes.png
-pics\addtetrahedron.png
-pics\uniongroups.png
-image121.gif
-image79.gif
-image38.jpg
-image46.gif
-image35.gif
-image27.jpg
-image24.gif
-note1.gif
-pics\distribution_of_layers.png
-image155.gif
-pics\edge_wire_after.png
-pics\edge_wire_before.png
-image144.gif
-pics\deletegroups.png
-pics\editing_groups2.png
-image133.gif
-pics\add_polyhedron.png
-pics\addedge.png
-pics\creategroup.png
-image122.gif
-image58.gif
-image36.gif
-image25.gif
-image156.gif
-pics\circle_simple_after.png
-image145.gif
-image134.gif
-pics\edit_mesh_remove_hyp.png
-pics\a-patterntype1.png
-image123.gif
-image101.gif
-image37.gif
-image157.gif
-pics\image96.gif
-image146.gif
-pics\meshimportmesh.png
-image135.gif
-pics\uniting_two_triangles1.png
-pics\a-nbsegments1.png
-pics\a-arithmetic1d.png
-pics\symmetry1.png
-image90.jpg
-image124.gif
-image49.gif
-pics\exemple.gif
-image38.gif
-pics\set_rotation_point_dialog1.png
-pics\image97.gif
-image147.gif
-pics\union_groups1.png
-image136.gif
-pics\free_edges.png
-pics\uniting_two_triangles2.png
-pics\a-nbsegments2.png
-pics\symmetry2.png
-image125.gif
-image103.gif
-image39.gif
-image28.gif
-image159.gif
-pics\set_rotation_point_dialog2.png
-pics\circle_angles_after.png
-pics\createmesh-inv2.png
-pics\image98.gif
-pics\mergeelems.png
-image148.gif
-pics\image21.gif
-pics\union_groups2.png
-image137.gif
-pics\add_quadrangle.png
-pics\remove_elements1.png
-pics\a-createpolyhedralvolume.png
-pics\a-clipping2.png
-pics\a-deflection1d.png
-pics\diagonalinversion.png
-pics\symmetry3.png
-pics\renumbernodes.png
-image92.jpg
-image126.gif
-image18.gif
-image70.jpg
-pics\circle_simple_before.png
-pics\edge_wire_3d_before.png
-pics\curvi_simple_before.png
-pics\createmesh-inv3.png
-pics\image99.gif
-pics\image77.gif
-pics\union_groups3.png
-pics\add_polygone.png
-pics\remove_elements2.png
-pics\remove_nodes1.png
-pics\smoothing1.png
-pics\a-standmeshinfo.png
-pics\addpolygon.png
-image5.jpg
-image127.gif
-image93.jpg
-image105.gif
-image19.gif
-image71.jpg
-index.ppf
-ehlpdhtm.js
-default_ns.css
-whxdata\whtdata0.xml
-whxdata\whftdata0.xml
-whxdata\whfwdata0.xml
-whxdata\whgdata0.xml
-whdata\whtdata0.htm
-whdata\whftdata0.htm
-whdata\whfwdata0.htm
-whdata\whgdata0.htm
-whgdata\whlstt0.htm
-whgdata\whlstt1.htm
-whgdata\whlstt2.htm
-whgdata\whlstt3.htm
-whgdata\whlstt4.htm
-whgdata\whlstt5.htm
-whgdata\whlstt6.htm
-whgdata\whlstt7.htm
-whgdata\whlstt8.htm
-whgdata\whlstt9.htm
-whgdata\whlstt10.htm
-whgdata\whlsti0.htm
-whgdata\whlstfl0.htm
-whgdata\whlstfl1.htm
-whgdata\whlstfl2.htm
-whgdata\whlstfl3.htm
-whgdata\whlstfl4.htm
-whgdata\whlstfl5.htm
-whgdata\whlstfl6.htm
-whgdata\whlstfl7.htm
-whgdata\whlstfl8.htm
-whgdata\whlstfl9.htm
-whgdata\whlstfl10.htm
-whgdata\whlstfl11.htm
-whgdata\whlstfl12.htm
-whgdata\whlstfl13.htm
-whgdata\whlstfl14.htm
-whgdata\whlstfl15.htm
-whgdata\whlstfl16.htm
-whgdata\whlstfl17.htm
-whgdata\whlstfl18.htm
-whgdata\whlstfl19.htm
-whgdata\whlstfl20.htm
-whgdata\whlstfl21.htm
-whgdata\whlstfl22.htm
-whgdata\whlstfl23.htm
-whgdata\whlstfl24.htm
-whgdata\whlstfl25.htm
-whgdata\whlstfl26.htm
-whgdata\whlstf0.htm
-whgdata\whlstf1.htm
-whgdata\whlstf2.htm
-whgdata\whlstf3.htm
-whgdata\whlstf4.htm
-whgdata\whlstf5.htm
-whgdata\whlstf6.htm
-whgdata\whlstf7.htm
-whgdata\whlstf8.htm
-whgdata\whlstf9.htm
-whgdata\whlstf10.htm
-whgdata\whlstf11.htm
-whgdata\whlstf12.htm
-whgdata\whlstf13.htm
-whgdata\whlstf14.htm
-whgdata\whlstg0.htm
-index.htm
-index_csh.htm
-index_rhc.htm
diff --git a/doc/salome/gui/SMESH/smesh.py_introduction.htm b/doc/salome/gui/SMESH/smesh.py_introduction.htm
deleted file mode 100644 (file)
index fc3d048..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>smesh.py_introduction</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; font-family:'Lucida Console' , monospace; }\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 +="</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 module python interface");\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>Introduction to MESH module python interface</h1>\r
-\r
-<p class="whs1">Package smesh provides \r
- a standard API for creation and edition of meshes . </p>\r
-\r
-<p class="whs1">Below you can see an example \r
- of usage of the package smesh for 3d mesh generation. </p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;</p>\r
-\r
-<p class="whs1">Example of 3d mesh generation \r
- with NETGEN</p>\r
-\r
-<p class="whs1">from geompy import * </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import \r
- smesh</span> </p>\r
-\r
-<p class="whs1"># Geometry </p>\r
-\r
-<p class="whs1"># an assembly of a box, \r
- a cylinder and a truncated cone meshed with tetrahedral. </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Define values </p>\r
-\r
-<p class="whs2">name = &quot;ex21_lamp&quot; \r
- </p>\r
-\r
-<p class="whs2">cote = 60 </p>\r
-\r
-<p class="whs2">section = 20 </p>\r
-\r
-<p class="whs2">size = 200 </p>\r
-\r
-<p class="whs2">radius_1 = 80 </p>\r
-\r
-<p class="whs2">radius_2 = 40 </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">height \r
- = 100</span> </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Build a box </p>\r
-\r
-<p class="whs2">box = MakeBox(-cote, \r
- -cote, -cote, +cote, +cote, +cote) </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Build a cylinder </p>\r
-\r
-<p class="whs2">pt1 = MakeVertex(0, \r
- 0, cote/3) </p>\r
-\r
-<p class="whs2">di1 = MakeVectorDXDYDZ(0, \r
- 0, 1) </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">cyl \r
- = MakeCylinder(pt1, di1, section, size)</span> </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Build a truncated cone \r
- </p>\r
-\r
-<p class="whs2">pt2 = MakeVertex(0, \r
- 0, size) </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">cone \r
- = MakeCone(pt2, di1, radius_1, radius_2, height)</span> </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Fuse </p>\r
-\r
-<p class="whs2">box_cyl = MakeFuse(box, \r
- cyl) </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">piece \r
- = MakeFuse(box_cyl, cone)</span> </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Add in study </p>\r
-\r
-<p class="whs2">addToStudy(piece, \r
- name) </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Create a group of faces \r
- </p>\r
-\r
-<p class="whs2">group = CreateGroup(piece, \r
- ShapeType[&quot;FACE&quot;]) </p>\r
-\r
-<p class="whs2">group_name = name \r
- + &quot;_grp&quot; </p>\r
-\r
-<p class="whs2">addToStudy(group, \r
- group_name) </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">group.SetName(group_name)</span> \r
- </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Add faces in the group \r
- </p>\r
-\r
-<p class="whs2">faces = SubShapeAllIDs(piece, \r
- ShapeType[&quot;FACE&quot;]) </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">UnionIDs(group, \r
- faces)</span> </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Create a mesh </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Define a mesh on a geometry \r
- </p>\r
-\r
-<p class="whs2">tetra = smesh.Mesh(piece, \r
- name) </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Define 1D hypothesis \r
- </p>\r
-\r
-<p class="whs2">algo1d = tetra.Segment() \r
- </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">algo1d.LocalLength(10)</span> \r
- </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Define 2D hypothesis \r
- </p>\r
-\r
-<p class="whs2">algo2d = tetra.Triangle() \r
- </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">algo2d.LengthFromEdges()</span> \r
- </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Define 3D hypothesis \r
- </p>\r
-\r
-<p class="whs2">algo3d = tetra.Tetrahedron(smesh.NETGEN) \r
- </p>\r
-\r
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">algo3d.MaxElementVolume(100)</span> \r
- </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Compute the mesh </p>\r
-\r
-<p class="whs2">tetra.Compute() \r
- </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"># Create a groupe of faces \r
- </p>\r
-\r
-<p class="whs2">tetra.Group(group) \r
- </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/smeshpy_doc/classsmeshDC_1_1Mesh.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh.html
new file mode 100644 (file)
index 0000000..a9096b2
--- /dev/null
@@ -0,0 +1,6622 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh.html">Mesh</a></div>
+<h1>smeshDC.Mesh Class Reference</h1><!-- doxytag: class="smeshDC::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="classsmeshDC_1_1Mesh.html#c1ff5c26f41ca1e921d8dabc0fb1c476">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor.  <a href="#c1ff5c26f41ca1e921d8dabc0fb1c476"></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="classsmeshDC_1_1Mesh.html#8eb84ebf2ce7779ea55aefd753bdf0f1">SetMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method that inits the <a class="el" href="classsmeshDC_1_1Mesh.html">Mesh</a> object from SMESH_Mesh interface.  <a href="#8eb84ebf2ce7779ea55aefd753bdf0f1"></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="classsmeshDC_1_1Mesh.html#a80741f505adc6cb76e7a65441f3e9e9">GetMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method that returns the mesh.  <a href="#a80741f505adc6cb76e7a65441f3e9e9"></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="classsmeshDC_1_1Mesh.html#678665e562fb5f8fa26e59c9eab08f9b">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get mesh name.  <a href="#678665e562fb5f8fa26e59c9eab08f9b"></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="classsmeshDC_1_1Mesh.html#11ec61404242cf8caaade91bd47ee3e4">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to mesh.  <a href="#11ec61404242cf8caaade91bd47ee3e4"></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="classsmeshDC_1_1Mesh.html#bf4a13668fe78b6b1957750d64cb4ac2">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the subMesh object associated to a subShape.  <a href="#bf4a13668fe78b6b1957750d64cb4ac2"></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="classsmeshDC_1_1Mesh.html#4b67e2fe74ee0f4699067446264c73f6">GetShape</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method that returns the shape associated to the mesh.  <a href="#4b67e2fe74ee0f4699067446264c73f6"></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="classsmeshDC_1_1Mesh.html#8397a449a458139c1dc7aa3a8399d58f">SetShape</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method that associates given shape to the mesh(entails the mesh recreation).  <a href="#8397a449a458139c1dc7aa3a8399d58f"></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="classsmeshDC_1_1Mesh.html#813ffea0a5d9f74930da1fae5ece3084">IsReadyToCompute</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if hypotheses are defined well.  <a href="#813ffea0a5d9f74930da1fae5ece3084"></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="classsmeshDC_1_1Mesh.html#1551899004b15ef51010021fe0ac6fbe">GetAlgoState</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return errors of hypotheses definintion error list is empty if everything is OK.  <a href="#1551899004b15ef51010021fe0ac6fbe"></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="classsmeshDC_1_1Mesh.html#d602421e8b0bc7939e8af87b36081052">GetGeometryByMeshElement</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return geometrical object the given element is built on.  <a href="#d602421e8b0bc7939e8af87b36081052"></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="classsmeshDC_1_1Mesh.html#7cf170b510c4284f823897b51ec3540d">MeshDimension</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns mesh dimension depending on shape one.  <a href="#7cf170b510c4284f823897b51ec3540d"></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="classsmeshDC_1_1Mesh.html#28f838bb27b19d3c6ec186df18c6c8b1">Segment</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a segment discretization 1D algorithm.  <a href="#28f838bb27b19d3c6ec186df18c6c8b1"></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="classsmeshDC_1_1Mesh.html#920aa6d60b0d34ba969829d51dc88b32">Triangle</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a triangle 2D algorithm for faces.  <a href="#920aa6d60b0d34ba969829d51dc88b32"></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="classsmeshDC_1_1Mesh.html#5f2845be55c166a38210710ea7773e95">Quadrangle</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a quadrangle 2D algorithm for faces.  <a href="#5f2845be55c166a38210710ea7773e95"></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="classsmeshDC_1_1Mesh.html#b2f614599f43d4e9fa905417a0497c0d">Tetrahedron</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a tetrahedron 3D algorithm for solids.  <a href="#b2f614599f43d4e9fa905417a0497c0d"></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="classsmeshDC_1_1Mesh.html#f588cdeec1d6563d3695c8f92ed06aa9">Hexahedron</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a hexahedron 3D algorithm for solids.  <a href="#f588cdeec1d6563d3695c8f92ed06aa9"></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="classsmeshDC_1_1Mesh.html#9de57f89d45e0dd2e898313fdff5985b">Netgen</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deprecated, only for compatibility!  <a href="#9de57f89d45e0dd2e898313fdff5985b"></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="classsmeshDC_1_1Mesh.html#4a2abf09f54f31e1ef92aa8bd0e0b565">Projection1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a projection 1D algorithm for edges.  <a href="#4a2abf09f54f31e1ef92aa8bd0e0b565"></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="classsmeshDC_1_1Mesh.html#046a671861717506e4ae530fa4840224">Projection2D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a projection 2D algorithm for faces.  <a href="#046a671861717506e4ae530fa4840224"></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="classsmeshDC_1_1Mesh.html#13ab59da622ec76691c699fbc49d8e1c">Projection3D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a projection 3D algorithm for solids.  <a href="#13ab59da622ec76691c699fbc49d8e1c"></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="classsmeshDC_1_1Mesh.html#275acd8686c2569af2f04b8c3315b48c">Prism</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a 3D extrusion (Prism 3D) or RadialPrism 3D algorithm for solids.  <a href="#275acd8686c2569af2f04b8c3315b48c"></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="classsmeshDC_1_1Mesh.html#f0544a1f249f9d791e94c96920e8945f">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="#f0544a1f249f9d791e94c96920e8945f"></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="classsmeshDC_1_1Mesh.html#b7785437258a0213f3ffd4b4503c985f">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,-1] defines mesh fineness.  <a href="#b7785437258a0213f3ffd4b4503c985f"></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="classsmeshDC_1_1Mesh.html#da4dd042e7ca959a7b0dbd6b486ed89c">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,-1] defines mesh fineness.  <a href="#da4dd042e7ca959a7b0dbd6b486ed89c"></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="classsmeshDC_1_1Mesh.html#ead2cc1d3a22fedf1ec79f10912651ba">AddHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign hypothesis.  <a href="#ead2cc1d3a22fedf1ec79f10912651ba"></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="classsmeshDC_1_1Mesh.html#f54948c4d2cf4f02d3c256d9b641442e">GetHypothesisList</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the list of hypothesis added on a geom.  <a href="#f54948c4d2cf4f02d3c256d9b641442e"></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="classsmeshDC_1_1Mesh.html#cba551abec7186c4960baa4b455f502b">RemoveGlobalHypotheses</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes all global hypotheses.  <a href="#cba551abec7186c4960baa4b455f502b"></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="classsmeshDC_1_1Mesh.html#d61dfe7a9c0b8d7448a8c647ab43e515">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>, <br>
+ if this parameter is not defined the name is the same as the geometric group name <br>
+ Note: Works like <a class="el" href="classsmeshDC_1_1Mesh.html#4670f7c11dac95280c6d83ea895b4405">GroupOnGeom()</a>.  <a href="#d61dfe7a9c0b8d7448a8c647ab43e515"></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="classsmeshDC_1_1Mesh.html#398167a69f2d0e0cbd3eae985790ec5b">ExportToMED</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deprecated, only for compatibility! Please, use <a class="el" href="classsmeshDC_1_1Mesh.html#68a16d0cd621d6333c4559525397bbe7">ExportMED()</a> method instead.  <a href="#398167a69f2d0e0cbd3eae985790ec5b"></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="classsmeshDC_1_1Mesh.html#68a16d0cd621d6333c4559525397bbe7">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="#68a16d0cd621d6333c4559525397bbe7"></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="classsmeshDC_1_1Mesh.html#1f94daa2d9e8ff9b8c0f908aea5b3dd8">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="#1f94daa2d9e8ff9b8c0f908aea5b3dd8"></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="classsmeshDC_1_1Mesh.html#c47b1dd9de46d9cf7b12c0d74a012c73">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="#c47b1dd9de46d9cf7b12c0d74a012c73"></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="classsmeshDC_1_1Mesh.html#1311207ea4fe623bb10d459e2d5c32a0">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="#1311207ea4fe623bb10d459e2d5c32a0"></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="classsmeshDC_1_1Mesh.html#8874fec2213bddb829bc070659f9acbc">CreateEmptyGroup</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an empty mesh group.  <a href="#8874fec2213bddb829bc070659f9acbc"></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="classsmeshDC_1_1Mesh.html#4670f7c11dac95280c6d83ea895b4405">GroupOnGeom</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a mesh group based on geometric object <em>grp</em> and give a <em>name</em>, <br>
+ if this parameter is not defined the name is the same as the geometric group name.  <a href="#4670f7c11dac95280c6d83ea895b4405"></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="classsmeshDC_1_1Mesh.html#a7ed4ce8c7808568978a30c5232da487">MakeGroupByIds</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a mesh group by the given ids of elements.  <a href="#a7ed4ce8c7808568978a30c5232da487"></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="classsmeshDC_1_1Mesh.html#a0297756f379f53f0c689895fbfcb311">MakeGroup</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a mesh group by the given conditions.  <a href="#a0297756f379f53f0c689895fbfcb311"></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="classsmeshDC_1_1Mesh.html#75a309a3c6c29bf1ac7e2a34cfc98a8c">MakeGroupByCriterion</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a mesh group by the given criterion.  <a href="#75a309a3c6c29bf1ac7e2a34cfc98a8c"></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="classsmeshDC_1_1Mesh.html#34254deb71e7f191cfe8f0f247e26df3">MakeGroupByCriteria</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a mesh group by the given criteria(list of criterions).  <a href="#34254deb71e7f191cfe8f0f247e26df3"></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="classsmeshDC_1_1Mesh.html#d793ade055774eeb9b99fac121dc5292">MakeGroupByFilter</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a mesh group by the given filter.  <a href="#d793ade055774eeb9b99fac121dc5292"></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="classsmeshDC_1_1Mesh.html#339c3cdcb9b2253d14d4d205d0e35ec4">GetIdsFromFilter</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pass mesh elements through the given filter and return ids.  <a href="#339c3cdcb9b2253d14d4d205d0e35ec4"></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="classsmeshDC_1_1Mesh.html#8784982fbefc8973ac0668c90b0771dd">GetFreeBorders</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Verify whether 2D mesh element has free edges(edges connected to one face only)<br>
+ Returns list of special structures(borders).  <a href="#8784982fbefc8973ac0668c90b0771dd"></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="classsmeshDC_1_1Mesh.html#3e16e192a6b18ae9b3a2caaeff097618">RemoveGroup</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a group.  <a href="#3e16e192a6b18ae9b3a2caaeff097618"></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="classsmeshDC_1_1Mesh.html#22d530cca860633d021dfa96cf9ef6fd">RemoveGroupWithContents</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove group with its contents.  <a href="#22d530cca860633d021dfa96cf9ef6fd"></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="classsmeshDC_1_1Mesh.html#23c2a81c48c10eb47931400dfd176867">GetGroups</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the list of groups existing in the mesh.  <a href="#23c2a81c48c10eb47931400dfd176867"></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="classsmeshDC_1_1Mesh.html#475bbb0fa983c0c0ac9d69614849e6da">GetGroupNames</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the list of names of groups existing in the mesh.  <a href="#475bbb0fa983c0c0ac9d69614849e6da"></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="classsmeshDC_1_1Mesh.html#2fa03227010c3cbd0bf096467727cd1e">UnionGroups</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Union of two groups New group is created.  <a href="#2fa03227010c3cbd0bf096467727cd1e"></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="classsmeshDC_1_1Mesh.html#75f9bb08e2900f80254d81b5f41a042b">IntersectGroups</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Intersection of two groups New group is created.  <a href="#75f9bb08e2900f80254d81b5f41a042b"></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="classsmeshDC_1_1Mesh.html#07ea3708cdcb1ea113246bb79ddc2af2">CutGroups</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cut of two groups New group is created.  <a href="#07ea3708cdcb1ea113246bb79ddc2af2"></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="classsmeshDC_1_1Mesh.html#5927ab5e23104e5abef7e610734e0d5b">GetLog</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the log of nodes and elements added or removed since previous clear of the log.  <a href="#5927ab5e23104e5abef7e610734e0d5b"></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="classsmeshDC_1_1Mesh.html#65c714c92cf53bdbc58d114944884865">ClearLog</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear the log of nodes and elements added or removed since previous clear.  <a href="#65c714c92cf53bdbc58d114944884865"></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="classsmeshDC_1_1Mesh.html#525008123ff68c3f4aa7dcd5fb1c184a">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the internal Id.  <a href="#525008123ff68c3f4aa7dcd5fb1c184a"></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="classsmeshDC_1_1Mesh.html#a93ece387535f28cd3b644a80d84412f">GetStudyId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the study Id.  <a href="#a93ece387535f28cd3b644a80d84412f"></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="classsmeshDC_1_1Mesh.html#997c82163320ed98e1f170d33b81bdc8">HasDuplicatedGroupNamesMED</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check group names for duplications.  <a href="#997c82163320ed98e1f170d33b81bdc8"></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="classsmeshDC_1_1Mesh.html#66ae25fc3c278592ba3a23a9973de5ca">GetMeshEditor</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain instance of SMESH_MeshEditor.  <a href="#66ae25fc3c278592ba3a23a9973de5ca"></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="classsmeshDC_1_1Mesh.html#0cb466605e4826639a1c2606b03e51de">GetMEDMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get MED <a class="el" href="classsmeshDC_1_1Mesh.html">Mesh</a>.  <a href="#0cb466605e4826639a1c2606b03e51de"></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="classsmeshDC_1_1Mesh.html#2584e68d5f83e2472dc31f672032b830">NbNodes</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of nodes in mesh.  <a href="#2584e68d5f83e2472dc31f672032b830"></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="classsmeshDC_1_1Mesh.html#32aca468f35dee817c574f685c19340c">NbElements</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of elements in mesh.  <a href="#32aca468f35dee817c574f685c19340c"></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="classsmeshDC_1_1Mesh.html#2a5a6924c6917c3edd61381f7767f2ce">NbEdges</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of edges in mesh.  <a href="#2a5a6924c6917c3edd61381f7767f2ce"></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="classsmeshDC_1_1Mesh.html#a8cc56138278b062b3fc61b343b9a9b0">NbEdgesOfOrder</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of edges with given order in mesh.  <a href="#a8cc56138278b062b3fc61b343b9a9b0"></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="classsmeshDC_1_1Mesh.html#3e98a54848efa261461d04bcc37c032c">NbFaces</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of faces in mesh.  <a href="#3e98a54848efa261461d04bcc37c032c"></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="classsmeshDC_1_1Mesh.html#cb2398ea3a1ad0f83daba071af271ae3">NbFacesOfOrder</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of faces with given order in mesh.  <a href="#cb2398ea3a1ad0f83daba071af271ae3"></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="classsmeshDC_1_1Mesh.html#24a43384422c391646fbb9c77084f44f">NbTriangles</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of triangles in mesh.  <a href="#24a43384422c391646fbb9c77084f44f"></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="classsmeshDC_1_1Mesh.html#72022a3452810f55ff254e304bc12d4b">NbTrianglesOfOrder</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of triangles with given order in mesh.  <a href="#72022a3452810f55ff254e304bc12d4b"></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="classsmeshDC_1_1Mesh.html#ae13cdc351ee0c608ed91835bdd5317a">NbQuadrangles</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of quadrangles in mesh.  <a href="#ae13cdc351ee0c608ed91835bdd5317a"></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="classsmeshDC_1_1Mesh.html#74597459a83d05097fa3a159b4f4fa05">NbQuadranglesOfOrder</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of quadrangles with given order in mesh.  <a href="#74597459a83d05097fa3a159b4f4fa05"></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="classsmeshDC_1_1Mesh.html#900f9dd693371843c6ab877d5a42382a">NbPolygons</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of polygons in mesh.  <a href="#900f9dd693371843c6ab877d5a42382a"></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="classsmeshDC_1_1Mesh.html#3fa7ae366a834f698a097976028e7d28">NbVolumes</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of volumes in mesh.  <a href="#3fa7ae366a834f698a097976028e7d28"></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="classsmeshDC_1_1Mesh.html#c82174b2e7063aebc6700930be4b66b2">NbVolumesOfOrder</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of volumes with given order in mesh.  <a href="#c82174b2e7063aebc6700930be4b66b2"></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="classsmeshDC_1_1Mesh.html#36e3b930b278620e8e467aef77bda9b4">NbTetras</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of tetrahedrons in mesh.  <a href="#36e3b930b278620e8e467aef77bda9b4"></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="classsmeshDC_1_1Mesh.html#1f2e5161166e9eacafb404e14331ea42">NbTetrasOfOrder</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of tetrahedrons with given order in mesh.  <a href="#1f2e5161166e9eacafb404e14331ea42"></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="classsmeshDC_1_1Mesh.html#06c95e05917e4a7f5caebb439b3d0f7b">NbHexas</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of hexahedrons in mesh.  <a href="#06c95e05917e4a7f5caebb439b3d0f7b"></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="classsmeshDC_1_1Mesh.html#7ce22fe449679f671eb98154c133ac91">NbHexasOfOrder</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of hexahedrons with given order in mesh.  <a href="#7ce22fe449679f671eb98154c133ac91"></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="classsmeshDC_1_1Mesh.html#39f3b03a825603e0c3c8c2fd8fa35685">NbPyramids</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of pyramids in mesh.  <a href="#39f3b03a825603e0c3c8c2fd8fa35685"></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="classsmeshDC_1_1Mesh.html#80ee709b9f8bf2d706833f2010a6873b">NbPyramidsOfOrder</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of pyramids with given order in mesh.  <a href="#80ee709b9f8bf2d706833f2010a6873b"></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="classsmeshDC_1_1Mesh.html#00a2ee826040c763152c28bc2f45d54d">NbPrisms</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of prisms in mesh.  <a href="#00a2ee826040c763152c28bc2f45d54d"></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="classsmeshDC_1_1Mesh.html#bd0854dc0bd1520d566d3e9f59d7ec22">NbPrismsOfOrder</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of prisms with given order in mesh.  <a href="#bd0854dc0bd1520d566d3e9f59d7ec22"></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="classsmeshDC_1_1Mesh.html#5025ca15b456b79f18c5f487f525aa1d">NbPolyhedrons</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of polyhedrons in mesh.  <a href="#5025ca15b456b79f18c5f487f525aa1d"></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="classsmeshDC_1_1Mesh.html#6e50c4f6b5e8fd20526ae6a2cf4b4b3d">NbSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of submeshes in mesh.  <a href="#6e50c4f6b5e8fd20526ae6a2cf4b4b3d"></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="classsmeshDC_1_1Mesh.html#e634c3574cfe53f945ec937a15a1a5a4">GetElementsId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns list of mesh elements ids.  <a href="#e634c3574cfe53f945ec937a15a1a5a4"></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="classsmeshDC_1_1Mesh.html#e26ef77b1133bcba8d694220a43bb0c7">GetElementsByType</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns list of ids of mesh elements with given type.  <a href="#e26ef77b1133bcba8d694220a43bb0c7"></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="classsmeshDC_1_1Mesh.html#548dd7ee73c4f714a976233520f1afe7">GetNodesId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns list of mesh nodes ids.  <a href="#548dd7ee73c4f714a976233520f1afe7"></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="classsmeshDC_1_1Mesh.html#c2cecd9dda12f1bb0ace5d0fbf83cd56">GetElementType</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns type of mesh element.  <a href="#c2cecd9dda12f1bb0ace5d0fbf83cd56"></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="classsmeshDC_1_1Mesh.html#b68f23b2eade0a29627e85f3ad6073b2">GetSubMeshElementsId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns list of submesh elements ids.  <a href="#b68f23b2eade0a29627e85f3ad6073b2"></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="classsmeshDC_1_1Mesh.html#2efd22f2dee3f2f0a118a4ceb6793716">GetSubMeshNodesId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns list of submesh nodes ids.  <a href="#2efd22f2dee3f2f0a118a4ceb6793716"></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="classsmeshDC_1_1Mesh.html#4b29aa5027d111923d72130b2ce8e37c">GetSubMeshElementType</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns list of ids of submesh elements with given type.  <a href="#4b29aa5027d111923d72130b2ce8e37c"></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="classsmeshDC_1_1Mesh.html#ede2e5f1f4aad2f6a3e2618efb879d02">Dump</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get mesh description.  <a href="#ede2e5f1f4aad2f6a3e2618efb879d02"></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="classsmeshDC_1_1Mesh.html#ac4b569cd8022047a473edbe4f216802">GetNodeXYZ</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get XYZ coordinates of node as list of double <br>
+ If there is not node for given ID - returns empty list.  <a href="#ac4b569cd8022047a473edbe4f216802"></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="classsmeshDC_1_1Mesh.html#ea303e542d760d9748e6f4adb657f434">GetNodeInverseElements</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For given node returns list of IDs of inverse elements <br>
+ If there is not node for given ID - returns empty list.  <a href="#ea303e542d760d9748e6f4adb657f434"></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="classsmeshDC_1_1Mesh.html#95bd2c550e6485befcada57b13029242">GetShapeID</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If given element is node returns IDs of shape from position <br>
+ If there is not node for given ID - returns -1.  <a href="#95bd2c550e6485befcada57b13029242"></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="classsmeshDC_1_1Mesh.html#37691b345bd2fe31129f5d306c7285ff">GetShapeIDForElem</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For given element returns ID of result shape after FindShape() from SMESH_MeshEditor <br>
+ If there is not element for given ID - returns -1.  <a href="#37691b345bd2fe31129f5d306c7285ff"></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="classsmeshDC_1_1Mesh.html#ea4c97bd804514962ff613a9545a99c3">GetElemNbNodes</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of nodes for given element <br>
+ If there is not element for given ID - returns -1.  <a href="#ea4c97bd804514962ff613a9545a99c3"></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="classsmeshDC_1_1Mesh.html#795fb7cd896a9336c2fb287edba1df46">GetElemNode</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns ID of node by given index for given element <br>
+ If there is not element for given ID - returns -1 <br>
+ If there is not node for given index - returns -2.  <a href="#795fb7cd896a9336c2fb287edba1df46"></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="classsmeshDC_1_1Mesh.html#7f8130a3b16c8459d0c8ad23389b3dac">IsMediumNode</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if given node is medium node in given quadratic element.  <a href="#7f8130a3b16c8459d0c8ad23389b3dac"></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="classsmeshDC_1_1Mesh.html#e405cf3b31ed146203c601d268824e34">IsMediumNodeOfAnyElem</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if given node is medium node in one of quadratic elements.  <a href="#e405cf3b31ed146203c601d268824e34"></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="classsmeshDC_1_1Mesh.html#4775548250a94a28fdc4349df6b5e664">ElemNbEdges</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of edges for given element.  <a href="#4775548250a94a28fdc4349df6b5e664"></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="classsmeshDC_1_1Mesh.html#4c42af133c335bb357f847e2dcc95a3e">ElemNbFaces</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of faces for given element.  <a href="#4c42af133c335bb357f847e2dcc95a3e"></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="classsmeshDC_1_1Mesh.html#2d3c8a45cb35fed969935471438dd229">IsPoly</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if given element is polygon.  <a href="#2d3c8a45cb35fed969935471438dd229"></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="classsmeshDC_1_1Mesh.html#de565d48cd768a56da73df5eb12c8c4b">IsQuadratic</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if given element is quadratic.  <a href="#de565d48cd768a56da73df5eb12c8c4b"></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="classsmeshDC_1_1Mesh.html#c9c7f540a885ad5718f28c1b1cc8cc74">BaryCenter</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns XYZ coordinates of bary center for given element as list of double <br>
+ If there is not element for given ID - returns empty list.  <a href="#c9c7f540a885ad5718f28c1b1cc8cc74"></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="classsmeshDC_1_1Mesh.html#d71d7b886bb422f3eea601d22b4b419d">RemoveElements</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes elements from mesh by ids.  <a href="#d71d7b886bb422f3eea601d22b4b419d"></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="classsmeshDC_1_1Mesh.html#867a060a8a8ee32c75dcced1da15b022">RemoveNodes</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes nodes from mesh by ids.  <a href="#867a060a8a8ee32c75dcced1da15b022"></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="classsmeshDC_1_1Mesh.html#a4acf9d064dbf154f1f07cf18601c0ea">AddNode</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add node to mesh by coordinates.  <a href="#a4acf9d064dbf154f1f07cf18601c0ea"></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="classsmeshDC_1_1Mesh.html#26131c97ad04a78613bdae200bb17660">AddEdge</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create edge both similar and quadratic (this is determed by number of given nodes).  <a href="#26131c97ad04a78613bdae200bb17660"></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="classsmeshDC_1_1Mesh.html#7120695c0343590b47ef6e8f02766fa4">AddFace</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create face both similar and quadratic (this is determed by number of given nodes).  <a href="#7120695c0343590b47ef6e8f02766fa4"></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="classsmeshDC_1_1Mesh.html#3d6fc9c8186016f2e37e4f2185d11446">AddPolygonalFace</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add polygonal face to mesh by list of nodes ids.  <a href="#3d6fc9c8186016f2e37e4f2185d11446"></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="classsmeshDC_1_1Mesh.html#3ae39f43bb819ce72356e1ed1fd88589">AddVolume</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create volume both similar and quadratic (this is determed by number of given nodes).  <a href="#3ae39f43bb819ce72356e1ed1fd88589"></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="classsmeshDC_1_1Mesh.html#4a537d81fc2a84c90dea4159c788f37c">AddPolyhedralVolume</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create volume of many faces, giving nodes for each face.  <a href="#4a537d81fc2a84c90dea4159c788f37c"></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="classsmeshDC_1_1Mesh.html#7c54c114d76ed3f108863a9639a17ca8">AddPolyhedralVolumeByFaces</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create volume of many faces, giving IDs of existing faces.  <a href="#7c54c114d76ed3f108863a9639a17ca8"></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="classsmeshDC_1_1Mesh.html#3a1236e58d50d925689b76e1e923f455">MoveNode</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Move node with given id.  <a href="#3a1236e58d50d925689b76e1e923f455"></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="classsmeshDC_1_1Mesh.html#305fdba055982c393cfbbdb6dbb50646">FindNodeClosestTo</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a node closest to a point.  <a href="#305fdba055982c393cfbbdb6dbb50646"></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="classsmeshDC_1_1Mesh.html#fd794d99dc4539f0b3c04f9a9372d476">MeshToPassThroughAPoint</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a node closest to a point and move it to a point location.  <a href="#fd794d99dc4539f0b3c04f9a9372d476"></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="classsmeshDC_1_1Mesh.html#d5a94fade689f8efc3ed2c9e8ab7c7b1">InverseDiag</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Replace two neighbour triangles sharing Node1-Node2 link with ones built on the same 4 nodes but having other common link.  <a href="#d5a94fade689f8efc3ed2c9e8ab7c7b1"></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="classsmeshDC_1_1Mesh.html#b76da5a684955529e10b291b421967f2">DeleteDiag</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Replace two neighbour triangles sharing Node1-Node2 link with a quadrangle built on the same 4 nodes.  <a href="#b76da5a684955529e10b291b421967f2"></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="classsmeshDC_1_1Mesh.html#cf69091c91c36ce5335e4da2631ef7b6">Reorient</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reorient elements by ids.  <a href="#cf69091c91c36ce5335e4da2631ef7b6"></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="classsmeshDC_1_1Mesh.html#735a23aa0c42779067e6cc81be38dee3">ReorientObject</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reorient all elements of the object.  <a href="#735a23aa0c42779067e6cc81be38dee3"></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="classsmeshDC_1_1Mesh.html#d0af9e5504148afa14cbfe672f05eb99">TriToQuad</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fuse neighbour triangles into quadrangles.  <a href="#d0af9e5504148afa14cbfe672f05eb99"></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="classsmeshDC_1_1Mesh.html#b460127d4a11dc7093673699aa596251">TriToQuadObject</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fuse neighbour triangles of the object into quadrangles.  <a href="#b460127d4a11dc7093673699aa596251"></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="classsmeshDC_1_1Mesh.html#0ed805191162c718c85f628da184399a">QuadToTri</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split quadrangles into triangles.  <a href="#0ed805191162c718c85f628da184399a"></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="classsmeshDC_1_1Mesh.html#1338b63884c90a486869d1ca6bc1e5f3">QuadToTriObject</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split quadrangles into triangles.  <a href="#1338b63884c90a486869d1ca6bc1e5f3"></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="classsmeshDC_1_1Mesh.html#79bebb3280d8727e0aa63abf72895e00">SplitQuad</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split quadrangles into triangles.  <a href="#79bebb3280d8727e0aa63abf72895e00"></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="classsmeshDC_1_1Mesh.html#9f72cd3ce05553fa81cb9ab55276c6e3">SplitQuadObject</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split quadrangles into triangles.  <a href="#9f72cd3ce05553fa81cb9ab55276c6e3"></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="classsmeshDC_1_1Mesh.html#0ccd083fa2ca43dca1df29a07dbc61d9">BestSplit</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find better splitting of the given quadrangle.  <a href="#0ccd083fa2ca43dca1df29a07dbc61d9"></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="classsmeshDC_1_1Mesh.html#c458281ac5240ea90076231f2ac91b7f">SplitQuadsNearTriangularFacets</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split quafrangle faces near triangular facets of volumes.  <a href="#c458281ac5240ea90076231f2ac91b7f"></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="classsmeshDC_1_1Mesh.html#15037374765f1e7439997f1a2416590b">SplitHexaToTetras</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split hexahedrons into tetrahedrons.  <a href="#15037374765f1e7439997f1a2416590b"></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="classsmeshDC_1_1Mesh.html#bcb5ef95810e1c2a8edb3041a73bf339">SplitHexaToPrisms</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split hexahedrons into prisms.  <a href="#bcb5ef95810e1c2a8edb3041a73bf339"></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="classsmeshDC_1_1Mesh.html#47625763762791aa12b279915db0f5bb">Smooth</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Smooth elements.  <a href="#47625763762791aa12b279915db0f5bb"></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="classsmeshDC_1_1Mesh.html#02b0945fb6cba824e7a02398d58ff2d2">SmoothObject</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Smooth elements belong to given object.  <a href="#02b0945fb6cba824e7a02398d58ff2d2"></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="classsmeshDC_1_1Mesh.html#576f1975cee8eccb70bddcbf5c79a1b8">SmoothParametric</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parametric smooth the given elements.  <a href="#576f1975cee8eccb70bddcbf5c79a1b8"></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="classsmeshDC_1_1Mesh.html#e6188d5cbc547c960b65cbf03a64c360">SmoothParametricObject</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parametric smooth elements belong to given object.  <a href="#e6188d5cbc547c960b65cbf03a64c360"></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="classsmeshDC_1_1Mesh.html#950b615f72cf87e1b1f30b9bcba1def7">ConvertToQuadratic</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts all mesh to quadratic one, deletes old elements, replacing them with quadratic ones with the same id.  <a href="#950b615f72cf87e1b1f30b9bcba1def7"></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="classsmeshDC_1_1Mesh.html#63fdf86ae5a1c450d372789732dc85ed">ConvertFromQuadratic</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts all mesh from quadratic to ordinary ones, deletes old quadratic elements, <br>
+ replacing them with ordinary mesh elements with the same id.  <a href="#63fdf86ae5a1c450d372789732dc85ed"></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="classsmeshDC_1_1Mesh.html#8b7a1f81371994a5fcbb58b56ec26382">RenumberNodes</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Renumber mesh nodes.  <a href="#8b7a1f81371994a5fcbb58b56ec26382"></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="classsmeshDC_1_1Mesh.html#05d3b3ae8bda7842bc69a72b9426a69d">RenumberElements</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Renumber mesh elements.  <a href="#05d3b3ae8bda7842bc69a72b9426a69d"></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="classsmeshDC_1_1Mesh.html#51fafc65b1c00aa71fb3368302879e90">RotationSweep</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by rotation of the elements around the axis.  <a href="#51fafc65b1c00aa71fb3368302879e90"></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="classsmeshDC_1_1Mesh.html#e1801356bd22826c806ff0991e44e9ab">RotationSweepObject</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by rotation of the elements of object around the axis.  <a href="#e1801356bd22826c806ff0991e44e9ab"></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="classsmeshDC_1_1Mesh.html#a9104edbd7b7c6cbc3b1ba9538ed9f59">ExtrusionSweep</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by extrusion of the elements with given ids.  <a href="#a9104edbd7b7c6cbc3b1ba9538ed9f59"></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="classsmeshDC_1_1Mesh.html#f67f780ee272071948ac9ef85373dc3a">AdvancedExtrusion</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by extrusion of the elements with given ids.  <a href="#f67f780ee272071948ac9ef85373dc3a"></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="classsmeshDC_1_1Mesh.html#42c025c8067cc5cc0090d6ec1412ad4d">ExtrusionSweepObject</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by extrusion of the elements belong to object.  <a href="#42c025c8067cc5cc0090d6ec1412ad4d"></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="classsmeshDC_1_1Mesh.html#e95c632534893826ba9946d97caef095">ExtrusionSweepObject1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by extrusion of the elements belong to object.  <a href="#e95c632534893826ba9946d97caef095"></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="classsmeshDC_1_1Mesh.html#43fb0ee239a93e665d6d7cb743b08325">ExtrusionSweepObject2D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by extrusion of the elements belong to object.  <a href="#43fb0ee239a93e665d6d7cb743b08325"></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="classsmeshDC_1_1Mesh.html#faef42567ec17757143a6b0b1b0ffd14">ExtrusionAlongPath</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by extrusion of the given elements A path of extrusion must be a meshed edge.  <a href="#faef42567ec17757143a6b0b1b0ffd14"></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="classsmeshDC_1_1Mesh.html#802c0f3464746978efbf0194bb7472fc">ExtrusionAlongPathObject</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by extrusion of the elements belong to object A path of extrusion must be a meshed edge.  <a href="#802c0f3464746978efbf0194bb7472fc"></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="classsmeshDC_1_1Mesh.html#4f24d9ac04c1f7adb4ce72630103b39e">Mirror</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Symmetrical copy of mesh elements.  <a href="#4f24d9ac04c1f7adb4ce72630103b39e"></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="classsmeshDC_1_1Mesh.html#921c02f7d4778d395bcab56d067207e4">MirrorObject</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Symmetrical copy of object.  <a href="#921c02f7d4778d395bcab56d067207e4"></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="classsmeshDC_1_1Mesh.html#1e2faa9a7a0d7f38608bc5b4c4e9102a">Translate</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translates the elements.  <a href="#1e2faa9a7a0d7f38608bc5b4c4e9102a"></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="classsmeshDC_1_1Mesh.html#22ec87ab4df5e8998e574e8c05a9723a">TranslateObject</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translates the object.  <a href="#22ec87ab4df5e8998e574e8c05a9723a"></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="classsmeshDC_1_1Mesh.html#228afef21b2340aa09e0b193f59001b0">Rotate</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotates the elements.  <a href="#228afef21b2340aa09e0b193f59001b0"></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="classsmeshDC_1_1Mesh.html#aaf823b609d2b45aee3f2751b32c8d2d">RotateObject</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotates the object.  <a href="#aaf823b609d2b45aee3f2751b32c8d2d"></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="classsmeshDC_1_1Mesh.html#264d2001aebb0e526af2bf9495750f6c">FindCoincidentNodes</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find group of nodes close to each other within Tolerance.  <a href="#264d2001aebb0e526af2bf9495750f6c"></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="classsmeshDC_1_1Mesh.html#b05f9ed75d38e2038924b88cdfd546ae">FindCoincidentNodesOnPart</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find group of nodes close to each other within Tolerance.  <a href="#b05f9ed75d38e2038924b88cdfd546ae"></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="classsmeshDC_1_1Mesh.html#503c866e8a58227e6d70877843b96e4a">MergeNodes</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Merge nodes.  <a href="#503c866e8a58227e6d70877843b96e4a"></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="classsmeshDC_1_1Mesh.html#643c80318fafd3d98c530c88ebdc4257">FindEqualElements</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find elements built on the same nodes.  <a href="#643c80318fafd3d98c530c88ebdc4257"></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="classsmeshDC_1_1Mesh.html#023c5ccae0e02e73485019fe82ab8b35">MergeElements</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Merge elements in each given group.  <a href="#023c5ccae0e02e73485019fe82ab8b35"></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="classsmeshDC_1_1Mesh.html#f76363128b31cbe3fc32afc9cd771565">MergeEqualElements</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove all but one of elements built on the same nodes.  <a href="#f76363128b31cbe3fc32afc9cd771565"></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="classsmeshDC_1_1Mesh.html#079f6131307a4be37245823e6fd724da">SewFreeBorders</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sew free borders.  <a href="#079f6131307a4be37245823e6fd724da"></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="classsmeshDC_1_1Mesh.html#0c54ec7794e65956ecfab94476230a6e">SewConformFreeBorders</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sew conform free borders.  <a href="#0c54ec7794e65956ecfab94476230a6e"></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="classsmeshDC_1_1Mesh.html#e887767b6fb87c6be80763f4f78e2252">SewBorderToSide</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sew border to side.  <a href="#e887767b6fb87c6be80763f4f78e2252"></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="classsmeshDC_1_1Mesh.html#1feede9a829e6f347641ba073840f13d">SewSideElements</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sew two sides of a mesh.  <a href="#1feede9a829e6f347641ba073840f13d"></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="classsmeshDC_1_1Mesh.html#e613925597654962cd6bc1354cd847ab">ChangeElemNodes</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set new nodes for given element.  <a href="#e613925597654962cd6bc1354cd847ab"></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="classsmeshDC_1_1Mesh.html#8589dd93f380f74a91d1a270a3329392">GetLastCreatedNodes</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If during last operation of MeshEditor some nodes were created this method returns list of it's IDs, <br>
+ if new nodes not created - returns empty list.  <a href="#8589dd93f380f74a91d1a270a3329392"></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="classsmeshDC_1_1Mesh.html#86d590631a7eb99c5e0e6c38c596ed7c">GetLastCreatedElems</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If during last operation of MeshEditor some elements were created this method returns list of it's IDs, <br>
+ if new elements not creared - returns empty list.  <a href="#86d590631a7eb99c5e0e6c38c596ed7c"></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="classsmeshDC_1_1Mesh.html#0be9a9dabe33b7f3fdd5a1e31a19de30">smeshpyD</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh.html#8d2ba56c7de00d23867fb26908a09dbd">geompyD</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh.html#85b1f2feb28730e9a226fbe98b9198a8">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh.html#046173eaa203630e4a12147a8dc031da">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh.html#a7484397c0eafe910f9e5b1fb77a20f3">editor</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="classsmeshDC_1_1Mesh.html#9f46fbb458e5173bd4ef0f816ed778a2">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="classsmeshDC_1_1Mesh.html#ab3d2e782c81eb8c172ffea4934d9afc">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="classsmeshDC_1_1Mesh.html#2208820f1e04d15486802226576b45d8">editor</a> = 0</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+The class contains mesh shape, SMESH_Mesh, SMESH_MeshEditor More details. 
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="c1ff5c26f41ca1e921d8dabc0fb1c476"></a><!-- doxytag: member="smeshDC::Mesh::__init__" ref="c1ff5c26f41ca1e921d8dabc0fb1c476" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smeshpyD</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geompyD</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>obj</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Creates mesh on the shape <em>geom(or the empty mesh if geom equal to 0)</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>obj</em>&nbsp;</td><td>Shape to be meshed or SMESH_Mesh object </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>
+
+</div>
+</div><p>
+<a class="anchor" name="8eb84ebf2ce7779ea55aefd753bdf0f1"></a><!-- doxytag: member="smeshDC::Mesh::SetMesh" ref="8eb84ebf2ce7779ea55aefd753bdf0f1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SetMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theMesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theMesh</em>&nbsp;</td><td>is SMESH_Mesh object </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="a80741f505adc6cb76e7a65441f3e9e9"></a><!-- doxytag: member="smeshDC::Mesh::GetMesh" ref="a80741f505adc6cb76e7a65441f3e9e9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Mesh object </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="678665e562fb5f8fa26e59c9eab08f9b"></a><!-- doxytag: member="smeshDC::Mesh::GetName" ref="678665e562fb5f8fa26e59c9eab08f9b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="11ec61404242cf8caaade91bd47ee3e4"></a><!-- doxytag: member="smeshDC::Mesh::SetName" ref="11ec61404242cf8caaade91bd47ee3e4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="bf4a13668fe78b6b1957750d64cb4ac2"></a><!-- doxytag: member="smeshDC::Mesh::GetSubMesh" ref="bf4a13668fe78b6b1957750d64cb4ac2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSubObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+The subMesh object gives access to nodes and elements IDs. <br>
+ SubMesh will be used instead of SubShape in a next idl version to adress a specific subMesh... 
+</div>
+</div><p>
+<a class="anchor" name="4b67e2fe74ee0f4699067446264c73f6"></a><!-- doxytag: member="smeshDC::Mesh::GetShape" ref="4b67e2fe74ee0f4699067446264c73f6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetShape           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Returns:</b></dt><dd>GEOM_Object </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="8397a449a458139c1dc7aa3a8399d58f"></a><!-- doxytag: member="smeshDC::Mesh::SetShape" ref="8397a449a458139c1dc7aa3a8399d58f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SetShape           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>geom</em>&nbsp;</td><td>shape to be meshed(GEOM_Object) </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="813ffea0a5d9f74930da1fae5ece3084"></a><!-- doxytag: member="smeshDC::Mesh::IsReadyToCompute" ref="813ffea0a5d9f74930da1fae5ece3084" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.IsReadyToCompute           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSubObject</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theMesh</em>&nbsp;</td><td>is an instance of <a class="el" href="classsmeshDC_1_1Mesh.html">Mesh</a> class </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theSubObject</em>&nbsp;</td><td>subshape of a mesh shape </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="1551899004b15ef51010021fe0ac6fbe"></a><!-- doxytag: member="smeshDC::Mesh::GetAlgoState" ref="1551899004b15ef51010021fe0ac6fbe" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetAlgoState           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSubObject</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theMesh</em>&nbsp;</td><td>is an instance of <a class="el" href="classsmeshDC_1_1Mesh.html">Mesh</a> class </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theSubObject</em>&nbsp;</td><td>subshape of a mesh shape </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>a list of errors </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="d602421e8b0bc7939e8af87b36081052"></a><!-- doxytag: member="smeshDC::Mesh::GetGeometryByMeshElement" ref="d602421e8b0bc7939e8af87b36081052" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetGeometryByMeshElement           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theElementID</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theGeomName</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+The returned geometrical object, if not nil, is either found in the study or is published by this method with the given name <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theMesh</em>&nbsp;</td><td>is an instance of <a class="el" href="classsmeshDC_1_1Mesh.html">Mesh</a> class </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theElementID</em>&nbsp;</td><td>an id of the mesh element </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theGeomName</em>&nbsp;</td><td>user defined name of geometrical object </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>GEOM.GEOM_Object instance </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="7cf170b510c4284f823897b51ec3540d"></a><!-- doxytag: member="smeshDC::Mesh::MeshDimension" ref="7cf170b510c4284f823897b51ec3540d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.MeshDimension           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="28f838bb27b19d3c6ec186df18c6c8b1"></a><!-- doxytag: member="smeshDC::Mesh::Segment" ref="28f838bb27b19d3c6ec186df18c6c8b1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Segment           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>algo</em> = <code><a class="el" href="namespacesmeshDC.html#fcd10952f4e87878b85f48b0b225372f">REGULAR</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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. <br>
+ 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="namespacesmeshDC.html#fcd10952f4e87878b85f48b0b225372f">smesh.REGULAR</a> or <a class="el" href="namespacesmeshDC.html#955814fbbff4cdc590cd03dbbb859927">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>
+
+</div>
+</div><p>
+<a class="anchor" name="920aa6d60b0d34ba969829d51dc88b32"></a><!-- doxytag: member="smeshDC::Mesh::Triangle" ref="920aa6d60b0d34ba969829d51dc88b32" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Triangle           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>algo</em> = <code><a class="el" href="namespacesmeshDC.html#12ae6b0bb6a0f0e08228bb238dab824d">MEFISTO</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+If the optional <em>geom</em> parameter is not sets, this algorithm is global. <br>
+ 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="namespacesmeshDC.html#12ae6b0bb6a0f0e08228bb238dab824d">smesh.MEFISTO</a> or <a class="el" href="namespacesmeshDC.html#12e2315ca0c10d490928dcc3b2351864">smesh.NETGEN</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>
+
+</div>
+</div><p>
+<a class="anchor" name="5f2845be55c166a38210710ea7773e95"></a><!-- doxytag: member="smeshDC::Mesh::Quadrangle" ref="5f2845be55c166a38210710ea7773e95" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Quadrangle           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+If the optional <em>geom</em> parameter is not sets, this algorithm is global. <br>
+ 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>
+
+</div>
+</div><p>
+<a class="anchor" name="b2f614599f43d4e9fa905417a0497c0d"></a><!-- doxytag: member="smeshDC::Mesh::Tetrahedron" ref="b2f614599f43d4e9fa905417a0497c0d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Tetrahedron           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>algo</em> = <code><a class="el" href="namespacesmeshDC.html#12e2315ca0c10d490928dcc3b2351864">NETGEN</a></code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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. <br>
+ 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="namespacesmeshDC.html#12e2315ca0c10d490928dcc3b2351864">smesh.NETGEN</a>, <a class="el" href="namespacesmeshDC.html#67ce8984d9b8d988f78b632def748817">smesh.GHS3D</a>, <a class="el" href="namespacesmeshDC.html#118f33758b4f4725cc68db7aebd34083">smesh.FULL_NETGEN</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>
+
+</div>
+</div><p>
+<a class="anchor" name="f588cdeec1d6563d3695c8f92ed06aa9"></a><!-- doxytag: member="smeshDC::Mesh::Hexahedron" ref="f588cdeec1d6563d3695c8f92ed06aa9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Hexahedron           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+If the optional <em>geom</em> parameter is not sets, this algorithm is global. <br>
+ 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>
+
+</div>
+</div><p>
+<a class="anchor" name="9de57f89d45e0dd2e898313fdff5985b"></a><!-- doxytag: member="smeshDC::Mesh::Netgen" ref="9de57f89d45e0dd2e898313fdff5985b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Netgen           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>is3D</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="4a2abf09f54f31e1ef92aa8bd0e0b565"></a><!-- doxytag: member="smeshDC::Mesh::Projection1D" ref="4a2abf09f54f31e1ef92aa8bd0e0b565" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Projection1D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="046a671861717506e4ae530fa4840224"></a><!-- doxytag: member="smeshDC::Mesh::Projection2D" ref="046a671861717506e4ae530fa4840224" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Projection2D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="13ab59da622ec76691c699fbc49d8e1c"></a><!-- doxytag: member="smeshDC::Mesh::Projection3D" ref="13ab59da622ec76691c699fbc49d8e1c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Projection3D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="275acd8686c2569af2f04b8c3315b48c"></a><!-- doxytag: member="smeshDC::Mesh::Prism" ref="275acd8686c2569af2f04b8c3315b48c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Prism           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="f0544a1f249f9d791e94c96920e8945f"></a><!-- doxytag: member="smeshDC::Mesh::Compute" ref="f0544a1f249f9d791e94c96920e8945f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Compute           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="b7785437258a0213f3ffd4b4503c985f"></a><!-- doxytag: member="smeshDC::Mesh::AutomaticTetrahedralization" ref="b7785437258a0213f3ffd4b4503c985f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.AutomaticTetrahedralization           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>fineness</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="da4dd042e7ca959a7b0dbd6b486ed89c"></a><!-- doxytag: member="smeshDC::Mesh::AutomaticHexahedralization" ref="da4dd042e7ca959a7b0dbd6b486ed89c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.AutomaticHexahedralization           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>fineness</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="ead2cc1d3a22fedf1ec79f10912651ba"></a><!-- doxytag: member="smeshDC::Mesh::AddHypothesis" ref="ead2cc1d3a22fedf1ec79f10912651ba" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.AddHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>hyp</em>&nbsp;</td><td>is a hypothesis to assign </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>geom</em>&nbsp;</td><td>is subhape of mesh geometry </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="f54948c4d2cf4f02d3c256d9b641442e"></a><!-- doxytag: member="smeshDC::Mesh::GetHypothesisList" ref="f54948c4d2cf4f02d3c256d9b641442e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetHypothesisList           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>geom</em>&nbsp;</td><td>is subhape of mesh geometry </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="cba551abec7186c4960baa4b455f502b"></a><!-- doxytag: member="smeshDC::Mesh::RemoveGlobalHypotheses" ref="cba551abec7186c4960baa4b455f502b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.RemoveGlobalHypotheses           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="d61dfe7a9c0b8d7448a8c647ab43e515"></a><!-- doxytag: member="smeshDC::Mesh::Group" ref="d61dfe7a9c0b8d7448a8c647ab43e515" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Group           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>grp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em> = <code>&quot;&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH_GroupOnGeom </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="398167a69f2d0e0cbd3eae985790ec5b"></a><!-- doxytag: member="smeshDC::Mesh::ExportToMED" ref="398167a69f2d0e0cbd3eae985790ec5b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ExportToMED           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>f</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>version</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>opt</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Export the mesh in a file with the MED format and choice the <em>version</em> of MED format <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>
+
+</div>
+</div><p>
+<a class="anchor" name="68a16d0cd621d6333c4559525397bbe7"></a><!-- doxytag: member="smeshDC::Mesh::ExportMED" ref="68a16d0cd621d6333c4559525397bbe7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ExportMED           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>f</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>auto_groups</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>version</em> = <code>MED_V2_2</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>auto_groups</em>&nbsp;</td><td>boolean parameter for creating/not creating the groups Group_On_All_Nodes, Group_On_All_Faces, ... ; the typical use is auto_groups=false. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>version</em>&nbsp;</td><td>MED format version(MED_V2_1 or MED_V2_2) </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="1f94daa2d9e8ff9b8c0f908aea5b3dd8"></a><!-- doxytag: member="smeshDC::Mesh::ExportDAT" ref="1f94daa2d9e8ff9b8c0f908aea5b3dd8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ExportDAT           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>f</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="c47b1dd9de46d9cf7b12c0d74a012c73"></a><!-- doxytag: member="smeshDC::Mesh::ExportUNV" ref="c47b1dd9de46d9cf7b12c0d74a012c73" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ExportUNV           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>f</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="1311207ea4fe623bb10d459e2d5c32a0"></a><!-- doxytag: member="smeshDC::Mesh::ExportSTL" ref="1311207ea4fe623bb10d459e2d5c32a0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ExportSTL           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>f</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ascii</em> = <code>1</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="8874fec2213bddb829bc070659f9acbc"></a><!-- doxytag: member="smeshDC::Mesh::CreateEmptyGroup" ref="8874fec2213bddb829bc070659f9acbc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.CreateEmptyGroup           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>elementType</em>&nbsp;</td><td>is the type of elements in the group </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>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Group </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="4670f7c11dac95280c6d83ea895b4405"></a><!-- doxytag: member="smeshDC::Mesh::GroupOnGeom" ref="4670f7c11dac95280c6d83ea895b4405" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GroupOnGeom           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>grp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>typ</em> = <code>None</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH_GroupOnGeom </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="a7ed4ce8c7808568978a30c5232da487"></a><!-- doxytag: member="smeshDC::Mesh::MakeGroupByIds" ref="a7ed4ce8c7808568978a30c5232da487" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.MakeGroupByIds           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>groupName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elemIDs</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>groupName</em>&nbsp;</td><td>is the name of the mesh group </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>elementType</em>&nbsp;</td><td>is the type of elements in the group </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>elemIDs</em>&nbsp;</td><td>is the list of ids </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Group </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="a0297756f379f53f0c689895fbfcb311"></a><!-- doxytag: member="smeshDC::Mesh::MakeGroup" ref="a0297756f379f53f0c689895fbfcb311" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.MakeGroup           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>groupName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>CritType</em> = <code>FT_Undefined</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Compare</em> = <code>FT_EqualTo</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Treshold</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>UnaryOp</em> = <code>FT_Undefined</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>groupName</em>&nbsp;</td><td>is the name of the mesh group </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>elementType</em>&nbsp;</td><td>is the type of elements in the group </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>CritType</em>&nbsp;</td><td>is type of criterion( FT_Taper, FT_Area, FT_RangeOfIds, FT_LyingOnGeom etc. ) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Compare</em>&nbsp;</td><td>belong to {FT_LessThan, FT_MoreThan, FT_EqualTo} </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Treshold</em>&nbsp;</td><td>is threshold value (range of id ids as string, shape, numeric) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>UnaryOp</em>&nbsp;</td><td>is FT_LogicalNOT or FT_Undefined </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Group </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="75a309a3c6c29bf1ac7e2a34cfc98a8c"></a><!-- doxytag: member="smeshDC::Mesh::MakeGroupByCriterion" ref="75a309a3c6c29bf1ac7e2a34cfc98a8c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.MakeGroupByCriterion           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>groupName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Criterion</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>groupName</em>&nbsp;</td><td>is the name of the mesh group </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Criterion</em>&nbsp;</td><td>is the instance of Criterion class </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Group </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="34254deb71e7f191cfe8f0f247e26df3"></a><!-- doxytag: member="smeshDC::Mesh::MakeGroupByCriteria" ref="34254deb71e7f191cfe8f0f247e26df3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.MakeGroupByCriteria           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>groupName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCriteria</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>groupName</em>&nbsp;</td><td>is the name of the mesh group </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Criteria</em>&nbsp;</td><td>is the list of criterions </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Group </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="d793ade055774eeb9b99fac121dc5292"></a><!-- doxytag: member="smeshDC::Mesh::MakeGroupByFilter" ref="d793ade055774eeb9b99fac121dc5292" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.MakeGroupByFilter           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>groupName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFilter</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>groupName</em>&nbsp;</td><td>is the name of the mesh group </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Criterion</em>&nbsp;</td><td>is the instance of Filter class </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Group </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="339c3cdcb9b2253d14d4d205d0e35ec4"></a><!-- doxytag: member="smeshDC::Mesh::GetIdsFromFilter" ref="339c3cdcb9b2253d14d4d205d0e35ec4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetIdsFromFilter           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFilter</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theFilter</em>&nbsp;</td><td>is SMESH_Filter </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>list of ids </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="8784982fbefc8973ac0668c90b0771dd"></a><!-- doxytag: member="smeshDC::Mesh::GetFreeBorders" ref="8784982fbefc8973ac0668c90b0771dd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetFreeBorders           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Returns:</b></dt><dd>list of SMESH.FreeEdges.Border structure: edge id and two its nodes ids. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="3e16e192a6b18ae9b3a2caaeff097618"></a><!-- doxytag: member="smeshDC::Mesh::RemoveGroup" ref="3e16e192a6b18ae9b3a2caaeff097618" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.RemoveGroup           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>group</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="22d530cca860633d021dfa96cf9ef6fd"></a><!-- doxytag: member="smeshDC::Mesh::RemoveGroupWithContents" ref="22d530cca860633d021dfa96cf9ef6fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.RemoveGroupWithContents           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>group</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="23c2a81c48c10eb47931400dfd176867"></a><!-- doxytag: member="smeshDC::Mesh::GetGroups" ref="23c2a81c48c10eb47931400dfd176867" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetGroups           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="475bbb0fa983c0c0ac9d69614849e6da"></a><!-- doxytag: member="smeshDC::Mesh::GetGroupNames" ref="475bbb0fa983c0c0ac9d69614849e6da" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetGroupNames           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="2fa03227010c3cbd0bf096467727cd1e"></a><!-- doxytag: member="smeshDC::Mesh::UnionGroups" ref="2fa03227010c3cbd0bf096467727cd1e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.UnionGroups           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>group1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>group2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+All mesh elements that are present in initial groups are added to the new one 
+</div>
+</div><p>
+<a class="anchor" name="75f9bb08e2900f80254d81b5f41a042b"></a><!-- doxytag: member="smeshDC::Mesh::IntersectGroups" ref="75f9bb08e2900f80254d81b5f41a042b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.IntersectGroups           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>group1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>group2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+All mesh elements that are present in both initial groups are added to the new one. 
+</div>
+</div><p>
+<a class="anchor" name="07ea3708cdcb1ea113246bb79ddc2af2"></a><!-- doxytag: member="smeshDC::Mesh::CutGroups" ref="07ea3708cdcb1ea113246bb79ddc2af2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.CutGroups           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mainGroup</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>toolGroup</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+All mesh elements that are present in main group but do not present in tool group are added to the new one 
+</div>
+</div><p>
+<a class="anchor" name="5927ab5e23104e5abef7e610734e0d5b"></a><!-- doxytag: member="smeshDC::Mesh::GetLog" ref="5927ab5e23104e5abef7e610734e0d5b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetLog           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>clearAfterGet</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>clearAfterGet</em>&nbsp;</td><td>log is emptied after Get (safe if concurrents access) </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>list of log_block structures: commandType number coords indexes </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="65c714c92cf53bdbc58d114944884865"></a><!-- doxytag: member="smeshDC::Mesh::ClearLog" ref="65c714c92cf53bdbc58d114944884865" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ClearLog           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Must be used immediately after GetLog if clearAfterGet is false. 
+</div>
+</div><p>
+<a class="anchor" name="525008123ff68c3f4aa7dcd5fb1c184a"></a><!-- doxytag: member="smeshDC::Mesh::GetId" ref="525008123ff68c3f4aa7dcd5fb1c184a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="a93ece387535f28cd3b644a80d84412f"></a><!-- doxytag: member="smeshDC::Mesh::GetStudyId" ref="a93ece387535f28cd3b644a80d84412f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetStudyId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="997c82163320ed98e1f170d33b81bdc8"></a><!-- doxytag: member="smeshDC::Mesh::HasDuplicatedGroupNamesMED" ref="997c82163320ed98e1f170d33b81bdc8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.HasDuplicatedGroupNamesMED           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Consider maximum group name length stored in MED file. 
+</div>
+</div><p>
+<a class="anchor" name="66ae25fc3c278592ba3a23a9973de5ca"></a><!-- doxytag: member="smeshDC::Mesh::GetMeshEditor" ref="66ae25fc3c278592ba3a23a9973de5ca" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetMeshEditor           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="0cb466605e4826639a1c2606b03e51de"></a><!-- doxytag: member="smeshDC::Mesh::GetMEDMesh" ref="0cb466605e4826639a1c2606b03e51de" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetMEDMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="2584e68d5f83e2472dc31f672032b830"></a><!-- doxytag: member="smeshDC::Mesh::NbNodes" ref="2584e68d5f83e2472dc31f672032b830" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbNodes           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="32aca468f35dee817c574f685c19340c"></a><!-- doxytag: member="smeshDC::Mesh::NbElements" ref="32aca468f35dee817c574f685c19340c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbElements           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="2a5a6924c6917c3edd61381f7767f2ce"></a><!-- doxytag: member="smeshDC::Mesh::NbEdges" ref="2a5a6924c6917c3edd61381f7767f2ce" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbEdges           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="a8cc56138278b062b3fc61b343b9a9b0"></a><!-- doxytag: member="smeshDC::Mesh::NbEdgesOfOrder" ref="a8cc56138278b062b3fc61b343b9a9b0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbEdgesOfOrder           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementOrder</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="3e98a54848efa261461d04bcc37c032c"></a><!-- doxytag: member="smeshDC::Mesh::NbFaces" ref="3e98a54848efa261461d04bcc37c032c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbFaces           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cb2398ea3a1ad0f83daba071af271ae3"></a><!-- doxytag: member="smeshDC::Mesh::NbFacesOfOrder" ref="cb2398ea3a1ad0f83daba071af271ae3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbFacesOfOrder           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementOrder</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="24a43384422c391646fbb9c77084f44f"></a><!-- doxytag: member="smeshDC::Mesh::NbTriangles" ref="24a43384422c391646fbb9c77084f44f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbTriangles           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="72022a3452810f55ff254e304bc12d4b"></a><!-- doxytag: member="smeshDC::Mesh::NbTrianglesOfOrder" ref="72022a3452810f55ff254e304bc12d4b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbTrianglesOfOrder           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementOrder</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="ae13cdc351ee0c608ed91835bdd5317a"></a><!-- doxytag: member="smeshDC::Mesh::NbQuadrangles" ref="ae13cdc351ee0c608ed91835bdd5317a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbQuadrangles           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="74597459a83d05097fa3a159b4f4fa05"></a><!-- doxytag: member="smeshDC::Mesh::NbQuadranglesOfOrder" ref="74597459a83d05097fa3a159b4f4fa05" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbQuadranglesOfOrder           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementOrder</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="900f9dd693371843c6ab877d5a42382a"></a><!-- doxytag: member="smeshDC::Mesh::NbPolygons" ref="900f9dd693371843c6ab877d5a42382a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbPolygons           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="3fa7ae366a834f698a097976028e7d28"></a><!-- doxytag: member="smeshDC::Mesh::NbVolumes" ref="3fa7ae366a834f698a097976028e7d28" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbVolumes           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="c82174b2e7063aebc6700930be4b66b2"></a><!-- doxytag: member="smeshDC::Mesh::NbVolumesOfOrder" ref="c82174b2e7063aebc6700930be4b66b2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbVolumesOfOrder           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementOrder</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="36e3b930b278620e8e467aef77bda9b4"></a><!-- doxytag: member="smeshDC::Mesh::NbTetras" ref="36e3b930b278620e8e467aef77bda9b4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbTetras           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="1f2e5161166e9eacafb404e14331ea42"></a><!-- doxytag: member="smeshDC::Mesh::NbTetrasOfOrder" ref="1f2e5161166e9eacafb404e14331ea42" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbTetrasOfOrder           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementOrder</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="06c95e05917e4a7f5caebb439b3d0f7b"></a><!-- doxytag: member="smeshDC::Mesh::NbHexas" ref="06c95e05917e4a7f5caebb439b3d0f7b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbHexas           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="7ce22fe449679f671eb98154c133ac91"></a><!-- doxytag: member="smeshDC::Mesh::NbHexasOfOrder" ref="7ce22fe449679f671eb98154c133ac91" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbHexasOfOrder           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementOrder</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="39f3b03a825603e0c3c8c2fd8fa35685"></a><!-- doxytag: member="smeshDC::Mesh::NbPyramids" ref="39f3b03a825603e0c3c8c2fd8fa35685" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbPyramids           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="80ee709b9f8bf2d706833f2010a6873b"></a><!-- doxytag: member="smeshDC::Mesh::NbPyramidsOfOrder" ref="80ee709b9f8bf2d706833f2010a6873b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbPyramidsOfOrder           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementOrder</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="00a2ee826040c763152c28bc2f45d54d"></a><!-- doxytag: member="smeshDC::Mesh::NbPrisms" ref="00a2ee826040c763152c28bc2f45d54d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbPrisms           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="bd0854dc0bd1520d566d3e9f59d7ec22"></a><!-- doxytag: member="smeshDC::Mesh::NbPrismsOfOrder" ref="bd0854dc0bd1520d566d3e9f59d7ec22" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbPrismsOfOrder           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementOrder</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="5025ca15b456b79f18c5f487f525aa1d"></a><!-- doxytag: member="smeshDC::Mesh::NbPolyhedrons" ref="5025ca15b456b79f18c5f487f525aa1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbPolyhedrons           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6e50c4f6b5e8fd20526ae6a2cf4b4b3d"></a><!-- doxytag: member="smeshDC::Mesh::NbSubMesh" ref="6e50c4f6b5e8fd20526ae6a2cf4b4b3d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.NbSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="e634c3574cfe53f945ec937a15a1a5a4"></a><!-- doxytag: member="smeshDC::Mesh::GetElementsId" ref="e634c3574cfe53f945ec937a15a1a5a4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetElementsId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="e26ef77b1133bcba8d694220a43bb0c7"></a><!-- doxytag: member="smeshDC::Mesh::GetElementsByType" ref="e26ef77b1133bcba8d694220a43bb0c7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetElementsByType           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementType</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>elementType</em>&nbsp;</td><td>is required type of elements </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="548dd7ee73c4f714a976233520f1afe7"></a><!-- doxytag: member="smeshDC::Mesh::GetNodesId" ref="548dd7ee73c4f714a976233520f1afe7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetNodesId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="c2cecd9dda12f1bb0ace5d0fbf83cd56"></a><!-- doxytag: member="smeshDC::Mesh::GetElementType" ref="c2cecd9dda12f1bb0ace5d0fbf83cd56" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetElementType           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>iselem</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="b68f23b2eade0a29627e85f3ad6073b2"></a><!-- doxytag: member="smeshDC::Mesh::GetSubMeshElementsId" ref="b68f23b2eade0a29627e85f3ad6073b2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetSubMeshElementsId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>shapeID</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>shapeID</em>&nbsp;</td><td>is geom object(subshape) IOR </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="2efd22f2dee3f2f0a118a4ceb6793716"></a><!-- doxytag: member="smeshDC::Mesh::GetSubMeshNodesId" ref="2efd22f2dee3f2f0a118a4ceb6793716" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetSubMeshNodesId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>shapeID</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>all</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>shapeID</em>&nbsp;</td><td>is geom object(subshape) IOR </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="4b29aa5027d111923d72130b2ce8e37c"></a><!-- doxytag: member="smeshDC::Mesh::GetSubMeshElementType" ref="4b29aa5027d111923d72130b2ce8e37c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetSubMeshElementType           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>shapeID</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>shapeID</em>&nbsp;</td><td>is geom object(subshape) IOR </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="ede2e5f1f4aad2f6a3e2618efb879d02"></a><!-- doxytag: member="smeshDC::Mesh::Dump" ref="ede2e5f1f4aad2f6a3e2618efb879d02" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Dump           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="ac4b569cd8022047a473edbe4f216802"></a><!-- doxytag: member="smeshDC::Mesh::GetNodeXYZ" ref="ac4b569cd8022047a473edbe4f216802" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetNodeXYZ           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="ea303e542d760d9748e6f4adb657f434"></a><!-- doxytag: member="smeshDC::Mesh::GetNodeInverseElements" ref="ea303e542d760d9748e6f4adb657f434" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetNodeInverseElements           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="95bd2c550e6485befcada57b13029242"></a><!-- doxytag: member="smeshDC::Mesh::GetShapeID" ref="95bd2c550e6485befcada57b13029242" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetShapeID           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="37691b345bd2fe31129f5d306c7285ff"></a><!-- doxytag: member="smeshDC::Mesh::GetShapeIDForElem" ref="37691b345bd2fe31129f5d306c7285ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetShapeIDForElem           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="ea4c97bd804514962ff613a9545a99c3"></a><!-- doxytag: member="smeshDC::Mesh::GetElemNbNodes" ref="ea4c97bd804514962ff613a9545a99c3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetElemNbNodes           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="795fb7cd896a9336c2fb287edba1df46"></a><!-- doxytag: member="smeshDC::Mesh::GetElemNode" ref="795fb7cd896a9336c2fb287edba1df46" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetElemNode           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="7f8130a3b16c8459d0c8ad23389b3dac"></a><!-- doxytag: member="smeshDC::Mesh::IsMediumNode" ref="7f8130a3b16c8459d0c8ad23389b3dac" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.IsMediumNode           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementID</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>nodeID</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="e405cf3b31ed146203c601d268824e34"></a><!-- doxytag: member="smeshDC::Mesh::IsMediumNodeOfAnyElem" ref="e405cf3b31ed146203c601d268824e34" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.IsMediumNodeOfAnyElem           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>nodeID</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementType</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="4775548250a94a28fdc4349df6b5e664"></a><!-- doxytag: member="smeshDC::Mesh::ElemNbEdges" ref="4775548250a94a28fdc4349df6b5e664" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ElemNbEdges           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="4c42af133c335bb357f847e2dcc95a3e"></a><!-- doxytag: member="smeshDC::Mesh::ElemNbFaces" ref="4c42af133c335bb357f847e2dcc95a3e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ElemNbFaces           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="2d3c8a45cb35fed969935471438dd229"></a><!-- doxytag: member="smeshDC::Mesh::IsPoly" ref="2d3c8a45cb35fed969935471438dd229" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.IsPoly           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="de565d48cd768a56da73df5eb12c8c4b"></a><!-- doxytag: member="smeshDC::Mesh::IsQuadratic" ref="de565d48cd768a56da73df5eb12c8c4b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.IsQuadratic           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="c9c7f540a885ad5718f28c1b1cc8cc74"></a><!-- doxytag: member="smeshDC::Mesh::BaryCenter" ref="c9c7f540a885ad5718f28c1b1cc8cc74" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.BaryCenter           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="d71d7b886bb422f3eea601d22b4b419d"></a><!-- doxytag: member="smeshDC::Mesh::RemoveElements" ref="d71d7b886bb422f3eea601d22b4b419d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.RemoveElements           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfElements</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfElements</em>&nbsp;</td><td>is list of ids of elements to remove </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="867a060a8a8ee32c75dcced1da15b022"></a><!-- doxytag: member="smeshDC::Mesh::RemoveNodes" ref="867a060a8a8ee32c75dcced1da15b022" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.RemoveNodes           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfNodes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfNodes</em>&nbsp;</td><td>is list of ids of nodes to remove </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="a4acf9d064dbf154f1f07cf18601c0ea"></a><!-- doxytag: member="smeshDC::Mesh::AddNode" ref="a4acf9d064dbf154f1f07cf18601c0ea" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.AddNode           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>z</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="26131c97ad04a78613bdae200bb17660"></a><!-- doxytag: member="smeshDC::Mesh::AddEdge" ref="26131c97ad04a78613bdae200bb17660" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.AddEdge           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfNodes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IdsOfNodes</em>&nbsp;</td><td>List of node IDs for creation of element. Needed order of nodes in this list corresponds to description of MED. <br>
+ This description is located by the following link: <a href="http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.">http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.</a> </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="7120695c0343590b47ef6e8f02766fa4"></a><!-- doxytag: member="smeshDC::Mesh::AddFace" ref="7120695c0343590b47ef6e8f02766fa4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.AddFace           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfNodes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IdsOfNodes</em>&nbsp;</td><td>List of node IDs for creation of element. Needed order of nodes in this list corresponds to description of MED. <br>
+ This description is located by the following link: <a href="http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.">http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.</a> </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="3d6fc9c8186016f2e37e4f2185d11446"></a><!-- doxytag: member="smeshDC::Mesh::AddPolygonalFace" ref="3d6fc9c8186016f2e37e4f2185d11446" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.AddPolygonalFace           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IdsOfNodes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="3ae39f43bb819ce72356e1ed1fd88589"></a><!-- doxytag: member="smeshDC::Mesh::AddVolume" ref="3ae39f43bb819ce72356e1ed1fd88589" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.AddVolume           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfNodes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IdsOfNodes</em>&nbsp;</td><td>List of node IDs for creation of element. Needed order of nodes in this list corresponds to description of MED. <br>
+ This description is located by the following link: <a href="http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.">http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.</a> </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="4a537d81fc2a84c90dea4159c788f37c"></a><!-- doxytag: member="smeshDC::Mesh::AddPolyhedralVolume" ref="4a537d81fc2a84c90dea4159c788f37c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.AddPolyhedralVolume           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IdsOfNodes</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Quantities</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IdsOfNodes</em>&nbsp;</td><td>List of node IDs for volume creation face by face. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Quantities</em>&nbsp;</td><td>List of integer values, Quantities[i] gives quantity of nodes in face number i. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="7c54c114d76ed3f108863a9639a17ca8"></a><!-- doxytag: member="smeshDC::Mesh::AddPolyhedralVolumeByFaces" ref="7c54c114d76ed3f108863a9639a17ca8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.AddPolyhedralVolumeByFaces           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IdsOfFaces</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IdsOfFaces</em>&nbsp;</td><td>List of face IDs for volume creation.</td></tr>
+  </table>
+</dl>
+Note: The created volume will refer only to nodes of the given faces, not to the faces itself. 
+</div>
+</div><p>
+<a class="anchor" name="3a1236e58d50d925689b76e1e923f455"></a><!-- doxytag: member="smeshDC::Mesh::MoveNode" ref="3a1236e58d50d925689b76e1e923f455" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.MoveNode           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NodeID</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>z</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>NodeID</em>&nbsp;</td><td>id of the node </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>new X coordinate </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>new Y coordinate </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>new Z coordinate </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="305fdba055982c393cfbbdb6dbb50646"></a><!-- doxytag: member="smeshDC::Mesh::FindNodeClosestTo" ref="305fdba055982c393cfbbdb6dbb50646" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.FindNodeClosestTo           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>z</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>x</em>&nbsp;</td><td>X coordinate of a point </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y coordinate of a point </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>Z coordinate of a point </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>id of a node </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="fd794d99dc4539f0b3c04f9a9372d476"></a><!-- doxytag: member="smeshDC::Mesh::MeshToPassThroughAPoint" ref="fd794d99dc4539f0b3c04f9a9372d476" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.MeshToPassThroughAPoint           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>z</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>x</em>&nbsp;</td><td>X coordinate of a point </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y coordinate of a point </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>Z coordinate of a point </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>id of a moved node </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="d5a94fade689f8efc3ed2c9e8ab7c7b1"></a><!-- doxytag: member="smeshDC::Mesh::InverseDiag" ref="d5a94fade689f8efc3ed2c9e8ab7c7b1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.InverseDiag           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NodeID1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NodeID2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>NodeID1</em>&nbsp;</td><td>first node id </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NodeID2</em>&nbsp;</td><td>second node id </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>false if proper faces not found </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="b76da5a684955529e10b291b421967f2"></a><!-- doxytag: member="smeshDC::Mesh::DeleteDiag" ref="b76da5a684955529e10b291b421967f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.DeleteDiag           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NodeID1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NodeID2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>NodeID1</em>&nbsp;</td><td>first node id </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NodeID2</em>&nbsp;</td><td>second node id </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>false if proper faces not found </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="cf69091c91c36ce5335e4da2631ef7b6"></a><!-- doxytag: member="smeshDC::Mesh::Reorient" ref="cf69091c91c36ce5335e4da2631ef7b6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Reorient           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfElements</em> = <code>None</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfElements</em>&nbsp;</td><td>if undefined reorient all mesh elements </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="735a23aa0c42779067e6cc81be38dee3"></a><!-- doxytag: member="smeshDC::Mesh::ReorientObject" ref="735a23aa0c42779067e6cc81be38dee3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ReorientObject           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theObject</em>&nbsp;</td><td>is mesh, submesh or group </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="d0af9e5504148afa14cbfe672f05eb99"></a><!-- doxytag: member="smeshDC::Mesh::TriToQuad" ref="d0af9e5504148afa14cbfe672f05eb99" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.TriToQuad           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfElements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCriterion</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>MaxAngle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfElements</em>&nbsp;</td><td>The triangles to be fused, </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theCriterion</em>&nbsp;</td><td>is FT_...; used to choose a neighbour to fuse with. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>MaxAngle</em>&nbsp;</td><td>is a max angle between element normals at which fusion is still performed; theMaxAngle is mesured in radians. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>TRUE in case of success, FALSE otherwise. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="b460127d4a11dc7093673699aa596251"></a><!-- doxytag: member="smeshDC::Mesh::TriToQuadObject" ref="b460127d4a11dc7093673699aa596251" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.TriToQuadObject           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCriterion</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>MaxAngle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theObject</em>&nbsp;</td><td>is mesh, submesh or group </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theCriterion</em>&nbsp;</td><td>is FT_...; used to choose a neighbour to fuse with. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>MaxAngle</em>&nbsp;</td><td>is a max angle between element normals at which fusion is still performed; theMaxAngle is mesured in radians. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>TRUE in case of success, FALSE otherwise. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="0ed805191162c718c85f628da184399a"></a><!-- doxytag: member="smeshDC::Mesh::QuadToTri" ref="0ed805191162c718c85f628da184399a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.QuadToTri           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfElements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCriterion</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfElements</em>&nbsp;</td><td>the faces to be splitted. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theCriterion</em>&nbsp;</td><td>is FT_...; used to choose a diagonal for splitting. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em></em>&nbsp;</td><td>TRUE in case of success, FALSE otherwise. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="1338b63884c90a486869d1ca6bc1e5f3"></a><!-- doxytag: member="smeshDC::Mesh::QuadToTriObject" ref="1338b63884c90a486869d1ca6bc1e5f3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.QuadToTriObject           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCriterion</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theObject</em>&nbsp;</td><td>object to taking list of elements from, is mesh, submesh or group </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theCriterion</em>&nbsp;</td><td>is FT_...; used to choose a diagonal for splitting. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="79bebb3280d8727e0aa63abf72895e00"></a><!-- doxytag: member="smeshDC::Mesh::SplitQuad" ref="79bebb3280d8727e0aa63abf72895e00" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SplitQuad           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfElements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Diag13</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theElems</em>&nbsp;</td><td>The faces to be splitted </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>the13Diag</em>&nbsp;</td><td>is used to choose a diagonal for splitting. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>TRUE in case of success, FALSE otherwise. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="9f72cd3ce05553fa81cb9ab55276c6e3"></a><!-- doxytag: member="smeshDC::Mesh::SplitQuadObject" ref="9f72cd3ce05553fa81cb9ab55276c6e3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SplitQuadObject           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Diag13</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theObject</em>&nbsp;</td><td>is object to taking list of elements from, is mesh, submesh or group </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="0ccd083fa2ca43dca1df29a07dbc61d9"></a><!-- doxytag: member="smeshDC::Mesh::BestSplit" ref="0ccd083fa2ca43dca1df29a07dbc61d9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.BestSplit           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDOfQuad</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCriterion</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDOfQuad</em>&nbsp;</td><td>ID of the quadrangle to be splitted. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theCriterion</em>&nbsp;</td><td>is FT_...; a criterion to choose a diagonal for splitting. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>1 if 1-3 diagonal is better, 2 if 2-4 diagonal is better, 0 if error occurs. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="c458281ac5240ea90076231f2ac91b7f"></a><!-- doxytag: member="smeshDC::Mesh::SplitQuadsNearTriangularFacets" ref="c458281ac5240ea90076231f2ac91b7f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SplitQuadsNearTriangularFacets           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="15037374765f1e7439997f1a2416590b"></a><!-- doxytag: member="smeshDC::Mesh::SplitHexaToTetras" ref="15037374765f1e7439997f1a2416590b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SplitHexaToTetras           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theNode000</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theNode001</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Use pattern mapping functionality for splitting. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>object to take list of hexahedrons from; is mesh, submesh or group. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theNode000,theNode001</em>&nbsp;</td><td>is in range [0,7]; give an orientation of the pattern relatively each hexahedron: the (0,0,0) key-point of pattern will be mapped into &lt;theNode000&gt;-th node of each volume, the (0,0,1) key-point will be mapped into &lt;theNode001&gt;-th node of each volume. The (0,0,0) key-point of used pattern corresponds to not split corner. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em></em>&nbsp;</td><td>TRUE in case of success, FALSE otherwise. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="bcb5ef95810e1c2a8edb3041a73bf339"></a><!-- doxytag: member="smeshDC::Mesh::SplitHexaToPrisms" ref="bcb5ef95810e1c2a8edb3041a73bf339" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SplitHexaToPrisms           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theNode000</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theNode001</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Use pattern mapping functionality for splitting. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>object to take list of hexahedrons from; is mesh, submesh or group. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theNode000,theNode001</em>&nbsp;</td><td>is in range [0,7]; give an orientation of the pattern relatively each hexahedron: the (0,0,0) key-point of pattern will be mapped into &lt;theNode000&gt;-th node of each volume, the (0,0,1) key-point will be mapped into &lt;theNode001&gt;-th node of each volume. The edge (0,0,0)-(0,0,1) of used pattern connects two not split corners. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em></em>&nbsp;</td><td>TRUE in case of success, FALSE otherwise. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="47625763762791aa12b279915db0f5bb"></a><!-- doxytag: member="smeshDC::Mesh::Smooth" ref="47625763762791aa12b279915db0f5bb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Smooth           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfElements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfFixedNodes</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>MaxNbOfIterations</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>MaxAspectRatio</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Method</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfElements</em>&nbsp;</td><td>list if ids of elements to smooth </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>IDsOfFixedNodes</em>&nbsp;</td><td>list of ids of fixed nodes. Note that nodes built on edges and boundary nodes are always fixed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>MaxNbOfIterations</em>&nbsp;</td><td>maximum number of iterations </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>MaxAspectRatio</em>&nbsp;</td><td>varies in range [1.0, inf] </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Method</em>&nbsp;</td><td>is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH) </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="02b0945fb6cba824e7a02398d58ff2d2"></a><!-- doxytag: member="smeshDC::Mesh::SmoothObject" ref="02b0945fb6cba824e7a02398d58ff2d2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SmoothObject           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfFixedNodes</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>MaxNbOfIterations</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>MaxxAspectRatio</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Method</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theObject</em>&nbsp;</td><td>object to smooth </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>IDsOfFixedNodes</em>&nbsp;</td><td>list of ids of fixed nodes. Note that nodes built on edges and boundary nodes are always fixed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>MaxNbOfIterations</em>&nbsp;</td><td>maximum number of iterations </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>MaxAspectRatio</em>&nbsp;</td><td>varies in range [1.0, inf] </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Method</em>&nbsp;</td><td>is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH) </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="576f1975cee8eccb70bddcbf5c79a1b8"></a><!-- doxytag: member="smeshDC::Mesh::SmoothParametric" ref="576f1975cee8eccb70bddcbf5c79a1b8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SmoothParametric           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfElements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfFixedNodes</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>MaxNbOfIterations</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>MaxAspectRatio</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Method</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfElements</em>&nbsp;</td><td>list if ids of elements to smooth </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>IDsOfFixedNodes</em>&nbsp;</td><td>list of ids of fixed nodes. Note that nodes built on edges and boundary nodes are always fixed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>MaxNbOfIterations</em>&nbsp;</td><td>maximum number of iterations </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>MaxAspectRatio</em>&nbsp;</td><td>varies in range [1.0, inf] </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Method</em>&nbsp;</td><td>is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH) </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="e6188d5cbc547c960b65cbf03a64c360"></a><!-- doxytag: member="smeshDC::Mesh::SmoothParametricObject" ref="e6188d5cbc547c960b65cbf03a64c360" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SmoothParametricObject           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfFixedNodes</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>MaxNbOfIterations</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>MaxAspectRatio</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Method</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theObject</em>&nbsp;</td><td>object to smooth </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>IDsOfFixedNodes</em>&nbsp;</td><td>list of ids of fixed nodes. Note that nodes built on edges and boundary nodes are always fixed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>MaxNbOfIterations</em>&nbsp;</td><td>maximum number of iterations </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>MaxAspectRatio</em>&nbsp;</td><td>varies in range [1.0, inf] </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Method</em>&nbsp;</td><td>is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH) </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="950b615f72cf87e1b1f30b9bcba1def7"></a><!-- doxytag: member="smeshDC::Mesh::ConvertToQuadratic" ref="950b615f72cf87e1b1f30b9bcba1def7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ConvertToQuadratic           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theForce3d</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="63fdf86ae5a1c450d372789732dc85ed"></a><!-- doxytag: member="smeshDC::Mesh::ConvertFromQuadratic" ref="63fdf86ae5a1c450d372789732dc85ed" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ConvertFromQuadratic           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="8b7a1f81371994a5fcbb58b56ec26382"></a><!-- doxytag: member="smeshDC::Mesh::RenumberNodes" ref="8b7a1f81371994a5fcbb58b56ec26382" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.RenumberNodes           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="05d3b3ae8bda7842bc69a72b9426a69d"></a><!-- doxytag: member="smeshDC::Mesh::RenumberElements" ref="05d3b3ae8bda7842bc69a72b9426a69d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.RenumberElements           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="51fafc65b1c00aa71fb3368302879e90"></a><!-- doxytag: member="smeshDC::Mesh::RotationSweep" ref="51fafc65b1c00aa71fb3368302879e90" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.RotationSweep           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfElements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Axix</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>AngleInRadians</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NbOfSteps</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Tolerance</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfElements</em>&nbsp;</td><td>list of ids of elements to sweep </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Axix</em>&nbsp;</td><td>axis of rotation, AxisStruct or line(geom object) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>AngleInRadians</em>&nbsp;</td><td>angle of Rotation </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NbOfSteps</em>&nbsp;</td><td>number of steps </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Tolerance</em>&nbsp;</td><td>tolerance </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="e1801356bd22826c806ff0991e44e9ab"></a><!-- doxytag: member="smeshDC::Mesh::RotationSweepObject" ref="e1801356bd22826c806ff0991e44e9ab" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.RotationSweepObject           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Axix</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>AngleInRadians</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NbOfSteps</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Tolerance</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theObject</em>&nbsp;</td><td>object wich elements should be sweeped </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Axix</em>&nbsp;</td><td>axis of rotation, AxisStruct or line(geom object) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>AngleInRadians</em>&nbsp;</td><td>angle of Rotation </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NbOfSteps</em>&nbsp;</td><td>number of steps </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Tolerance</em>&nbsp;</td><td>tolerance </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="a9104edbd7b7c6cbc3b1ba9538ed9f59"></a><!-- doxytag: member="smeshDC::Mesh::ExtrusionSweep" ref="a9104edbd7b7c6cbc3b1ba9538ed9f59" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ExtrusionSweep           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfElements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>StepVector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NbOfSteps</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfElements</em>&nbsp;</td><td>list of elements ids for extrusion </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>StepVector</em>&nbsp;</td><td>vector, defining the direction and value of extrusion </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NbOfSteps</em>&nbsp;</td><td>the number of steps </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="f67f780ee272071948ac9ef85373dc3a"></a><!-- doxytag: member="smeshDC::Mesh::AdvancedExtrusion" ref="f67f780ee272071948ac9ef85373dc3a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.AdvancedExtrusion           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfElements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>StepVector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NbOfSteps</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ExtrFlags</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>SewTolerance</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfElements</em>&nbsp;</td><td>is ids of elements </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>StepVector</em>&nbsp;</td><td>vector, defining the direction and value of extrusion </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NbOfSteps</em>&nbsp;</td><td>the number of steps </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>ExtrFlags</em>&nbsp;</td><td>set flags for performing extrusion </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>SewTolerance</em>&nbsp;</td><td>uses for comparing locations of nodes if flag EXTRUSION_FLAG_SEW is set </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="42c025c8067cc5cc0090d6ec1412ad4d"></a><!-- doxytag: member="smeshDC::Mesh::ExtrusionSweepObject" ref="42c025c8067cc5cc0090d6ec1412ad4d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ExtrusionSweepObject           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>StepVector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NbOfSteps</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theObject</em>&nbsp;</td><td>object wich elements should be processed </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>StepVector</em>&nbsp;</td><td>vector, defining the direction and value of extrusion </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NbOfSteps</em>&nbsp;</td><td>the number of steps </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="e95c632534893826ba9946d97caef095"></a><!-- doxytag: member="smeshDC::Mesh::ExtrusionSweepObject1D" ref="e95c632534893826ba9946d97caef095" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ExtrusionSweepObject1D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>StepVector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NbOfSteps</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theObject</em>&nbsp;</td><td>object wich elements should be processed </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>StepVector</em>&nbsp;</td><td>vector, defining the direction and value of extrusion </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NbOfSteps</em>&nbsp;</td><td>the number of steps </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="43fb0ee239a93e665d6d7cb743b08325"></a><!-- doxytag: member="smeshDC::Mesh::ExtrusionSweepObject2D" ref="43fb0ee239a93e665d6d7cb743b08325" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ExtrusionSweepObject2D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>StepVector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NbOfSteps</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theObject</em>&nbsp;</td><td>object wich elements should be processed </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>StepVector</em>&nbsp;</td><td>vector, defining the direction and value of extrusion </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NbOfSteps</em>&nbsp;</td><td>the number of steps </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="faef42567ec17757143a6b0b1b0ffd14"></a><!-- doxytag: member="smeshDC::Mesh::ExtrusionAlongPath" ref="faef42567ec17757143a6b0b1b0ffd14" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ExtrusionAlongPath           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfElements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>PathMesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>PathShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NodeStart</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>HasAngles</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Angles</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>HasRefPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>RefPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>LinearVariation</em> = <code>False</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfElements</em>&nbsp;</td><td>is ids of elements </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>PathMesh</em>&nbsp;</td><td>mesh containing a 1D sub-mesh on the edge, along which proceeds the extrusion </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>PathShape</em>&nbsp;</td><td>is shape(edge); as the mesh can be complex, the edge is used to define the sub-mesh for the path </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NodeStart</em>&nbsp;</td><td>the first or the last node on the edge. It is used to define the direction of extrusion </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>HasAngles</em>&nbsp;</td><td>allows the shape to be rotated around the path to get the resulting mesh in a helical fashion </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Angles</em>&nbsp;</td><td>list of angles </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>HasRefPoint</em>&nbsp;</td><td>allows to use base point </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>RefPoint</em>&nbsp;</td><td>point around which the shape is rotated(the mass center of the shape by default). User can specify any point as the Base Point and the shape will be rotated with respect to this point. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>LinearVariation</em>&nbsp;</td><td>makes compute rotation angles as linear variation of given Angles along path steps </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="802c0f3464746978efbf0194bb7472fc"></a><!-- doxytag: member="smeshDC::Mesh::ExtrusionAlongPathObject" ref="802c0f3464746978efbf0194bb7472fc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ExtrusionAlongPathObject           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>PathMesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>PathShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NodeStart</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>HasAngles</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Angles</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>HasRefPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>RefPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>LinearVariation</em> = <code>False</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfElements</em>&nbsp;</td><td>is ids of elements </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>PathMesh</em>&nbsp;</td><td>mesh containing a 1D sub-mesh on the edge, along which proceeds the extrusion </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>PathShape</em>&nbsp;</td><td>is shape(edge); as the mesh can be complex, the edge is used to define the sub-mesh for the path </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NodeStart</em>&nbsp;</td><td>the first or the last node on the edge. It is used to define the direction of extrusion </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>HasAngles</em>&nbsp;</td><td>allows the shape to be rotated around the path to get the resulting mesh in a helical fashion </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Angles</em>&nbsp;</td><td>list of angles </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>HasRefPoint</em>&nbsp;</td><td>allows to use base point </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>RefPoint</em>&nbsp;</td><td>point around which the shape is rotated(the mass center of the shape by default). User can specify any point as the Base Point and the shape will be rotated with respect to this point. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>LinearVariation</em>&nbsp;</td><td>makes compute rotation angles as linear variation of given Angles along path steps </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="4f24d9ac04c1f7adb4ce72630103b39e"></a><!-- doxytag: member="smeshDC::Mesh::Mirror" ref="4f24d9ac04c1f7adb4ce72630103b39e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Mirror           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfElements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Mirror</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theMirrorType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Copy</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfElements</em>&nbsp;</td><td>list of elements ids </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Mirror</em>&nbsp;</td><td>is AxisStruct or geom object(point, line, plane) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theMirrorType</em>&nbsp;</td><td>is POINT, AXIS or PLANE If the Mirror is geom object this parameter is unnecessary </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Copy</em>&nbsp;</td><td>allows to copy element(Copy is 1) or to replace with its mirroring(Copy is 0) </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="921c02f7d4778d395bcab56d067207e4"></a><!-- doxytag: member="smeshDC::Mesh::MirrorObject" ref="921c02f7d4778d395bcab56d067207e4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.MirrorObject           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Mirror</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theMirrorType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Copy</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theObject</em>&nbsp;</td><td>mesh, submesh or group </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Mirror</em>&nbsp;</td><td>is AxisStruct or geom object(point, line, plane) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theMirrorType</em>&nbsp;</td><td>is POINT, AXIS or PLANE If the Mirror is geom object this parameter is unnecessary </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Copy</em>&nbsp;</td><td>allows to copy element(Copy is 1) or to replace with its mirroring(Copy is 0) </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="1e2faa9a7a0d7f38608bc5b4c4e9102a"></a><!-- doxytag: member="smeshDC::Mesh::Translate" ref="1e2faa9a7a0d7f38608bc5b4c4e9102a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Translate           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfElements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Vector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Copy</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfElements</em>&nbsp;</td><td>list of elements ids </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Vector</em>&nbsp;</td><td>direction of translation(DirStruct or vector) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Copy</em>&nbsp;</td><td>allows to copy the translated elements </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="22ec87ab4df5e8998e574e8c05a9723a"></a><!-- doxytag: member="smeshDC::Mesh::TranslateObject" ref="22ec87ab4df5e8998e574e8c05a9723a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.TranslateObject           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Vector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Copy</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theObject</em>&nbsp;</td><td>object to translate(mesh, submesh, or group) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Vector</em>&nbsp;</td><td>direction of translation(DirStruct or geom vector) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Copy</em>&nbsp;</td><td>allows to copy the translated elements </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="228afef21b2340aa09e0b193f59001b0"></a><!-- doxytag: member="smeshDC::Mesh::Rotate" ref="228afef21b2340aa09e0b193f59001b0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.Rotate           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfElements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Axis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>AngleInRadians</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Copy</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>IDsOfElements</em>&nbsp;</td><td>list of elements ids </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Axis</em>&nbsp;</td><td>axis of rotation(AxisStruct or geom line) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>AngleInRadians</em>&nbsp;</td><td>angle of rotation(in radians) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Copy</em>&nbsp;</td><td>allows to copy the rotated elements </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="aaf823b609d2b45aee3f2751b32c8d2d"></a><!-- doxytag: member="smeshDC::Mesh::RotateObject" ref="aaf823b609d2b45aee3f2751b32c8d2d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.RotateObject           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Axis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>AngleInRadians</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Copy</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theObject</em>&nbsp;</td><td>object to rotate(mesh, submesh, or group) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Axis</em>&nbsp;</td><td>axis of rotation(AxisStruct or geom line) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>AngleInRadians</em>&nbsp;</td><td>angle of rotation(in radians) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Copy</em>&nbsp;</td><td>allows to copy the rotated elements </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="264d2001aebb0e526af2bf9495750f6c"></a><!-- doxytag: member="smeshDC::Mesh::FindCoincidentNodes" ref="264d2001aebb0e526af2bf9495750f6c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.FindCoincidentNodes           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Tolerance</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>Tolerance</em>&nbsp;</td><td>tolerance value </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of group of nodes </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="b05f9ed75d38e2038924b88cdfd546ae"></a><!-- doxytag: member="smeshDC::Mesh::FindCoincidentNodesOnPart" ref="b05f9ed75d38e2038924b88cdfd546ae" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.FindCoincidentNodesOnPart           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>SubMeshOrGroup</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Tolerance</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>Tolerance</em>&nbsp;</td><td>tolerance value </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>SubMeshOrGroup</em>&nbsp;</td><td>SubMesh or Group </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of group of nodes </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="503c866e8a58227e6d70877843b96e4a"></a><!-- doxytag: member="smeshDC::Mesh::MergeNodes" ref="503c866e8a58227e6d70877843b96e4a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.MergeNodes           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>GroupsOfNodes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>list</em>&nbsp;</td><td>of group of nodes </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="643c80318fafd3d98c530c88ebdc4257"></a><!-- doxytag: member="smeshDC::Mesh::FindEqualElements" ref="643c80318fafd3d98c530c88ebdc4257" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.FindEqualElements           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>MeshOrSubMeshOrGroup</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>MeshOrSubMeshOrGroup</em>&nbsp;</td><td><a class="el" href="classsmeshDC_1_1Mesh.html">Mesh</a> or SubMesh, or Group of elements for searching </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>a list of groups of equal elements </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="023c5ccae0e02e73485019fe82ab8b35"></a><!-- doxytag: member="smeshDC::Mesh::MergeElements" ref="023c5ccae0e02e73485019fe82ab8b35" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.MergeElements           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>GroupsOfElementsID</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>GroupsOfElementsID</em>&nbsp;</td><td>groups of elements for merging </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="f76363128b31cbe3fc32afc9cd771565"></a><!-- doxytag: member="smeshDC::Mesh::MergeEqualElements" ref="f76363128b31cbe3fc32afc9cd771565" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.MergeEqualElements           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="079f6131307a4be37245823e6fd724da"></a><!-- doxytag: member="smeshDC::Mesh::SewFreeBorders" ref="079f6131307a4be37245823e6fd724da" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SewFreeBorders           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>FirstNodeID1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>SecondNodeID1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>LastNodeID1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>FirstNodeID2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>SecondNodeID2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>LastNodeID2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>CreatePolygons</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>CreatePolyedrs</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="0c54ec7794e65956ecfab94476230a6e"></a><!-- doxytag: member="smeshDC::Mesh::SewConformFreeBorders" ref="0c54ec7794e65956ecfab94476230a6e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SewConformFreeBorders           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>FirstNodeID1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>SecondNodeID1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>LastNodeID1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>FirstNodeID2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>SecondNodeID2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="e887767b6fb87c6be80763f4f78e2252"></a><!-- doxytag: member="smeshDC::Mesh::SewBorderToSide" ref="e887767b6fb87c6be80763f4f78e2252" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SewBorderToSide           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>FirstNodeIDOnFreeBorder</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>SecondNodeIDOnFreeBorder</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>LastNodeIDOnFreeBorder</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>FirstNodeIDOnSide</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>LastNodeIDOnSide</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>CreatePolygons</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>CreatePolyedrs</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="1feede9a829e6f347641ba073840f13d"></a><!-- doxytag: member="smeshDC::Mesh::SewSideElements" ref="1feede9a829e6f347641ba073840f13d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.SewSideElements           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfSide1Elements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>IDsOfSide2Elements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NodeID1OfSide1ToMerge</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NodeID1OfSide2ToMerge</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NodeID2OfSide1ToMerge</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NodeID2OfSide2ToMerge</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Nodes belonging to Side1 are merged with nodes of elements of Side2. Number of elements in theSide1 and in theSide2 must be equal and they should have similar node connectivity. The nodes to merge should belong to sides borders and the first node should be linked to the second. 
+</div>
+</div><p>
+<a class="anchor" name="e613925597654962cd6bc1354cd847ab"></a><!-- doxytag: member="smeshDC::Mesh::ChangeElemNodes" ref="e613925597654962cd6bc1354cd847ab" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.ChangeElemNodes           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ide</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>newIDs</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>ide</em>&nbsp;</td><td>the element id </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>newIDs</em>&nbsp;</td><td>nodes ids </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>If number of nodes is not corresponded to type of element - returns false </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="8589dd93f380f74a91d1a270a3329392"></a><!-- doxytag: member="smeshDC::Mesh::GetLastCreatedNodes" ref="8589dd93f380f74a91d1a270a3329392" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetLastCreatedNodes           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="86d590631a7eb99c5e0e6c38c596ed7c"></a><!-- doxytag: member="smeshDC::Mesh::GetLastCreatedElems" ref="86d590631a7eb99c5e0e6c38c596ed7c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh.GetLastCreatedElems           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="9f46fbb458e5173bd4ef0f816ed778a2"></a><!-- doxytag: member="smeshDC::Mesh::geom" ref="9f46fbb458e5173bd4ef0f816ed778a2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="classsmeshDC_1_1Mesh.html#9f46fbb458e5173bd4ef0f816ed778a2">smeshDC.Mesh.geom</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="ab3d2e782c81eb8c172ffea4934d9afc"></a><!-- doxytag: member="smeshDC::Mesh::mesh" ref="ab3d2e782c81eb8c172ffea4934d9afc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="classsmeshDC_1_1Mesh.html#ab3d2e782c81eb8c172ffea4934d9afc">smeshDC.Mesh.mesh</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="2208820f1e04d15486802226576b45d8"></a><!-- doxytag: member="smeshDC::Mesh::editor" ref="2208820f1e04d15486802226576b45d8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="classsmeshDC_1_1Mesh.html#2208820f1e04d15486802226576b45d8">smeshDC.Mesh.editor</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="0be9a9dabe33b7f3fdd5a1e31a19de30"></a><!-- doxytag: member="smeshDC::Mesh::smeshpyD" ref="0be9a9dabe33b7f3fdd5a1e31a19de30" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh.html#0be9a9dabe33b7f3fdd5a1e31a19de30">smeshDC.Mesh.smeshpyD</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="8d2ba56c7de00d23867fb26908a09dbd"></a><!-- doxytag: member="smeshDC::Mesh::geompyD" ref="8d2ba56c7de00d23867fb26908a09dbd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh.html#8d2ba56c7de00d23867fb26908a09dbd">smeshDC.Mesh.geompyD</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="85b1f2feb28730e9a226fbe98b9198a8"></a><!-- doxytag: member="smeshDC::Mesh::geom" ref="85b1f2feb28730e9a226fbe98b9198a8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh.html#9f46fbb458e5173bd4ef0f816ed778a2">smeshDC.Mesh.geom</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="046173eaa203630e4a12147a8dc031da"></a><!-- doxytag: member="smeshDC::Mesh::mesh" ref="046173eaa203630e4a12147a8dc031da" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh.html#ab3d2e782c81eb8c172ffea4934d9afc">smeshDC.Mesh.mesh</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="a7484397c0eafe910f9e5b1fb77a20f3"></a><!-- doxytag: member="smeshDC::Mesh::editor" ref="a7484397c0eafe910f9e5b1fb77a20f3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh.html#2208820f1e04d15486802226576b45d8">smeshDC.Mesh.editor</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:52 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Algorithm.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Algorithm.html
new file mode 100644 (file)
index 0000000..eb602f6
--- /dev/null
@@ -0,0 +1,408 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html">Mesh_Algorithm</a></div>
+<h1>smeshDC.Mesh_Algorithm Class Reference</h1><!-- doxytag: class="smeshDC::Mesh_Algorithm" -->Mother class to define algorithm, recommended to don't use directly.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smeshDC.Mesh_Algorithm:<p><center><img src="classsmeshDC_1_1Mesh__Algorithm__inherit__graph.jpg" border="0" usemap="#smeshDC_8Mesh__Algorithm__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8Mesh__Algorithm__inherit__map">
+<area href="classsmeshDC_1_1Mesh__Hexahedron.html" shape="rect" coords="258,8,466,32" alt="">
+<area href="classsmeshDC_1_1Mesh__Netgen.html" shape="rect" coords="274,56,450,80" alt="">
+<area href="classsmeshDC_1_1Mesh__Prism3D.html" shape="rect" coords="272,104,453,128" alt="">
+<area href="classsmeshDC_1_1Mesh__Projection1D.html" shape="rect" coords="257,152,468,176" alt="">
+<area href="classsmeshDC_1_1Mesh__Projection2D.html" shape="rect" coords="257,200,468,224" alt="">
+<area href="classsmeshDC_1_1Mesh__Projection3D.html" shape="rect" coords="257,248,468,272" alt="">
+<area href="classsmeshDC_1_1Mesh__Quadrangle.html" shape="rect" coords="260,296,465,320" alt="">
+<area href="classsmeshDC_1_1Mesh__RadialPrism3D.html" shape="rect" coords="250,344,474,368" alt="">
+<area href="classsmeshDC_1_1Mesh__Segment.html" shape="rect" coords="269,392,456,416" alt="">
+<area href="classsmeshDC_1_1Mesh__Tetrahedron.html" shape="rect" coords="260,440,465,464" alt="">
+<area href="classsmeshDC_1_1Mesh__Triangle.html" shape="rect" coords="273,488,452,512" 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="classsmeshDC_1_1Mesh__Algorithm.html#d236fbbd88c3548e3e1cbaad693587fd">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#6e10699dca080739fe879c39242d383f">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
+ else return the submesh associated to this algorithm.  <a href="#6e10699dca080739fe879c39242d383f"></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="classsmeshDC_1_1Mesh__Algorithm.html#823bceab89ad9844fbdcf7a2b59b82d4">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#823bceab89ad9844fbdcf7a2b59b82d4"></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="classsmeshDC_1_1Mesh__Algorithm.html#cc7b73f68fec47890cf16932a71e71ff">GetCompatibleHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#cc7b73f68fec47890cf16932a71e71ff"></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="classsmeshDC_1_1Mesh__Algorithm.html#07001c3590c379d357754b3a8b4e62f2">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#07001c3590c379d357754b3a8b4e62f2"></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="classsmeshDC_1_1Mesh__Algorithm.html#fc9788a5b000f2f7afb7f7e81888bc1d">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#fc9788a5b000f2f7afb7f7e81888bc1d"></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="classsmeshDC_1_1Mesh__Algorithm.html#84a52154a90fef60f7939fc73084dea2">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#84a52154a90fef60f7939fc73084dea2"></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="classsmeshDC_1_1Mesh__Algorithm.html#6ed4da82cee92b3be4b42debecb10bfd">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#6ed4da82cee92b3be4b42debecb10bfd"></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="classsmeshDC_1_1Mesh__Algorithm.html#088088a4a4c2f4057984a8d5f5af05d0">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#088088a4a4c2f4057984a8d5f5af05d0"></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="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">algo</a></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="d236fbbd88c3548e3e1cbaad693587fd"></a><!-- doxytag: member="smeshDC::Mesh_Algorithm::__init__" ref="d236fbbd88c3548e3e1cbaad693587fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6e10699dca080739fe879c39242d383f"></a><!-- doxytag: member="smeshDC::Mesh_Algorithm::GetSubMesh" ref="6e10699dca080739fe879c39242d383f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="823bceab89ad9844fbdcf7a2b59b82d4"></a><!-- doxytag: member="smeshDC::Mesh_Algorithm::GetAlgorithm" ref="823bceab89ad9844fbdcf7a2b59b82d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetAlgorithm           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc7b73f68fec47890cf16932a71e71ff"></a><!-- doxytag: member="smeshDC::Mesh_Algorithm::GetCompatibleHypothesis" ref="cc7b73f68fec47890cf16932a71e71ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetCompatibleHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="07001c3590c379d357754b3a8b4e62f2"></a><!-- doxytag: member="smeshDC::Mesh_Algorithm::GetName" ref="07001c3590c379d357754b3a8b4e62f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc9788a5b000f2f7afb7f7e81888bc1d"></a><!-- doxytag: member="smeshDC::Mesh_Algorithm::SetName" ref="fc9788a5b000f2f7afb7f7e81888bc1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="84a52154a90fef60f7939fc73084dea2"></a><!-- doxytag: member="smeshDC::Mesh_Algorithm::GetId" ref="84a52154a90fef60f7939fc73084dea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed4da82cee92b3be4b42debecb10bfd"></a><!-- doxytag: member="smeshDC::Mesh_Algorithm::Create" ref="6ed4da82cee92b3be4b42debecb10bfd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Create           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="088088a4a4c2f4057984a8d5f5af05d0"></a><!-- doxytag: member="smeshDC::Mesh_Algorithm::Hypothesis" ref="088088a4a4c2f4057984a8d5f5af05d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Hypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="a26131bcccd55e4d89612e43aeba151a"></a><!-- doxytag: member="smeshDC::Mesh_Algorithm::smesh" ref="a26131bcccd55e4d89612e43aeba151a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smeshDC.Mesh_Algorithm.smesh</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="389abfff22e0cd47e6fd98f5f5000cfa"></a><!-- doxytag: member="smeshDC::Mesh_Algorithm::mesh" ref="389abfff22e0cd47e6fd98f5f5000cfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">smeshDC.Mesh_Algorithm.mesh</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="20ae4013ee7d13170461eca766fdda32"></a><!-- doxytag: member="smeshDC::Mesh_Algorithm::geom" ref="20ae4013ee7d13170461eca766fdda32" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">smeshDC.Mesh_Algorithm.geom</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">smeshDC.Mesh_Segment</a>.
+</div>
+</div><p>
+<a class="anchor" name="3292dd6a8b832264d19f199469602054"></a><!-- doxytag: member="smeshDC::Mesh_Algorithm::subm" ref="3292dd6a8b832264d19f199469602054" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">smeshDC.Mesh_Algorithm.subm</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f42e17af989dda7a186b5d7e68f2ec71"></a><!-- doxytag: member="smeshDC::Mesh_Algorithm::algo" ref="f42e17af989dda7a186b5d7e68f2ec71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">smeshDC.Mesh_Algorithm.algo</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:41 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Algorithm__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Algorithm__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..0380c6a
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Algorithm__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__CompositeSegment.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__CompositeSegment.html
new file mode 100644 (file)
index 0000000..1cd07fc
--- /dev/null
@@ -0,0 +1,772 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh__CompositeSegment.html">Mesh_CompositeSegment</a></div>
+<h1>smeshDC.Mesh_CompositeSegment Class Reference</h1><!-- doxytag: class="smeshDC::Mesh_CompositeSegment" --><!-- doxytag: inherits="smeshDC::Mesh_Segment" -->Class to define a segment 1D algorithm for discretization.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smeshDC.Mesh_CompositeSegment:<p><center><img src="classsmeshDC_1_1Mesh__CompositeSegment__inherit__graph.jpg" border="0" usemap="#smeshDC_8Mesh__CompositeSegment__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8Mesh__CompositeSegment__inherit__map">
+<area href="classsmeshDC_1_1Mesh__Segment.html" shape="rect" coords="42,84,229,108" alt="">
+<area href="classsmeshDC_1_1Mesh__Algorithm.html" shape="rect" coords="40,9,232,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="classsmeshDC_1_1Mesh__CompositeSegment.html#3e92141214a56886fdf7918a922ef0af">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#3e92141214a56886fdf7918a922ef0af"></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="classsmeshDC_1_1Mesh__Algorithm.html#d236fbbd88c3548e3e1cbaad693587fd">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Segment.html#2f9d15d24a38ccc273014f85ea6dcd24">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="#2f9d15d24a38ccc273014f85ea6dcd24"></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="classsmeshDC_1_1Mesh__Segment.html#04608e6ca6e7008ebd248548f24a8248">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="#04608e6ca6e7008ebd248548f24a8248"></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="classsmeshDC_1_1Mesh__Segment.html#4e44e56e3986592ea4b373314350ba1e">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="#4e44e56e3986592ea4b373314350ba1e"></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="classsmeshDC_1_1Mesh__Segment.html#55111c455f6db69788784ab3592422bf">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="#55111c455f6db69788784ab3592422bf"></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="classsmeshDC_1_1Mesh__Segment.html#9c66c7680baa0ad57798f636f1f76714">Deflection1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Deflection1D" hypothesis.  <a href="#9c66c7680baa0ad57798f636f1f76714"></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="classsmeshDC_1_1Mesh__Segment.html#a056c4ab47821070f56256c5247a83dc">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="#a056c4ab47821070f56256c5247a83dc"></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="classsmeshDC_1_1Mesh__Segment.html#37c89f203f0c2d4b668775f38d406d00">AutomaticLength</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "AutomaticLength" hypothesis.  <a href="#37c89f203f0c2d4b668775f38d406d00"></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="classsmeshDC_1_1Mesh__Segment.html#b55e9b34c5e68ad2a4bf8aa5b737de9b">LengthNearVertex</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "SegmentLengthAroundVertex" hypothesis.  <a href="#b55e9b34c5e68ad2a4bf8aa5b737de9b"></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="classsmeshDC_1_1Mesh__Segment.html#99a77d794183b6b42d27c4d63f85fe74">QuadraticMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "QuadraticMesh" hypothesis, forcing construction of quadratic edges.  <a href="#99a77d794183b6b42d27c4d63f85fe74"></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="classsmeshDC_1_1Mesh__Algorithm.html#6e10699dca080739fe879c39242d383f">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
+ else return the submesh associated to this algorithm.  <a href="#6e10699dca080739fe879c39242d383f"></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="classsmeshDC_1_1Mesh__Algorithm.html#823bceab89ad9844fbdcf7a2b59b82d4">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#823bceab89ad9844fbdcf7a2b59b82d4"></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="classsmeshDC_1_1Mesh__Algorithm.html#cc7b73f68fec47890cf16932a71e71ff">GetCompatibleHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#cc7b73f68fec47890cf16932a71e71ff"></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="classsmeshDC_1_1Mesh__Algorithm.html#07001c3590c379d357754b3a8b4e62f2">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#07001c3590c379d357754b3a8b4e62f2"></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="classsmeshDC_1_1Mesh__Algorithm.html#fc9788a5b000f2f7afb7f7e81888bc1d">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#fc9788a5b000f2f7afb7f7e81888bc1d"></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="classsmeshDC_1_1Mesh__Algorithm.html#84a52154a90fef60f7939fc73084dea2">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#84a52154a90fef60f7939fc73084dea2"></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="classsmeshDC_1_1Mesh__Algorithm.html#6ed4da82cee92b3be4b42debecb10bfd">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#6ed4da82cee92b3be4b42debecb10bfd"></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="classsmeshDC_1_1Mesh__Algorithm.html#088088a4a4c2f4057984a8d5f5af05d0">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#088088a4a4c2f4057984a8d5f5af05d0"></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="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">algo</a></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="3e92141214a56886fdf7918a922ef0af"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::__init__" ref="3e92141214a56886fdf7918a922ef0af" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_CompositeSegment.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="classsmeshDC_1_1Mesh__Segment.html#5c4a83872230465157d06af21b0b0982">smeshDC.Mesh_Segment</a>.
+</div>
+</div><p>
+<a class="anchor" name="d236fbbd88c3548e3e1cbaad693587fd"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::__init__" ref="d236fbbd88c3548e3e1cbaad693587fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="2f9d15d24a38ccc273014f85ea6dcd24"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::LocalLength" ref="2f9d15d24a38ccc273014f85ea6dcd24" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.LocalLength           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>l</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="04608e6ca6e7008ebd248548f24a8248"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::NumberOfSegments" ref="04608e6ca6e7008ebd248548f24a8248" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.NumberOfSegments           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>n</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>s</em> = <code>[]</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="4e44e56e3986592ea4b373314350ba1e"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::Arithmetic1D" ref="4e44e56e3986592ea4b373314350ba1e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.Arithmetic1D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>start</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="55111c455f6db69788784ab3592422bf"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::StartEndLength" ref="55111c455f6db69788784ab3592422bf" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.StartEndLength           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>start</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="9c66c7680baa0ad57798f636f1f76714"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::Deflection1D" ref="9c66c7680baa0ad57798f636f1f76714" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.Deflection1D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>d</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="a056c4ab47821070f56256c5247a83dc"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::Propagation" ref="a056c4ab47821070f56256c5247a83dc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.Propagation           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="37c89f203f0c2d4b668775f38d406d00"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::AutomaticLength" ref="37c89f203f0c2d4b668775f38d406d00" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.AutomaticLength           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>fineness</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="b55e9b34c5e68ad2a4bf8aa5b737de9b"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::LengthNearVertex" ref="b55e9b34c5e68ad2a4bf8aa5b737de9b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.LengthNearVertex           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>vertex</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>length</em>&nbsp;</td><td>for the segment length </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>vertex</em>&nbsp;</td><td>for the length localization: vertex index [0,1] | verext object </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="99a77d794183b6b42d27c4d63f85fe74"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::QuadraticMesh" ref="99a77d794183b6b42d27c4d63f85fe74" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.QuadraticMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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. 
+</div>
+</div><p>
+<a class="anchor" name="6e10699dca080739fe879c39242d383f"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::GetSubMesh" ref="6e10699dca080739fe879c39242d383f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="823bceab89ad9844fbdcf7a2b59b82d4"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::GetAlgorithm" ref="823bceab89ad9844fbdcf7a2b59b82d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetAlgorithm           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc7b73f68fec47890cf16932a71e71ff"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::GetCompatibleHypothesis" ref="cc7b73f68fec47890cf16932a71e71ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetCompatibleHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="07001c3590c379d357754b3a8b4e62f2"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::GetName" ref="07001c3590c379d357754b3a8b4e62f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc9788a5b000f2f7afb7f7e81888bc1d"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::SetName" ref="fc9788a5b000f2f7afb7f7e81888bc1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="84a52154a90fef60f7939fc73084dea2"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::GetId" ref="84a52154a90fef60f7939fc73084dea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed4da82cee92b3be4b42debecb10bfd"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::Create" ref="6ed4da82cee92b3be4b42debecb10bfd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Create           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="088088a4a4c2f4057984a8d5f5af05d0"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::Hypothesis" ref="088088a4a4c2f4057984a8d5f5af05d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Hypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="44e8968ec16413fd4aac2b906c313c0e"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::geom" ref="44e8968ec16413fd4aac2b906c313c0e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">smeshDC.Mesh_Segment.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">smeshDC.Mesh_Algorithm</a>.
+</div>
+</div><p>
+<a class="anchor" name="a26131bcccd55e4d89612e43aeba151a"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::smesh" ref="a26131bcccd55e4d89612e43aeba151a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smeshDC.Mesh_Algorithm.smesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="389abfff22e0cd47e6fd98f5f5000cfa"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::mesh" ref="389abfff22e0cd47e6fd98f5f5000cfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">smeshDC.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="3292dd6a8b832264d19f199469602054"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::subm" ref="3292dd6a8b832264d19f199469602054" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">smeshDC.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f42e17af989dda7a186b5d7e68f2ec71"></a><!-- doxytag: member="smeshDC::Mesh_CompositeSegment::algo" ref="f42e17af989dda7a186b5d7e68f2ec71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">smeshDC.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:43 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__CompositeSegment__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__CompositeSegment__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..7d2fc47
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__CompositeSegment__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Hexahedron.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Hexahedron.html
new file mode 100644 (file)
index 0000000..0cd821d
--- /dev/null
@@ -0,0 +1,436 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh__Hexahedron.html">Mesh_Hexahedron</a></div>
+<h1>smeshDC.Mesh_Hexahedron Class Reference</h1><!-- doxytag: class="smeshDC::Mesh_Hexahedron" --><!-- doxytag: inherits="smeshDC::Mesh_Algorithm" -->Class to define a hexahedron 3D algorithm.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smeshDC.Mesh_Hexahedron:<p><center><img src="classsmeshDC_1_1Mesh__Hexahedron__inherit__graph.jpg" border="0" usemap="#smeshDC_8Mesh__Hexahedron__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8Mesh__Hexahedron__inherit__map">
+<area href="classsmeshDC_1_1Mesh__Algorithm.html" shape="rect" coords="16,9,208,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="classsmeshDC_1_1Mesh__Hexahedron.html#eba90a9ad532744e074d3de1479c6c67">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#eba90a9ad532744e074d3de1479c6c67"></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="classsmeshDC_1_1Mesh__Algorithm.html#d236fbbd88c3548e3e1cbaad693587fd">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#6e10699dca080739fe879c39242d383f">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
+ else return the submesh associated to this algorithm.  <a href="#6e10699dca080739fe879c39242d383f"></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="classsmeshDC_1_1Mesh__Algorithm.html#823bceab89ad9844fbdcf7a2b59b82d4">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#823bceab89ad9844fbdcf7a2b59b82d4"></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="classsmeshDC_1_1Mesh__Algorithm.html#cc7b73f68fec47890cf16932a71e71ff">GetCompatibleHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#cc7b73f68fec47890cf16932a71e71ff"></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="classsmeshDC_1_1Mesh__Algorithm.html#07001c3590c379d357754b3a8b4e62f2">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#07001c3590c379d357754b3a8b4e62f2"></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="classsmeshDC_1_1Mesh__Algorithm.html#fc9788a5b000f2f7afb7f7e81888bc1d">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#fc9788a5b000f2f7afb7f7e81888bc1d"></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="classsmeshDC_1_1Mesh__Algorithm.html#84a52154a90fef60f7939fc73084dea2">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#84a52154a90fef60f7939fc73084dea2"></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="classsmeshDC_1_1Mesh__Algorithm.html#6ed4da82cee92b3be4b42debecb10bfd">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#6ed4da82cee92b3be4b42debecb10bfd"></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="classsmeshDC_1_1Mesh__Algorithm.html#088088a4a4c2f4057984a8d5f5af05d0">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#088088a4a4c2f4057984a8d5f5af05d0"></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="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">algo</a></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="eba90a9ad532744e074d3de1479c6c67"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::__init__" ref="eba90a9ad532744e074d3de1479c6c67" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Hexahedron.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="d236fbbd88c3548e3e1cbaad693587fd"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::__init__" ref="d236fbbd88c3548e3e1cbaad693587fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6e10699dca080739fe879c39242d383f"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::GetSubMesh" ref="6e10699dca080739fe879c39242d383f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="823bceab89ad9844fbdcf7a2b59b82d4"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::GetAlgorithm" ref="823bceab89ad9844fbdcf7a2b59b82d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetAlgorithm           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc7b73f68fec47890cf16932a71e71ff"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::GetCompatibleHypothesis" ref="cc7b73f68fec47890cf16932a71e71ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetCompatibleHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="07001c3590c379d357754b3a8b4e62f2"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::GetName" ref="07001c3590c379d357754b3a8b4e62f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc9788a5b000f2f7afb7f7e81888bc1d"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::SetName" ref="fc9788a5b000f2f7afb7f7e81888bc1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="84a52154a90fef60f7939fc73084dea2"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::GetId" ref="84a52154a90fef60f7939fc73084dea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed4da82cee92b3be4b42debecb10bfd"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::Create" ref="6ed4da82cee92b3be4b42debecb10bfd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Create           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="088088a4a4c2f4057984a8d5f5af05d0"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::Hypothesis" ref="088088a4a4c2f4057984a8d5f5af05d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Hypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="a26131bcccd55e4d89612e43aeba151a"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::smesh" ref="a26131bcccd55e4d89612e43aeba151a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smeshDC.Mesh_Algorithm.smesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="389abfff22e0cd47e6fd98f5f5000cfa"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::mesh" ref="389abfff22e0cd47e6fd98f5f5000cfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">smeshDC.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="20ae4013ee7d13170461eca766fdda32"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::geom" ref="20ae4013ee7d13170461eca766fdda32" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">smeshDC.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">smeshDC.Mesh_Segment</a>.
+</div>
+</div><p>
+<a class="anchor" name="3292dd6a8b832264d19f199469602054"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::subm" ref="3292dd6a8b832264d19f199469602054" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">smeshDC.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f42e17af989dda7a186b5d7e68f2ec71"></a><!-- doxytag: member="smeshDC::Mesh_Hexahedron::algo" ref="f42e17af989dda7a186b5d7e68f2ec71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">smeshDC.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:47 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Hexahedron__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Hexahedron__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..9453963
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Hexahedron__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Netgen.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Netgen.html
new file mode 100644 (file)
index 0000000..8052b19
--- /dev/null
@@ -0,0 +1,502 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh__Netgen.html">Mesh_Netgen</a></div>
+<h1>smeshDC.Mesh_Netgen Class Reference</h1><!-- doxytag: class="smeshDC::Mesh_Netgen" --><!-- doxytag: inherits="smeshDC::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 smeshDC.Mesh_Netgen:<p><center><img src="classsmeshDC_1_1Mesh__Netgen__inherit__graph.jpg" border="0" usemap="#smeshDC_8Mesh__Netgen__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8Mesh__Netgen__inherit__map">
+<area href="classsmeshDC_1_1Mesh__Algorithm.html" shape="rect" coords="8,9,200,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="classsmeshDC_1_1Mesh__Netgen.html#cc249253a950e976bbbd35bb2bfeb38e">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#cc249253a950e976bbbd35bb2bfeb38e"></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="classsmeshDC_1_1Mesh__Netgen.html#10530284277e8628d75bfc54415ed540">Parameters</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define hypothesis containing parameters of the algorithm.  <a href="#10530284277e8628d75bfc54415ed540"></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="classsmeshDC_1_1Mesh__Algorithm.html#d236fbbd88c3548e3e1cbaad693587fd">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#6e10699dca080739fe879c39242d383f">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
+ else return the submesh associated to this algorithm.  <a href="#6e10699dca080739fe879c39242d383f"></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="classsmeshDC_1_1Mesh__Algorithm.html#823bceab89ad9844fbdcf7a2b59b82d4">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#823bceab89ad9844fbdcf7a2b59b82d4"></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="classsmeshDC_1_1Mesh__Algorithm.html#cc7b73f68fec47890cf16932a71e71ff">GetCompatibleHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#cc7b73f68fec47890cf16932a71e71ff"></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="classsmeshDC_1_1Mesh__Algorithm.html#07001c3590c379d357754b3a8b4e62f2">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#07001c3590c379d357754b3a8b4e62f2"></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="classsmeshDC_1_1Mesh__Algorithm.html#fc9788a5b000f2f7afb7f7e81888bc1d">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#fc9788a5b000f2f7afb7f7e81888bc1d"></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="classsmeshDC_1_1Mesh__Algorithm.html#84a52154a90fef60f7939fc73084dea2">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#84a52154a90fef60f7939fc73084dea2"></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="classsmeshDC_1_1Mesh__Algorithm.html#6ed4da82cee92b3be4b42debecb10bfd">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#6ed4da82cee92b3be4b42debecb10bfd"></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="classsmeshDC_1_1Mesh__Algorithm.html#088088a4a4c2f4057984a8d5f5af05d0">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#088088a4a4c2f4057984a8d5f5af05d0"></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="classsmeshDC_1_1Mesh__Netgen.html#fe33f93c8752f6c1e82ff3023bc1d3fd">is3D</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">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="classsmeshDC_1_1Mesh__Netgen.html#deeb4b81754fbde417907ac821dc7134">is3D</a> = 0</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+independent)<p>
+This class is deprecated, only for compatibility!<p>
+More details. 
+<p>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="cc249253a950e976bbbd35bb2bfeb38e"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::__init__" ref="cc249253a950e976bbbd35bb2bfeb38e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Netgen.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>is3D</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="10530284277e8628d75bfc54415ed540"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::Parameters" ref="10530284277e8628d75bfc54415ed540" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Netgen.Parameters           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="d236fbbd88c3548e3e1cbaad693587fd"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::__init__" ref="d236fbbd88c3548e3e1cbaad693587fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6e10699dca080739fe879c39242d383f"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::GetSubMesh" ref="6e10699dca080739fe879c39242d383f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="823bceab89ad9844fbdcf7a2b59b82d4"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::GetAlgorithm" ref="823bceab89ad9844fbdcf7a2b59b82d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetAlgorithm           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc7b73f68fec47890cf16932a71e71ff"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::GetCompatibleHypothesis" ref="cc7b73f68fec47890cf16932a71e71ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetCompatibleHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="07001c3590c379d357754b3a8b4e62f2"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::GetName" ref="07001c3590c379d357754b3a8b4e62f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc9788a5b000f2f7afb7f7e81888bc1d"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::SetName" ref="fc9788a5b000f2f7afb7f7e81888bc1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="84a52154a90fef60f7939fc73084dea2"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::GetId" ref="84a52154a90fef60f7939fc73084dea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed4da82cee92b3be4b42debecb10bfd"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::Create" ref="6ed4da82cee92b3be4b42debecb10bfd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Create           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="088088a4a4c2f4057984a8d5f5af05d0"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::Hypothesis" ref="088088a4a4c2f4057984a8d5f5af05d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Hypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="deeb4b81754fbde417907ac821dc7134"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::is3D" ref="deeb4b81754fbde417907ac821dc7134" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="classsmeshDC_1_1Mesh__Netgen.html#deeb4b81754fbde417907ac821dc7134">smeshDC.Mesh_Netgen.is3D</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fe33f93c8752f6c1e82ff3023bc1d3fd"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::is3D" ref="fe33f93c8752f6c1e82ff3023bc1d3fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Netgen.html#deeb4b81754fbde417907ac821dc7134">smeshDC.Mesh_Netgen.is3D</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="a26131bcccd55e4d89612e43aeba151a"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::smesh" ref="a26131bcccd55e4d89612e43aeba151a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smeshDC.Mesh_Algorithm.smesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="389abfff22e0cd47e6fd98f5f5000cfa"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::mesh" ref="389abfff22e0cd47e6fd98f5f5000cfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">smeshDC.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="20ae4013ee7d13170461eca766fdda32"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::geom" ref="20ae4013ee7d13170461eca766fdda32" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">smeshDC.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">smeshDC.Mesh_Segment</a>.
+</div>
+</div><p>
+<a class="anchor" name="3292dd6a8b832264d19f199469602054"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::subm" ref="3292dd6a8b832264d19f199469602054" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">smeshDC.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f42e17af989dda7a186b5d7e68f2ec71"></a><!-- doxytag: member="smeshDC::Mesh_Netgen::algo" ref="f42e17af989dda7a186b5d7e68f2ec71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">smeshDC.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:48 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Netgen__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Netgen__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..73b7e43
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Netgen__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Prism3D.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Prism3D.html
new file mode 100644 (file)
index 0000000..6a5f8f0
--- /dev/null
@@ -0,0 +1,436 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh__Prism3D.html">Mesh_Prism3D</a></div>
+<h1>smeshDC.Mesh_Prism3D Class Reference</h1><!-- doxytag: class="smeshDC::Mesh_Prism3D" --><!-- doxytag: inherits="smeshDC::Mesh_Algorithm" -->Class to define a 3D extrusion algorithm.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smeshDC.Mesh_Prism3D:<p><center><img src="classsmeshDC_1_1Mesh__Prism3D__inherit__graph.jpg" border="0" usemap="#smeshDC_8Mesh__Prism3D__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8Mesh__Prism3D__inherit__map">
+<area href="classsmeshDC_1_1Mesh__Algorithm.html" shape="rect" coords="8,9,200,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="classsmeshDC_1_1Mesh__Prism3D.html#4ce95d1e28e83b154b907b13478c1d9e">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#4ce95d1e28e83b154b907b13478c1d9e"></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="classsmeshDC_1_1Mesh__Algorithm.html#d236fbbd88c3548e3e1cbaad693587fd">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#6e10699dca080739fe879c39242d383f">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
+ else return the submesh associated to this algorithm.  <a href="#6e10699dca080739fe879c39242d383f"></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="classsmeshDC_1_1Mesh__Algorithm.html#823bceab89ad9844fbdcf7a2b59b82d4">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#823bceab89ad9844fbdcf7a2b59b82d4"></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="classsmeshDC_1_1Mesh__Algorithm.html#cc7b73f68fec47890cf16932a71e71ff">GetCompatibleHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#cc7b73f68fec47890cf16932a71e71ff"></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="classsmeshDC_1_1Mesh__Algorithm.html#07001c3590c379d357754b3a8b4e62f2">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#07001c3590c379d357754b3a8b4e62f2"></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="classsmeshDC_1_1Mesh__Algorithm.html#fc9788a5b000f2f7afb7f7e81888bc1d">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#fc9788a5b000f2f7afb7f7e81888bc1d"></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="classsmeshDC_1_1Mesh__Algorithm.html#84a52154a90fef60f7939fc73084dea2">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#84a52154a90fef60f7939fc73084dea2"></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="classsmeshDC_1_1Mesh__Algorithm.html#6ed4da82cee92b3be4b42debecb10bfd">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#6ed4da82cee92b3be4b42debecb10bfd"></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="classsmeshDC_1_1Mesh__Algorithm.html#088088a4a4c2f4057984a8d5f5af05d0">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#088088a4a4c2f4057984a8d5f5af05d0"></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="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">algo</a></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="4ce95d1e28e83b154b907b13478c1d9e"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::__init__" ref="4ce95d1e28e83b154b907b13478c1d9e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Prism3D.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="d236fbbd88c3548e3e1cbaad693587fd"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::__init__" ref="d236fbbd88c3548e3e1cbaad693587fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6e10699dca080739fe879c39242d383f"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::GetSubMesh" ref="6e10699dca080739fe879c39242d383f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="823bceab89ad9844fbdcf7a2b59b82d4"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::GetAlgorithm" ref="823bceab89ad9844fbdcf7a2b59b82d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetAlgorithm           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc7b73f68fec47890cf16932a71e71ff"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::GetCompatibleHypothesis" ref="cc7b73f68fec47890cf16932a71e71ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetCompatibleHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="07001c3590c379d357754b3a8b4e62f2"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::GetName" ref="07001c3590c379d357754b3a8b4e62f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc9788a5b000f2f7afb7f7e81888bc1d"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::SetName" ref="fc9788a5b000f2f7afb7f7e81888bc1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="84a52154a90fef60f7939fc73084dea2"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::GetId" ref="84a52154a90fef60f7939fc73084dea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed4da82cee92b3be4b42debecb10bfd"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::Create" ref="6ed4da82cee92b3be4b42debecb10bfd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Create           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="088088a4a4c2f4057984a8d5f5af05d0"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::Hypothesis" ref="088088a4a4c2f4057984a8d5f5af05d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Hypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="a26131bcccd55e4d89612e43aeba151a"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::smesh" ref="a26131bcccd55e4d89612e43aeba151a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smeshDC.Mesh_Algorithm.smesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="389abfff22e0cd47e6fd98f5f5000cfa"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::mesh" ref="389abfff22e0cd47e6fd98f5f5000cfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">smeshDC.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="20ae4013ee7d13170461eca766fdda32"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::geom" ref="20ae4013ee7d13170461eca766fdda32" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">smeshDC.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">smeshDC.Mesh_Segment</a>.
+</div>
+</div><p>
+<a class="anchor" name="3292dd6a8b832264d19f199469602054"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::subm" ref="3292dd6a8b832264d19f199469602054" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">smeshDC.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f42e17af989dda7a186b5d7e68f2ec71"></a><!-- doxytag: member="smeshDC::Mesh_Prism3D::algo" ref="f42e17af989dda7a186b5d7e68f2ec71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">smeshDC.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:51 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Prism3D__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Prism3D__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..7ce49e4
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Prism3D__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection1D.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection1D.html
new file mode 100644 (file)
index 0000000..f22c1a7
--- /dev/null
@@ -0,0 +1,494 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh__Projection1D.html">Mesh_Projection1D</a></div>
+<h1>smeshDC.Mesh_Projection1D Class Reference</h1><!-- doxytag: class="smeshDC::Mesh_Projection1D" --><!-- doxytag: inherits="smeshDC::Mesh_Algorithm" -->Class to define a projection 1D algorithm.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smeshDC.Mesh_Projection1D:<p><center><img src="classsmeshDC_1_1Mesh__Projection1D__inherit__graph.jpg" border="0" usemap="#smeshDC_8Mesh__Projection1D__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8Mesh__Projection1D__inherit__map">
+<area href="classsmeshDC_1_1Mesh__Algorithm.html" shape="rect" coords="17,9,209,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="classsmeshDC_1_1Mesh__Projection1D.html#2149b168dc43aee773f8c2abd254c3ab">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#2149b168dc43aee773f8c2abd254c3ab"></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="classsmeshDC_1_1Mesh__Projection1D.html#e0701063b5905dfd9da3b451fc2dd5e1">SourceEdge</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Source Edge" hypothesis, specifying a meshed edge to take a mesh pattern from, and optionally association of vertices between the source edge and a target one (where a hipothesis is assigned to).  <a href="#e0701063b5905dfd9da3b451fc2dd5e1"></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="classsmeshDC_1_1Mesh__Algorithm.html#d236fbbd88c3548e3e1cbaad693587fd">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#6e10699dca080739fe879c39242d383f">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
+ else return the submesh associated to this algorithm.  <a href="#6e10699dca080739fe879c39242d383f"></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="classsmeshDC_1_1Mesh__Algorithm.html#823bceab89ad9844fbdcf7a2b59b82d4">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#823bceab89ad9844fbdcf7a2b59b82d4"></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="classsmeshDC_1_1Mesh__Algorithm.html#cc7b73f68fec47890cf16932a71e71ff">GetCompatibleHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#cc7b73f68fec47890cf16932a71e71ff"></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="classsmeshDC_1_1Mesh__Algorithm.html#07001c3590c379d357754b3a8b4e62f2">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#07001c3590c379d357754b3a8b4e62f2"></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="classsmeshDC_1_1Mesh__Algorithm.html#fc9788a5b000f2f7afb7f7e81888bc1d">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#fc9788a5b000f2f7afb7f7e81888bc1d"></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="classsmeshDC_1_1Mesh__Algorithm.html#84a52154a90fef60f7939fc73084dea2">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#84a52154a90fef60f7939fc73084dea2"></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="classsmeshDC_1_1Mesh__Algorithm.html#6ed4da82cee92b3be4b42debecb10bfd">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#6ed4da82cee92b3be4b42debecb10bfd"></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="classsmeshDC_1_1Mesh__Algorithm.html#088088a4a4c2f4057984a8d5f5af05d0">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#088088a4a4c2f4057984a8d5f5af05d0"></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="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">algo</a></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="2149b168dc43aee773f8c2abd254c3ab"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::__init__" ref="2149b168dc43aee773f8c2abd254c3ab" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Projection1D.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="e0701063b5905dfd9da3b451fc2dd5e1"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::SourceEdge" ref="e0701063b5905dfd9da3b451fc2dd5e1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Projection1D.SourceEdge           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>edge</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em> = <code>None</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>srcV</em> = <code>None</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>tgtV</em> = <code>None</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>edge</em>&nbsp;</td><td>to take nodes distribution from </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>to take nodes distribution from (optional) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>srcV</em>&nbsp;</td><td>is vertex of <em>edge</em> to associate with <em>tgtV</em> (optional) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>tgtV</em>&nbsp;</td><td>is vertex of <em>the</em> edge where the algorithm is assigned, to associate with <em>srcV</em> (optional) </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="d236fbbd88c3548e3e1cbaad693587fd"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::__init__" ref="d236fbbd88c3548e3e1cbaad693587fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6e10699dca080739fe879c39242d383f"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::GetSubMesh" ref="6e10699dca080739fe879c39242d383f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="823bceab89ad9844fbdcf7a2b59b82d4"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::GetAlgorithm" ref="823bceab89ad9844fbdcf7a2b59b82d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetAlgorithm           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc7b73f68fec47890cf16932a71e71ff"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::GetCompatibleHypothesis" ref="cc7b73f68fec47890cf16932a71e71ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetCompatibleHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="07001c3590c379d357754b3a8b4e62f2"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::GetName" ref="07001c3590c379d357754b3a8b4e62f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc9788a5b000f2f7afb7f7e81888bc1d"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::SetName" ref="fc9788a5b000f2f7afb7f7e81888bc1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="84a52154a90fef60f7939fc73084dea2"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::GetId" ref="84a52154a90fef60f7939fc73084dea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed4da82cee92b3be4b42debecb10bfd"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::Create" ref="6ed4da82cee92b3be4b42debecb10bfd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Create           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="088088a4a4c2f4057984a8d5f5af05d0"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::Hypothesis" ref="088088a4a4c2f4057984a8d5f5af05d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Hypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="a26131bcccd55e4d89612e43aeba151a"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::smesh" ref="a26131bcccd55e4d89612e43aeba151a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smeshDC.Mesh_Algorithm.smesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="389abfff22e0cd47e6fd98f5f5000cfa"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::mesh" ref="389abfff22e0cd47e6fd98f5f5000cfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">smeshDC.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="20ae4013ee7d13170461eca766fdda32"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::geom" ref="20ae4013ee7d13170461eca766fdda32" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">smeshDC.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">smeshDC.Mesh_Segment</a>.
+</div>
+</div><p>
+<a class="anchor" name="3292dd6a8b832264d19f199469602054"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::subm" ref="3292dd6a8b832264d19f199469602054" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">smeshDC.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f42e17af989dda7a186b5d7e68f2ec71"></a><!-- doxytag: member="smeshDC::Mesh_Projection1D::algo" ref="f42e17af989dda7a186b5d7e68f2ec71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">smeshDC.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:49 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection1D__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection1D__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..b9b5167
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection1D__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection2D.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection2D.html
new file mode 100644 (file)
index 0000000..fc2d896
--- /dev/null
@@ -0,0 +1,508 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh__Projection2D.html">Mesh_Projection2D</a></div>
+<h1>smeshDC.Mesh_Projection2D Class Reference</h1><!-- doxytag: class="smeshDC::Mesh_Projection2D" --><!-- doxytag: inherits="smeshDC::Mesh_Algorithm" -->Class to define a projection 2D algorithm.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smeshDC.Mesh_Projection2D:<p><center><img src="classsmeshDC_1_1Mesh__Projection2D__inherit__graph.jpg" border="0" usemap="#smeshDC_8Mesh__Projection2D__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8Mesh__Projection2D__inherit__map">
+<area href="classsmeshDC_1_1Mesh__Algorithm.html" shape="rect" coords="17,9,209,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="classsmeshDC_1_1Mesh__Projection2D.html#b218b943a0376aa9edec0520e11cabc6">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#b218b943a0376aa9edec0520e11cabc6"></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="classsmeshDC_1_1Mesh__Projection2D.html#455c8da553d208def480454bfa9e915f">SourceFace</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Source Face" hypothesis, specifying a meshed face to take a mesh pattern from, and optionally association of vertices between the source face and a target one (where a hipothesis is assigned to).  <a href="#455c8da553d208def480454bfa9e915f"></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="classsmeshDC_1_1Mesh__Algorithm.html#d236fbbd88c3548e3e1cbaad693587fd">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#6e10699dca080739fe879c39242d383f">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
+ else return the submesh associated to this algorithm.  <a href="#6e10699dca080739fe879c39242d383f"></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="classsmeshDC_1_1Mesh__Algorithm.html#823bceab89ad9844fbdcf7a2b59b82d4">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#823bceab89ad9844fbdcf7a2b59b82d4"></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="classsmeshDC_1_1Mesh__Algorithm.html#cc7b73f68fec47890cf16932a71e71ff">GetCompatibleHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#cc7b73f68fec47890cf16932a71e71ff"></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="classsmeshDC_1_1Mesh__Algorithm.html#07001c3590c379d357754b3a8b4e62f2">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#07001c3590c379d357754b3a8b4e62f2"></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="classsmeshDC_1_1Mesh__Algorithm.html#fc9788a5b000f2f7afb7f7e81888bc1d">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#fc9788a5b000f2f7afb7f7e81888bc1d"></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="classsmeshDC_1_1Mesh__Algorithm.html#84a52154a90fef60f7939fc73084dea2">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#84a52154a90fef60f7939fc73084dea2"></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="classsmeshDC_1_1Mesh__Algorithm.html#6ed4da82cee92b3be4b42debecb10bfd">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#6ed4da82cee92b3be4b42debecb10bfd"></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="classsmeshDC_1_1Mesh__Algorithm.html#088088a4a4c2f4057984a8d5f5af05d0">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#088088a4a4c2f4057984a8d5f5af05d0"></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="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">algo</a></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="b218b943a0376aa9edec0520e11cabc6"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::__init__" ref="b218b943a0376aa9edec0520e11cabc6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Projection2D.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="455c8da553d208def480454bfa9e915f"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::SourceFace" ref="455c8da553d208def480454bfa9e915f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Projection2D.SourceFace           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>face</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em> = <code>None</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>srcV1</em> = <code>None</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>tgtV1</em> = <code>None</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>srcV2</em> = <code>None</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>tgtV2</em> = <code>None</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>face</em>&nbsp;</td><td>to take mesh pattern from </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>to take mesh pattern from (optional) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>srcV1</em>&nbsp;</td><td>is vertex of <em>face</em> to associate with <em>tgtV1</em> (optional) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>tgtV1</em>&nbsp;</td><td>is vertex of <em>the</em> face where the algorithm is assigned, to associate with <em>srcV1</em> (optional) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>srcV2</em>&nbsp;</td><td>is vertex of <em>face</em> to associate with <em>tgtV1</em> (optional) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>tgtV2</em>&nbsp;</td><td>is vertex of <em>the</em> face where the algorithm is assigned, to associate with <em>srcV2</em> (optional)</td></tr>
+  </table>
+</dl>
+Note: association vertices must belong to one edge of a face 
+</div>
+</div><p>
+<a class="anchor" name="d236fbbd88c3548e3e1cbaad693587fd"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::__init__" ref="d236fbbd88c3548e3e1cbaad693587fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6e10699dca080739fe879c39242d383f"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::GetSubMesh" ref="6e10699dca080739fe879c39242d383f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="823bceab89ad9844fbdcf7a2b59b82d4"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::GetAlgorithm" ref="823bceab89ad9844fbdcf7a2b59b82d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetAlgorithm           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc7b73f68fec47890cf16932a71e71ff"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::GetCompatibleHypothesis" ref="cc7b73f68fec47890cf16932a71e71ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetCompatibleHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="07001c3590c379d357754b3a8b4e62f2"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::GetName" ref="07001c3590c379d357754b3a8b4e62f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc9788a5b000f2f7afb7f7e81888bc1d"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::SetName" ref="fc9788a5b000f2f7afb7f7e81888bc1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="84a52154a90fef60f7939fc73084dea2"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::GetId" ref="84a52154a90fef60f7939fc73084dea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed4da82cee92b3be4b42debecb10bfd"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::Create" ref="6ed4da82cee92b3be4b42debecb10bfd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Create           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="088088a4a4c2f4057984a8d5f5af05d0"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::Hypothesis" ref="088088a4a4c2f4057984a8d5f5af05d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Hypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="a26131bcccd55e4d89612e43aeba151a"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::smesh" ref="a26131bcccd55e4d89612e43aeba151a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smeshDC.Mesh_Algorithm.smesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="389abfff22e0cd47e6fd98f5f5000cfa"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::mesh" ref="389abfff22e0cd47e6fd98f5f5000cfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">smeshDC.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="20ae4013ee7d13170461eca766fdda32"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::geom" ref="20ae4013ee7d13170461eca766fdda32" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">smeshDC.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">smeshDC.Mesh_Segment</a>.
+</div>
+</div><p>
+<a class="anchor" name="3292dd6a8b832264d19f199469602054"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::subm" ref="3292dd6a8b832264d19f199469602054" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">smeshDC.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f42e17af989dda7a186b5d7e68f2ec71"></a><!-- doxytag: member="smeshDC::Mesh_Projection2D::algo" ref="f42e17af989dda7a186b5d7e68f2ec71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">smeshDC.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:50 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection2D__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection2D__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..ac89989
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection2D__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection3D.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection3D.html
new file mode 100644 (file)
index 0000000..15e2112
--- /dev/null
@@ -0,0 +1,508 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh__Projection3D.html">Mesh_Projection3D</a></div>
+<h1>smeshDC.Mesh_Projection3D Class Reference</h1><!-- doxytag: class="smeshDC::Mesh_Projection3D" --><!-- doxytag: inherits="smeshDC::Mesh_Algorithm" -->Class to define a projection 3D algorithm.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smeshDC.Mesh_Projection3D:<p><center><img src="classsmeshDC_1_1Mesh__Projection3D__inherit__graph.jpg" border="0" usemap="#smeshDC_8Mesh__Projection3D__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8Mesh__Projection3D__inherit__map">
+<area href="classsmeshDC_1_1Mesh__Algorithm.html" shape="rect" coords="17,9,209,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="classsmeshDC_1_1Mesh__Projection3D.html#a2b866785c6c7c5d71b79c44a743e7a0">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#a2b866785c6c7c5d71b79c44a743e7a0"></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="classsmeshDC_1_1Mesh__Projection3D.html#7b3368edafb7a696506b2d2ab703c835">SourceShape3D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Source Shape 3D" hypothesis, specifying a meshed solid to take a mesh pattern from, and optionally association of vertices between the source solid and a target one (where a hipothesis is assigned to).  <a href="#7b3368edafb7a696506b2d2ab703c835"></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="classsmeshDC_1_1Mesh__Algorithm.html#d236fbbd88c3548e3e1cbaad693587fd">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#6e10699dca080739fe879c39242d383f">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
+ else return the submesh associated to this algorithm.  <a href="#6e10699dca080739fe879c39242d383f"></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="classsmeshDC_1_1Mesh__Algorithm.html#823bceab89ad9844fbdcf7a2b59b82d4">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#823bceab89ad9844fbdcf7a2b59b82d4"></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="classsmeshDC_1_1Mesh__Algorithm.html#cc7b73f68fec47890cf16932a71e71ff">GetCompatibleHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#cc7b73f68fec47890cf16932a71e71ff"></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="classsmeshDC_1_1Mesh__Algorithm.html#07001c3590c379d357754b3a8b4e62f2">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#07001c3590c379d357754b3a8b4e62f2"></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="classsmeshDC_1_1Mesh__Algorithm.html#fc9788a5b000f2f7afb7f7e81888bc1d">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#fc9788a5b000f2f7afb7f7e81888bc1d"></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="classsmeshDC_1_1Mesh__Algorithm.html#84a52154a90fef60f7939fc73084dea2">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#84a52154a90fef60f7939fc73084dea2"></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="classsmeshDC_1_1Mesh__Algorithm.html#6ed4da82cee92b3be4b42debecb10bfd">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#6ed4da82cee92b3be4b42debecb10bfd"></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="classsmeshDC_1_1Mesh__Algorithm.html#088088a4a4c2f4057984a8d5f5af05d0">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#088088a4a4c2f4057984a8d5f5af05d0"></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="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">algo</a></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="a2b866785c6c7c5d71b79c44a743e7a0"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::__init__" ref="a2b866785c6c7c5d71b79c44a743e7a0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Projection3D.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="7b3368edafb7a696506b2d2ab703c835"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::SourceShape3D" ref="7b3368edafb7a696506b2d2ab703c835" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Projection3D.SourceShape3D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>solid</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>srcV1</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>tgtV1</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>srcV2</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>tgtV2</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>solid</em>&nbsp;</td><td>to take mesh pattern from </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>to take mesh pattern from (optional) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>srcV1</em>&nbsp;</td><td>is vertex of <em>solid</em> to associate with <em>tgtV1</em> (optional) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>tgtV1</em>&nbsp;</td><td>is vertex of <em>the</em> solid where the algorithm is assigned, to associate with <em>srcV1</em> (optional) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>srcV2</em>&nbsp;</td><td>is vertex of <em>solid</em> to associate with <em>tgtV1</em> (optional) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>tgtV2</em>&nbsp;</td><td>is vertex of <em>the</em> solid where the algorithm is assigned, to associate with <em>srcV2</em> (optional)</td></tr>
+  </table>
+</dl>
+Note: association vertices must belong to one edge of a solid 
+</div>
+</div><p>
+<a class="anchor" name="d236fbbd88c3548e3e1cbaad693587fd"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::__init__" ref="d236fbbd88c3548e3e1cbaad693587fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6e10699dca080739fe879c39242d383f"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::GetSubMesh" ref="6e10699dca080739fe879c39242d383f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="823bceab89ad9844fbdcf7a2b59b82d4"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::GetAlgorithm" ref="823bceab89ad9844fbdcf7a2b59b82d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetAlgorithm           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc7b73f68fec47890cf16932a71e71ff"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::GetCompatibleHypothesis" ref="cc7b73f68fec47890cf16932a71e71ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetCompatibleHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="07001c3590c379d357754b3a8b4e62f2"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::GetName" ref="07001c3590c379d357754b3a8b4e62f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc9788a5b000f2f7afb7f7e81888bc1d"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::SetName" ref="fc9788a5b000f2f7afb7f7e81888bc1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="84a52154a90fef60f7939fc73084dea2"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::GetId" ref="84a52154a90fef60f7939fc73084dea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed4da82cee92b3be4b42debecb10bfd"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::Create" ref="6ed4da82cee92b3be4b42debecb10bfd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Create           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="088088a4a4c2f4057984a8d5f5af05d0"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::Hypothesis" ref="088088a4a4c2f4057984a8d5f5af05d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Hypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="a26131bcccd55e4d89612e43aeba151a"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::smesh" ref="a26131bcccd55e4d89612e43aeba151a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smeshDC.Mesh_Algorithm.smesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="389abfff22e0cd47e6fd98f5f5000cfa"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::mesh" ref="389abfff22e0cd47e6fd98f5f5000cfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">smeshDC.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="20ae4013ee7d13170461eca766fdda32"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::geom" ref="20ae4013ee7d13170461eca766fdda32" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">smeshDC.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">smeshDC.Mesh_Segment</a>.
+</div>
+</div><p>
+<a class="anchor" name="3292dd6a8b832264d19f199469602054"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::subm" ref="3292dd6a8b832264d19f199469602054" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">smeshDC.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f42e17af989dda7a186b5d7e68f2ec71"></a><!-- doxytag: member="smeshDC::Mesh_Projection3D::algo" ref="f42e17af989dda7a186b5d7e68f2ec71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">smeshDC.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:51 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection3D__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection3D__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..0736643
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Projection3D__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Quadrangle.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Quadrangle.html
new file mode 100644 (file)
index 0000000..f79cf68
--- /dev/null
@@ -0,0 +1,459 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh__Quadrangle.html">Mesh_Quadrangle</a></div>
+<h1>smeshDC.Mesh_Quadrangle Class Reference</h1><!-- doxytag: class="smeshDC::Mesh_Quadrangle" --><!-- doxytag: inherits="smeshDC::Mesh_Algorithm" -->Class to define a quadrangle 2D algorithm.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smeshDC.Mesh_Quadrangle:<p><center><img src="classsmeshDC_1_1Mesh__Quadrangle__inherit__graph.jpg" border="0" usemap="#smeshDC_8Mesh__Quadrangle__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8Mesh__Quadrangle__inherit__map">
+<area href="classsmeshDC_1_1Mesh__Algorithm.html" shape="rect" coords="14,9,206,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="classsmeshDC_1_1Mesh__Quadrangle.html#be7e16731b1a94760df4e685f714da46">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#be7e16731b1a94760df4e685f714da46"></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="classsmeshDC_1_1Mesh__Quadrangle.html#fe1d8832a448dd80ae454a959901bb80">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="#fe1d8832a448dd80ae454a959901bb80"></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="classsmeshDC_1_1Mesh__Algorithm.html#d236fbbd88c3548e3e1cbaad693587fd">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#6e10699dca080739fe879c39242d383f">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
+ else return the submesh associated to this algorithm.  <a href="#6e10699dca080739fe879c39242d383f"></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="classsmeshDC_1_1Mesh__Algorithm.html#823bceab89ad9844fbdcf7a2b59b82d4">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#823bceab89ad9844fbdcf7a2b59b82d4"></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="classsmeshDC_1_1Mesh__Algorithm.html#cc7b73f68fec47890cf16932a71e71ff">GetCompatibleHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#cc7b73f68fec47890cf16932a71e71ff"></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="classsmeshDC_1_1Mesh__Algorithm.html#07001c3590c379d357754b3a8b4e62f2">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#07001c3590c379d357754b3a8b4e62f2"></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="classsmeshDC_1_1Mesh__Algorithm.html#fc9788a5b000f2f7afb7f7e81888bc1d">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#fc9788a5b000f2f7afb7f7e81888bc1d"></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="classsmeshDC_1_1Mesh__Algorithm.html#84a52154a90fef60f7939fc73084dea2">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#84a52154a90fef60f7939fc73084dea2"></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="classsmeshDC_1_1Mesh__Algorithm.html#6ed4da82cee92b3be4b42debecb10bfd">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#6ed4da82cee92b3be4b42debecb10bfd"></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="classsmeshDC_1_1Mesh__Algorithm.html#088088a4a4c2f4057984a8d5f5af05d0">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#088088a4a4c2f4057984a8d5f5af05d0"></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="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">algo</a></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="be7e16731b1a94760df4e685f714da46"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::__init__" ref="be7e16731b1a94760df4e685f714da46" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Quadrangle.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fe1d8832a448dd80ae454a959901bb80"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::QuadranglePreference" ref="fe1d8832a448dd80ae454a959901bb80" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Quadrangle.QuadranglePreference           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="d236fbbd88c3548e3e1cbaad693587fd"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::__init__" ref="d236fbbd88c3548e3e1cbaad693587fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6e10699dca080739fe879c39242d383f"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::GetSubMesh" ref="6e10699dca080739fe879c39242d383f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="823bceab89ad9844fbdcf7a2b59b82d4"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::GetAlgorithm" ref="823bceab89ad9844fbdcf7a2b59b82d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetAlgorithm           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc7b73f68fec47890cf16932a71e71ff"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::GetCompatibleHypothesis" ref="cc7b73f68fec47890cf16932a71e71ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetCompatibleHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="07001c3590c379d357754b3a8b4e62f2"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::GetName" ref="07001c3590c379d357754b3a8b4e62f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc9788a5b000f2f7afb7f7e81888bc1d"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::SetName" ref="fc9788a5b000f2f7afb7f7e81888bc1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="84a52154a90fef60f7939fc73084dea2"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::GetId" ref="84a52154a90fef60f7939fc73084dea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed4da82cee92b3be4b42debecb10bfd"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::Create" ref="6ed4da82cee92b3be4b42debecb10bfd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Create           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="088088a4a4c2f4057984a8d5f5af05d0"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::Hypothesis" ref="088088a4a4c2f4057984a8d5f5af05d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Hypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="a26131bcccd55e4d89612e43aeba151a"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::smesh" ref="a26131bcccd55e4d89612e43aeba151a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smeshDC.Mesh_Algorithm.smesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="389abfff22e0cd47e6fd98f5f5000cfa"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::mesh" ref="389abfff22e0cd47e6fd98f5f5000cfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">smeshDC.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="20ae4013ee7d13170461eca766fdda32"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::geom" ref="20ae4013ee7d13170461eca766fdda32" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">smeshDC.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">smeshDC.Mesh_Segment</a>.
+</div>
+</div><p>
+<a class="anchor" name="3292dd6a8b832264d19f199469602054"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::subm" ref="3292dd6a8b832264d19f199469602054" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">smeshDC.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f42e17af989dda7a186b5d7e68f2ec71"></a><!-- doxytag: member="smeshDC::Mesh_Quadrangle::algo" ref="f42e17af989dda7a186b5d7e68f2ec71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">smeshDC.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:46 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Quadrangle__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Quadrangle__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..531a339
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Quadrangle__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__RadialPrism3D.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__RadialPrism3D.html
new file mode 100644 (file)
index 0000000..2b10bc4
--- /dev/null
@@ -0,0 +1,775 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh__RadialPrism3D.html">Mesh_RadialPrism3D</a></div>
+<h1>smeshDC.Mesh_RadialPrism3D Class Reference</h1><!-- doxytag: class="smeshDC::Mesh_RadialPrism3D" --><!-- doxytag: inherits="smeshDC::Mesh_Algorithm" -->Class to define a Radial Prism 3D algorithm.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smeshDC.Mesh_RadialPrism3D:<p><center><img src="classsmeshDC_1_1Mesh__RadialPrism3D__inherit__graph.jpg" border="0" usemap="#smeshDC_8Mesh__RadialPrism3D__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8Mesh__RadialPrism3D__inherit__map">
+<area href="classsmeshDC_1_1Mesh__Algorithm.html" shape="rect" coords="24,9,216,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="classsmeshDC_1_1Mesh__RadialPrism3D.html#8fcbbe1962a3f18d7fb41aadc7fd1c77">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#8fcbbe1962a3f18d7fb41aadc7fd1c77"></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="classsmeshDC_1_1Mesh__RadialPrism3D.html#caad8abecf265d92e1a43bbbced3e7ab">Get3DHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return 3D hypothesis holding the 1D one.  <a href="#caad8abecf265d92e1a43bbbced3e7ab"></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="classsmeshDC_1_1Mesh__RadialPrism3D.html#a819a98bc2f4bae947d8cb3fcaae857b">OwnHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method creating 1D hypothes and storing it in the LayerDistribution hypothes.  <a href="#a819a98bc2f4bae947d8cb3fcaae857b"></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="classsmeshDC_1_1Mesh__RadialPrism3D.html#d1a1a93cf42a184945572e48023e32ca">NumberOfLayers</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "NumberOfLayers" hypothesis, specifying a number of layers of prisms to build between the inner and outer shells.  <a href="#d1a1a93cf42a184945572e48023e32ca"></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="classsmeshDC_1_1Mesh__RadialPrism3D.html#439d3fde7be45cf430d4a14a0a3abbfa">LocalLength</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "LocalLength" hypothesis, specifying segment length to build between the inner and outer shells.  <a href="#439d3fde7be45cf430d4a14a0a3abbfa"></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="classsmeshDC_1_1Mesh__RadialPrism3D.html#fba81e8f71b3a76b1bced257da509989">NumberOfSegments</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "NumberOfSegments" hypothesis, specifying a number of layers of prisms to build between the inner and outer shells.  <a href="#fba81e8f71b3a76b1bced257da509989"></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="classsmeshDC_1_1Mesh__RadialPrism3D.html#3a989ad23dfeaae5d2e26a993effe4ad">Arithmetic1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Arithmetic1D" hypothesis, specifying distribution of segments to build between the inner and outer shells as arithmetic length increasing.  <a href="#3a989ad23dfeaae5d2e26a993effe4ad"></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="classsmeshDC_1_1Mesh__RadialPrism3D.html#645825522286911f7257b6c258e650ca">StartEndLength</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "StartEndLength" hypothesis, specifying distribution of segments to build between the inner and outer shells as geometric length increasing.  <a href="#645825522286911f7257b6c258e650ca"></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="classsmeshDC_1_1Mesh__RadialPrism3D.html#e47fd6f4c97e698438369657c14a3bbb">AutomaticLength</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "AutomaticLength" hypothesis, specifying number of segments to build between the inner and outer shells.  <a href="#e47fd6f4c97e698438369657c14a3bbb"></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="classsmeshDC_1_1Mesh__Algorithm.html#d236fbbd88c3548e3e1cbaad693587fd">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#6e10699dca080739fe879c39242d383f">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
+ else return the submesh associated to this algorithm.  <a href="#6e10699dca080739fe879c39242d383f"></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="classsmeshDC_1_1Mesh__Algorithm.html#823bceab89ad9844fbdcf7a2b59b82d4">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#823bceab89ad9844fbdcf7a2b59b82d4"></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="classsmeshDC_1_1Mesh__Algorithm.html#cc7b73f68fec47890cf16932a71e71ff">GetCompatibleHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#cc7b73f68fec47890cf16932a71e71ff"></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="classsmeshDC_1_1Mesh__Algorithm.html#07001c3590c379d357754b3a8b4e62f2">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#07001c3590c379d357754b3a8b4e62f2"></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="classsmeshDC_1_1Mesh__Algorithm.html#fc9788a5b000f2f7afb7f7e81888bc1d">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#fc9788a5b000f2f7afb7f7e81888bc1d"></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="classsmeshDC_1_1Mesh__Algorithm.html#84a52154a90fef60f7939fc73084dea2">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#84a52154a90fef60f7939fc73084dea2"></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="classsmeshDC_1_1Mesh__Algorithm.html#6ed4da82cee92b3be4b42debecb10bfd">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#6ed4da82cee92b3be4b42debecb10bfd"></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="classsmeshDC_1_1Mesh__Algorithm.html#088088a4a4c2f4057984a8d5f5af05d0">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#088088a4a4c2f4057984a8d5f5af05d0"></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="classsmeshDC_1_1Mesh__RadialPrism3D.html#ff0943173414c92c9d36420a195b898f">distribHyp</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__RadialPrism3D.html#9f6f2363961e154bfc8212c155acf6bf">nbLayers</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">algo</a></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="8fcbbe1962a3f18d7fb41aadc7fd1c77"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::__init__" ref="8fcbbe1962a3f18d7fb41aadc7fd1c77" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_RadialPrism3D.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="caad8abecf265d92e1a43bbbced3e7ab"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::Get3DHypothesis" ref="caad8abecf265d92e1a43bbbced3e7ab" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_RadialPrism3D.Get3DHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="a819a98bc2f4bae947d8cb3fcaae857b"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::OwnHypothesis" ref="a819a98bc2f4bae947d8cb3fcaae857b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_RadialPrism3D.OwnHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Returns the created hypothes 
+</div>
+</div><p>
+<a class="anchor" name="d1a1a93cf42a184945572e48023e32ca"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::NumberOfLayers" ref="d1a1a93cf42a184945572e48023e32ca" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_RadialPrism3D.NumberOfLayers           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="439d3fde7be45cf430d4a14a0a3abbfa"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::LocalLength" ref="439d3fde7be45cf430d4a14a0a3abbfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_RadialPrism3D.LocalLength           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>l</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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 </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="fba81e8f71b3a76b1bced257da509989"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::NumberOfSegments" ref="fba81e8f71b3a76b1bced257da509989" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_RadialPrism3D.NumberOfSegments           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>n</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>s</em> = <code>[]</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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 </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>
+
+</div>
+</div><p>
+<a class="anchor" name="3a989ad23dfeaae5d2e26a993effe4ad"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::Arithmetic1D" ref="3a989ad23dfeaae5d2e26a993effe4ad" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_RadialPrism3D.Arithmetic1D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>start</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="645825522286911f7257b6c258e650ca"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::StartEndLength" ref="645825522286911f7257b6c258e650ca" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_RadialPrism3D.StartEndLength           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>start</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="e47fd6f4c97e698438369657c14a3bbb"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::AutomaticLength" ref="e47fd6f4c97e698438369657c14a3bbb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_RadialPrism3D.AutomaticLength           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>fineness</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="d236fbbd88c3548e3e1cbaad693587fd"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::__init__" ref="d236fbbd88c3548e3e1cbaad693587fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6e10699dca080739fe879c39242d383f"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::GetSubMesh" ref="6e10699dca080739fe879c39242d383f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="823bceab89ad9844fbdcf7a2b59b82d4"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::GetAlgorithm" ref="823bceab89ad9844fbdcf7a2b59b82d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetAlgorithm           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc7b73f68fec47890cf16932a71e71ff"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::GetCompatibleHypothesis" ref="cc7b73f68fec47890cf16932a71e71ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetCompatibleHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="07001c3590c379d357754b3a8b4e62f2"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::GetName" ref="07001c3590c379d357754b3a8b4e62f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc9788a5b000f2f7afb7f7e81888bc1d"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::SetName" ref="fc9788a5b000f2f7afb7f7e81888bc1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="84a52154a90fef60f7939fc73084dea2"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::GetId" ref="84a52154a90fef60f7939fc73084dea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed4da82cee92b3be4b42debecb10bfd"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::Create" ref="6ed4da82cee92b3be4b42debecb10bfd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Create           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="088088a4a4c2f4057984a8d5f5af05d0"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::Hypothesis" ref="088088a4a4c2f4057984a8d5f5af05d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Hypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="ff0943173414c92c9d36420a195b898f"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::distribHyp" ref="ff0943173414c92c9d36420a195b898f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__RadialPrism3D.html#ff0943173414c92c9d36420a195b898f">smeshDC.Mesh_RadialPrism3D.distribHyp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="9f6f2363961e154bfc8212c155acf6bf"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::nbLayers" ref="9f6f2363961e154bfc8212c155acf6bf" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__RadialPrism3D.html#9f6f2363961e154bfc8212c155acf6bf">smeshDC.Mesh_RadialPrism3D.nbLayers</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="a26131bcccd55e4d89612e43aeba151a"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::smesh" ref="a26131bcccd55e4d89612e43aeba151a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smeshDC.Mesh_Algorithm.smesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="389abfff22e0cd47e6fd98f5f5000cfa"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::mesh" ref="389abfff22e0cd47e6fd98f5f5000cfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">smeshDC.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="20ae4013ee7d13170461eca766fdda32"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::geom" ref="20ae4013ee7d13170461eca766fdda32" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">smeshDC.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">smeshDC.Mesh_Segment</a>.
+</div>
+</div><p>
+<a class="anchor" name="3292dd6a8b832264d19f199469602054"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::subm" ref="3292dd6a8b832264d19f199469602054" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">smeshDC.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f42e17af989dda7a186b5d7e68f2ec71"></a><!-- doxytag: member="smeshDC::Mesh_RadialPrism3D::algo" ref="f42e17af989dda7a186b5d7e68f2ec71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">smeshDC.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:52 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__RadialPrism3D__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__RadialPrism3D__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..3624c76
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__RadialPrism3D__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Segment.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Segment.html
new file mode 100644 (file)
index 0000000..5c23940
--- /dev/null
@@ -0,0 +1,773 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh__Segment.html">Mesh_Segment</a></div>
+<h1>smeshDC.Mesh_Segment Class Reference</h1><!-- doxytag: class="smeshDC::Mesh_Segment" --><!-- doxytag: inherits="smeshDC::Mesh_Algorithm" -->Class to define a segment 1D algorithm for discretization.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smeshDC.Mesh_Segment:<p><center><img src="classsmeshDC_1_1Mesh__Segment__inherit__graph.jpg" border="0" usemap="#smeshDC_8Mesh__Segment__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8Mesh__Segment__inherit__map">
+<area href="classsmeshDC_1_1Mesh__CompositeSegment.html" shape="rect" coords="7,158,263,182" alt="">
+<area href="classsmeshDC_1_1Mesh__Segment__Python.html" shape="rect" coords="287,158,525,182" alt="">
+<area href="classsmeshDC_1_1Mesh__Algorithm.html" shape="rect" coords="174,9,366,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="classsmeshDC_1_1Mesh__Segment.html#5c4a83872230465157d06af21b0b0982">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#5c4a83872230465157d06af21b0b0982"></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="classsmeshDC_1_1Mesh__Segment.html#2f9d15d24a38ccc273014f85ea6dcd24">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="#2f9d15d24a38ccc273014f85ea6dcd24"></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="classsmeshDC_1_1Mesh__Segment.html#04608e6ca6e7008ebd248548f24a8248">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="#04608e6ca6e7008ebd248548f24a8248"></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="classsmeshDC_1_1Mesh__Segment.html#4e44e56e3986592ea4b373314350ba1e">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="#4e44e56e3986592ea4b373314350ba1e"></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="classsmeshDC_1_1Mesh__Segment.html#55111c455f6db69788784ab3592422bf">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="#55111c455f6db69788784ab3592422bf"></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="classsmeshDC_1_1Mesh__Segment.html#9c66c7680baa0ad57798f636f1f76714">Deflection1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Deflection1D" hypothesis.  <a href="#9c66c7680baa0ad57798f636f1f76714"></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="classsmeshDC_1_1Mesh__Segment.html#a056c4ab47821070f56256c5247a83dc">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="#a056c4ab47821070f56256c5247a83dc"></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="classsmeshDC_1_1Mesh__Segment.html#37c89f203f0c2d4b668775f38d406d00">AutomaticLength</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "AutomaticLength" hypothesis.  <a href="#37c89f203f0c2d4b668775f38d406d00"></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="classsmeshDC_1_1Mesh__Segment.html#b55e9b34c5e68ad2a4bf8aa5b737de9b">LengthNearVertex</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "SegmentLengthAroundVertex" hypothesis.  <a href="#b55e9b34c5e68ad2a4bf8aa5b737de9b"></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="classsmeshDC_1_1Mesh__Segment.html#99a77d794183b6b42d27c4d63f85fe74">QuadraticMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "QuadraticMesh" hypothesis, forcing construction of quadratic edges.  <a href="#99a77d794183b6b42d27c4d63f85fe74"></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="classsmeshDC_1_1Mesh__Algorithm.html#d236fbbd88c3548e3e1cbaad693587fd">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#6e10699dca080739fe879c39242d383f">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
+ else return the submesh associated to this algorithm.  <a href="#6e10699dca080739fe879c39242d383f"></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="classsmeshDC_1_1Mesh__Algorithm.html#823bceab89ad9844fbdcf7a2b59b82d4">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#823bceab89ad9844fbdcf7a2b59b82d4"></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="classsmeshDC_1_1Mesh__Algorithm.html#cc7b73f68fec47890cf16932a71e71ff">GetCompatibleHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#cc7b73f68fec47890cf16932a71e71ff"></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="classsmeshDC_1_1Mesh__Algorithm.html#07001c3590c379d357754b3a8b4e62f2">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#07001c3590c379d357754b3a8b4e62f2"></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="classsmeshDC_1_1Mesh__Algorithm.html#fc9788a5b000f2f7afb7f7e81888bc1d">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#fc9788a5b000f2f7afb7f7e81888bc1d"></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="classsmeshDC_1_1Mesh__Algorithm.html#84a52154a90fef60f7939fc73084dea2">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#84a52154a90fef60f7939fc73084dea2"></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="classsmeshDC_1_1Mesh__Algorithm.html#6ed4da82cee92b3be4b42debecb10bfd">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#6ed4da82cee92b3be4b42debecb10bfd"></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="classsmeshDC_1_1Mesh__Algorithm.html#088088a4a4c2f4057984a8d5f5af05d0">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#088088a4a4c2f4057984a8d5f5af05d0"></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="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">algo</a></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="5c4a83872230465157d06af21b0b0982"></a><!-- doxytag: member="smeshDC::Mesh_Segment::__init__" ref="5c4a83872230465157d06af21b0b0982" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="classsmeshDC_1_1Mesh__CompositeSegment.html#3e92141214a56886fdf7918a922ef0af">smeshDC.Mesh_CompositeSegment</a>, and <a class="el" href="classsmeshDC_1_1Mesh__Segment__Python.html#e38eb8379c79bc2a3f29658209098f2b">smeshDC.Mesh_Segment_Python</a>.
+</div>
+</div><p>
+<a class="anchor" name="2f9d15d24a38ccc273014f85ea6dcd24"></a><!-- doxytag: member="smeshDC::Mesh_Segment::LocalLength" ref="2f9d15d24a38ccc273014f85ea6dcd24" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.LocalLength           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>l</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="04608e6ca6e7008ebd248548f24a8248"></a><!-- doxytag: member="smeshDC::Mesh_Segment::NumberOfSegments" ref="04608e6ca6e7008ebd248548f24a8248" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.NumberOfSegments           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>n</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>s</em> = <code>[]</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="4e44e56e3986592ea4b373314350ba1e"></a><!-- doxytag: member="smeshDC::Mesh_Segment::Arithmetic1D" ref="4e44e56e3986592ea4b373314350ba1e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.Arithmetic1D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>start</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="55111c455f6db69788784ab3592422bf"></a><!-- doxytag: member="smeshDC::Mesh_Segment::StartEndLength" ref="55111c455f6db69788784ab3592422bf" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.StartEndLength           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>start</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="9c66c7680baa0ad57798f636f1f76714"></a><!-- doxytag: member="smeshDC::Mesh_Segment::Deflection1D" ref="9c66c7680baa0ad57798f636f1f76714" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.Deflection1D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>d</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="a056c4ab47821070f56256c5247a83dc"></a><!-- doxytag: member="smeshDC::Mesh_Segment::Propagation" ref="a056c4ab47821070f56256c5247a83dc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.Propagation           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="37c89f203f0c2d4b668775f38d406d00"></a><!-- doxytag: member="smeshDC::Mesh_Segment::AutomaticLength" ref="37c89f203f0c2d4b668775f38d406d00" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.AutomaticLength           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>fineness</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="b55e9b34c5e68ad2a4bf8aa5b737de9b"></a><!-- doxytag: member="smeshDC::Mesh_Segment::LengthNearVertex" ref="b55e9b34c5e68ad2a4bf8aa5b737de9b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.LengthNearVertex           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>vertex</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>length</em>&nbsp;</td><td>for the segment length </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>vertex</em>&nbsp;</td><td>for the length localization: vertex index [0,1] | verext object </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="99a77d794183b6b42d27c4d63f85fe74"></a><!-- doxytag: member="smeshDC::Mesh_Segment::QuadraticMesh" ref="99a77d794183b6b42d27c4d63f85fe74" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.QuadraticMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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. 
+</div>
+</div><p>
+<a class="anchor" name="d236fbbd88c3548e3e1cbaad693587fd"></a><!-- doxytag: member="smeshDC::Mesh_Segment::__init__" ref="d236fbbd88c3548e3e1cbaad693587fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6e10699dca080739fe879c39242d383f"></a><!-- doxytag: member="smeshDC::Mesh_Segment::GetSubMesh" ref="6e10699dca080739fe879c39242d383f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="823bceab89ad9844fbdcf7a2b59b82d4"></a><!-- doxytag: member="smeshDC::Mesh_Segment::GetAlgorithm" ref="823bceab89ad9844fbdcf7a2b59b82d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetAlgorithm           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc7b73f68fec47890cf16932a71e71ff"></a><!-- doxytag: member="smeshDC::Mesh_Segment::GetCompatibleHypothesis" ref="cc7b73f68fec47890cf16932a71e71ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetCompatibleHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="07001c3590c379d357754b3a8b4e62f2"></a><!-- doxytag: member="smeshDC::Mesh_Segment::GetName" ref="07001c3590c379d357754b3a8b4e62f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc9788a5b000f2f7afb7f7e81888bc1d"></a><!-- doxytag: member="smeshDC::Mesh_Segment::SetName" ref="fc9788a5b000f2f7afb7f7e81888bc1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="84a52154a90fef60f7939fc73084dea2"></a><!-- doxytag: member="smeshDC::Mesh_Segment::GetId" ref="84a52154a90fef60f7939fc73084dea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed4da82cee92b3be4b42debecb10bfd"></a><!-- doxytag: member="smeshDC::Mesh_Segment::Create" ref="6ed4da82cee92b3be4b42debecb10bfd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Create           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="088088a4a4c2f4057984a8d5f5af05d0"></a><!-- doxytag: member="smeshDC::Mesh_Segment::Hypothesis" ref="088088a4a4c2f4057984a8d5f5af05d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Hypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="44e8968ec16413fd4aac2b906c313c0e"></a><!-- doxytag: member="smeshDC::Mesh_Segment::geom" ref="44e8968ec16413fd4aac2b906c313c0e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">smeshDC.Mesh_Segment.geom</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">smeshDC.Mesh_Algorithm</a>.
+</div>
+</div><p>
+<a class="anchor" name="a26131bcccd55e4d89612e43aeba151a"></a><!-- doxytag: member="smeshDC::Mesh_Segment::smesh" ref="a26131bcccd55e4d89612e43aeba151a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smeshDC.Mesh_Algorithm.smesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="389abfff22e0cd47e6fd98f5f5000cfa"></a><!-- doxytag: member="smeshDC::Mesh_Segment::mesh" ref="389abfff22e0cd47e6fd98f5f5000cfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">smeshDC.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="3292dd6a8b832264d19f199469602054"></a><!-- doxytag: member="smeshDC::Mesh_Segment::subm" ref="3292dd6a8b832264d19f199469602054" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">smeshDC.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f42e17af989dda7a186b5d7e68f2ec71"></a><!-- doxytag: member="smeshDC::Mesh_Segment::algo" ref="f42e17af989dda7a186b5d7e68f2ec71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">smeshDC.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:42 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Segment__Python.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Segment__Python.html
new file mode 100644 (file)
index 0000000..81b2c0e
--- /dev/null
@@ -0,0 +1,816 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh__Segment__Python.html">Mesh_Segment_Python</a></div>
+<h1>smeshDC.Mesh_Segment_Python Class Reference</h1><!-- doxytag: class="smeshDC::Mesh_Segment_Python" --><!-- doxytag: inherits="smeshDC::Mesh_Segment" -->Class to define a segment 1D algorithm for discretization with python function.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smeshDC.Mesh_Segment_Python:<p><center><img src="classsmeshDC_1_1Mesh__Segment__Python__inherit__graph.jpg" border="0" usemap="#smeshDC_8Mesh__Segment__Python__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8Mesh__Segment__Python__inherit__map">
+<area href="classsmeshDC_1_1Mesh__Segment.html" shape="rect" coords="33,84,219,108" alt="">
+<area href="classsmeshDC_1_1Mesh__Algorithm.html" shape="rect" coords="30,9,222,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="classsmeshDC_1_1Mesh__Segment__Python.html#e38eb8379c79bc2a3f29658209098f2b">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#e38eb8379c79bc2a3f29658209098f2b"></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="classsmeshDC_1_1Mesh__Segment__Python.html#67acdf24af043a2ee0d852c2b5281cd5">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="#67acdf24af043a2ee0d852c2b5281cd5"></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="classsmeshDC_1_1Mesh__Algorithm.html#d236fbbd88c3548e3e1cbaad693587fd">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Segment.html#2f9d15d24a38ccc273014f85ea6dcd24">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="#2f9d15d24a38ccc273014f85ea6dcd24"></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="classsmeshDC_1_1Mesh__Segment.html#04608e6ca6e7008ebd248548f24a8248">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="#04608e6ca6e7008ebd248548f24a8248"></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="classsmeshDC_1_1Mesh__Segment.html#4e44e56e3986592ea4b373314350ba1e">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="#4e44e56e3986592ea4b373314350ba1e"></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="classsmeshDC_1_1Mesh__Segment.html#55111c455f6db69788784ab3592422bf">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="#55111c455f6db69788784ab3592422bf"></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="classsmeshDC_1_1Mesh__Segment.html#9c66c7680baa0ad57798f636f1f76714">Deflection1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Deflection1D" hypothesis.  <a href="#9c66c7680baa0ad57798f636f1f76714"></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="classsmeshDC_1_1Mesh__Segment.html#a056c4ab47821070f56256c5247a83dc">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="#a056c4ab47821070f56256c5247a83dc"></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="classsmeshDC_1_1Mesh__Segment.html#37c89f203f0c2d4b668775f38d406d00">AutomaticLength</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "AutomaticLength" hypothesis.  <a href="#37c89f203f0c2d4b668775f38d406d00"></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="classsmeshDC_1_1Mesh__Segment.html#b55e9b34c5e68ad2a4bf8aa5b737de9b">LengthNearVertex</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "SegmentLengthAroundVertex" hypothesis.  <a href="#b55e9b34c5e68ad2a4bf8aa5b737de9b"></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="classsmeshDC_1_1Mesh__Segment.html#99a77d794183b6b42d27c4d63f85fe74">QuadraticMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "QuadraticMesh" hypothesis, forcing construction of quadratic edges.  <a href="#99a77d794183b6b42d27c4d63f85fe74"></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="classsmeshDC_1_1Mesh__Algorithm.html#6e10699dca080739fe879c39242d383f">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
+ else return the submesh associated to this algorithm.  <a href="#6e10699dca080739fe879c39242d383f"></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="classsmeshDC_1_1Mesh__Algorithm.html#823bceab89ad9844fbdcf7a2b59b82d4">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#823bceab89ad9844fbdcf7a2b59b82d4"></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="classsmeshDC_1_1Mesh__Algorithm.html#cc7b73f68fec47890cf16932a71e71ff">GetCompatibleHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#cc7b73f68fec47890cf16932a71e71ff"></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="classsmeshDC_1_1Mesh__Algorithm.html#07001c3590c379d357754b3a8b4e62f2">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#07001c3590c379d357754b3a8b4e62f2"></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="classsmeshDC_1_1Mesh__Algorithm.html#fc9788a5b000f2f7afb7f7e81888bc1d">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#fc9788a5b000f2f7afb7f7e81888bc1d"></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="classsmeshDC_1_1Mesh__Algorithm.html#84a52154a90fef60f7939fc73084dea2">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#84a52154a90fef60f7939fc73084dea2"></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="classsmeshDC_1_1Mesh__Algorithm.html#6ed4da82cee92b3be4b42debecb10bfd">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#6ed4da82cee92b3be4b42debecb10bfd"></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="classsmeshDC_1_1Mesh__Algorithm.html#088088a4a4c2f4057984a8d5f5af05d0">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#088088a4a4c2f4057984a8d5f5af05d0"></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="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">algo</a></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="e38eb8379c79bc2a3f29658209098f2b"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::__init__" ref="e38eb8379c79bc2a3f29658209098f2b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment_Python.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="classsmeshDC_1_1Mesh__Segment.html#5c4a83872230465157d06af21b0b0982">smeshDC.Mesh_Segment</a>.
+</div>
+</div><p>
+<a class="anchor" name="67acdf24af043a2ee0d852c2b5281cd5"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::PythonSplit1D" ref="67acdf24af043a2ee0d852c2b5281cd5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment_Python.PythonSplit1D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>n</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>func</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="d236fbbd88c3548e3e1cbaad693587fd"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::__init__" ref="d236fbbd88c3548e3e1cbaad693587fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="2f9d15d24a38ccc273014f85ea6dcd24"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::LocalLength" ref="2f9d15d24a38ccc273014f85ea6dcd24" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.LocalLength           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>l</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="04608e6ca6e7008ebd248548f24a8248"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::NumberOfSegments" ref="04608e6ca6e7008ebd248548f24a8248" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.NumberOfSegments           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>n</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>s</em> = <code>[]</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="4e44e56e3986592ea4b373314350ba1e"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::Arithmetic1D" ref="4e44e56e3986592ea4b373314350ba1e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.Arithmetic1D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>start</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="55111c455f6db69788784ab3592422bf"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::StartEndLength" ref="55111c455f6db69788784ab3592422bf" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.StartEndLength           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>start</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="9c66c7680baa0ad57798f636f1f76714"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::Deflection1D" ref="9c66c7680baa0ad57798f636f1f76714" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.Deflection1D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>d</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="a056c4ab47821070f56256c5247a83dc"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::Propagation" ref="a056c4ab47821070f56256c5247a83dc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.Propagation           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="37c89f203f0c2d4b668775f38d406d00"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::AutomaticLength" ref="37c89f203f0c2d4b668775f38d406d00" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.AutomaticLength           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>fineness</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="b55e9b34c5e68ad2a4bf8aa5b737de9b"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::LengthNearVertex" ref="b55e9b34c5e68ad2a4bf8aa5b737de9b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.LengthNearVertex           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>vertex</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>length</em>&nbsp;</td><td>for the segment length </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>vertex</em>&nbsp;</td><td>for the length localization: vertex index [0,1] | verext object </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="99a77d794183b6b42d27c4d63f85fe74"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::QuadraticMesh" ref="99a77d794183b6b42d27c4d63f85fe74" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Segment.QuadraticMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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. 
+</div>
+</div><p>
+<a class="anchor" name="6e10699dca080739fe879c39242d383f"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::GetSubMesh" ref="6e10699dca080739fe879c39242d383f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="823bceab89ad9844fbdcf7a2b59b82d4"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::GetAlgorithm" ref="823bceab89ad9844fbdcf7a2b59b82d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetAlgorithm           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc7b73f68fec47890cf16932a71e71ff"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::GetCompatibleHypothesis" ref="cc7b73f68fec47890cf16932a71e71ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetCompatibleHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="07001c3590c379d357754b3a8b4e62f2"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::GetName" ref="07001c3590c379d357754b3a8b4e62f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc9788a5b000f2f7afb7f7e81888bc1d"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::SetName" ref="fc9788a5b000f2f7afb7f7e81888bc1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="84a52154a90fef60f7939fc73084dea2"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::GetId" ref="84a52154a90fef60f7939fc73084dea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed4da82cee92b3be4b42debecb10bfd"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::Create" ref="6ed4da82cee92b3be4b42debecb10bfd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Create           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="088088a4a4c2f4057984a8d5f5af05d0"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::Hypothesis" ref="088088a4a4c2f4057984a8d5f5af05d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Hypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="44e8968ec16413fd4aac2b906c313c0e"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::geom" ref="44e8968ec16413fd4aac2b906c313c0e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">smeshDC.Mesh_Segment.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented from <a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">smeshDC.Mesh_Algorithm</a>.
+</div>
+</div><p>
+<a class="anchor" name="a26131bcccd55e4d89612e43aeba151a"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::smesh" ref="a26131bcccd55e4d89612e43aeba151a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smeshDC.Mesh_Algorithm.smesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="389abfff22e0cd47e6fd98f5f5000cfa"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::mesh" ref="389abfff22e0cd47e6fd98f5f5000cfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">smeshDC.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="3292dd6a8b832264d19f199469602054"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::subm" ref="3292dd6a8b832264d19f199469602054" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">smeshDC.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f42e17af989dda7a186b5d7e68f2ec71"></a><!-- doxytag: member="smeshDC::Mesh_Segment_Python::algo" ref="f42e17af989dda7a186b5d7e68f2ec71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">smeshDC.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:44 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Segment__Python__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Segment__Python__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..22c0b79
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Segment__Python__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Segment__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Segment__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..ce167aa
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Segment__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Tetrahedron.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Tetrahedron.html
new file mode 100644 (file)
index 0000000..a85de46
--- /dev/null
@@ -0,0 +1,800 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh__Tetrahedron.html">Mesh_Tetrahedron</a></div>
+<h1>smeshDC.Mesh_Tetrahedron Class Reference</h1><!-- doxytag: class="smeshDC::Mesh_Tetrahedron" --><!-- doxytag: inherits="smeshDC::Mesh_Algorithm" -->Class to define a tetrahedron 3D algorithm.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smeshDC.Mesh_Tetrahedron:<p><center><img src="classsmeshDC_1_1Mesh__Tetrahedron__inherit__graph.jpg" border="0" usemap="#smeshDC_8Mesh__Tetrahedron__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8Mesh__Tetrahedron__inherit__map">
+<area href="classsmeshDC_1_1Mesh__Algorithm.html" shape="rect" coords="14,9,206,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="classsmeshDC_1_1Mesh__Tetrahedron.html#291e0ee90a057800355c611106b047f7">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#291e0ee90a057800355c611106b047f7"></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="classsmeshDC_1_1Mesh__Tetrahedron.html#b6a52d8875cd697f1873c7cdbfc48953">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="#b6a52d8875cd697f1873c7cdbfc48953"></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="classsmeshDC_1_1Mesh__Tetrahedron.html#3fb1e88e134722730c09c710e79d7d2d">Parameters</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Netgen 3D Parameters" hypothesis.  <a href="#3fb1e88e134722730c09c710e79d7d2d"></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="classsmeshDC_1_1Mesh__Tetrahedron.html#a1b26f4f423560c7b12ef02b65714f48">SetMaxSize</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set MaxSize.  <a href="#a1b26f4f423560c7b12ef02b65714f48"></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="classsmeshDC_1_1Mesh__Tetrahedron.html#10a8529a53e7476391bd34a564485aed">SetSecondOrder</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set SecondOrder flag.  <a href="#10a8529a53e7476391bd34a564485aed"></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="classsmeshDC_1_1Mesh__Tetrahedron.html#4f4cb87cace8b3f653967399fb068bbb">SetOptimize</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set Optimize flag.  <a href="#4f4cb87cace8b3f653967399fb068bbb"></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="classsmeshDC_1_1Mesh__Tetrahedron.html#27abbf4e34c4f9f328ba24a15243807a">SetFineness</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set Fineness.  <a href="#27abbf4e34c4f9f328ba24a15243807a"></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="classsmeshDC_1_1Mesh__Tetrahedron.html#d42c68ee93e1ba30db62a937e4093c46">SetGrowthRate</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set GrowthRate.  <a href="#d42c68ee93e1ba30db62a937e4093c46"></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="classsmeshDC_1_1Mesh__Tetrahedron.html#99f943f5f235d0c9eb67d11a95bfd1b4">SetNbSegPerEdge</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set NbSegPerEdge.  <a href="#99f943f5f235d0c9eb67d11a95bfd1b4"></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="classsmeshDC_1_1Mesh__Tetrahedron.html#204fedb21f34d4f0356c1ee5e9b7efaf">SetNbSegPerRadius</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set NbSegPerRadius.  <a href="#204fedb21f34d4f0356c1ee5e9b7efaf"></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="classsmeshDC_1_1Mesh__Algorithm.html#d236fbbd88c3548e3e1cbaad693587fd">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#6e10699dca080739fe879c39242d383f">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
+ else return the submesh associated to this algorithm.  <a href="#6e10699dca080739fe879c39242d383f"></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="classsmeshDC_1_1Mesh__Algorithm.html#823bceab89ad9844fbdcf7a2b59b82d4">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#823bceab89ad9844fbdcf7a2b59b82d4"></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="classsmeshDC_1_1Mesh__Algorithm.html#cc7b73f68fec47890cf16932a71e71ff">GetCompatibleHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#cc7b73f68fec47890cf16932a71e71ff"></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="classsmeshDC_1_1Mesh__Algorithm.html#07001c3590c379d357754b3a8b4e62f2">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#07001c3590c379d357754b3a8b4e62f2"></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="classsmeshDC_1_1Mesh__Algorithm.html#fc9788a5b000f2f7afb7f7e81888bc1d">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#fc9788a5b000f2f7afb7f7e81888bc1d"></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="classsmeshDC_1_1Mesh__Algorithm.html#84a52154a90fef60f7939fc73084dea2">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#84a52154a90fef60f7939fc73084dea2"></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="classsmeshDC_1_1Mesh__Algorithm.html#6ed4da82cee92b3be4b42debecb10bfd">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#6ed4da82cee92b3be4b42debecb10bfd"></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="classsmeshDC_1_1Mesh__Algorithm.html#088088a4a4c2f4057984a8d5f5af05d0">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#088088a4a4c2f4057984a8d5f5af05d0"></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="classsmeshDC_1_1Mesh__Tetrahedron.html#cc69e601c3ecf0ebbd62b0b6e8133656">algoType</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Tetrahedron.html#e1c0c8f0f6685cfc798c660d7bf150eb">params</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">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="classsmeshDC_1_1Mesh__Tetrahedron.html#20aacdf4680ef9ac8478b884b1fa9821">params</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="classsmeshDC_1_1Mesh__Tetrahedron.html#06ddd1af2a9d8e7282cea1ebb641206e">algoType</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="291e0ee90a057800355c611106b047f7"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::__init__" ref="291e0ee90a057800355c611106b047f7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Tetrahedron.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>algoType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="b6a52d8875cd697f1873c7cdbfc48953"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::MaxElementVolume" ref="b6a52d8875cd697f1873c7cdbfc48953" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Tetrahedron.MaxElementVolume           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>vol</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="3fb1e88e134722730c09c710e79d7d2d"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::Parameters" ref="3fb1e88e134722730c09c710e79d7d2d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Tetrahedron.Parameters           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="a1b26f4f423560c7b12ef02b65714f48"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::SetMaxSize" ref="a1b26f4f423560c7b12ef02b65714f48" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Tetrahedron.SetMaxSize           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSize</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="10a8529a53e7476391bd34a564485aed"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::SetSecondOrder" ref="10a8529a53e7476391bd34a564485aed" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Tetrahedron.SetSecondOrder           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVal</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="4f4cb87cace8b3f653967399fb068bbb"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::SetOptimize" ref="4f4cb87cace8b3f653967399fb068bbb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Tetrahedron.SetOptimize           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVal</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="27abbf4e34c4f9f328ba24a15243807a"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::SetFineness" ref="27abbf4e34c4f9f328ba24a15243807a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Tetrahedron.SetFineness           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFineness</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theFineness</em>&nbsp;</td><td>is: VeryCoarse, Coarse, Moderate, Fine, VeryFine or Custom </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="d42c68ee93e1ba30db62a937e4093c46"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::SetGrowthRate" ref="d42c68ee93e1ba30db62a937e4093c46" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Tetrahedron.SetGrowthRate           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRate</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="99f943f5f235d0c9eb67d11a95bfd1b4"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::SetNbSegPerEdge" ref="99f943f5f235d0c9eb67d11a95bfd1b4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Tetrahedron.SetNbSegPerEdge           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVal</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="204fedb21f34d4f0356c1ee5e9b7efaf"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::SetNbSegPerRadius" ref="204fedb21f34d4f0356c1ee5e9b7efaf" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Tetrahedron.SetNbSegPerRadius           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVal</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="d236fbbd88c3548e3e1cbaad693587fd"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::__init__" ref="d236fbbd88c3548e3e1cbaad693587fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6e10699dca080739fe879c39242d383f"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::GetSubMesh" ref="6e10699dca080739fe879c39242d383f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="823bceab89ad9844fbdcf7a2b59b82d4"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::GetAlgorithm" ref="823bceab89ad9844fbdcf7a2b59b82d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetAlgorithm           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc7b73f68fec47890cf16932a71e71ff"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::GetCompatibleHypothesis" ref="cc7b73f68fec47890cf16932a71e71ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetCompatibleHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="07001c3590c379d357754b3a8b4e62f2"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::GetName" ref="07001c3590c379d357754b3a8b4e62f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc9788a5b000f2f7afb7f7e81888bc1d"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::SetName" ref="fc9788a5b000f2f7afb7f7e81888bc1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="84a52154a90fef60f7939fc73084dea2"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::GetId" ref="84a52154a90fef60f7939fc73084dea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed4da82cee92b3be4b42debecb10bfd"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::Create" ref="6ed4da82cee92b3be4b42debecb10bfd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Create           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="088088a4a4c2f4057984a8d5f5af05d0"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::Hypothesis" ref="088088a4a4c2f4057984a8d5f5af05d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Hypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="20aacdf4680ef9ac8478b884b1fa9821"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::params" ref="20aacdf4680ef9ac8478b884b1fa9821" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="classsmeshDC_1_1Mesh__Tetrahedron.html#20aacdf4680ef9ac8478b884b1fa9821">smeshDC.Mesh_Tetrahedron.params</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="06ddd1af2a9d8e7282cea1ebb641206e"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::algoType" ref="06ddd1af2a9d8e7282cea1ebb641206e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="classsmeshDC_1_1Mesh__Tetrahedron.html#06ddd1af2a9d8e7282cea1ebb641206e">smeshDC.Mesh_Tetrahedron.algoType</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc69e601c3ecf0ebbd62b0b6e8133656"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::algoType" ref="cc69e601c3ecf0ebbd62b0b6e8133656" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Tetrahedron.html#06ddd1af2a9d8e7282cea1ebb641206e">smeshDC.Mesh_Tetrahedron.algoType</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="e1c0c8f0f6685cfc798c660d7bf150eb"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::params" ref="e1c0c8f0f6685cfc798c660d7bf150eb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Tetrahedron.html#20aacdf4680ef9ac8478b884b1fa9821">smeshDC.Mesh_Tetrahedron.params</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="a26131bcccd55e4d89612e43aeba151a"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::smesh" ref="a26131bcccd55e4d89612e43aeba151a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smeshDC.Mesh_Algorithm.smesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="389abfff22e0cd47e6fd98f5f5000cfa"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::mesh" ref="389abfff22e0cd47e6fd98f5f5000cfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">smeshDC.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="20ae4013ee7d13170461eca766fdda32"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::geom" ref="20ae4013ee7d13170461eca766fdda32" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">smeshDC.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">smeshDC.Mesh_Segment</a>.
+</div>
+</div><p>
+<a class="anchor" name="3292dd6a8b832264d19f199469602054"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::subm" ref="3292dd6a8b832264d19f199469602054" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">smeshDC.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f42e17af989dda7a186b5d7e68f2ec71"></a><!-- doxytag: member="smeshDC::Mesh_Tetrahedron::algo" ref="f42e17af989dda7a186b5d7e68f2ec71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">smeshDC.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:46 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Tetrahedron__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Tetrahedron__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..04b5220
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Tetrahedron__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Triangle.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Triangle.html
new file mode 100644 (file)
index 0000000..fafbe30
--- /dev/null
@@ -0,0 +1,855 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1Mesh__Triangle.html">Mesh_Triangle</a></div>
+<h1>smeshDC.Mesh_Triangle Class Reference</h1><!-- doxytag: class="smeshDC::Mesh_Triangle" --><!-- doxytag: inherits="smeshDC::Mesh_Algorithm" -->Class to define a triangle 2D algorithm.  
+<a href="#_details">More...</a>
+<p>
+Inheritance diagram for smeshDC.Mesh_Triangle:<p><center><img src="classsmeshDC_1_1Mesh__Triangle__inherit__graph.jpg" border="0" usemap="#smeshDC_8Mesh__Triangle__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8Mesh__Triangle__inherit__map">
+<area href="classsmeshDC_1_1Mesh__Algorithm.html" shape="rect" coords="8,9,200,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="classsmeshDC_1_1Mesh__Triangle.html#2ed3a3036c54f80493180f63129ff648">__init__</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#2ed3a3036c54f80493180f63129ff648"></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="classsmeshDC_1_1Mesh__Triangle.html#7ac62e5402ad301f21fc2a600aac487c">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="#7ac62e5402ad301f21fc2a600aac487c"></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="classsmeshDC_1_1Mesh__Triangle.html#aed380b422fdbd0f5dfce46a31f13584">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="#aed380b422fdbd0f5dfce46a31f13584"></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="classsmeshDC_1_1Mesh__Triangle.html#467351133f6b28085085ce816486df3b">Parameters</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Netgen 2D Parameters" hypothesis.  <a href="#467351133f6b28085085ce816486df3b"></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="classsmeshDC_1_1Mesh__Triangle.html#a4315cba92bf8d811dd4165ea3d414a8">SetMaxSize</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set MaxSize.  <a href="#a4315cba92bf8d811dd4165ea3d414a8"></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="classsmeshDC_1_1Mesh__Triangle.html#dcc055f5a48f07f5e6e3795f8e20df91">SetSecondOrder</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set SecondOrder flag.  <a href="#dcc055f5a48f07f5e6e3795f8e20df91"></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="classsmeshDC_1_1Mesh__Triangle.html#1038229839470562de0dfa5ea3295ffe">SetOptimize</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set Optimize flag.  <a href="#1038229839470562de0dfa5ea3295ffe"></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="classsmeshDC_1_1Mesh__Triangle.html#d89eb1da49de683da7aee6c9fcce8c35">SetFineness</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set Fineness.  <a href="#d89eb1da49de683da7aee6c9fcce8c35"></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="classsmeshDC_1_1Mesh__Triangle.html#d4d2280c1856f1c79802a35b02d3b85f">SetGrowthRate</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set GrowthRate.  <a href="#d4d2280c1856f1c79802a35b02d3b85f"></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="classsmeshDC_1_1Mesh__Triangle.html#71b7b2d8b2838a9cab8171918fa2b9a3">SetNbSegPerEdge</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set NbSegPerEdge.  <a href="#71b7b2d8b2838a9cab8171918fa2b9a3"></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="classsmeshDC_1_1Mesh__Triangle.html#efa78245bff3e67168cd332b4320283e">SetNbSegPerRadius</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set NbSegPerRadius.  <a href="#efa78245bff3e67168cd332b4320283e"></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="classsmeshDC_1_1Mesh__Triangle.html#adebc1bdaeda926b21c2fc46fa6a4141">SetQuadAllowed</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set QuadAllowed flag.  <a href="#adebc1bdaeda926b21c2fc46fa6a4141"></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="classsmeshDC_1_1Mesh__Algorithm.html#d236fbbd88c3548e3e1cbaad693587fd">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#6e10699dca080739fe879c39242d383f">GetSubMesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
+ else return the submesh associated to this algorithm.  <a href="#6e10699dca080739fe879c39242d383f"></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="classsmeshDC_1_1Mesh__Algorithm.html#823bceab89ad9844fbdcf7a2b59b82d4">GetAlgorithm</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the wrapped mesher.  <a href="#823bceab89ad9844fbdcf7a2b59b82d4"></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="classsmeshDC_1_1Mesh__Algorithm.html#cc7b73f68fec47890cf16932a71e71ff">GetCompatibleHypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#cc7b73f68fec47890cf16932a71e71ff"></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="classsmeshDC_1_1Mesh__Algorithm.html#07001c3590c379d357754b3a8b4e62f2">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#07001c3590c379d357754b3a8b4e62f2"></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="classsmeshDC_1_1Mesh__Algorithm.html#fc9788a5b000f2f7afb7f7e81888bc1d">SetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#fc9788a5b000f2f7afb7f7e81888bc1d"></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="classsmeshDC_1_1Mesh__Algorithm.html#84a52154a90fef60f7939fc73084dea2">GetId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#84a52154a90fef60f7939fc73084dea2"></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="classsmeshDC_1_1Mesh__Algorithm.html#6ed4da82cee92b3be4b42debecb10bfd">Create</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#6ed4da82cee92b3be4b42debecb10bfd"></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="classsmeshDC_1_1Mesh__Algorithm.html#088088a4a4c2f4057984a8d5f5af05d0">Hypothesis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method.  <a href="#088088a4a4c2f4057984a8d5f5af05d0"></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="classsmeshDC_1_1Mesh__Triangle.html#0989ce5ccd64fdee56033da4cc267d01">algoType</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Triangle.html#61485147eeee81ea323ae74d6a020a9b">params</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">subm</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">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="classsmeshDC_1_1Mesh__Triangle.html#e9274508a096be121aecc16717c7befb">algoType</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="classsmeshDC_1_1Mesh__Triangle.html#816078764568abdbe333915df1d5a643">params</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="2ed3a3036c54f80493180f63129ff648"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::__init__" ref="2ed3a3036c54f80493180f63129ff648" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Triangle.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>algoType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="7ac62e5402ad301f21fc2a600aac487c"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::MaxElementArea" ref="7ac62e5402ad301f21fc2a600aac487c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Triangle.MaxElementArea           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>area</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>
+
+</div>
+</div><p>
+<a class="anchor" name="aed380b422fdbd0f5dfce46a31f13584"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::LengthFromEdges" ref="aed380b422fdbd0f5dfce46a31f13584" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Triangle.LengthFromEdges           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="467351133f6b28085085ce816486df3b"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::Parameters" ref="467351133f6b28085085ce816486df3b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Triangle.Parameters           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="a4315cba92bf8d811dd4165ea3d414a8"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::SetMaxSize" ref="a4315cba92bf8d811dd4165ea3d414a8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Triangle.SetMaxSize           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSize</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="dcc055f5a48f07f5e6e3795f8e20df91"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::SetSecondOrder" ref="dcc055f5a48f07f5e6e3795f8e20df91" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Triangle.SetSecondOrder           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVal</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="1038229839470562de0dfa5ea3295ffe"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::SetOptimize" ref="1038229839470562de0dfa5ea3295ffe" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Triangle.SetOptimize           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVal</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="d89eb1da49de683da7aee6c9fcce8c35"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::SetFineness" ref="d89eb1da49de683da7aee6c9fcce8c35" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Triangle.SetFineness           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFineness</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theFineness</em>&nbsp;</td><td>is: VeryCoarse, Coarse, Moderate, Fine, VeryFine or Custom </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="d4d2280c1856f1c79802a35b02d3b85f"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::SetGrowthRate" ref="d4d2280c1856f1c79802a35b02d3b85f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Triangle.SetGrowthRate           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRate</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="71b7b2d8b2838a9cab8171918fa2b9a3"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::SetNbSegPerEdge" ref="71b7b2d8b2838a9cab8171918fa2b9a3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Triangle.SetNbSegPerEdge           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVal</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="efa78245bff3e67168cd332b4320283e"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::SetNbSegPerRadius" ref="efa78245bff3e67168cd332b4320283e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Triangle.SetNbSegPerRadius           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVal</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="adebc1bdaeda926b21c2fc46fa6a4141"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::SetQuadAllowed" ref="adebc1bdaeda926b21c2fc46fa6a4141" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Triangle.SetQuadAllowed           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>toAllow</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="d236fbbd88c3548e3e1cbaad693587fd"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::__init__" ref="d236fbbd88c3548e3e1cbaad693587fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>smesh</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6e10699dca080739fe879c39242d383f"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::GetSubMesh" ref="6e10699dca080739fe879c39242d383f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetSubMesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="823bceab89ad9844fbdcf7a2b59b82d4"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::GetAlgorithm" ref="823bceab89ad9844fbdcf7a2b59b82d4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetAlgorithm           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc7b73f68fec47890cf16932a71e71ff"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::GetCompatibleHypothesis" ref="cc7b73f68fec47890cf16932a71e71ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetCompatibleHypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="07001c3590c379d357754b3a8b4e62f2"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::GetName" ref="07001c3590c379d357754b3a8b4e62f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fc9788a5b000f2f7afb7f7e81888bc1d"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::SetName" ref="fc9788a5b000f2f7afb7f7e81888bc1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="84a52154a90fef60f7939fc73084dea2"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::GetId" ref="84a52154a90fef60f7939fc73084dea2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.GetId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed4da82cee92b3be4b42debecb10bfd"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::Create" ref="6ed4da82cee92b3be4b42debecb10bfd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Create           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>mesh</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geom</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypo</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="088088a4a4c2f4057984a8d5f5af05d0"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::Hypothesis" ref="088088a4a4c2f4057984a8d5f5af05d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.Mesh_Algorithm.Hypothesis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hyp</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>args</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>so</em> = <code>&quot;libStdMeshersEngine.so&quot;</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"><code> [inherited]</code></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="e9274508a096be121aecc16717c7befb"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::algoType" ref="e9274508a096be121aecc16717c7befb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="classsmeshDC_1_1Mesh__Triangle.html#e9274508a096be121aecc16717c7befb">smeshDC.Mesh_Triangle.algoType</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="816078764568abdbe333915df1d5a643"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::params" ref="816078764568abdbe333915df1d5a643" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="classsmeshDC_1_1Mesh__Triangle.html#816078764568abdbe333915df1d5a643">smeshDC.Mesh_Triangle.params</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="0989ce5ccd64fdee56033da4cc267d01"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::algoType" ref="0989ce5ccd64fdee56033da4cc267d01" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Triangle.html#e9274508a096be121aecc16717c7befb">smeshDC.Mesh_Triangle.algoType</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="61485147eeee81ea323ae74d6a020a9b"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::params" ref="61485147eeee81ea323ae74d6a020a9b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Triangle.html#816078764568abdbe333915df1d5a643">smeshDC.Mesh_Triangle.params</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="a26131bcccd55e4d89612e43aeba151a"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::smesh" ref="a26131bcccd55e4d89612e43aeba151a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#a26131bcccd55e4d89612e43aeba151a">smeshDC.Mesh_Algorithm.smesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="389abfff22e0cd47e6fd98f5f5000cfa"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::mesh" ref="389abfff22e0cd47e6fd98f5f5000cfa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#389abfff22e0cd47e6fd98f5f5000cfa">smeshDC.Mesh_Algorithm.mesh</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="20ae4013ee7d13170461eca766fdda32"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::geom" ref="20ae4013ee7d13170461eca766fdda32" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#20ae4013ee7d13170461eca766fdda32">smeshDC.Mesh_Algorithm.geom</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+<p>
+Reimplemented in <a class="el" href="classsmeshDC_1_1Mesh__Segment.html#44e8968ec16413fd4aac2b906c313c0e">smeshDC.Mesh_Segment</a>.
+</div>
+</div><p>
+<a class="anchor" name="3292dd6a8b832264d19f199469602054"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::subm" ref="3292dd6a8b832264d19f199469602054" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#3292dd6a8b832264d19f199469602054">smeshDC.Mesh_Algorithm.subm</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f42e17af989dda7a186b5d7e68f2ec71"></a><!-- doxytag: member="smeshDC::Mesh_Triangle::algo" ref="f42e17af989dda7a186b5d7e68f2ec71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1Mesh__Algorithm.html#f42e17af989dda7a186b5d7e68f2ec71">smeshDC.Mesh_Algorithm.algo</a><code> [inherited]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:45 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Triangle__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Triangle__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..654d537
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1Mesh__Triangle__inherit__graph.jpg differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1smeshDC.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1smeshDC.html
new file mode 100644 (file)
index 0000000..0502b82
--- /dev/null
@@ -0,0 +1,740 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacesmeshDC.html">smeshDC</a>.<a class="el" href="classsmeshDC_1_1smeshDC.html">smeshDC</a></div>
+<h1>smeshDC.smeshDC Class Reference</h1><!-- doxytag: class="smeshDC::smeshDC" --><!-- doxytag: inherits="SMESH::_objref_SMESH_Gen" -->Inheritance diagram for smeshDC.smeshDC:<p><center><img src="classsmeshDC_1_1smeshDC__inherit__graph.jpg" border="0" usemap="#smeshDC_8smeshDC__inherit__map" alt="Inheritance graph"></center>
+<map name="smeshDC_8smeshDC__inherit__map">
+<area href="classSMESH_1_1__objref__SMESH__Gen.html" shape="rect" coords="8,9,216,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="classsmeshDC_1_1smeshDC.html#3499c2d17eefbcd7bf18afd55724d8d0">init_smesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1smeshDC.html#2e7b8d092fdcbaf79a26288b0d626687">Mesh</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_1_1smeshDC.html#334a64d26357505f4c01bac941dd4a62">EnumToLong</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns long value from enumeration Uses for SMESH.FunctorType enumeration.  <a href="#334a64d26357505f4c01bac941dd4a62"></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="classsmeshDC_1_1smeshDC.html#64ad34d9c5d0e80645c2bb39987c317e">GetPointStruct</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get PointStruct from vertex.  <a href="#64ad34d9c5d0e80645c2bb39987c317e"></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="classsmeshDC_1_1smeshDC.html#2c9c34b4bb4cda25e0c79762e18b7cee">GetDirStruct</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get DirStruct from vector.  <a href="#2c9c34b4bb4cda25e0c79762e18b7cee"></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="classsmeshDC_1_1smeshDC.html#0d27bea973eb458dd78cb34063409637">GetAxisStruct</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get AxisStruct from object.  <a href="#0d27bea973eb458dd78cb34063409637"></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="classsmeshDC_1_1smeshDC.html#c1b7b046cf266b180366258adff61c58">SetEmbeddedMode</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the current mode.  <a href="#c1b7b046cf266b180366258adff61c58"></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="classsmeshDC_1_1smeshDC.html#56f3b2cf98523408e29c9e37ddbcd30b">IsEmbeddedMode</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current mode.  <a href="#56f3b2cf98523408e29c9e37ddbcd30b"></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="classsmeshDC_1_1smeshDC.html#d651984dfb70f141191ecb0ea19eef53">SetCurrentStudy</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the current study.  <a href="#d651984dfb70f141191ecb0ea19eef53"></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="classsmeshDC_1_1smeshDC.html#a3092b9e1113eb7e8f6dd836504109e5">GetCurrentStudy</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current study.  <a href="#a3092b9e1113eb7e8f6dd836504109e5"></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="classsmeshDC_1_1smeshDC.html#6b8533345f9c0daaaa0461274c137896">CreateMeshesFromUNV</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create <a class="el" href="classsmeshDC_1_1Mesh.html">Mesh</a> object importing data from given UNV file.  <a href="#6b8533345f9c0daaaa0461274c137896"></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="classsmeshDC_1_1smeshDC.html#f4baebaebf0a5d22e8b17b4ce6111531">CreateMeshesFromMED</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create <a class="el" href="classsmeshDC_1_1Mesh.html">Mesh</a> object(s) importing data from given MED file.  <a href="#f4baebaebf0a5d22e8b17b4ce6111531"></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="classsmeshDC_1_1smeshDC.html#475c4a1a7f9b19a0c5e75b8c6d8d87dd">CreateMeshesFromSTL</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create <a class="el" href="classsmeshDC_1_1Mesh.html">Mesh</a> object importing data from given STL file.  <a href="#475c4a1a7f9b19a0c5e75b8c6d8d87dd"></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="classsmeshDC_1_1smeshDC.html#73a72dd2b3247d457e84cc743542d512">GetSubShapesId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">From SMESH_Gen interface.  <a href="#73a72dd2b3247d457e84cc743542d512"></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="classsmeshDC_1_1smeshDC.html#c58d54d598efd8a04016374d9ec44f20">GetPattern</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">From SMESH_Gen interface.  <a href="#c58d54d598efd8a04016374d9ec44f20"></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="classsmeshDC_1_1smeshDC.html#ba6515d9b4002b5424eca054f53e3651">GetEmptyCriterion</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an empty criterion.  <a href="#ba6515d9b4002b5424eca054f53e3651"></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="classsmeshDC_1_1smeshDC.html#d33640d1175a81d55932d21c3f1725fd">GetCriterion</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a criterion by given parameters.  <a href="#d33640d1175a81d55932d21c3f1725fd"></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="classsmeshDC_1_1smeshDC.html#547c7463acea82f6802261ff0f403820">GetFilter</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates filter by given parameters of criterion.  <a href="#547c7463acea82f6802261ff0f403820"></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="classsmeshDC_1_1smeshDC.html#a40eee73fe02962d0365c131cb16eca7">GetFunctor</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates numerical functor by its type.  <a href="#a40eee73fe02962d0365c131cb16eca7"></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="classsmeshDC_1_1smeshDC.html#4eb4abcdb87e8fd7d57e41ae2f0a1f5c">geompyD</a></td></tr>
+
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="3499c2d17eefbcd7bf18afd55724d8d0"></a><!-- doxytag: member="smeshDC::smeshDC::init_smesh" ref="3499c2d17eefbcd7bf18afd55724d8d0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.init_smesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theStudy</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geompyD</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="2e7b8d092fdcbaf79a26288b0d626687"></a><!-- doxytag: member="smeshDC::smeshDC::Mesh" ref="2e7b8d092fdcbaf79a26288b0d626687" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.Mesh           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>obj</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="334a64d26357505f4c01bac941dd4a62"></a><!-- doxytag: member="smeshDC::smeshDC::EnumToLong" ref="334a64d26357505f4c01bac941dd4a62" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.EnumToLong           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theItem</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="64ad34d9c5d0e80645c2bb39987c317e"></a><!-- doxytag: member="smeshDC::smeshDC::GetPointStruct" ref="64ad34d9c5d0e80645c2bb39987c317e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.GetPointStruct           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVertex</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theVertex</em>&nbsp;</td><td>is GEOM object(vertex) </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH.PointStruct </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="2c9c34b4bb4cda25e0c79762e18b7cee"></a><!-- doxytag: member="smeshDC::smeshDC::GetDirStruct" ref="2c9c34b4bb4cda25e0c79762e18b7cee" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.GetDirStruct           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVector</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theVector</em>&nbsp;</td><td>is GEOM object(vector) </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH.DirStruct </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="0d27bea973eb458dd78cb34063409637"></a><!-- doxytag: member="smeshDC::smeshDC::GetAxisStruct" ref="0d27bea973eb458dd78cb34063409637" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.GetAxisStruct           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObj</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theObj</em>&nbsp;</td><td>is GEOM object(line or plane) </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH.AxisStruct </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="c1b7b046cf266b180366258adff61c58"></a><!-- doxytag: member="smeshDC::smeshDC::SetEmbeddedMode" ref="c1b7b046cf266b180366258adff61c58" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.SetEmbeddedMode           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theMode</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="56f3b2cf98523408e29c9e37ddbcd30b"></a><!-- doxytag: member="smeshDC::smeshDC::IsEmbeddedMode" ref="56f3b2cf98523408e29c9e37ddbcd30b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.IsEmbeddedMode           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="d651984dfb70f141191ecb0ea19eef53"></a><!-- doxytag: member="smeshDC::smeshDC::SetCurrentStudy" ref="d651984dfb70f141191ecb0ea19eef53" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.SetCurrentStudy           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theStudy</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="a3092b9e1113eb7e8f6dd836504109e5"></a><!-- doxytag: member="smeshDC::smeshDC::GetCurrentStudy" ref="a3092b9e1113eb7e8f6dd836504109e5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.GetCurrentStudy           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6b8533345f9c0daaaa0461274c137896"></a><!-- doxytag: member="smeshDC::smeshDC::CreateMeshesFromUNV" ref="6b8533345f9c0daaaa0461274c137896" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.CreateMeshesFromUNV           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFileName</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Returns:</b></dt><dd>an instance of <a class="el" href="classsmeshDC_1_1Mesh.html">Mesh</a> class </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="f4baebaebf0a5d22e8b17b4ce6111531"></a><!-- doxytag: member="smeshDC::smeshDC::CreateMeshesFromMED" ref="f4baebaebf0a5d22e8b17b4ce6111531" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.CreateMeshesFromMED           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFileName</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Returns:</b></dt><dd>a list of <a class="el" href="classsmeshDC_1_1Mesh.html">Mesh</a> class instances </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="475c4a1a7f9b19a0c5e75b8c6d8d87dd"></a><!-- doxytag: member="smeshDC::smeshDC::CreateMeshesFromSTL" ref="475c4a1a7f9b19a0c5e75b8c6d8d87dd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.CreateMeshesFromSTL           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFileName</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Returns:</b></dt><dd>an instance of <a class="el" href="classsmeshDC_1_1Mesh.html">Mesh</a> class </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="73a72dd2b3247d457e84cc743542d512"></a><!-- doxytag: member="smeshDC::smeshDC::GetSubShapesId" ref="73a72dd2b3247d457e84cc743542d512" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.GetSubShapesId           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theMainObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theListOfSubObjects</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="c58d54d598efd8a04016374d9ec44f20"></a><!-- doxytag: member="smeshDC::smeshDC::GetPattern" ref="c58d54d598efd8a04016374d9ec44f20" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.GetPattern           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Creates pattern 
+</div>
+</div><p>
+<a class="anchor" name="ba6515d9b4002b5424eca054f53e3651"></a><!-- doxytag: member="smeshDC::smeshDC::GetEmptyCriterion" ref="ba6515d9b4002b5424eca054f53e3651" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.GetEmptyCriterion           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH.Filter.Criterion </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="d33640d1175a81d55932d21c3f1725fd"></a><!-- doxytag: member="smeshDC::smeshDC::GetCriterion" ref="d33640d1175a81d55932d21c3f1725fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.GetCriterion           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>CritType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Compare</em> = <code>FT_EqualTo</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Treshold</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>UnaryOp</em> = <code>FT_Undefined</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>BinaryOp</em> = <code>FT_Undefined</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>elementType</em>&nbsp;</td><td>is the type of elements(NODE, EDGE, FACE, VOLUME) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>CritType</em>&nbsp;</td><td>is type of criterion( FT_Taper, FT_Area, FT_RangeOfIds, FT_LyingOnGeom etc. ) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Compare</em>&nbsp;</td><td>belong to {FT_LessThan, FT_MoreThan, FT_EqualTo} </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Treshold</em>&nbsp;</td><td>is threshold value (range of ids as string, shape, numeric) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>UnaryOp</em>&nbsp;</td><td>is FT_LogicalNOT or FT_Undefined </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>BinaryOp</em>&nbsp;</td><td>is binary logical operation FT_LogicalAND, FT_LogicalOR or FT_Undefined(must be for the last criterion in criteria) </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH.Filter.Criterion </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="547c7463acea82f6802261ff0f403820"></a><!-- doxytag: member="smeshDC::smeshDC::GetFilter" ref="547c7463acea82f6802261ff0f403820" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.GetFilter           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>elementType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>CritType</em> = <code>FT_Undefined</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Compare</em> = <code>FT_EqualTo</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Treshold</em> = <code>&quot;&quot;</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>UnaryOp</em> = <code>FT_Undefined</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>elementType</em>&nbsp;</td><td>is the type of elements in the group </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>CritType</em>&nbsp;</td><td>is type of criterion( FT_Taper, FT_Area, FT_RangeOfIds, FT_LyingOnGeom etc. ) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Compare</em>&nbsp;</td><td>belong to {FT_LessThan, FT_MoreThan, FT_EqualTo} </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Treshold</em>&nbsp;</td><td>is threshold value (range of id ids as string, shape, numeric) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>UnaryOp</em>&nbsp;</td><td>is FT_LogicalNOT or FT_Undefined </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Filter </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="a40eee73fe02962d0365c131cb16eca7"></a><!-- doxytag: member="smeshDC::smeshDC::GetFunctor" ref="a40eee73fe02962d0365c131cb16eca7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.smeshDC.GetFunctor           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCriterion</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<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>theCrierion</em>&nbsp;</td><td>is FT_...; functor type </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>SMESH_NumericalFunctor </dd></dl>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="4eb4abcdb87e8fd7d57e41ae2f0a1f5c"></a><!-- doxytag: member="smeshDC::smeshDC::geompyD" ref="4eb4abcdb87e8fd7d57e41ae2f0a1f5c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classsmeshDC_1_1smeshDC.html#4eb4abcdb87e8fd7d57e41ae2f0a1f5c">smeshDC.smeshDC.geompyD</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:40 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1smeshDC__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1smeshDC__inherit__graph.jpg
new file mode 100644 (file)
index 0000000..879ced8
Binary files /dev/null and b/doc/salome/gui/SMESH/smeshpy_doc/classsmeshDC_1_1smeshDC__inherit__graph.jpg 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
deleted file mode 100644 (file)
index 51edc45..0000000
+++ /dev/null
@@ -1,7910 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh.html">Mesh</a></div>
-<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#bd750f18fbb3bbaec4658dbf9abf9a6a">SetMesh</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method that inits the <a class="el" href="classsmesh_1_1Mesh.html">Mesh</a> object from SMESH_Mesh interface.  <a href="#bd750f18fbb3bbaec4658dbf9abf9a6a"></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#b87f0d109e7dd97722ee0bfea949d534">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get mesh name.  <a href="#b87f0d109e7dd97722ee0bfea949d534"></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#1c8c2f704ec04470c635bafbffc2fd89">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to mesh.  <a href="#1c8c2f704ec04470c635bafbffc2fd89"></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#6a6cf011f8f9ae71976677e5fc252cba">GetSubMesh</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the subMesh object associated to a subShape.  <a href="#6a6cf011f8f9ae71976677e5fc252cba"></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#3c65a48f65595eca0cb35537327f66e7">SetShape</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method that associates given shape to the mesh(entails the mesh recreation).  <a href="#3c65a48f65595eca0cb35537327f66e7"></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#8b180b0fecdee7086fd87b6e399fb920">IsReadyToCompute</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if hypotheses are defined well.  <a href="#8b180b0fecdee7086fd87b6e399fb920"></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#8a4a3f3f1b1c3ab7344043fc0462b34c">GetAlgoState</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return errors of hypotheses definintion error list is empty if everything is OK.  <a href="#8a4a3f3f1b1c3ab7344043fc0462b34c"></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#98eebf424797ca54f6f8d26bfe5fa198">GetGeometryByMeshElement</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return geometrical object the given element is built on.  <a href="#98eebf424797ca54f6f8d26bfe5fa198"></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">Deprecated, only for compatibility!  <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#7ddf97abf59d1ddb743142357ba56103">Projection1D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a projection 1D algorithm for edges.  <a href="#7ddf97abf59d1ddb743142357ba56103"></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#c906452c66b813462d49a5e0e7aff93c">Projection2D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a projection 2D algorithm for faces.  <a href="#c906452c66b813462d49a5e0e7aff93c"></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#cab360c7269abf3caa7705cdb5274dea">Projection3D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a projection 3D algorithm for solids.  <a href="#cab360c7269abf3caa7705cdb5274dea"></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#c5e64828cdb2bc6bb626fc66e7bc5134">Prism</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a 3D extrusion (Prism 3D) or RadialPrism 3D algorithm for solids.  <a href="#c5e64828cdb2bc6bb626fc66e7bc5134"></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,-1] defines mesh fineness.  <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,-1] defines mesh fineness.  <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#1b0f1c169956e949c4aef9997ae2c8b3">AddHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign hypothesis.  <a href="#1b0f1c169956e949c4aef9997ae2c8b3"></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#9dcaabbf09856c4a4d7465cb12eaf28e">GetHypothesisList</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the list of hypothesis added on a geom.  <a href="#9dcaabbf09856c4a4d7465cb12eaf28e"></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>, <br>
- if this parameter is not defined the name is the same as the geometric group name <br>
- Note: Works like <a class="el" href="classsmesh_1_1Mesh.html#4766ca881b87442bb269d843d6e0fbee">GroupOnGeom()</a>.  <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">Deprecated, only for compatibility! Please, use <a class="el" href="classsmesh_1_1Mesh.html#a86bdbce4f2f57e951bcea9ab1986ecb">ExportMED()</a> method instead.  <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 class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#d0f9d4c25155f1aa2f2f9d9439bbd380">CreateEmptyGroup</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an empty mesh group.  <a href="#d0f9d4c25155f1aa2f2f9d9439bbd380"></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#4766ca881b87442bb269d843d6e0fbee">GroupOnGeom</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a mesh group based on geometric object <em>grp</em> and give a <em>name</em>, <br>
- if this parameter is not defined the name is the same as the geometric group name.  <a href="#4766ca881b87442bb269d843d6e0fbee"></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#3b3954caebc6f212681cdc43d683d81f">MakeGroupByIds</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a mesh group by the given ids of elements.  <a href="#3b3954caebc6f212681cdc43d683d81f"></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#971e345218f95e1d56d59450aebb8dec">MakeGroup</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a mesh group by the given conditions.  <a href="#971e345218f95e1d56d59450aebb8dec"></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#3ed52b9c18af35719986e962143a5ffb">MakeGroupByCriterion</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a mesh group by the given criterion.  <a href="#3ed52b9c18af35719986e962143a5ffb"></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#1db8830048163a89d6e8a5b38bc0aff6">MakeGroupByCriteria</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a mesh group by the given criteria(list of criterions).  <a href="#1db8830048163a89d6e8a5b38bc0aff6"></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#8f4952f18ef6e065b1f21b9c501acdbd">MakeGroupByFilter</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a mesh group by the given filter.  <a href="#8f4952f18ef6e065b1f21b9c501acdbd"></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#14ec9ac71e14ef62aa41ab5427dc874b">GetIdsFromFilter</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pass mesh elements through the given filter and return ids.  <a href="#14ec9ac71e14ef62aa41ab5427dc874b"></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#bf1218d5cb3988330c0bf61db2a2b2b7">GetFreeBorders</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Verify whether 2D mesh element has free edges(edges connected to one face only)<br>
- Returns list of special structures(borders).  <a href="#bf1218d5cb3988330c0bf61db2a2b2b7"></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#cf78d6ee5bf4142a7c47c542dd29774e">RemoveGroup</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a group.  <a href="#cf78d6ee5bf4142a7c47c542dd29774e"></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#7b925f04a22f5b1b6b2e534da1ecbd92">RemoveGroupWithContents</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove group with its contents.  <a href="#7b925f04a22f5b1b6b2e534da1ecbd92"></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#95da60a43691e2555e1246346bab95cc">GetGroups</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the list of groups existing in the mesh.  <a href="#95da60a43691e2555e1246346bab95cc"></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#ec1357647df1fae2de711e46f33bce59">GetGroupNames</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the list of names of groups existing in the mesh.  <a href="#ec1357647df1fae2de711e46f33bce59"></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#adce4d7372f7f85d7851aac8fa8223ab">UnionGroups</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Union of two groups New group is created.  <a href="#adce4d7372f7f85d7851aac8fa8223ab"></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#ff4bc7665f316f9afe4091a1aa195938">IntersectGroups</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Intersection of two groups New group is created.  <a href="#ff4bc7665f316f9afe4091a1aa195938"></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#93a759ed3183676d160b210ea16f4152">CutGroups</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cut of two groups New group is created.  <a href="#93a759ed3183676d160b210ea16f4152"></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#a8eb2739e60747e3e4f21f6d044fb8ea">GetLog</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the log of nodes and elements added or removed since previous clear of the log.  <a href="#a8eb2739e60747e3e4f21f6d044fb8ea"></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#ca397e42479735387f28e60daba5fa21">ClearLog</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear the log of nodes and elements added or removed since previous clear.  <a href="#ca397e42479735387f28e60daba5fa21"></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#8c2b5b28778a8c8e75dbf67e9e173e96">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the internal Id.  <a href="#8c2b5b28778a8c8e75dbf67e9e173e96"></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#aefae881bffe9563d1d94a8aa94311aa">GetStudyId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the study Id.  <a href="#aefae881bffe9563d1d94a8aa94311aa"></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#d1846b2ee111a6720a7bfdb7bae9a04e">HasDuplicatedGroupNamesMED</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check group names for duplications.  <a href="#d1846b2ee111a6720a7bfdb7bae9a04e"></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#e65f765b6a402c7c8b26335fa4422cf5">GetMeshEditor</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain instance of SMESH_MeshEditor.  <a href="#e65f765b6a402c7c8b26335fa4422cf5"></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#23967469975fb15ab095fbef5d3fff4c">GetMEDMesh</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get MED <a class="el" href="classsmesh_1_1Mesh.html">Mesh</a>.  <a href="#23967469975fb15ab095fbef5d3fff4c"></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#726ae692c089873060904db2f5be2489">NbNodes</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of nodes in mesh.  <a href="#726ae692c089873060904db2f5be2489"></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#ab9164bf03dfc3f96373c83890faeac7">NbElements</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of elements in mesh.  <a href="#ab9164bf03dfc3f96373c83890faeac7"></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#8f6a7ba5c4246afbe8c23c31b54fe151">NbEdges</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of edges in mesh.  <a href="#8f6a7ba5c4246afbe8c23c31b54fe151"></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#62493e2dea0235f7043c35850ea67bc1">NbEdgesOfOrder</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of edges with given order in mesh.  <a href="#62493e2dea0235f7043c35850ea67bc1"></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#7e9df39cf5129962023043abcc898e69">NbFaces</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of faces in mesh.  <a href="#7e9df39cf5129962023043abcc898e69"></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#b5f5d0f76b75110f373c2978bec4511d">NbFacesOfOrder</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of faces with given order in mesh.  <a href="#b5f5d0f76b75110f373c2978bec4511d"></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#45deec5dbf334ba86f69210edb6eb031">NbTriangles</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of triangles in mesh.  <a href="#45deec5dbf334ba86f69210edb6eb031"></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#81cdae5d219351e937d02a8ea5c8bd66">NbTrianglesOfOrder</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of triangles with given order in mesh.  <a href="#81cdae5d219351e937d02a8ea5c8bd66"></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#d83429db26cce1bc35795935c4c22e0a">NbQuadrangles</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of quadrangles in mesh.  <a href="#d83429db26cce1bc35795935c4c22e0a"></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#4c9bca301fa2170813406412cfd9c1aa">NbQuadranglesOfOrder</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of quadrangles with given order in mesh.  <a href="#4c9bca301fa2170813406412cfd9c1aa"></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#f086f62d71136f0e5a24ee9a4150515b">NbPolygons</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of polygons in mesh.  <a href="#f086f62d71136f0e5a24ee9a4150515b"></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#e35ea16aadc59efecaff428c0b3c2dfe">NbVolumes</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of volumes in mesh.  <a href="#e35ea16aadc59efecaff428c0b3c2dfe"></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#b5dc83d1838f66e925667cd6634b5919">NbVolumesOfOrder</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of volumes with given order in mesh.  <a href="#b5dc83d1838f66e925667cd6634b5919"></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#2a7fd2a66045ad4ef37395899cf3e2b4">NbTetras</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of tetrahedrons in mesh.  <a href="#2a7fd2a66045ad4ef37395899cf3e2b4"></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#5f6f04aee13f5e9146b0b83dc4a29136">NbTetrasOfOrder</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of tetrahedrons with given order in mesh.  <a href="#5f6f04aee13f5e9146b0b83dc4a29136"></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#fd3a0392332424162db67bdc18a66b9e">NbHexas</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of hexahedrons in mesh.  <a href="#fd3a0392332424162db67bdc18a66b9e"></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#30d469eb020c16ac95fe4ccc86df9847">NbHexasOfOrder</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of hexahedrons with given order in mesh.  <a href="#30d469eb020c16ac95fe4ccc86df9847"></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#aee1ae2972f4256dbc23281f212bd63d">NbPyramids</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of pyramids in mesh.  <a href="#aee1ae2972f4256dbc23281f212bd63d"></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#6f9f0c840846170841655ffe6c88c9ba">NbPyramidsOfOrder</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of pyramids with given order in mesh.  <a href="#6f9f0c840846170841655ffe6c88c9ba"></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#497d7d510d365904c8850f8a1ab9b9c6">NbPrisms</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of prisms in mesh.  <a href="#497d7d510d365904c8850f8a1ab9b9c6"></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#8d37e2b2ec7aff3b89b0933c03409e5b">NbPrismsOfOrder</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of prisms with given order in mesh.  <a href="#8d37e2b2ec7aff3b89b0933c03409e5b"></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#84903e975c77cc2542ea50143f9cb877">NbPolyhedrons</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of polyhedrons in mesh.  <a href="#84903e975c77cc2542ea50143f9cb877"></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#fafa87c1893299b30bffdaa748837ace">NbSubMesh</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of submeshes in mesh.  <a href="#fafa87c1893299b30bffdaa748837ace"></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#2f7b4230985fdf7dac8c1a3dc5d96efa">GetElementsId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns list of mesh elements ids.  <a href="#2f7b4230985fdf7dac8c1a3dc5d96efa"></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#1dbede49ac46741782d4b88096024754">GetElementsByType</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns list of ids of mesh elements with given type.  <a href="#1dbede49ac46741782d4b88096024754"></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#d4f0260724efd10fc07d6cc030348bf7">GetNodesId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns list of mesh nodes ids.  <a href="#d4f0260724efd10fc07d6cc030348bf7"></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#09d64e636ad97f4929174795376cb79a">GetElementType</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns type of mesh element.  <a href="#09d64e636ad97f4929174795376cb79a"></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#cff00e6b2f5d63f24af53e5d654d259e">GetSubMeshElementsId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns list of submesh elements ids.  <a href="#cff00e6b2f5d63f24af53e5d654d259e"></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#df30b3062d9420c85f457d8d67716c6a">GetSubMeshNodesId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns list of submesh nodes ids.  <a href="#df30b3062d9420c85f457d8d67716c6a"></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#01928943dd569e70590f7a82d5a9c083">GetSubMeshElementType</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns list of ids of submesh elements with given type.  <a href="#01928943dd569e70590f7a82d5a9c083"></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#97cc6a5900b73642880b5c5327167347">Dump</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get mesh description.  <a href="#97cc6a5900b73642880b5c5327167347"></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#8c5f43b40615e416e8723250aedca198">GetNodeXYZ</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get XYZ coordinates of node as list of double <br>
- If there is not node for given ID - returns empty list.  <a href="#8c5f43b40615e416e8723250aedca198"></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#89759593eb975e4a98f21fad2f0471d9">GetNodeInverseElements</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For given node returns list of IDs of inverse elements <br>
- If there is not node for given ID - returns empty list.  <a href="#89759593eb975e4a98f21fad2f0471d9"></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#819f94ff143442f18726ad6d571f4d4d">GetShapeID</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If given element is node returns IDs of shape from position <br>
- If there is not node for given ID - returns -1.  <a href="#819f94ff143442f18726ad6d571f4d4d"></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#eef3aa74ef3616715448260f21f743fe">GetShapeIDForElem</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For given element returns ID of result shape after FindShape() from SMESH_MeshEditor <br>
- If there is not element for given ID - returns -1.  <a href="#eef3aa74ef3616715448260f21f743fe"></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#8a3f80335947fd570bba6b4f53a8a561">GetElemNbNodes</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of nodes for given element <br>
- If there is not element for given ID - returns -1.  <a href="#8a3f80335947fd570bba6b4f53a8a561"></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#b962a2eb7fc5b6ee8c50795d185c45d0">GetElemNode</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns ID of node by given index for given element <br>
- If there is not element for given ID - returns -1 <br>
- If there is not node for given index - returns -2.  <a href="#b962a2eb7fc5b6ee8c50795d185c45d0"></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#e51aaa086dca92d2b7966ae0b49aefd7">IsMediumNode</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if given node is medium node in given quadratic element.  <a href="#e51aaa086dca92d2b7966ae0b49aefd7"></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#10e70db0e24a1ec78636f8651a402873">IsMediumNodeOfAnyElem</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if given node is medium node in one of quadratic elements.  <a href="#10e70db0e24a1ec78636f8651a402873"></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#bf279ea4ea4ea4aa0e01ef0b2da41376">ElemNbEdges</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of edges for given element.  <a href="#bf279ea4ea4ea4aa0e01ef0b2da41376"></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#ba5c055ca37c30cb77d2c698cb062d18">ElemNbFaces</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of faces for given element.  <a href="#ba5c055ca37c30cb77d2c698cb062d18"></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#0711cb1be29ca2d8e186e921650b9a75">IsPoly</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if given element is polygon.  <a href="#0711cb1be29ca2d8e186e921650b9a75"></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#a6688e1a2742f29aa5b662cc7aaa4032">IsQuadratic</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if given element is quadratic.  <a href="#a6688e1a2742f29aa5b662cc7aaa4032"></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#512996a6214d6d7bb82c449126602dcb">BaryCenter</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns XYZ coordinates of bary center for given element as list of double <br>
- If there is not element for given ID - returns empty list.  <a href="#512996a6214d6d7bb82c449126602dcb"></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#7ef5a1396c6ca2f87f866019d6994fda">RemoveElements</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes elements from mesh by ids.  <a href="#7ef5a1396c6ca2f87f866019d6994fda"></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#3660e81cc2503176aeaaf791d91583aa">RemoveNodes</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes nodes from mesh by ids.  <a href="#3660e81cc2503176aeaaf791d91583aa"></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#1fc905250f88b780af041874783e1aba">AddNode</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add node to mesh by coordinates.  <a href="#1fc905250f88b780af041874783e1aba"></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#5300171dc7f8dcb867641e99ddfe1259">AddEdge</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create edge both similar and quadratic (this is determed by number of given nodes).  <a href="#5300171dc7f8dcb867641e99ddfe1259"></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#ac29ca675d96e76ac464d552d0677bef">AddFace</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create face both similar and quadratic (this is determed by number of given nodes).  <a href="#ac29ca675d96e76ac464d552d0677bef"></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#1ff012def84bb3df64b313060f6de7ba">AddPolygonalFace</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add polygonal face to mesh by list of nodes ids.  <a href="#1ff012def84bb3df64b313060f6de7ba"></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#21e6382dee8cc24808416494abc93e5f">AddVolume</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create volume both similar and quadratic (this is determed by number of given nodes).  <a href="#21e6382dee8cc24808416494abc93e5f"></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#2d584c652eeb55d174ad4e2107ad4702">AddPolyhedralVolume</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create volume of many faces, giving nodes for each face.  <a href="#2d584c652eeb55d174ad4e2107ad4702"></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#77d8a4cee1fa308e4ce7d2b80f15e52e">AddPolyhedralVolumeByFaces</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create volume of many faces, giving IDs of existing faces.  <a href="#77d8a4cee1fa308e4ce7d2b80f15e52e"></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#3a0b58036724d0068a346f233ac1744f">MoveNode</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Move node with given id.  <a href="#3a0b58036724d0068a346f233ac1744f"></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#6a25defc09698efbe65b5e4b33ae1621">FindNodeClosestTo</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a node closest to a point.  <a href="#6a25defc09698efbe65b5e4b33ae1621"></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#d6159f5aa96dde48576c9906c004d878">MeshToPassThroughAPoint</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a node closest to a point and move it to a point location.  <a href="#d6159f5aa96dde48576c9906c004d878"></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#b1cd711562c3f4cf4d2989606210dc6d">InverseDiag</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Replace two neighbour triangles sharing Node1-Node2 link with ones built on the same 4 nodes but having other common link.  <a href="#b1cd711562c3f4cf4d2989606210dc6d"></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#1f9d69024eb5959bacf0f14c9a99f89f">DeleteDiag</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Replace two neighbour triangles sharing Node1-Node2 link with a quadrangle built on the same 4 nodes.  <a href="#1f9d69024eb5959bacf0f14c9a99f89f"></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#70be24d065258cab090116d94431f08b">Reorient</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reorient elements by ids.  <a href="#70be24d065258cab090116d94431f08b"></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#3135d68c4429b2941870e19bb3233dce">ReorientObject</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reorient all elements of the object.  <a href="#3135d68c4429b2941870e19bb3233dce"></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#922f422cb40bc3412f7561defe43ef3b">TriToQuad</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fuse neighbour triangles into quadrangles.  <a href="#922f422cb40bc3412f7561defe43ef3b"></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#b6d00be6bccc1478f6dd627ab10ef0b0">TriToQuadObject</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fuse neighbour triangles of the object into quadrangles.  <a href="#b6d00be6bccc1478f6dd627ab10ef0b0"></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#0c0ad8d78fb361a3270325ceb3f495b6">QuadToTri</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split quadrangles into triangles.  <a href="#0c0ad8d78fb361a3270325ceb3f495b6"></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#5ce3b8a9451caf30b6150c81000beb38">QuadToTriObject</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split quadrangles into triangles.  <a href="#5ce3b8a9451caf30b6150c81000beb38"></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#c0a1a58709e0b852d34ad4c800e4dbe5">SplitQuad</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split quadrangles into triangles.  <a href="#c0a1a58709e0b852d34ad4c800e4dbe5"></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#597d364ed43deec20e76bbe76733f24a">SplitQuadObject</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split quadrangles into triangles.  <a href="#597d364ed43deec20e76bbe76733f24a"></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#318863d98fc0ceae3d2c40f2e140ddcc">BestSplit</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find better splitting of the given quadrangle.  <a href="#318863d98fc0ceae3d2c40f2e140ddcc"></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#4e9b0332c2c020c0f9baa1be7ff436f7">SplitQuadsNearTriangularFacets</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split quafrangle faces near triangular facets of volumes.  <a href="#4e9b0332c2c020c0f9baa1be7ff436f7"></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#3ae71a6aea314843e0f9f5cc7d24cf4a">SplitHexaToTetras</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split hexahedrons into tetrahedrons.  <a href="#3ae71a6aea314843e0f9f5cc7d24cf4a"></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#4270db271f6180980c28cf58e835c3f3">SplitHexaToPrisms</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split hexahedrons into prisms.  <a href="#4270db271f6180980c28cf58e835c3f3"></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#84d7a34fff0606afb1ad5ec38fbff51b">Smooth</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Smooth elements.  <a href="#84d7a34fff0606afb1ad5ec38fbff51b"></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#35fe184fb7df14af5ed11780133242b6">SmoothObject</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Smooth elements belong to given object.  <a href="#35fe184fb7df14af5ed11780133242b6"></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#f1a03b74c100180c10eebe21623a2c08">SmoothParametric</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parametric smooth the given elements.  <a href="#f1a03b74c100180c10eebe21623a2c08"></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#72f3d72d6e05ee787657079f7fae7569">SmoothParametricObject</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parametric smooth elements belong to given object.  <a href="#72f3d72d6e05ee787657079f7fae7569"></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#4dc4ca27b4d1b0dfc975b5ebb9e74b98">ConvertToQuadratic</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts all mesh to quadratic one, deletes old elements, replacing them with quadratic ones with the same id.  <a href="#4dc4ca27b4d1b0dfc975b5ebb9e74b98"></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#bf3a3a02b1ec06aaa4b518eacbc61c13">ConvertFromQuadratic</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts all mesh from quadratic to ordinary ones, deletes old quadratic elements, <br>
- replacing them with ordinary mesh elements with the same id.  <a href="#bf3a3a02b1ec06aaa4b518eacbc61c13"></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#67efca0e9f290689ed21b473e52cbd50">RenumberNodes</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Renumber mesh nodes.  <a href="#67efca0e9f290689ed21b473e52cbd50"></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#425c345fea14aac8d46daf65e28aa361">RenumberElements</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Renumber mesh elements.  <a href="#425c345fea14aac8d46daf65e28aa361"></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#5c1411e04a23bd4f4ba721a24638a833">RotationSweep</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by rotation of the elements around the axis.  <a href="#5c1411e04a23bd4f4ba721a24638a833"></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#9e3953602695cb8cfdca1357cd4281a0">RotationSweepObject</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by rotation of the elements of object around the axis.  <a href="#9e3953602695cb8cfdca1357cd4281a0"></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#975714cfcbcbb60eabd43045fe7d80f0">ExtrusionSweep</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by extrusion of the elements with given ids.  <a href="#975714cfcbcbb60eabd43045fe7d80f0"></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#4f3409fde48b1edb83ea3c598e061b01">AdvancedExtrusion</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by extrusion of the elements with given ids.  <a href="#4f3409fde48b1edb83ea3c598e061b01"></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#5d29416945e6a665b83258b6f20a3b9d">ExtrusionSweepObject</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by extrusion of the elements belong to object.  <a href="#5d29416945e6a665b83258b6f20a3b9d"></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#afa41c3158cd8b1fcfaf86db26d8550f">ExtrusionSweepObject1D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by extrusion of the elements belong to object.  <a href="#afa41c3158cd8b1fcfaf86db26d8550f"></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#079e59af58714725629b5081b5ec15c4">ExtrusionSweepObject2D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by extrusion of the elements belong to object.  <a href="#079e59af58714725629b5081b5ec15c4"></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#691522416f481a91a268d58e15646eb7">ExtrusionAlongPath</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by extrusion of the given elements A path of extrusion must be a meshed edge.  <a href="#691522416f481a91a268d58e15646eb7"></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#f0248dfbb1f18de28754468c1173f88c">ExtrusionAlongPathObject</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generate new elements by extrusion of the elements belong to object A path of extrusion must be a meshed edge.  <a href="#f0248dfbb1f18de28754468c1173f88c"></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#e847af1a376e90dc10becf6c24475577">Mirror</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Symmetrical copy of mesh elements.  <a href="#e847af1a376e90dc10becf6c24475577"></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#b1d7bc19611c4e6cbb9c6a39aa7d41e7">MirrorObject</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Symmetrical copy of object.  <a href="#b1d7bc19611c4e6cbb9c6a39aa7d41e7"></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#17a4c398f12048ee97be9e34c6fcf0df">Translate</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translates the elements.  <a href="#17a4c398f12048ee97be9e34c6fcf0df"></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#8fd2fa7ac4bd7733b92cfdc93bc06c6a">TranslateObject</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translates the object.  <a href="#8fd2fa7ac4bd7733b92cfdc93bc06c6a"></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#9490661f177f27ab7c4ada20e244e049">Rotate</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotates the elements.  <a href="#9490661f177f27ab7c4ada20e244e049"></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#edbcc6762a097b389338f3fb79dd2e43">RotateObject</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotates the object.  <a href="#edbcc6762a097b389338f3fb79dd2e43"></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#cdf92cb074d0bdfdce13a7c496d593d4">FindCoincidentNodes</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find group of nodes close to each other within Tolerance.  <a href="#cdf92cb074d0bdfdce13a7c496d593d4"></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#5bd7d2b42269c8783342692d99bceccf">FindCoincidentNodesOnPart</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find group of nodes close to each other within Tolerance.  <a href="#5bd7d2b42269c8783342692d99bceccf"></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#189cb7bee4e396e1cd429f55bdeb7830">MergeNodes</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Merge nodes.  <a href="#189cb7bee4e396e1cd429f55bdeb7830"></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#f650e7e34b5019b7e0439046daccc898">FindEqualElements</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find elements built on the same nodes.  <a href="#f650e7e34b5019b7e0439046daccc898"></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#b23dd407618c78f92c709f8a33e89f26">MergeElements</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Merge elements in each given group.  <a href="#b23dd407618c78f92c709f8a33e89f26"></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#6d065ef099f2d589074a7236cd17a8b8">MergeEqualElements</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove all but one of elements built on the same nodes.  <a href="#6d065ef099f2d589074a7236cd17a8b8"></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#2a8b90d2e3ab295e130c72fa1b700e87">SewFreeBorders</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sew free borders.  <a href="#2a8b90d2e3ab295e130c72fa1b700e87"></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#33e575a39b2721c5f307ed633f826971">SewConformFreeBorders</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sew conform free borders.  <a href="#33e575a39b2721c5f307ed633f826971"></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#b92ca31f6a9cc3b67ad97c5dfc6d0df0">SewBorderToSide</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sew border to side.  <a href="#b92ca31f6a9cc3b67ad97c5dfc6d0df0"></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#bf094f8b9d3152d4b6ad03818c2e53ae">SewSideElements</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sew two sides of a mesh.  <a href="#bf094f8b9d3152d4b6ad03818c2e53ae"></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#f0a5ee1d36cbd2f05f0096a85f013d6a">ChangeElemNodes</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set new nodes for given element.  <a href="#f0a5ee1d36cbd2f05f0096a85f013d6a"></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#2e52a15f9fa25f6a0dc17b80636b9ef4">GetLastCreatedNodes</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If during last operation of MeshEditor some nodes were created this method returns list of it's IDs, <br>
- if new nodes not created - returns empty list.  <a href="#2e52a15f9fa25f6a0dc17b80636b9ef4"></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#08160d8eccea10d14367996bb1459b77">GetLastCreatedElems</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If during last operation of MeshEditor some elements were created this method returns list of it's IDs, <br>
- if new elements not creared - returns empty list.  <a href="#08160d8eccea10d14367996bb1459b77"></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 class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmesh_1_1Mesh.html#f6f61e4be25bdf3a89492e8d9e466f1c">editor</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>
-
-<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#c57794e9c688fc591fa6a634ae7ecf24">editor</a> = 0</td></tr>
-
-</table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
-The class contains mesh shape, SMESH_Mesh, SMESH_MeshEditor 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>obj</em> = <code>0</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>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(or the empty mesh if geom equal to 0)</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>obj</em>&nbsp;</td><td>Shape to be meshed or SMESH_Mesh object </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="bd750f18fbb3bbaec4658dbf9abf9a6a"></a><!-- doxytag: member="smesh::Mesh::SetMesh" ref="bd750f18fbb3bbaec4658dbf9abf9a6a" 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.SetMesh           </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>theMesh</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>theMesh</em>&nbsp;</td><td>is SMESH_Mesh object </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>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Mesh object </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="b87f0d109e7dd97722ee0bfea949d534"></a><!-- doxytag: member="smesh::Mesh::GetName" ref="b87f0d109e7dd97722ee0bfea949d534" 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.GetName           </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="1c8c2f704ec04470c635bafbffc2fd89"></a><!-- doxytag: member="smesh::Mesh::SetName" ref="1c8c2f704ec04470c635bafbffc2fd89" 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.SetName           </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>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>
-<a class="anchor" name="6a6cf011f8f9ae71976677e5fc252cba"></a><!-- doxytag: member="smesh::Mesh::GetSubMesh" ref="6a6cf011f8f9ae71976677e5fc252cba" 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.GetSubMesh           </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>theSubObject</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>
-The subMesh object gives access to nodes and elements IDs. <br>
- SubMesh will be used instead of SubShape in a next idl version to adress a specific subMesh...     </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>
-<dl compact><dt><b>Returns:</b></dt><dd>GEOM_Object </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="3c65a48f65595eca0cb35537327f66e7"></a><!-- doxytag: member="smesh::Mesh::SetShape" ref="3c65a48f65595eca0cb35537327f66e7" 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.SetShape           </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"></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>geom</em>&nbsp;</td><td>shape to be meshed(GEOM_Object) </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="8b180b0fecdee7086fd87b6e399fb920"></a><!-- doxytag: member="smesh::Mesh::IsReadyToCompute" ref="8b180b0fecdee7086fd87b6e399fb920" 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.IsReadyToCompute           </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>theSubObject</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>theMesh</em>&nbsp;</td><td>is an instance of <a class="el" href="classsmesh_1_1Mesh.html">Mesh</a> class </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theSubObject</em>&nbsp;</td><td>subshape of a mesh shape </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="8a4a3f3f1b1c3ab7344043fc0462b34c"></a><!-- doxytag: member="smesh::Mesh::GetAlgoState" ref="8a4a3f3f1b1c3ab7344043fc0462b34c" 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.GetAlgoState           </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>theSubObject</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>theMesh</em>&nbsp;</td><td>is an instance of <a class="el" href="classsmesh_1_1Mesh.html">Mesh</a> class </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theSubObject</em>&nbsp;</td><td>subshape of a mesh shape </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>a list of errors </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="98eebf424797ca54f6f8d26bfe5fa198"></a><!-- doxytag: member="smesh::Mesh::GetGeometryByMeshElement" ref="98eebf424797ca54f6f8d26bfe5fa198" 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.GetGeometryByMeshElement           </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>theElementID</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>theGeomName</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>
-The returned geometrical object, if not nil, is either found in the study or is published by this method with the given name <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theMesh</em>&nbsp;</td><td>is an instance of <a class="el" href="classsmesh_1_1Mesh.html">Mesh</a> class </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theElementID</em>&nbsp;</td><td>an id of the mesh element </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theGeomName</em>&nbsp;</td><td>user defined name of geometrical object </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>GEOM.GEOM_Object instance </dd></dl>
-    </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. <br>
- 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>algo</em> = <code><a class="el" href="namespacesmesh.html#4449cc4d5e7910c0afa9a35238736519">MEFISTO</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>geom</em> parameter is not sets, this algorithm is global. <br>
- 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#4449cc4d5e7910c0afa9a35238736519">smesh.MEFISTO</a> or <a class="el" href="namespacesmesh.html#72b65da5195aa8d71574f95e5533d612">smesh.NETGEN</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="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. <br>
- 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> = <code><a class="el" href="namespacesmesh.html#72b65da5195aa8d71574f95e5533d612">NETGEN</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>
-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. <br>
- 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>, <a class="el" href="namespacesmesh.html#13a34e1016fc530291cb7c688709efb3">smesh.FULL_NETGEN</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. <br>
- 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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="7ddf97abf59d1ddb743142357ba56103"></a><!-- doxytag: member="smesh::Mesh::Projection1D" ref="7ddf97abf59d1ddb743142357ba56103" 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.Projection1D           </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="c906452c66b813462d49a5e0e7aff93c"></a><!-- doxytag: member="smesh::Mesh::Projection2D" ref="c906452c66b813462d49a5e0e7aff93c" 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.Projection2D           </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="cab360c7269abf3caa7705cdb5274dea"></a><!-- doxytag: member="smesh::Mesh::Projection3D" ref="cab360c7269abf3caa7705cdb5274dea" 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.Projection3D           </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="c5e64828cdb2bc6bb626fc66e7bc5134"></a><!-- doxytag: member="smesh::Mesh::Prism" ref="c5e64828cdb2bc6bb626fc66e7bc5134" 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.Prism           </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="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="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>
-    </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>
-    </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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="1b0f1c169956e949c4aef9997ae2c8b3"></a><!-- doxytag: member="smesh::Mesh::AddHypothesis" ref="1b0f1c169956e949c4aef9997ae2c8b3" 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.AddHypothesis           </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>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>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>hyp</em>&nbsp;</td><td>is a hypothesis to assign </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>geom</em>&nbsp;</td><td>is subhape of mesh geometry </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9dcaabbf09856c4a4d7465cb12eaf28e"></a><!-- doxytag: member="smesh::Mesh::GetHypothesisList" ref="9dcaabbf09856c4a4d7465cb12eaf28e" 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.GetHypothesisList           </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"></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>geom</em>&nbsp;</td><td>is subhape of mesh geometry </td></tr>
-  </table>
-</dl>
-    </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>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH_GroupOnGeom </dd></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>
-Export the mesh in a file with the MED format and choice the <em>version</em> of MED format <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>auto_groups</em> = <code>0</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>version</em> = <code>MED_V2_2</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>auto_groups</em>&nbsp;</td><td>boolean parameter for creating/not creating the groups Group_On_All_Nodes, Group_On_All_Faces, ... ; the typical use is auto_groups=false. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>version</em>&nbsp;</td><td>MED format version(MED_V2_1 or MED_V2_2) </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>
-<a class="anchor" name="d0f9d4c25155f1aa2f2f9d9439bbd380"></a><!-- doxytag: member="smesh::Mesh::CreateEmptyGroup" ref="d0f9d4c25155f1aa2f2f9d9439bbd380" 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.CreateEmptyGroup           </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>elementType</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>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>elementType</em>&nbsp;</td><td>is the type of elements in the group </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>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Group </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="4766ca881b87442bb269d843d6e0fbee"></a><!-- doxytag: member="smesh::Mesh::GroupOnGeom" ref="4766ca881b87442bb269d843d6e0fbee" 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.GroupOnGeom           </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" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>type</em> = <code>None</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>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH_GroupOnGeom </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="3b3954caebc6f212681cdc43d683d81f"></a><!-- doxytag: member="smesh::Mesh::MakeGroupByIds" ref="3b3954caebc6f212681cdc43d683d81f" 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.MakeGroupByIds           </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>groupName</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>elementType</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>elemIDs</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>groupName</em>&nbsp;</td><td>is the name of the mesh group </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>elementType</em>&nbsp;</td><td>is the type of elements in the group </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>elemIDs</em>&nbsp;</td><td>is the list of ids </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Group </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="971e345218f95e1d56d59450aebb8dec"></a><!-- doxytag: member="smesh::Mesh::MakeGroup" ref="971e345218f95e1d56d59450aebb8dec" 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.MakeGroup           </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>groupName</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>elementType</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>CritType</em> = <code>FT_Undefined</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>Compare</em> = <code>FT_EqualTo</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>Treshold</em> = <code>&quot;&quot;</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>UnaryOp</em> = <code>FT_Undefined</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>groupName</em>&nbsp;</td><td>is the name of the mesh group </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>elementType</em>&nbsp;</td><td>is the type of elements in the group </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>CritType</em>&nbsp;</td><td>is type of criterion( FT_Taper, FT_Area, FT_RangeOfIds, FT_LyingOnGeom etc. ) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Compare</em>&nbsp;</td><td>belong to {FT_LessThan, FT_MoreThan, FT_EqualTo} </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Treshold</em>&nbsp;</td><td>is threshold value (range of id ids as string, shape, numeric) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>UnaryOp</em>&nbsp;</td><td>is FT_LogicalNOT or FT_Undefined </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Group </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="3ed52b9c18af35719986e962143a5ffb"></a><!-- doxytag: member="smesh::Mesh::MakeGroupByCriterion" ref="3ed52b9c18af35719986e962143a5ffb" 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.MakeGroupByCriterion           </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>groupName</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>Criterion</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>groupName</em>&nbsp;</td><td>is the name of the mesh group </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Criterion</em>&nbsp;</td><td>is the instance of Criterion class </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Group </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="1db8830048163a89d6e8a5b38bc0aff6"></a><!-- doxytag: member="smesh::Mesh::MakeGroupByCriteria" ref="1db8830048163a89d6e8a5b38bc0aff6" 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.MakeGroupByCriteria           </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>groupName</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>theCriteria</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>groupName</em>&nbsp;</td><td>is the name of the mesh group </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Criteria</em>&nbsp;</td><td>is the list of criterions </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Group </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="8f4952f18ef6e065b1f21b9c501acdbd"></a><!-- doxytag: member="smesh::Mesh::MakeGroupByFilter" ref="8f4952f18ef6e065b1f21b9c501acdbd" 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.MakeGroupByFilter           </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>groupName</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>theFilter</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>groupName</em>&nbsp;</td><td>is the name of the mesh group </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Criterion</em>&nbsp;</td><td>is the instance of Filter class </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Group </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="14ec9ac71e14ef62aa41ab5427dc874b"></a><!-- doxytag: member="smesh::Mesh::GetIdsFromFilter" ref="14ec9ac71e14ef62aa41ab5427dc874b" 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.GetIdsFromFilter           </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>theFilter</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>theFilter</em>&nbsp;</td><td>is SMESH_Filter </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>list of ids </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="bf1218d5cb3988330c0bf61db2a2b2b7"></a><!-- doxytag: member="smesh::Mesh::GetFreeBorders" ref="bf1218d5cb3988330c0bf61db2a2b2b7" 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.GetFreeBorders           </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>
-<dl compact><dt><b>Returns:</b></dt><dd>list of SMESH.FreeEdges.Border structure: edge id and two its nodes ids. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="cf78d6ee5bf4142a7c47c542dd29774e"></a><!-- doxytag: member="smesh::Mesh::RemoveGroup" ref="cf78d6ee5bf4142a7c47c542dd29774e" 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.RemoveGroup           </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>group</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>
-<a class="anchor" name="7b925f04a22f5b1b6b2e534da1ecbd92"></a><!-- doxytag: member="smesh::Mesh::RemoveGroupWithContents" ref="7b925f04a22f5b1b6b2e534da1ecbd92" 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.RemoveGroupWithContents           </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>group</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>
-<a class="anchor" name="95da60a43691e2555e1246346bab95cc"></a><!-- doxytag: member="smesh::Mesh::GetGroups" ref="95da60a43691e2555e1246346bab95cc" 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.GetGroups           </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="ec1357647df1fae2de711e46f33bce59"></a><!-- doxytag: member="smesh::Mesh::GetGroupNames" ref="ec1357647df1fae2de711e46f33bce59" 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.GetGroupNames           </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="adce4d7372f7f85d7851aac8fa8223ab"></a><!-- doxytag: member="smesh::Mesh::UnionGroups" ref="adce4d7372f7f85d7851aac8fa8223ab" 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.UnionGroups           </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>group1</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>group2</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>
-All mesh elements that are present in initial groups are added to the new one     </td>
-  </tr>
-</table>
-<a class="anchor" name="ff4bc7665f316f9afe4091a1aa195938"></a><!-- doxytag: member="smesh::Mesh::IntersectGroups" ref="ff4bc7665f316f9afe4091a1aa195938" 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.IntersectGroups           </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>group1</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>group2</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>
-All mesh elements that are present in both initial groups are added to the new one.     </td>
-  </tr>
-</table>
-<a class="anchor" name="93a759ed3183676d160b210ea16f4152"></a><!-- doxytag: member="smesh::Mesh::CutGroups" ref="93a759ed3183676d160b210ea16f4152" 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.CutGroups           </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>mainGroup</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>toolGroup</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>
-All mesh elements that are present in main group but do not present in tool group are added to the new one     </td>
-  </tr>
-</table>
-<a class="anchor" name="a8eb2739e60747e3e4f21f6d044fb8ea"></a><!-- doxytag: member="smesh::Mesh::GetLog" ref="a8eb2739e60747e3e4f21f6d044fb8ea" 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.GetLog           </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>clearAfterGet</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>clearAfterGet</em>&nbsp;</td><td>log is emptied after Get (safe if concurrents access) </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>list of log_block structures: commandType number coords indexes </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="ca397e42479735387f28e60daba5fa21"></a><!-- doxytag: member="smesh::Mesh::ClearLog" ref="ca397e42479735387f28e60daba5fa21" 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.ClearLog           </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>
-Must be used immediately after GetLog if clearAfterGet is false.     </td>
-  </tr>
-</table>
-<a class="anchor" name="8c2b5b28778a8c8e75dbf67e9e173e96"></a><!-- doxytag: member="smesh::Mesh::GetId" ref="8c2b5b28778a8c8e75dbf67e9e173e96" 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.GetId           </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="aefae881bffe9563d1d94a8aa94311aa"></a><!-- doxytag: member="smesh::Mesh::GetStudyId" ref="aefae881bffe9563d1d94a8aa94311aa" 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.GetStudyId           </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="d1846b2ee111a6720a7bfdb7bae9a04e"></a><!-- doxytag: member="smesh::Mesh::HasDuplicatedGroupNamesMED" ref="d1846b2ee111a6720a7bfdb7bae9a04e" 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.HasDuplicatedGroupNamesMED           </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>
-Consider maximum group name length stored in MED file.     </td>
-  </tr>
-</table>
-<a class="anchor" name="e65f765b6a402c7c8b26335fa4422cf5"></a><!-- doxytag: member="smesh::Mesh::GetMeshEditor" ref="e65f765b6a402c7c8b26335fa4422cf5" 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.GetMeshEditor           </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="23967469975fb15ab095fbef5d3fff4c"></a><!-- doxytag: member="smesh::Mesh::GetMEDMesh" ref="23967469975fb15ab095fbef5d3fff4c" 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.GetMEDMesh           </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="726ae692c089873060904db2f5be2489"></a><!-- doxytag: member="smesh::Mesh::NbNodes" ref="726ae692c089873060904db2f5be2489" 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.NbNodes           </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="ab9164bf03dfc3f96373c83890faeac7"></a><!-- doxytag: member="smesh::Mesh::NbElements" ref="ab9164bf03dfc3f96373c83890faeac7" 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.NbElements           </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="8f6a7ba5c4246afbe8c23c31b54fe151"></a><!-- doxytag: member="smesh::Mesh::NbEdges" ref="8f6a7ba5c4246afbe8c23c31b54fe151" 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.NbEdges           </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="62493e2dea0235f7043c35850ea67bc1"></a><!-- doxytag: member="smesh::Mesh::NbEdgesOfOrder" ref="62493e2dea0235f7043c35850ea67bc1" 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.NbEdgesOfOrder           </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>elementOrder</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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="7e9df39cf5129962023043abcc898e69"></a><!-- doxytag: member="smesh::Mesh::NbFaces" ref="7e9df39cf5129962023043abcc898e69" 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.NbFaces           </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="b5f5d0f76b75110f373c2978bec4511d"></a><!-- doxytag: member="smesh::Mesh::NbFacesOfOrder" ref="b5f5d0f76b75110f373c2978bec4511d" 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.NbFacesOfOrder           </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>elementOrder</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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="45deec5dbf334ba86f69210edb6eb031"></a><!-- doxytag: member="smesh::Mesh::NbTriangles" ref="45deec5dbf334ba86f69210edb6eb031" 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.NbTriangles           </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="81cdae5d219351e937d02a8ea5c8bd66"></a><!-- doxytag: member="smesh::Mesh::NbTrianglesOfOrder" ref="81cdae5d219351e937d02a8ea5c8bd66" 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.NbTrianglesOfOrder           </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>elementOrder</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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="d83429db26cce1bc35795935c4c22e0a"></a><!-- doxytag: member="smesh::Mesh::NbQuadrangles" ref="d83429db26cce1bc35795935c4c22e0a" 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.NbQuadrangles           </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="4c9bca301fa2170813406412cfd9c1aa"></a><!-- doxytag: member="smesh::Mesh::NbQuadranglesOfOrder" ref="4c9bca301fa2170813406412cfd9c1aa" 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.NbQuadranglesOfOrder           </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>elementOrder</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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="f086f62d71136f0e5a24ee9a4150515b"></a><!-- doxytag: member="smesh::Mesh::NbPolygons" ref="f086f62d71136f0e5a24ee9a4150515b" 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.NbPolygons           </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="e35ea16aadc59efecaff428c0b3c2dfe"></a><!-- doxytag: member="smesh::Mesh::NbVolumes" ref="e35ea16aadc59efecaff428c0b3c2dfe" 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.NbVolumes           </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="b5dc83d1838f66e925667cd6634b5919"></a><!-- doxytag: member="smesh::Mesh::NbVolumesOfOrder" ref="b5dc83d1838f66e925667cd6634b5919" 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.NbVolumesOfOrder           </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>elementOrder</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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="2a7fd2a66045ad4ef37395899cf3e2b4"></a><!-- doxytag: member="smesh::Mesh::NbTetras" ref="2a7fd2a66045ad4ef37395899cf3e2b4" 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.NbTetras           </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="5f6f04aee13f5e9146b0b83dc4a29136"></a><!-- doxytag: member="smesh::Mesh::NbTetrasOfOrder" ref="5f6f04aee13f5e9146b0b83dc4a29136" 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.NbTetrasOfOrder           </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>elementOrder</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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="fd3a0392332424162db67bdc18a66b9e"></a><!-- doxytag: member="smesh::Mesh::NbHexas" ref="fd3a0392332424162db67bdc18a66b9e" 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.NbHexas           </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="30d469eb020c16ac95fe4ccc86df9847"></a><!-- doxytag: member="smesh::Mesh::NbHexasOfOrder" ref="30d469eb020c16ac95fe4ccc86df9847" 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.NbHexasOfOrder           </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>elementOrder</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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="aee1ae2972f4256dbc23281f212bd63d"></a><!-- doxytag: member="smesh::Mesh::NbPyramids" ref="aee1ae2972f4256dbc23281f212bd63d" 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.NbPyramids           </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="6f9f0c840846170841655ffe6c88c9ba"></a><!-- doxytag: member="smesh::Mesh::NbPyramidsOfOrder" ref="6f9f0c840846170841655ffe6c88c9ba" 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.NbPyramidsOfOrder           </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>elementOrder</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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="497d7d510d365904c8850f8a1ab9b9c6"></a><!-- doxytag: member="smesh::Mesh::NbPrisms" ref="497d7d510d365904c8850f8a1ab9b9c6" 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.NbPrisms           </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="8d37e2b2ec7aff3b89b0933c03409e5b"></a><!-- doxytag: member="smesh::Mesh::NbPrismsOfOrder" ref="8d37e2b2ec7aff3b89b0933c03409e5b" 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.NbPrismsOfOrder           </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>elementOrder</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>elementOrder</em>&nbsp;</td><td>is order of elements: ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="84903e975c77cc2542ea50143f9cb877"></a><!-- doxytag: member="smesh::Mesh::NbPolyhedrons" ref="84903e975c77cc2542ea50143f9cb877" 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.NbPolyhedrons           </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="fafa87c1893299b30bffdaa748837ace"></a><!-- doxytag: member="smesh::Mesh::NbSubMesh" ref="fafa87c1893299b30bffdaa748837ace" 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.NbSubMesh           </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="2f7b4230985fdf7dac8c1a3dc5d96efa"></a><!-- doxytag: member="smesh::Mesh::GetElementsId" ref="2f7b4230985fdf7dac8c1a3dc5d96efa" 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.GetElementsId           </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="1dbede49ac46741782d4b88096024754"></a><!-- doxytag: member="smesh::Mesh::GetElementsByType" ref="1dbede49ac46741782d4b88096024754" 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.GetElementsByType           </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>elementType</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>elementType</em>&nbsp;</td><td>is required type of elements </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="d4f0260724efd10fc07d6cc030348bf7"></a><!-- doxytag: member="smesh::Mesh::GetNodesId" ref="d4f0260724efd10fc07d6cc030348bf7" 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.GetNodesId           </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="09d64e636ad97f4929174795376cb79a"></a><!-- doxytag: member="smesh::Mesh::GetElementType" ref="09d64e636ad97f4929174795376cb79a" 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.GetElementType           </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>id</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>iselem</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>
-<a class="anchor" name="cff00e6b2f5d63f24af53e5d654d259e"></a><!-- doxytag: member="smesh::Mesh::GetSubMeshElementsId" ref="cff00e6b2f5d63f24af53e5d654d259e" 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.GetSubMeshElementsId           </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>shapeID</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>shapeID</em>&nbsp;</td><td>is geom object(subshape) IOR </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="df30b3062d9420c85f457d8d67716c6a"></a><!-- doxytag: member="smesh::Mesh::GetSubMeshNodesId" ref="df30b3062d9420c85f457d8d67716c6a" 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.GetSubMeshNodesId           </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>shapeID</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>all</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>shapeID</em>&nbsp;</td><td>is geom object(subshape) IOR </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="01928943dd569e70590f7a82d5a9c083"></a><!-- doxytag: member="smesh::Mesh::GetSubMeshElementType" ref="01928943dd569e70590f7a82d5a9c083" 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.GetSubMeshElementType           </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>shapeID</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>shapeID</em>&nbsp;</td><td>is geom object(subshape) IOR </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="97cc6a5900b73642880b5c5327167347"></a><!-- doxytag: member="smesh::Mesh::Dump" ref="97cc6a5900b73642880b5c5327167347" 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.Dump           </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="8c5f43b40615e416e8723250aedca198"></a><!-- doxytag: member="smesh::Mesh::GetNodeXYZ" ref="8c5f43b40615e416e8723250aedca198" 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.GetNodeXYZ           </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>id</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>
-<a class="anchor" name="89759593eb975e4a98f21fad2f0471d9"></a><!-- doxytag: member="smesh::Mesh::GetNodeInverseElements" ref="89759593eb975e4a98f21fad2f0471d9" 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.GetNodeInverseElements           </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>id</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>
-<a class="anchor" name="819f94ff143442f18726ad6d571f4d4d"></a><!-- doxytag: member="smesh::Mesh::GetShapeID" ref="819f94ff143442f18726ad6d571f4d4d" 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.GetShapeID           </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>id</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>
-<a class="anchor" name="eef3aa74ef3616715448260f21f743fe"></a><!-- doxytag: member="smesh::Mesh::GetShapeIDForElem" ref="eef3aa74ef3616715448260f21f743fe" 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.GetShapeIDForElem           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>id</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="8a3f80335947fd570bba6b4f53a8a561"></a><!-- doxytag: member="smesh::Mesh::GetElemNbNodes" ref="8a3f80335947fd570bba6b4f53a8a561" 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.GetElemNbNodes           </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>id</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>
-<a class="anchor" name="b962a2eb7fc5b6ee8c50795d185c45d0"></a><!-- doxytag: member="smesh::Mesh::GetElemNode" ref="b962a2eb7fc5b6ee8c50795d185c45d0" 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.GetElemNode           </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>id</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>index</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>
-<a class="anchor" name="e51aaa086dca92d2b7966ae0b49aefd7"></a><!-- doxytag: member="smesh::Mesh::IsMediumNode" ref="e51aaa086dca92d2b7966ae0b49aefd7" 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.IsMediumNode           </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>elementID</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>nodeID</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>
-<a class="anchor" name="10e70db0e24a1ec78636f8651a402873"></a><!-- doxytag: member="smesh::Mesh::IsMediumNodeOfAnyElem" ref="10e70db0e24a1ec78636f8651a402873" 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.IsMediumNodeOfAnyElem           </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>nodeID</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>elementType</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>
-<a class="anchor" name="bf279ea4ea4ea4aa0e01ef0b2da41376"></a><!-- doxytag: member="smesh::Mesh::ElemNbEdges" ref="bf279ea4ea4ea4aa0e01ef0b2da41376" 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.ElemNbEdges           </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>id</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>
-<a class="anchor" name="ba5c055ca37c30cb77d2c698cb062d18"></a><!-- doxytag: member="smesh::Mesh::ElemNbFaces" ref="ba5c055ca37c30cb77d2c698cb062d18" 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.ElemNbFaces           </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>id</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>
-<a class="anchor" name="0711cb1be29ca2d8e186e921650b9a75"></a><!-- doxytag: member="smesh::Mesh::IsPoly" ref="0711cb1be29ca2d8e186e921650b9a75" 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.IsPoly           </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>id</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>
-<a class="anchor" name="a6688e1a2742f29aa5b662cc7aaa4032"></a><!-- doxytag: member="smesh::Mesh::IsQuadratic" ref="a6688e1a2742f29aa5b662cc7aaa4032" 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.IsQuadratic           </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>id</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>
-<a class="anchor" name="512996a6214d6d7bb82c449126602dcb"></a><!-- doxytag: member="smesh::Mesh::BaryCenter" ref="512996a6214d6d7bb82c449126602dcb" 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.BaryCenter           </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>id</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>
-<a class="anchor" name="7ef5a1396c6ca2f87f866019d6994fda"></a><!-- doxytag: member="smesh::Mesh::RemoveElements" ref="7ef5a1396c6ca2f87f866019d6994fda" 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.RemoveElements           </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>IDsOfElements</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>IDsOfElements</em>&nbsp;</td><td>is list of ids of elements to remove </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="3660e81cc2503176aeaaf791d91583aa"></a><!-- doxytag: member="smesh::Mesh::RemoveNodes" ref="3660e81cc2503176aeaaf791d91583aa" 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.RemoveNodes           </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>IDsOfNodes</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>IDsOfNodes</em>&nbsp;</td><td>is list of ids of nodes to remove </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="1fc905250f88b780af041874783e1aba"></a><!-- doxytag: member="smesh::Mesh::AddNode" ref="1fc905250f88b780af041874783e1aba" 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.AddNode           </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>x</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>y</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>z</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>
-<a class="anchor" name="5300171dc7f8dcb867641e99ddfe1259"></a><!-- doxytag: member="smesh::Mesh::AddEdge" ref="5300171dc7f8dcb867641e99ddfe1259" 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.AddEdge           </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>IDsOfNodes</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>IdsOfNodes</em>&nbsp;</td><td>List of node IDs for creation of element. Needed order of nodes in this list corresponds to description of MED. <br>
- This description is located by the following link: <a href="http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.">http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.</a> </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="ac29ca675d96e76ac464d552d0677bef"></a><!-- doxytag: member="smesh::Mesh::AddFace" ref="ac29ca675d96e76ac464d552d0677bef" 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.AddFace           </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>IDsOfNodes</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>IdsOfNodes</em>&nbsp;</td><td>List of node IDs for creation of element. Needed order of nodes in this list corresponds to description of MED. <br>
- This description is located by the following link: <a href="http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.">http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.</a> </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="1ff012def84bb3df64b313060f6de7ba"></a><!-- doxytag: member="smesh::Mesh::AddPolygonalFace" ref="1ff012def84bb3df64b313060f6de7ba" 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.AddPolygonalFace           </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>IdsOfNodes</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>
-<a class="anchor" name="21e6382dee8cc24808416494abc93e5f"></a><!-- doxytag: member="smesh::Mesh::AddVolume" ref="21e6382dee8cc24808416494abc93e5f" 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.AddVolume           </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>IDsOfNodes</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>IdsOfNodes</em>&nbsp;</td><td>List of node IDs for creation of element. Needed order of nodes in this list corresponds to description of MED. <br>
- This description is located by the following link: <a href="http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.">http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.</a> </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="2d584c652eeb55d174ad4e2107ad4702"></a><!-- doxytag: member="smesh::Mesh::AddPolyhedralVolume" ref="2d584c652eeb55d174ad4e2107ad4702" 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.AddPolyhedralVolume           </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>IdsOfNodes</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>Quantities</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>IdsOfNodes</em>&nbsp;</td><td>List of node IDs for volume creation face by face. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Quantities</em>&nbsp;</td><td>List of integer values, Quantities[i] gives quantity of nodes in face number i. </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="77d8a4cee1fa308e4ce7d2b80f15e52e"></a><!-- doxytag: member="smesh::Mesh::AddPolyhedralVolumeByFaces" ref="77d8a4cee1fa308e4ce7d2b80f15e52e" 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.AddPolyhedralVolumeByFaces           </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>IdsOfFaces</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>IdsOfFaces</em>&nbsp;</td><td>List of face IDs for volume creation.</td></tr>
-  </table>
-</dl>
-Note: The created volume will refer only to nodes of the given faces, not to the faces itself.     </td>
-  </tr>
-</table>
-<a class="anchor" name="3a0b58036724d0068a346f233ac1744f"></a><!-- doxytag: member="smesh::Mesh::MoveNode" ref="3a0b58036724d0068a346f233ac1744f" 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.MoveNode           </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>NodeID</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>x</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>y</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>z</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>NodeID</em>&nbsp;</td><td>id of the node </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>new X coordinate </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>new Y coordinate </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>new Z coordinate </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="6a25defc09698efbe65b5e4b33ae1621"></a><!-- doxytag: member="smesh::Mesh::FindNodeClosestTo" ref="6a25defc09698efbe65b5e4b33ae1621" 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.FindNodeClosestTo           </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>x</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>y</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>z</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>x</em>&nbsp;</td><td>X coordinate of a point </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y coordinate of a point </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>Z coordinate of a point </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>id of a node </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="d6159f5aa96dde48576c9906c004d878"></a><!-- doxytag: member="smesh::Mesh::MeshToPassThroughAPoint" ref="d6159f5aa96dde48576c9906c004d878" 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.MeshToPassThroughAPoint           </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>x</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>y</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>z</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>x</em>&nbsp;</td><td>X coordinate of a point </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>Y coordinate of a point </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>Z coordinate of a point </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>id of a moved node </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="b1cd711562c3f4cf4d2989606210dc6d"></a><!-- doxytag: member="smesh::Mesh::InverseDiag" ref="b1cd711562c3f4cf4d2989606210dc6d" 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.InverseDiag           </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>NodeID1</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>NodeID2</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>NodeID1</em>&nbsp;</td><td>first node id </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>NodeID2</em>&nbsp;</td><td>second node id </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>false if proper faces not found </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="1f9d69024eb5959bacf0f14c9a99f89f"></a><!-- doxytag: member="smesh::Mesh::DeleteDiag" ref="1f9d69024eb5959bacf0f14c9a99f89f" 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.DeleteDiag           </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>NodeID1</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>NodeID2</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>NodeID1</em>&nbsp;</td><td>first node id </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>NodeID2</em>&nbsp;</td><td>second node id </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>false if proper faces not found </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="70be24d065258cab090116d94431f08b"></a><!-- doxytag: member="smesh::Mesh::Reorient" ref="70be24d065258cab090116d94431f08b" 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.Reorient           </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>IDsOfElements</em> = <code>None</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>IDsOfElements</em>&nbsp;</td><td>if undefined reorient all mesh elements </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="3135d68c4429b2941870e19bb3233dce"></a><!-- doxytag: member="smesh::Mesh::ReorientObject" ref="3135d68c4429b2941870e19bb3233dce" 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.ReorientObject           </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>theObject</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>theObject</em>&nbsp;</td><td>is mesh, submesh or group </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="922f422cb40bc3412f7561defe43ef3b"></a><!-- doxytag: member="smesh::Mesh::TriToQuad" ref="922f422cb40bc3412f7561defe43ef3b" 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.TriToQuad           </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>IDsOfElements</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>theCriterion</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>MaxAngle</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>IDsOfElements</em>&nbsp;</td><td>The triangles to be fused, </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theCriterion</em>&nbsp;</td><td>is FT_...; used to choose a neighbour to fuse with. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>MaxAngle</em>&nbsp;</td><td>is a max angle between element normals at which fusion is still performed; theMaxAngle is mesured in radians. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>TRUE in case of success, FALSE otherwise. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="b6d00be6bccc1478f6dd627ab10ef0b0"></a><!-- doxytag: member="smesh::Mesh::TriToQuadObject" ref="b6d00be6bccc1478f6dd627ab10ef0b0" 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.TriToQuadObject           </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>theObject</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>theCriterion</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>MaxAngle</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>theObject</em>&nbsp;</td><td>is mesh, submesh or group </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theCriterion</em>&nbsp;</td><td>is FT_...; used to choose a neighbour to fuse with. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>MaxAngle</em>&nbsp;</td><td>is a max angle between element normals at which fusion is still performed; theMaxAngle is mesured in radians. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>TRUE in case of success, FALSE otherwise. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="0c0ad8d78fb361a3270325ceb3f495b6"></a><!-- doxytag: member="smesh::Mesh::QuadToTri" ref="0c0ad8d78fb361a3270325ceb3f495b6" 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.QuadToTri           </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>IDsOfElements</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>theCriterion</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>IDsOfElements</em>&nbsp;</td><td>the faces to be splitted. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theCriterion</em>&nbsp;</td><td>is FT_...; used to choose a diagonal for splitting. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em></em>&nbsp;</td><td>TRUE in case of success, FALSE otherwise. </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="5ce3b8a9451caf30b6150c81000beb38"></a><!-- doxytag: member="smesh::Mesh::QuadToTriObject" ref="5ce3b8a9451caf30b6150c81000beb38" 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.QuadToTriObject           </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>theObject</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>theCriterion</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>theObject</em>&nbsp;</td><td>object to taking list of elements from, is mesh, submesh or group </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theCriterion</em>&nbsp;</td><td>is FT_...; used to choose a diagonal for splitting. </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="c0a1a58709e0b852d34ad4c800e4dbe5"></a><!-- doxytag: member="smesh::Mesh::SplitQuad" ref="c0a1a58709e0b852d34ad4c800e4dbe5" 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.SplitQuad           </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>IDsOfElements</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>Diag13</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>theElems</em>&nbsp;</td><td>The faces to be splitted </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>the13Diag</em>&nbsp;</td><td>is used to choose a diagonal for splitting. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>TRUE in case of success, FALSE otherwise. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="597d364ed43deec20e76bbe76733f24a"></a><!-- doxytag: member="smesh::Mesh::SplitQuadObject" ref="597d364ed43deec20e76bbe76733f24a" 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.SplitQuadObject           </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>theObject</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>Diag13</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>theObject</em>&nbsp;</td><td>is object to taking list of elements from, is mesh, submesh or group </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="318863d98fc0ceae3d2c40f2e140ddcc"></a><!-- doxytag: member="smesh::Mesh::BestSplit" ref="318863d98fc0ceae3d2c40f2e140ddcc" 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.BestSplit           </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>IDOfQuad</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>theCriterion</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>IDOfQuad</em>&nbsp;</td><td>ID of the quadrangle to be splitted. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theCriterion</em>&nbsp;</td><td>is FT_...; a criterion to choose a diagonal for splitting. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>1 if 1-3 diagonal is better, 2 if 2-4 diagonal is better, 0 if error occurs. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="4e9b0332c2c020c0f9baa1be7ff436f7"></a><!-- doxytag: member="smesh::Mesh::SplitQuadsNearTriangularFacets" ref="4e9b0332c2c020c0f9baa1be7ff436f7" 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.SplitQuadsNearTriangularFacets           </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="3ae71a6aea314843e0f9f5cc7d24cf4a"></a><!-- doxytag: member="smesh::Mesh::SplitHexaToTetras" ref="3ae71a6aea314843e0f9f5cc7d24cf4a" 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.SplitHexaToTetras           </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>theObject</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>theNode000</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>theNode001</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>
-Use pattern mapping functionality for splitting. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>object to take list of hexahedrons from; is mesh, submesh or group. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theNode000,theNode001</em>&nbsp;</td><td>is in range [0,7]; give an orientation of the pattern relatively each hexahedron: the (0,0,0) key-point of pattern will be mapped into &lt;theNode000&gt;-th node of each volume, the (0,0,1) key-point will be mapped into &lt;theNode001&gt;-th node of each volume. The (0,0,0) key-point of used pattern corresponds to not split corner. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em></em>&nbsp;</td><td>TRUE in case of success, FALSE otherwise. </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="4270db271f6180980c28cf58e835c3f3"></a><!-- doxytag: member="smesh::Mesh::SplitHexaToPrisms" ref="4270db271f6180980c28cf58e835c3f3" 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.SplitHexaToPrisms           </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>theObject</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>theNode000</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>theNode001</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>
-Use pattern mapping functionality for splitting. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>object to take list of hexahedrons from; is mesh, submesh or group. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theNode000,theNode001</em>&nbsp;</td><td>is in range [0,7]; give an orientation of the pattern relatively each hexahedron: the (0,0,0) key-point of pattern will be mapped into &lt;theNode000&gt;-th node of each volume, the (0,0,1) key-point will be mapped into &lt;theNode001&gt;-th node of each volume. The edge (0,0,0)-(0,0,1) of used pattern connects two not split corners. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em></em>&nbsp;</td><td>TRUE in case of success, FALSE otherwise. </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="84d7a34fff0606afb1ad5ec38fbff51b"></a><!-- doxytag: member="smesh::Mesh::Smooth" ref="84d7a34fff0606afb1ad5ec38fbff51b" 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.Smooth           </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>IDsOfElements</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>IDsOfFixedNodes</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>MaxNbOfIterations</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>MaxAspectRatio</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>Method</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>IDsOfElements</em>&nbsp;</td><td>list if ids of elements to smooth </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>IDsOfFixedNodes</em>&nbsp;</td><td>list of ids of fixed nodes. Note that nodes built on edges and boundary nodes are always fixed. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>MaxNbOfIterations</em>&nbsp;</td><td>maximum number of iterations </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>MaxAspectRatio</em>&nbsp;</td><td>varies in range [1.0, inf] </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Method</em>&nbsp;</td><td>is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH) </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="35fe184fb7df14af5ed11780133242b6"></a><!-- doxytag: member="smesh::Mesh::SmoothObject" ref="35fe184fb7df14af5ed11780133242b6" 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.SmoothObject           </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>theObject</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>IDsOfFixedNodes</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>MaxNbOfIterations</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>MaxxAspectRatio</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>Method</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>theObject</em>&nbsp;</td><td>object to smooth </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>IDsOfFixedNodes</em>&nbsp;</td><td>list of ids of fixed nodes. Note that nodes built on edges and boundary nodes are always fixed. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>MaxNbOfIterations</em>&nbsp;</td><td>maximum number of iterations </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>MaxAspectRatio</em>&nbsp;</td><td>varies in range [1.0, inf] </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Method</em>&nbsp;</td><td>is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH) </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="f1a03b74c100180c10eebe21623a2c08"></a><!-- doxytag: member="smesh::Mesh::SmoothParametric" ref="f1a03b74c100180c10eebe21623a2c08" 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.SmoothParametric           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>IDsOfElements</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>IDsOfFixedNodes</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>MaxNbOfIterations</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>MaxAspectRatio</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>Method</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>IDsOfElements</em>&nbsp;</td><td>list if ids of elements to smooth </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>IDsOfFixedNodes</em>&nbsp;</td><td>list of ids of fixed nodes. Note that nodes built on edges and boundary nodes are always fixed. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>MaxNbOfIterations</em>&nbsp;</td><td>maximum number of iterations </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>MaxAspectRatio</em>&nbsp;</td><td>varies in range [1.0, inf] </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Method</em>&nbsp;</td><td>is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH) </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="72f3d72d6e05ee787657079f7fae7569"></a><!-- doxytag: member="smesh::Mesh::SmoothParametricObject" ref="72f3d72d6e05ee787657079f7fae7569" 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.SmoothParametricObject           </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>theObject</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>IDsOfFixedNodes</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>MaxNbOfIterations</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>MaxAspectRatio</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>Method</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>theObject</em>&nbsp;</td><td>object to smooth </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>IDsOfFixedNodes</em>&nbsp;</td><td>list of ids of fixed nodes. Note that nodes built on edges and boundary nodes are always fixed. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>MaxNbOfIterations</em>&nbsp;</td><td>maximum number of iterations </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>MaxAspectRatio</em>&nbsp;</td><td>varies in range [1.0, inf] </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Method</em>&nbsp;</td><td>is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH) </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="4dc4ca27b4d1b0dfc975b5ebb9e74b98"></a><!-- doxytag: member="smesh::Mesh::ConvertToQuadratic" ref="4dc4ca27b4d1b0dfc975b5ebb9e74b98" 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.ConvertToQuadratic           </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>theForce3d</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>
-<a class="anchor" name="bf3a3a02b1ec06aaa4b518eacbc61c13"></a><!-- doxytag: member="smesh::Mesh::ConvertFromQuadratic" ref="bf3a3a02b1ec06aaa4b518eacbc61c13" 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.ConvertFromQuadratic           </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="67efca0e9f290689ed21b473e52cbd50"></a><!-- doxytag: member="smesh::Mesh::RenumberNodes" ref="67efca0e9f290689ed21b473e52cbd50" 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.RenumberNodes           </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="425c345fea14aac8d46daf65e28aa361"></a><!-- doxytag: member="smesh::Mesh::RenumberElements" ref="425c345fea14aac8d46daf65e28aa361" 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.RenumberElements           </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="5c1411e04a23bd4f4ba721a24638a833"></a><!-- doxytag: member="smesh::Mesh::RotationSweep" ref="5c1411e04a23bd4f4ba721a24638a833" 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.RotationSweep           </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>IDsOfElements</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>Axix</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>AngleInRadians</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>NbOfSteps</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>Tolerance</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>IDsOfElements</em>&nbsp;</td><td>list of ids of elements to sweep </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Axix</em>&nbsp;</td><td>axis of rotation, AxisStruct or line(geom object) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>AngleInRadians</em>&nbsp;</td><td>angle of Rotation </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>NbOfSteps</em>&nbsp;</td><td>number of steps </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Tolerance</em>&nbsp;</td><td>tolerance </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9e3953602695cb8cfdca1357cd4281a0"></a><!-- doxytag: member="smesh::Mesh::RotationSweepObject" ref="9e3953602695cb8cfdca1357cd4281a0" 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.RotationSweepObject           </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>theObject</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>Axix</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>AngleInRadians</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>NbOfSteps</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>Tolerance</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>theObject</em>&nbsp;</td><td>object wich elements should be sweeped </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Axix</em>&nbsp;</td><td>axis of rotation, AxisStruct or line(geom object) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>AngleInRadians</em>&nbsp;</td><td>angle of Rotation </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>NbOfSteps</em>&nbsp;</td><td>number of steps </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Tolerance</em>&nbsp;</td><td>tolerance </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="975714cfcbcbb60eabd43045fe7d80f0"></a><!-- doxytag: member="smesh::Mesh::ExtrusionSweep" ref="975714cfcbcbb60eabd43045fe7d80f0" 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.ExtrusionSweep           </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>IDsOfElements</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>StepVector</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>NbOfSteps</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>IDsOfElements</em>&nbsp;</td><td>list of elements ids for extrusion </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>StepVector</em>&nbsp;</td><td>vector, defining the direction and value of extrusion </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>NbOfSteps</em>&nbsp;</td><td>the number of steps </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="4f3409fde48b1edb83ea3c598e061b01"></a><!-- doxytag: member="smesh::Mesh::AdvancedExtrusion" ref="4f3409fde48b1edb83ea3c598e061b01" 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.AdvancedExtrusion           </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>IDsOfElements</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>StepVector</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>NbOfSteps</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>ExtrFlags</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>SewTolerance</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>IDsOfElements</em>&nbsp;</td><td>is ids of elements </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>StepVector</em>&nbsp;</td><td>vector, defining the direction and value of extrusion </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>NbOfSteps</em>&nbsp;</td><td>the number of steps </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>ExtrFlags</em>&nbsp;</td><td>set flags for performing extrusion </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>SewTolerance</em>&nbsp;</td><td>uses for comparing locations of nodes if flag EXTRUSION_FLAG_SEW is set </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="5d29416945e6a665b83258b6f20a3b9d"></a><!-- doxytag: member="smesh::Mesh::ExtrusionSweepObject" ref="5d29416945e6a665b83258b6f20a3b9d" 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.ExtrusionSweepObject           </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>theObject</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>StepVector</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>NbOfSteps</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>theObject</em>&nbsp;</td><td>object wich elements should be processed </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>StepVector</em>&nbsp;</td><td>vector, defining the direction and value of extrusion </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>NbOfSteps</em>&nbsp;</td><td>the number of steps </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="afa41c3158cd8b1fcfaf86db26d8550f"></a><!-- doxytag: member="smesh::Mesh::ExtrusionSweepObject1D" ref="afa41c3158cd8b1fcfaf86db26d8550f" 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.ExtrusionSweepObject1D           </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>theObject</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>StepVector</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>NbOfSteps</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>theObject</em>&nbsp;</td><td>object wich elements should be processed </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>StepVector</em>&nbsp;</td><td>vector, defining the direction and value of extrusion </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>NbOfSteps</em>&nbsp;</td><td>the number of steps </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="079e59af58714725629b5081b5ec15c4"></a><!-- doxytag: member="smesh::Mesh::ExtrusionSweepObject2D" ref="079e59af58714725629b5081b5ec15c4" 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.ExtrusionSweepObject2D           </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>theObject</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>StepVector</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>NbOfSteps</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>theObject</em>&nbsp;</td><td>object wich elements should be processed </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>StepVector</em>&nbsp;</td><td>vector, defining the direction and value of extrusion </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>NbOfSteps</em>&nbsp;</td><td>the number of steps </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="691522416f481a91a268d58e15646eb7"></a><!-- doxytag: member="smesh::Mesh::ExtrusionAlongPath" ref="691522416f481a91a268d58e15646eb7" 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.ExtrusionAlongPath           </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>IDsOfElements</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>PathMesh</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>PathShape</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>NodeStart</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>HasAngles</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>Angles</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>HasRefPoint</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>RefPoint</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>LinearVariation</em> = <code>False</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>IDsOfElements</em>&nbsp;</td><td>is ids of elements </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>PathMesh</em>&nbsp;</td><td>mesh containing a 1D sub-mesh on the edge, along which proceeds the extrusion </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>PathShape</em>&nbsp;</td><td>is shape(edge); as the mesh can be complex, the edge is used to define the sub-mesh for the path </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>NodeStart</em>&nbsp;</td><td>the first or the last node on the edge. It is used to define the direction of extrusion </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>HasAngles</em>&nbsp;</td><td>allows the shape to be rotated around the path to get the resulting mesh in a helical fashion </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Angles</em>&nbsp;</td><td>list of angles </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>HasRefPoint</em>&nbsp;</td><td>allows to use base point </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>RefPoint</em>&nbsp;</td><td>point around which the shape is rotated(the mass center of the shape by default). User can specify any point as the Base Point and the shape will be rotated with respect to this point. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>LinearVariation</em>&nbsp;</td><td>makes compute rotation angles as linear variation of given Angles along path steps </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="f0248dfbb1f18de28754468c1173f88c"></a><!-- doxytag: member="smesh::Mesh::ExtrusionAlongPathObject" ref="f0248dfbb1f18de28754468c1173f88c" 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.ExtrusionAlongPathObject           </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>theObject</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>PathMesh</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>PathShape</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>NodeStart</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>HasAngles</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>Angles</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>HasRefPoint</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>RefPoint</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>LinearVariation</em> = <code>False</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>IDsOfElements</em>&nbsp;</td><td>is ids of elements </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>PathMesh</em>&nbsp;</td><td>mesh containing a 1D sub-mesh on the edge, along which proceeds the extrusion </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>PathShape</em>&nbsp;</td><td>is shape(edge); as the mesh can be complex, the edge is used to define the sub-mesh for the path </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>NodeStart</em>&nbsp;</td><td>the first or the last node on the edge. It is used to define the direction of extrusion </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>HasAngles</em>&nbsp;</td><td>allows the shape to be rotated around the path to get the resulting mesh in a helical fashion </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Angles</em>&nbsp;</td><td>list of angles </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>HasRefPoint</em>&nbsp;</td><td>allows to use base point </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>RefPoint</em>&nbsp;</td><td>point around which the shape is rotated(the mass center of the shape by default). User can specify any point as the Base Point and the shape will be rotated with respect to this point. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>LinearVariation</em>&nbsp;</td><td>makes compute rotation angles as linear variation of given Angles along path steps </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="e847af1a376e90dc10becf6c24475577"></a><!-- doxytag: member="smesh::Mesh::Mirror" ref="e847af1a376e90dc10becf6c24475577" 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.Mirror           </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>IDsOfElements</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>Mirror</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>theMirrorType</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>Copy</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>IDsOfElements</em>&nbsp;</td><td>list of elements ids </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Mirror</em>&nbsp;</td><td>is AxisStruct or geom object(point, line, plane) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theMirrorType</em>&nbsp;</td><td>is POINT, AXIS or PLANE If the Mirror is geom object this parameter is unnecessary </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Copy</em>&nbsp;</td><td>allows to copy element(Copy is 1) or to replace with its mirroring(Copy is 0) </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="b1d7bc19611c4e6cbb9c6a39aa7d41e7"></a><!-- doxytag: member="smesh::Mesh::MirrorObject" ref="b1d7bc19611c4e6cbb9c6a39aa7d41e7" 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.MirrorObject           </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>theObject</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>Mirror</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>theMirrorType</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>Copy</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>theObject</em>&nbsp;</td><td>mesh, submesh or group </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Mirror</em>&nbsp;</td><td>is AxisStruct or geom object(point, line, plane) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theMirrorType</em>&nbsp;</td><td>is POINT, AXIS or PLANE If the Mirror is geom object this parameter is unnecessary </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Copy</em>&nbsp;</td><td>allows to copy element(Copy is 1) or to replace with its mirroring(Copy is 0) </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="17a4c398f12048ee97be9e34c6fcf0df"></a><!-- doxytag: member="smesh::Mesh::Translate" ref="17a4c398f12048ee97be9e34c6fcf0df" 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.Translate           </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>IDsOfElements</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>Vector</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>Copy</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>IDsOfElements</em>&nbsp;</td><td>list of elements ids </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Vector</em>&nbsp;</td><td>direction of translation(DirStruct or vector) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Copy</em>&nbsp;</td><td>allows to copy the translated elements </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="8fd2fa7ac4bd7733b92cfdc93bc06c6a"></a><!-- doxytag: member="smesh::Mesh::TranslateObject" ref="8fd2fa7ac4bd7733b92cfdc93bc06c6a" 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.TranslateObject           </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>theObject</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>Vector</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>Copy</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>theObject</em>&nbsp;</td><td>object to translate(mesh, submesh, or group) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Vector</em>&nbsp;</td><td>direction of translation(DirStruct or geom vector) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Copy</em>&nbsp;</td><td>allows to copy the translated elements </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9490661f177f27ab7c4ada20e244e049"></a><!-- doxytag: member="smesh::Mesh::Rotate" ref="9490661f177f27ab7c4ada20e244e049" 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.Rotate           </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>IDsOfElements</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>Axis</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>AngleInRadians</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>Copy</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>IDsOfElements</em>&nbsp;</td><td>list of elements ids </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Axis</em>&nbsp;</td><td>axis of rotation(AxisStruct or geom line) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>AngleInRadians</em>&nbsp;</td><td>angle of rotation(in radians) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Copy</em>&nbsp;</td><td>allows to copy the rotated elements </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="edbcc6762a097b389338f3fb79dd2e43"></a><!-- doxytag: member="smesh::Mesh::RotateObject" ref="edbcc6762a097b389338f3fb79dd2e43" 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.RotateObject           </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>theObject</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>Axis</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>AngleInRadians</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>Copy</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>theObject</em>&nbsp;</td><td>object to rotate(mesh, submesh, or group) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Axis</em>&nbsp;</td><td>axis of rotation(AxisStruct or geom line) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>AngleInRadians</em>&nbsp;</td><td>angle of rotation(in radians) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Copy</em>&nbsp;</td><td>allows to copy the rotated elements </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="cdf92cb074d0bdfdce13a7c496d593d4"></a><!-- doxytag: member="smesh::Mesh::FindCoincidentNodes" ref="cdf92cb074d0bdfdce13a7c496d593d4" 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.FindCoincidentNodes           </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>Tolerance</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>Tolerance</em>&nbsp;</td><td>tolerance value </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of group of nodes </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="5bd7d2b42269c8783342692d99bceccf"></a><!-- doxytag: member="smesh::Mesh::FindCoincidentNodesOnPart" ref="5bd7d2b42269c8783342692d99bceccf" 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.FindCoincidentNodesOnPart           </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>SubMeshOrGroup</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>Tolerance</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>Tolerance</em>&nbsp;</td><td>tolerance value </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>SubMeshOrGroup</em>&nbsp;</td><td>SubMesh or Group </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of group of nodes </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="189cb7bee4e396e1cd429f55bdeb7830"></a><!-- doxytag: member="smesh::Mesh::MergeNodes" ref="189cb7bee4e396e1cd429f55bdeb7830" 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.MergeNodes           </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>GroupsOfNodes</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>list</em>&nbsp;</td><td>of group of nodes </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="f650e7e34b5019b7e0439046daccc898"></a><!-- doxytag: member="smesh::Mesh::FindEqualElements" ref="f650e7e34b5019b7e0439046daccc898" 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.FindEqualElements           </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>MeshOrSubMeshOrGroup</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>MeshOrSubMeshOrGroup</em>&nbsp;</td><td><a class="el" href="classsmesh_1_1Mesh.html">Mesh</a> or SubMesh, or Group of elements for searching </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>a list of groups of equal elements </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="b23dd407618c78f92c709f8a33e89f26"></a><!-- doxytag: member="smesh::Mesh::MergeElements" ref="b23dd407618c78f92c709f8a33e89f26" 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.MergeElements           </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>GroupsOfElementsID</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>GroupsOfElementsID</em>&nbsp;</td><td>groups of elements for merging </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="6d065ef099f2d589074a7236cd17a8b8"></a><!-- doxytag: member="smesh::Mesh::MergeEqualElements" ref="6d065ef099f2d589074a7236cd17a8b8" 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.MergeEqualElements           </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="2a8b90d2e3ab295e130c72fa1b700e87"></a><!-- doxytag: member="smesh::Mesh::SewFreeBorders" ref="2a8b90d2e3ab295e130c72fa1b700e87" 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.SewFreeBorders           </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>FirstNodeID1</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>SecondNodeID1</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>LastNodeID1</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>FirstNodeID2</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>SecondNodeID2</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>LastNodeID2</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>CreatePolygons</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>CreatePolyedrs</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>
-<a class="anchor" name="33e575a39b2721c5f307ed633f826971"></a><!-- doxytag: member="smesh::Mesh::SewConformFreeBorders" ref="33e575a39b2721c5f307ed633f826971" 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.SewConformFreeBorders           </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>FirstNodeID1</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>SecondNodeID1</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>LastNodeID1</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>FirstNodeID2</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>SecondNodeID2</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>
-<a class="anchor" name="b92ca31f6a9cc3b67ad97c5dfc6d0df0"></a><!-- doxytag: member="smesh::Mesh::SewBorderToSide" ref="b92ca31f6a9cc3b67ad97c5dfc6d0df0" 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.SewBorderToSide           </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>FirstNodeIDOnFreeBorder</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>SecondNodeIDOnFreeBorder</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>LastNodeIDOnFreeBorder</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>FirstNodeIDOnSide</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>LastNodeIDOnSide</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>CreatePolygons</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>CreatePolyedrs</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>
-<a class="anchor" name="bf094f8b9d3152d4b6ad03818c2e53ae"></a><!-- doxytag: member="smesh::Mesh::SewSideElements" ref="bf094f8b9d3152d4b6ad03818c2e53ae" 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.SewSideElements           </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>IDsOfSide1Elements</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>IDsOfSide2Elements</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>NodeID1OfSide1ToMerge</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>NodeID1OfSide2ToMerge</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>NodeID2OfSide1ToMerge</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>NodeID2OfSide2ToMerge</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>
-Nodes belonging to Side1 are merged with nodes of elements of Side2. Number of elements in theSide1 and in theSide2 must be equal and they should have similar node connectivity. The nodes to merge should belong to sides borders and the first node should be linked to the second.     </td>
-  </tr>
-</table>
-<a class="anchor" name="f0a5ee1d36cbd2f05f0096a85f013d6a"></a><!-- doxytag: member="smesh::Mesh::ChangeElemNodes" ref="f0a5ee1d36cbd2f05f0096a85f013d6a" 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.ChangeElemNodes           </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>ide</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>newIDs</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>ide</em>&nbsp;</td><td>the element id </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>newIDs</em>&nbsp;</td><td>nodes ids </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>If number of nodes is not corresponded to type of element - returns false </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="2e52a15f9fa25f6a0dc17b80636b9ef4"></a><!-- doxytag: member="smesh::Mesh::GetLastCreatedNodes" ref="2e52a15f9fa25f6a0dc17b80636b9ef4" 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.GetLastCreatedNodes           </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="08160d8eccea10d14367996bb1459b77"></a><!-- doxytag: member="smesh::Mesh::GetLastCreatedElems" ref="08160d8eccea10d14367996bb1459b77" 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.GetLastCreatedElems           </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>
-<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="c57794e9c688fc591fa6a634ae7ecf24"></a><!-- doxytag: member="smesh::Mesh::editor" ref="c57794e9c688fc591fa6a634ae7ecf24" 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#c57794e9c688fc591fa6a634ae7ecf24">smesh.Mesh.editor</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>
-<a class="anchor" name="f6f61e4be25bdf3a89492e8d9e466f1c"></a><!-- doxytag: member="smesh::Mesh::editor" ref="f6f61e4be25bdf3a89492e8d9e466f1c" 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#c57794e9c688fc591fa6a634ae7ecf24">smesh.Mesh.editor</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
deleted file mode 100644 (file)
index f960f71..0000000
+++ /dev/null
@@ -1,556 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh__Algorithm.html">Mesh_Algorithm</a></div>
-<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="227,8,403,32" alt="">
-<area href="classsmesh_1_1Mesh__Netgen.html" shape="rect" coords="242,56,389,80" alt="">
-<area href="classsmesh_1_1Mesh__Prism3D.html" shape="rect" coords="238,104,393,128" alt="">
-<area href="classsmesh_1_1Mesh__Projection1D.html" shape="rect" coords="225,152,406,176" alt="">
-<area href="classsmesh_1_1Mesh__Projection2D.html" shape="rect" coords="225,200,406,224" alt="">
-<area href="classsmesh_1_1Mesh__Projection3D.html" shape="rect" coords="225,248,406,272" alt="">
-<area href="classsmesh_1_1Mesh__Quadrangle.html" shape="rect" coords="229,296,402,320" alt="">
-<area href="classsmesh_1_1Mesh__RadialPrism3D.html" shape="rect" coords="219,344,411,368" alt="">
-<area href="classsmesh_1_1Mesh__Segment.html" shape="rect" coords="237,392,394,416" alt="">
-<area href="classsmesh_1_1Mesh__Tetrahedron.html" shape="rect" coords="227,440,403,464" alt="">
-<area href="classsmesh_1_1Mesh__Triangle.html" shape="rect" coords="239,488,391,512" 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="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
- else return the submesh associated to this algorithm.  <a href="#39dd34eb5db727c1ff2b69a84df18394"></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#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#f13cd452b3fce74939e43d49ae937e9e">GetCompatibleHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#f13cd452b3fce74939e43d49ae937e9e"></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#b1b1de005b6bb9764bc282f54b2925c2">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#b1b1de005b6bb9764bc282f54b2925c2"></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#67ab9bf21cd85694a9702c5c9a4db8b2">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#67ab9bf21cd85694a9702c5c9a4db8b2"></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#9ddd321337780f828103a7aef5662a66">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#9ddd321337780f828103a7aef5662a66"></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="f13cd452b3fce74939e43d49ae937e9e"></a><!-- doxytag: member="smesh::Mesh_Algorithm::GetCompatibleHypothesis" ref="f13cd452b3fce74939e43d49ae937e9e" 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.GetCompatibleHypothesis           </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="b1b1de005b6bb9764bc282f54b2925c2"></a><!-- doxytag: member="smesh::Mesh_Algorithm::GetName" ref="b1b1de005b6bb9764bc282f54b2925c2" 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.GetName           </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="67ab9bf21cd85694a9702c5c9a4db8b2"></a><!-- doxytag: member="smesh::Mesh_Algorithm::SetName" ref="67ab9bf21cd85694a9702c5c9a4db8b2" 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.SetName           </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>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>
-<a class="anchor" name="9ddd321337780f828103a7aef5662a66"></a><!-- doxytag: member="smesh::Mesh_Algorithm::GetId" ref="9ddd321337780f828103a7aef5662a66" 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.GetId           </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="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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </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
deleted file mode 100644 (file)
index 5cc0036..0000000
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Algorithm__inherit__graph.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__CompositeSegment.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__CompositeSegment.html
deleted file mode 100644 (file)
index 5b9b534..0000000
+++ /dev/null
@@ -1,973 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh__CompositeSegment.html">Mesh_CompositeSegment</a></div>
-<h1>smesh.Mesh_CompositeSegment Class Reference</h1><!-- doxytag: class="smesh::Mesh_CompositeSegment" --><!-- doxytag: inherits="smesh::Mesh_Segment" -->Class to define a segment 1D algorithm for discretization.  
-<a href="#_details">More...</a>
-<p>
-Inheritance diagram for smesh.Mesh_CompositeSegment:<p><center><img src="classsmesh_1_1Mesh__CompositeSegment__inherit__graph.jpg" border="0" usemap="#smesh_8Mesh__CompositeSegment__inherit__map" alt="Inheritance graph"></center>
-<map name="smesh_8Mesh__CompositeSegment__inherit__map">
-<area href="classsmesh_1_1Mesh__Segment.html" shape="rect" coords="39,84,197,108" alt="">
-<area href="classsmesh_1_1Mesh__Algorithm.html" shape="rect" coords="38,9,198,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__CompositeSegment.html#517bc6da0e79cb989f3346810fe5c471">__init__</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#517bc6da0e79cb989f3346810fe5c471"></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#d12bcd1749874d541101bf8af001dd65">LengthNearVertex</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "SegmentLengthAroundVertex" hypothesis.  <a href="#d12bcd1749874d541101bf8af001dd65"></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="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
- else return the submesh associated to this algorithm.  <a href="#39dd34eb5db727c1ff2b69a84df18394"></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#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#f13cd452b3fce74939e43d49ae937e9e">GetCompatibleHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#f13cd452b3fce74939e43d49ae937e9e"></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#b1b1de005b6bb9764bc282f54b2925c2">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#b1b1de005b6bb9764bc282f54b2925c2"></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#67ab9bf21cd85694a9702c5c9a4db8b2">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#67ab9bf21cd85694a9702c5c9a4db8b2"></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#9ddd321337780f828103a7aef5662a66">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#9ddd321337780f828103a7aef5662a66"></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__Segment.html#b6907301d8393ce0e80bf014d37133ac">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#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#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#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="517bc6da0e79cb989f3346810fe5c471"></a><!-- doxytag: member="smesh::Mesh_CompositeSegment::__init__" ref="517bc6da0e79cb989f3346810fe5c471" 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_CompositeSegment.__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="474a476f4ee613be478c94398202c6ad"></a><!-- doxytag: member="smesh::Mesh_CompositeSegment::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_CompositeSegment::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_CompositeSegment::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_CompositeSegment::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_CompositeSegment::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_CompositeSegment::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_CompositeSegment::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="d12bcd1749874d541101bf8af001dd65"></a><!-- doxytag: member="smesh::Mesh_CompositeSegment::LengthNearVertex" ref="d12bcd1749874d541101bf8af001dd65" 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.LengthNearVertex           </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>length</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>vertex</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>length</em>&nbsp;</td><td>for the segment length </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>vertex</em>&nbsp;</td><td>for the length localization: vertex index [0,1] | verext object </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="7e99441cd6f8b7be3888663345ce8f20"></a><!-- doxytag: member="smesh::Mesh_CompositeSegment::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_CompositeSegment::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_CompositeSegment::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="f13cd452b3fce74939e43d49ae937e9e"></a><!-- doxytag: member="smesh::Mesh_CompositeSegment::GetCompatibleHypothesis" ref="f13cd452b3fce74939e43d49ae937e9e" 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.GetCompatibleHypothesis           </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="b1b1de005b6bb9764bc282f54b2925c2"></a><!-- doxytag: member="smesh::Mesh_CompositeSegment::GetName" ref="b1b1de005b6bb9764bc282f54b2925c2" 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.GetName           </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="67ab9bf21cd85694a9702c5c9a4db8b2"></a><!-- doxytag: member="smesh::Mesh_CompositeSegment::SetName" ref="67ab9bf21cd85694a9702c5c9a4db8b2" 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.SetName           </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>name</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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9ddd321337780f828103a7aef5662a66"></a><!-- doxytag: member="smesh::Mesh_CompositeSegment::GetId" ref="9ddd321337780f828103a7aef5662a66" 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.GetId           </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="b0ee92d94d1907fc263864b727685187"></a><!-- doxytag: member="smesh::Mesh_CompositeSegment::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_CompositeSegment::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="b6907301d8393ce0e80bf014d37133ac"></a><!-- doxytag: member="smesh::Mesh_CompositeSegment::geom" ref="b6907301d8393ce0e80bf014d37133ac" 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__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment.geom</a><code> [inherited]</code>          </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__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="47bfe89357342e4a889d4723518288e1"></a><!-- doxytag: member="smesh::Mesh_CompositeSegment::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_CompositeSegment::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="981bc18824369ac623f4527b7ddddaf5"></a><!-- doxytag: member="smesh::Mesh_CompositeSegment::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_CompositeSegment::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_CompositeSegment::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_CompositeSegment::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__CompositeSegment__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__CompositeSegment__inherit__graph.jpg
deleted file mode 100644 (file)
index f24ab01..0000000
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__CompositeSegment__inherit__graph.jpg and /dev/null 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
deleted file mode 100644 (file)
index 4489d1f..0000000
+++ /dev/null
@@ -1,592 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh__Hexahedron.html">Mesh_Hexahedron</a></div>
-<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="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
- else return the submesh associated to this algorithm.  <a href="#39dd34eb5db727c1ff2b69a84df18394"></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#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#f13cd452b3fce74939e43d49ae937e9e">GetCompatibleHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#f13cd452b3fce74939e43d49ae937e9e"></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#b1b1de005b6bb9764bc282f54b2925c2">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#b1b1de005b6bb9764bc282f54b2925c2"></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#67ab9bf21cd85694a9702c5c9a4db8b2">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#67ab9bf21cd85694a9702c5c9a4db8b2"></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#9ddd321337780f828103a7aef5662a66">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#9ddd321337780f828103a7aef5662a66"></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="f13cd452b3fce74939e43d49ae937e9e"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::GetCompatibleHypothesis" ref="f13cd452b3fce74939e43d49ae937e9e" 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.GetCompatibleHypothesis           </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="b1b1de005b6bb9764bc282f54b2925c2"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::GetName" ref="b1b1de005b6bb9764bc282f54b2925c2" 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.GetName           </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="67ab9bf21cd85694a9702c5c9a4db8b2"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::SetName" ref="67ab9bf21cd85694a9702c5c9a4db8b2" 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.SetName           </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>name</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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9ddd321337780f828103a7aef5662a66"></a><!-- doxytag: member="smesh::Mesh_Hexahedron::GetId" ref="9ddd321337780f828103a7aef5662a66" 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.GetId           </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="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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </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
deleted file mode 100644 (file)
index 08777ef..0000000
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron__inherit__graph.jpg and /dev/null 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
deleted file mode 100644 (file)
index cde572c..0000000
+++ /dev/null
@@ -1,681 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh__Netgen.html">Mesh_Netgen</a></div>
-<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="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
- else return the submesh associated to this algorithm.  <a href="#39dd34eb5db727c1ff2b69a84df18394"></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#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#f13cd452b3fce74939e43d49ae937e9e">GetCompatibleHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#f13cd452b3fce74939e43d49ae937e9e"></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#b1b1de005b6bb9764bc282f54b2925c2">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#b1b1de005b6bb9764bc282f54b2925c2"></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#67ab9bf21cd85694a9702c5c9a4db8b2">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#67ab9bf21cd85694a9702c5c9a4db8b2"></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#9ddd321337780f828103a7aef5662a66">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#9ddd321337780f828103a7aef5662a66"></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>
-This class is deprecated, only for compatibility!<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="f13cd452b3fce74939e43d49ae937e9e"></a><!-- doxytag: member="smesh::Mesh_Netgen::GetCompatibleHypothesis" ref="f13cd452b3fce74939e43d49ae937e9e" 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.GetCompatibleHypothesis           </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="b1b1de005b6bb9764bc282f54b2925c2"></a><!-- doxytag: member="smesh::Mesh_Netgen::GetName" ref="b1b1de005b6bb9764bc282f54b2925c2" 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.GetName           </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="67ab9bf21cd85694a9702c5c9a4db8b2"></a><!-- doxytag: member="smesh::Mesh_Netgen::SetName" ref="67ab9bf21cd85694a9702c5c9a4db8b2" 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.SetName           </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>name</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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9ddd321337780f828103a7aef5662a66"></a><!-- doxytag: member="smesh::Mesh_Netgen::GetId" ref="9ddd321337780f828103a7aef5662a66" 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.GetId           </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="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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </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
deleted file mode 100644 (file)
index d82cacd..0000000
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Netgen__inherit__graph.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Prism3D.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Prism3D.html
deleted file mode 100644 (file)
index a3b06f9..0000000
+++ /dev/null
@@ -1,592 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh__Prism3D.html">Mesh_Prism3D</a></div>
-<h1>smesh.Mesh_Prism3D Class Reference</h1><!-- doxytag: class="smesh::Mesh_Prism3D" --><!-- doxytag: inherits="smesh::Mesh_Algorithm" -->Class to define a 3D extrusion algorithm.  
-<a href="#_details">More...</a>
-<p>
-Inheritance diagram for smesh.Mesh_Prism3D:<p><center><img src="classsmesh_1_1Mesh__Prism3D__inherit__graph.jpg" border="0" usemap="#smesh_8Mesh__Prism3D__inherit__map" alt="Inheritance graph"></center>
-<map name="smesh_8Mesh__Prism3D__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__Prism3D.html#cfb1228c508c53e74da3ec741a6e9d54">__init__</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#cfb1228c508c53e74da3ec741a6e9d54"></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="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
- else return the submesh associated to this algorithm.  <a href="#39dd34eb5db727c1ff2b69a84df18394"></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#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#f13cd452b3fce74939e43d49ae937e9e">GetCompatibleHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#f13cd452b3fce74939e43d49ae937e9e"></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#b1b1de005b6bb9764bc282f54b2925c2">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#b1b1de005b6bb9764bc282f54b2925c2"></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#67ab9bf21cd85694a9702c5c9a4db8b2">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#67ab9bf21cd85694a9702c5c9a4db8b2"></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#9ddd321337780f828103a7aef5662a66">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#9ddd321337780f828103a7aef5662a66"></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="cfb1228c508c53e74da3ec741a6e9d54"></a><!-- doxytag: member="smesh::Mesh_Prism3D::__init__" ref="cfb1228c508c53e74da3ec741a6e9d54" 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_Prism3D.__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_Prism3D::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_Prism3D::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="f13cd452b3fce74939e43d49ae937e9e"></a><!-- doxytag: member="smesh::Mesh_Prism3D::GetCompatibleHypothesis" ref="f13cd452b3fce74939e43d49ae937e9e" 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.GetCompatibleHypothesis           </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="b1b1de005b6bb9764bc282f54b2925c2"></a><!-- doxytag: member="smesh::Mesh_Prism3D::GetName" ref="b1b1de005b6bb9764bc282f54b2925c2" 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.GetName           </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="67ab9bf21cd85694a9702c5c9a4db8b2"></a><!-- doxytag: member="smesh::Mesh_Prism3D::SetName" ref="67ab9bf21cd85694a9702c5c9a4db8b2" 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.SetName           </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>name</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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9ddd321337780f828103a7aef5662a66"></a><!-- doxytag: member="smesh::Mesh_Prism3D::GetId" ref="9ddd321337780f828103a7aef5662a66" 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.GetId           </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="b0ee92d94d1907fc263864b727685187"></a><!-- doxytag: member="smesh::Mesh_Prism3D::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_Prism3D::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_Prism3D::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_Prism3D::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_Prism3D::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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="b637c67f711a33b32c3b56073a65db52"></a><!-- doxytag: member="smesh::Mesh_Prism3D::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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="981bc18824369ac623f4527b7ddddaf5"></a><!-- doxytag: member="smesh::Mesh_Prism3D::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_Prism3D::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_Prism3D::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_Prism3D::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__Prism3D__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Prism3D__inherit__graph.jpg
deleted file mode 100644 (file)
index fdf7cb8..0000000
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Prism3D__inherit__graph.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection1D.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection1D.html
deleted file mode 100644 (file)
index 94c2827..0000000
+++ /dev/null
@@ -1,658 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh__Projection1D.html">Mesh_Projection1D</a></div>
-<h1>smesh.Mesh_Projection1D Class Reference</h1><!-- doxytag: class="smesh::Mesh_Projection1D" --><!-- doxytag: inherits="smesh::Mesh_Algorithm" -->Class to define a projection 1D algorithm.  
-<a href="#_details">More...</a>
-<p>
-Inheritance diagram for smesh.Mesh_Projection1D:<p><center><img src="classsmesh_1_1Mesh__Projection1D__inherit__graph.jpg" border="0" usemap="#smesh_8Mesh__Projection1D__inherit__map" alt="Inheritance graph"></center>
-<map name="smesh_8Mesh__Projection1D__inherit__map">
-<area href="classsmesh_1_1Mesh__Algorithm.html" shape="rect" coords="18,9,178,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__Projection1D.html#a6462d220b600938ae89e6c5d2f3e3da">__init__</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#a6462d220b600938ae89e6c5d2f3e3da"></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__Projection1D.html#4652f536579bbde78d30ea313f7dcff5">SourceEdge</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Source Edge" hypothesis, specifying a meshed edge to take a mesh pattern from, and optionally association of vertices between the source edge and a target one (where a hipothesis is assigned to).  <a href="#4652f536579bbde78d30ea313f7dcff5"></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="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
- else return the submesh associated to this algorithm.  <a href="#39dd34eb5db727c1ff2b69a84df18394"></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#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#f13cd452b3fce74939e43d49ae937e9e">GetCompatibleHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#f13cd452b3fce74939e43d49ae937e9e"></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#b1b1de005b6bb9764bc282f54b2925c2">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#b1b1de005b6bb9764bc282f54b2925c2"></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#67ab9bf21cd85694a9702c5c9a4db8b2">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#67ab9bf21cd85694a9702c5c9a4db8b2"></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#9ddd321337780f828103a7aef5662a66">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#9ddd321337780f828103a7aef5662a66"></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="a6462d220b600938ae89e6c5d2f3e3da"></a><!-- doxytag: member="smesh::Mesh_Projection1D::__init__" ref="a6462d220b600938ae89e6c5d2f3e3da" 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_Projection1D.__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="4652f536579bbde78d30ea313f7dcff5"></a><!-- doxytag: member="smesh::Mesh_Projection1D::SourceEdge" ref="4652f536579bbde78d30ea313f7dcff5" 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_Projection1D.SourceEdge           </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>edge</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> = <code>None</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>srcV</em> = <code>None</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>tgtV</em> = <code>None</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>edge</em>&nbsp;</td><td>to take nodes distribution from </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>to take nodes distribution from (optional) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>srcV</em>&nbsp;</td><td>is vertex of <em>edge</em> to associate with <em>tgtV</em> (optional) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>tgtV</em>&nbsp;</td><td>is vertex of <em>the</em> edge where the algorithm is assigned, to associate with <em>srcV</em> (optional) </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="39dd34eb5db727c1ff2b69a84df18394"></a><!-- doxytag: member="smesh::Mesh_Projection1D::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_Projection1D::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="f13cd452b3fce74939e43d49ae937e9e"></a><!-- doxytag: member="smesh::Mesh_Projection1D::GetCompatibleHypothesis" ref="f13cd452b3fce74939e43d49ae937e9e" 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.GetCompatibleHypothesis           </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="b1b1de005b6bb9764bc282f54b2925c2"></a><!-- doxytag: member="smesh::Mesh_Projection1D::GetName" ref="b1b1de005b6bb9764bc282f54b2925c2" 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.GetName           </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="67ab9bf21cd85694a9702c5c9a4db8b2"></a><!-- doxytag: member="smesh::Mesh_Projection1D::SetName" ref="67ab9bf21cd85694a9702c5c9a4db8b2" 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.SetName           </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>name</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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9ddd321337780f828103a7aef5662a66"></a><!-- doxytag: member="smesh::Mesh_Projection1D::GetId" ref="9ddd321337780f828103a7aef5662a66" 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.GetId           </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="b0ee92d94d1907fc263864b727685187"></a><!-- doxytag: member="smesh::Mesh_Projection1D::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_Projection1D::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_Projection1D::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_Projection1D::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_Projection1D::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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="b637c67f711a33b32c3b56073a65db52"></a><!-- doxytag: member="smesh::Mesh_Projection1D::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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="981bc18824369ac623f4527b7ddddaf5"></a><!-- doxytag: member="smesh::Mesh_Projection1D::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_Projection1D::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_Projection1D::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_Projection1D::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__Projection1D__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection1D__inherit__graph.jpg
deleted file mode 100644 (file)
index 8d038d0..0000000
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection1D__inherit__graph.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection2D.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection2D.html
deleted file mode 100644 (file)
index f2985f6..0000000
+++ /dev/null
@@ -1,672 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh__Projection2D.html">Mesh_Projection2D</a></div>
-<h1>smesh.Mesh_Projection2D Class Reference</h1><!-- doxytag: class="smesh::Mesh_Projection2D" --><!-- doxytag: inherits="smesh::Mesh_Algorithm" -->Class to define a projection 2D algorithm.  
-<a href="#_details">More...</a>
-<p>
-Inheritance diagram for smesh.Mesh_Projection2D:<p><center><img src="classsmesh_1_1Mesh__Projection2D__inherit__graph.jpg" border="0" usemap="#smesh_8Mesh__Projection2D__inherit__map" alt="Inheritance graph"></center>
-<map name="smesh_8Mesh__Projection2D__inherit__map">
-<area href="classsmesh_1_1Mesh__Algorithm.html" shape="rect" coords="18,9,178,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__Projection2D.html#b7d6061733659b600b2a8f33ae2ff3ee">__init__</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#b7d6061733659b600b2a8f33ae2ff3ee"></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__Projection2D.html#bc9aab57b17456ce4ff66ef4e14993c3">SourceFace</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Source Face" hypothesis, specifying a meshed face to take a mesh pattern from, and optionally association of vertices between the source face and a target one (where a hipothesis is assigned to).  <a href="#bc9aab57b17456ce4ff66ef4e14993c3"></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="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
- else return the submesh associated to this algorithm.  <a href="#39dd34eb5db727c1ff2b69a84df18394"></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#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#f13cd452b3fce74939e43d49ae937e9e">GetCompatibleHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#f13cd452b3fce74939e43d49ae937e9e"></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#b1b1de005b6bb9764bc282f54b2925c2">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#b1b1de005b6bb9764bc282f54b2925c2"></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#67ab9bf21cd85694a9702c5c9a4db8b2">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#67ab9bf21cd85694a9702c5c9a4db8b2"></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#9ddd321337780f828103a7aef5662a66">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#9ddd321337780f828103a7aef5662a66"></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="b7d6061733659b600b2a8f33ae2ff3ee"></a><!-- doxytag: member="smesh::Mesh_Projection2D::__init__" ref="b7d6061733659b600b2a8f33ae2ff3ee" 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_Projection2D.__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="bc9aab57b17456ce4ff66ef4e14993c3"></a><!-- doxytag: member="smesh::Mesh_Projection2D::SourceFace" ref="bc9aab57b17456ce4ff66ef4e14993c3" 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_Projection2D.SourceFace           </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>face</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> = <code>None</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>srcV1</em> = <code>None</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>tgtV1</em> = <code>None</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>srcV2</em> = <code>None</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>tgtV2</em> = <code>None</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>face</em>&nbsp;</td><td>to take mesh pattern from </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>to take mesh pattern from (optional) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>srcV1</em>&nbsp;</td><td>is vertex of <em>face</em> to associate with <em>tgtV1</em> (optional) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>tgtV1</em>&nbsp;</td><td>is vertex of <em>the</em> face where the algorithm is assigned, to associate with <em>srcV1</em> (optional) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>srcV2</em>&nbsp;</td><td>is vertex of <em>face</em> to associate with <em>tgtV1</em> (optional) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>tgtV2</em>&nbsp;</td><td>is vertex of <em>the</em> face where the algorithm is assigned, to associate with <em>srcV2</em> (optional)</td></tr>
-  </table>
-</dl>
-Note: association vertices must belong to one edge of a face     </td>
-  </tr>
-</table>
-<a class="anchor" name="39dd34eb5db727c1ff2b69a84df18394"></a><!-- doxytag: member="smesh::Mesh_Projection2D::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_Projection2D::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="f13cd452b3fce74939e43d49ae937e9e"></a><!-- doxytag: member="smesh::Mesh_Projection2D::GetCompatibleHypothesis" ref="f13cd452b3fce74939e43d49ae937e9e" 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.GetCompatibleHypothesis           </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="b1b1de005b6bb9764bc282f54b2925c2"></a><!-- doxytag: member="smesh::Mesh_Projection2D::GetName" ref="b1b1de005b6bb9764bc282f54b2925c2" 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.GetName           </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="67ab9bf21cd85694a9702c5c9a4db8b2"></a><!-- doxytag: member="smesh::Mesh_Projection2D::SetName" ref="67ab9bf21cd85694a9702c5c9a4db8b2" 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.SetName           </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>name</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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9ddd321337780f828103a7aef5662a66"></a><!-- doxytag: member="smesh::Mesh_Projection2D::GetId" ref="9ddd321337780f828103a7aef5662a66" 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.GetId           </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="b0ee92d94d1907fc263864b727685187"></a><!-- doxytag: member="smesh::Mesh_Projection2D::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_Projection2D::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_Projection2D::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_Projection2D::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_Projection2D::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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="b637c67f711a33b32c3b56073a65db52"></a><!-- doxytag: member="smesh::Mesh_Projection2D::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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="981bc18824369ac623f4527b7ddddaf5"></a><!-- doxytag: member="smesh::Mesh_Projection2D::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_Projection2D::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_Projection2D::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_Projection2D::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__Projection2D__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection2D__inherit__graph.jpg
deleted file mode 100644 (file)
index 0433234..0000000
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection2D__inherit__graph.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection3D.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection3D.html
deleted file mode 100644 (file)
index 9393e9f..0000000
+++ /dev/null
@@ -1,672 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh__Projection3D.html">Mesh_Projection3D</a></div>
-<h1>smesh.Mesh_Projection3D Class Reference</h1><!-- doxytag: class="smesh::Mesh_Projection3D" --><!-- doxytag: inherits="smesh::Mesh_Algorithm" -->Class to define a projection 3D algorithm.  
-<a href="#_details">More...</a>
-<p>
-Inheritance diagram for smesh.Mesh_Projection3D:<p><center><img src="classsmesh_1_1Mesh__Projection3D__inherit__graph.jpg" border="0" usemap="#smesh_8Mesh__Projection3D__inherit__map" alt="Inheritance graph"></center>
-<map name="smesh_8Mesh__Projection3D__inherit__map">
-<area href="classsmesh_1_1Mesh__Algorithm.html" shape="rect" coords="18,9,178,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__Projection3D.html#28be0d3ffb986e05a77c1039db579eba">__init__</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#28be0d3ffb986e05a77c1039db579eba"></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__Projection3D.html#873f563b7e1da2000b3d2387839e216c">SourceShape3D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Source Shape 3D" hypothesis, specifying a meshed solid to take a mesh pattern from, and optionally association of vertices between the source solid and a target one (where a hipothesis is assigned to).  <a href="#873f563b7e1da2000b3d2387839e216c"></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="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
- else return the submesh associated to this algorithm.  <a href="#39dd34eb5db727c1ff2b69a84df18394"></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#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#f13cd452b3fce74939e43d49ae937e9e">GetCompatibleHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#f13cd452b3fce74939e43d49ae937e9e"></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#b1b1de005b6bb9764bc282f54b2925c2">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#b1b1de005b6bb9764bc282f54b2925c2"></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#67ab9bf21cd85694a9702c5c9a4db8b2">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#67ab9bf21cd85694a9702c5c9a4db8b2"></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#9ddd321337780f828103a7aef5662a66">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#9ddd321337780f828103a7aef5662a66"></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="28be0d3ffb986e05a77c1039db579eba"></a><!-- doxytag: member="smesh::Mesh_Projection3D::__init__" ref="28be0d3ffb986e05a77c1039db579eba" 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_Projection3D.__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="873f563b7e1da2000b3d2387839e216c"></a><!-- doxytag: member="smesh::Mesh_Projection3D::SourceShape3D" ref="873f563b7e1da2000b3d2387839e216c" 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_Projection3D.SourceShape3D           </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>solid</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> = <code>0</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>srcV1</em> = <code>0</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>tgtV1</em> = <code>0</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>srcV2</em> = <code>0</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>tgtV2</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>solid</em>&nbsp;</td><td>to take mesh pattern from </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>mesh</em>&nbsp;</td><td>to take mesh pattern from (optional) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>srcV1</em>&nbsp;</td><td>is vertex of <em>solid</em> to associate with <em>tgtV1</em> (optional) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>tgtV1</em>&nbsp;</td><td>is vertex of <em>the</em> solid where the algorithm is assigned, to associate with <em>srcV1</em> (optional) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>srcV2</em>&nbsp;</td><td>is vertex of <em>solid</em> to associate with <em>tgtV1</em> (optional) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>tgtV2</em>&nbsp;</td><td>is vertex of <em>the</em> solid where the algorithm is assigned, to associate with <em>srcV2</em> (optional)</td></tr>
-  </table>
-</dl>
-Note: association vertices must belong to one edge of a solid     </td>
-  </tr>
-</table>
-<a class="anchor" name="39dd34eb5db727c1ff2b69a84df18394"></a><!-- doxytag: member="smesh::Mesh_Projection3D::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_Projection3D::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="f13cd452b3fce74939e43d49ae937e9e"></a><!-- doxytag: member="smesh::Mesh_Projection3D::GetCompatibleHypothesis" ref="f13cd452b3fce74939e43d49ae937e9e" 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.GetCompatibleHypothesis           </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="b1b1de005b6bb9764bc282f54b2925c2"></a><!-- doxytag: member="smesh::Mesh_Projection3D::GetName" ref="b1b1de005b6bb9764bc282f54b2925c2" 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.GetName           </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="67ab9bf21cd85694a9702c5c9a4db8b2"></a><!-- doxytag: member="smesh::Mesh_Projection3D::SetName" ref="67ab9bf21cd85694a9702c5c9a4db8b2" 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.SetName           </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>name</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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9ddd321337780f828103a7aef5662a66"></a><!-- doxytag: member="smesh::Mesh_Projection3D::GetId" ref="9ddd321337780f828103a7aef5662a66" 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.GetId           </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="b0ee92d94d1907fc263864b727685187"></a><!-- doxytag: member="smesh::Mesh_Projection3D::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_Projection3D::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_Projection3D::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_Projection3D::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_Projection3D::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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="b637c67f711a33b32c3b56073a65db52"></a><!-- doxytag: member="smesh::Mesh_Projection3D::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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="981bc18824369ac623f4527b7ddddaf5"></a><!-- doxytag: member="smesh::Mesh_Projection3D::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_Projection3D::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_Projection3D::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_Projection3D::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__Projection3D__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection3D__inherit__graph.jpg
deleted file mode 100644 (file)
index 17aaff1..0000000
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Projection3D__inherit__graph.jpg and /dev/null 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
deleted file mode 100644 (file)
index 6cf4f44..0000000
+++ /dev/null
@@ -1,623 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh__Quadrangle.html">Mesh_Quadrangle</a></div>
-<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="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
- else return the submesh associated to this algorithm.  <a href="#39dd34eb5db727c1ff2b69a84df18394"></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#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#f13cd452b3fce74939e43d49ae937e9e">GetCompatibleHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#f13cd452b3fce74939e43d49ae937e9e"></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#b1b1de005b6bb9764bc282f54b2925c2">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#b1b1de005b6bb9764bc282f54b2925c2"></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#67ab9bf21cd85694a9702c5c9a4db8b2">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#67ab9bf21cd85694a9702c5c9a4db8b2"></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#9ddd321337780f828103a7aef5662a66">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#9ddd321337780f828103a7aef5662a66"></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="f13cd452b3fce74939e43d49ae937e9e"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::GetCompatibleHypothesis" ref="f13cd452b3fce74939e43d49ae937e9e" 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.GetCompatibleHypothesis           </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="b1b1de005b6bb9764bc282f54b2925c2"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::GetName" ref="b1b1de005b6bb9764bc282f54b2925c2" 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.GetName           </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="67ab9bf21cd85694a9702c5c9a4db8b2"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::SetName" ref="67ab9bf21cd85694a9702c5c9a4db8b2" 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.SetName           </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>name</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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9ddd321337780f828103a7aef5662a66"></a><!-- doxytag: member="smesh::Mesh_Quadrangle::GetId" ref="9ddd321337780f828103a7aef5662a66" 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.GetId           </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="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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </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
deleted file mode 100644 (file)
index 38172d2..0000000
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Quadrangle__inherit__graph.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__RadialPrism3D.html b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__RadialPrism3D.html
deleted file mode 100644 (file)
index cad6827..0000000
+++ /dev/null
@@ -1,1011 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh__RadialPrism3D.html">Mesh_RadialPrism3D</a></div>
-<h1>smesh.Mesh_RadialPrism3D Class Reference</h1><!-- doxytag: class="smesh::Mesh_RadialPrism3D" --><!-- doxytag: inherits="smesh::Mesh_Algorithm" -->Class to define a Radial Prism 3D algorithm.  
-<a href="#_details">More...</a>
-<p>
-Inheritance diagram for smesh.Mesh_RadialPrism3D:<p><center><img src="classsmesh_1_1Mesh__RadialPrism3D__inherit__graph.jpg" border="0" usemap="#smesh_8Mesh__RadialPrism3D__inherit__map" alt="Inheritance graph"></center>
-<map name="smesh_8Mesh__RadialPrism3D__inherit__map">
-<area href="classsmesh_1_1Mesh__Algorithm.html" shape="rect" coords="24,9,184,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__RadialPrism3D.html#e3effd52303e9e8c9588761bff06d11a">__init__</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private constructor.  <a href="#e3effd52303e9e8c9588761bff06d11a"></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__RadialPrism3D.html#7279a424b7a0d408b72939ca4f531e8d">Get3DHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return 3D hypothesis holding the 1D one.  <a href="#7279a424b7a0d408b72939ca4f531e8d"></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__RadialPrism3D.html#fd84fe6d5878f16dc0ede22db76f5c5e">OwnHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Private method creating 1D hypothes and storing it in the LayerDistribution hypothes.  <a href="#fd84fe6d5878f16dc0ede22db76f5c5e"></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__RadialPrism3D.html#ea054202c708371703103fe8fcab3f39">NumberOfLayers</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "NumberOfLayers" hypothesis, specifying a number of layers of prisms to build between the inner and outer shells.  <a href="#ea054202c708371703103fe8fcab3f39"></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__RadialPrism3D.html#1e17e03a641e4e5a63dd35a03f361982">LocalLength</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "LocalLength" hypothesis, specifying segment length to build between the inner and outer shells.  <a href="#1e17e03a641e4e5a63dd35a03f361982"></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__RadialPrism3D.html#b94222316c2706f288b2214ff9243de1">NumberOfSegments</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "NumberOfSegments" hypothesis, specifying a number of layers of prisms to build between the inner and outer shells.  <a href="#b94222316c2706f288b2214ff9243de1"></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__RadialPrism3D.html#322032da05195de9c046c0207ece3d0b">Arithmetic1D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Arithmetic1D" hypothesis, specifying distribution of segments to build between the inner and outer shells as arithmetic length increasing.  <a href="#322032da05195de9c046c0207ece3d0b"></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__RadialPrism3D.html#8fc5e38c27e4b3da61a1258d53b4620a">StartEndLength</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "StartEndLength" hypothesis, specifying distribution of segments to build between the inner and outer shells as geometric length increasing.  <a href="#8fc5e38c27e4b3da61a1258d53b4620a"></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__RadialPrism3D.html#b96d5f036ae41b3624d2cf1f2599eafc">AutomaticLength</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "AutomaticLength" hypothesis, specifying number of segments to build between the inner and outer shells.  <a href="#b96d5f036ae41b3624d2cf1f2599eafc"></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="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
- else return the submesh associated to this algorithm.  <a href="#39dd34eb5db727c1ff2b69a84df18394"></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#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#f13cd452b3fce74939e43d49ae937e9e">GetCompatibleHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#f13cd452b3fce74939e43d49ae937e9e"></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#b1b1de005b6bb9764bc282f54b2925c2">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#b1b1de005b6bb9764bc282f54b2925c2"></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#67ab9bf21cd85694a9702c5c9a4db8b2">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#67ab9bf21cd85694a9702c5c9a4db8b2"></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#9ddd321337780f828103a7aef5662a66">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#9ddd321337780f828103a7aef5662a66"></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__RadialPrism3D.html#fad916e0e29ef3ddb981ad0170b6f550">distribHyp</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__RadialPrism3D.html#80a82d7d4fd3b53dd210da8cc734320a">nbLayers</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__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="e3effd52303e9e8c9588761bff06d11a"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::__init__" ref="e3effd52303e9e8c9588761bff06d11a" 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_RadialPrism3D.__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="7279a424b7a0d408b72939ca4f531e8d"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::Get3DHypothesis" ref="7279a424b7a0d408b72939ca4f531e8d" 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_RadialPrism3D.Get3DHypothesis           </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="fd84fe6d5878f16dc0ede22db76f5c5e"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::OwnHypothesis" ref="fd84fe6d5878f16dc0ede22db76f5c5e" 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_RadialPrism3D.OwnHypothesis           </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>hypType</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>
-Returns the created hypothes     </td>
-  </tr>
-</table>
-<a class="anchor" name="ea054202c708371703103fe8fcab3f39"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::NumberOfLayers" ref="ea054202c708371703103fe8fcab3f39" 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_RadialPrism3D.NumberOfLayers           </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"></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="1e17e03a641e4e5a63dd35a03f361982"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::LocalLength" ref="1e17e03a641e4e5a63dd35a03f361982" 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_RadialPrism3D.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 </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="b94222316c2706f288b2214ff9243de1"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::NumberOfSegments" ref="b94222316c2706f288b2214ff9243de1" 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_RadialPrism3D.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 </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="322032da05195de9c046c0207ece3d0b"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::Arithmetic1D" ref="322032da05195de9c046c0207ece3d0b" 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_RadialPrism3D.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="8fc5e38c27e4b3da61a1258d53b4620a"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::StartEndLength" ref="8fc5e38c27e4b3da61a1258d53b4620a" 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_RadialPrism3D.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="b96d5f036ae41b3624d2cf1f2599eafc"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::AutomaticLength" ref="b96d5f036ae41b3624d2cf1f2599eafc" 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_RadialPrism3D.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="39dd34eb5db727c1ff2b69a84df18394"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::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_RadialPrism3D::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="f13cd452b3fce74939e43d49ae937e9e"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::GetCompatibleHypothesis" ref="f13cd452b3fce74939e43d49ae937e9e" 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.GetCompatibleHypothesis           </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="b1b1de005b6bb9764bc282f54b2925c2"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::GetName" ref="b1b1de005b6bb9764bc282f54b2925c2" 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.GetName           </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="67ab9bf21cd85694a9702c5c9a4db8b2"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::SetName" ref="67ab9bf21cd85694a9702c5c9a4db8b2" 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.SetName           </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>name</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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9ddd321337780f828103a7aef5662a66"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::GetId" ref="9ddd321337780f828103a7aef5662a66" 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.GetId           </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="b0ee92d94d1907fc263864b727685187"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::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_RadialPrism3D::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="fad916e0e29ef3ddb981ad0170b6f550"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::distribHyp" ref="fad916e0e29ef3ddb981ad0170b6f550" 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__RadialPrism3D.html#fad916e0e29ef3ddb981ad0170b6f550">smesh.Mesh_RadialPrism3D.distribHyp</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="80a82d7d4fd3b53dd210da8cc734320a"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::nbLayers" ref="80a82d7d4fd3b53dd210da8cc734320a" 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__RadialPrism3D.html#80a82d7d4fd3b53dd210da8cc734320a">smesh.Mesh_RadialPrism3D.nbLayers</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_RadialPrism3D::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_RadialPrism3D::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_RadialPrism3D::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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="b637c67f711a33b32c3b56073a65db52"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </td>
-  </tr>
-</table>
-<a class="anchor" name="981bc18824369ac623f4527b7ddddaf5"></a><!-- doxytag: member="smesh::Mesh_RadialPrism3D::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_RadialPrism3D::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_RadialPrism3D::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_RadialPrism3D::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__RadialPrism3D__inherit__graph.jpg b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__RadialPrism3D__inherit__graph.jpg
deleted file mode 100644 (file)
index 326430d..0000000
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__RadialPrism3D__inherit__graph.jpg and /dev/null 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
deleted file mode 100644 (file)
index fa5868a..0000000
+++ /dev/null
@@ -1,974 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh__Segment.html">Mesh_Segment</a></div>
-<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__CompositeSegment.html" shape="rect" coords="7,158,229,182" alt="">
-<area href="classsmesh_1_1Mesh__Segment__Python.html" shape="rect" coords="253,158,461,182" alt="">
-<area href="classsmesh_1_1Mesh__Algorithm.html" shape="rect" coords="157,9,317,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#d12bcd1749874d541101bf8af001dd65">LengthNearVertex</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "SegmentLengthAroundVertex" hypothesis.  <a href="#d12bcd1749874d541101bf8af001dd65"></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="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
- else return the submesh associated to this algorithm.  <a href="#39dd34eb5db727c1ff2b69a84df18394"></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#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#f13cd452b3fce74939e43d49ae937e9e">GetCompatibleHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#f13cd452b3fce74939e43d49ae937e9e"></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#b1b1de005b6bb9764bc282f54b2925c2">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#b1b1de005b6bb9764bc282f54b2925c2"></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#67ab9bf21cd85694a9702c5c9a4db8b2">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#67ab9bf21cd85694a9702c5c9a4db8b2"></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#9ddd321337780f828103a7aef5662a66">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#9ddd321337780f828103a7aef5662a66"></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__Segment.html#b6907301d8393ce0e80bf014d37133ac">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#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#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#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__CompositeSegment.html#517bc6da0e79cb989f3346810fe5c471">smesh.Mesh_CompositeSegment</a>, and <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="d12bcd1749874d541101bf8af001dd65"></a><!-- doxytag: member="smesh::Mesh_Segment::LengthNearVertex" ref="d12bcd1749874d541101bf8af001dd65" 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.LengthNearVertex           </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>length</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>vertex</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>length</em>&nbsp;</td><td>for the segment length </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>vertex</em>&nbsp;</td><td>for the length localization: vertex index [0,1] | verext object </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="f13cd452b3fce74939e43d49ae937e9e"></a><!-- doxytag: member="smesh::Mesh_Segment::GetCompatibleHypothesis" ref="f13cd452b3fce74939e43d49ae937e9e" 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.GetCompatibleHypothesis           </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="b1b1de005b6bb9764bc282f54b2925c2"></a><!-- doxytag: member="smesh::Mesh_Segment::GetName" ref="b1b1de005b6bb9764bc282f54b2925c2" 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.GetName           </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="67ab9bf21cd85694a9702c5c9a4db8b2"></a><!-- doxytag: member="smesh::Mesh_Segment::SetName" ref="67ab9bf21cd85694a9702c5c9a4db8b2" 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.SetName           </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>name</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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9ddd321337780f828103a7aef5662a66"></a><!-- doxytag: member="smesh::Mesh_Segment::GetId" ref="9ddd321337780f828103a7aef5662a66" 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.GetId           </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="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="b6907301d8393ce0e80bf014d37133ac"></a><!-- doxytag: member="smesh::Mesh_Segment::geom" ref="b6907301d8393ce0e80bf014d37133ac" 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__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment.geom</a>          </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__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm</a>.    </td>
-  </tr>
-</table>
-<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="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
deleted file mode 100644 (file)
index 4107fa1..0000000
+++ /dev/null
@@ -1,1025 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh__Segment__Python.html">Mesh_Segment_Python</a></div>
-<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#d12bcd1749874d541101bf8af001dd65">LengthNearVertex</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "SegmentLengthAroundVertex" hypothesis.  <a href="#d12bcd1749874d541101bf8af001dd65"></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="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
- else return the submesh associated to this algorithm.  <a href="#39dd34eb5db727c1ff2b69a84df18394"></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#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#f13cd452b3fce74939e43d49ae937e9e">GetCompatibleHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#f13cd452b3fce74939e43d49ae937e9e"></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#b1b1de005b6bb9764bc282f54b2925c2">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#b1b1de005b6bb9764bc282f54b2925c2"></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#67ab9bf21cd85694a9702c5c9a4db8b2">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#67ab9bf21cd85694a9702c5c9a4db8b2"></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#9ddd321337780f828103a7aef5662a66">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#9ddd321337780f828103a7aef5662a66"></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__Segment.html#b6907301d8393ce0e80bf014d37133ac">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#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#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#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="d12bcd1749874d541101bf8af001dd65"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::LengthNearVertex" ref="d12bcd1749874d541101bf8af001dd65" 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.LengthNearVertex           </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>length</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>vertex</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>length</em>&nbsp;</td><td>for the segment length </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>vertex</em>&nbsp;</td><td>for the length localization: vertex index [0,1] | verext object </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="f13cd452b3fce74939e43d49ae937e9e"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::GetCompatibleHypothesis" ref="f13cd452b3fce74939e43d49ae937e9e" 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.GetCompatibleHypothesis           </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="b1b1de005b6bb9764bc282f54b2925c2"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::GetName" ref="b1b1de005b6bb9764bc282f54b2925c2" 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.GetName           </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="67ab9bf21cd85694a9702c5c9a4db8b2"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::SetName" ref="67ab9bf21cd85694a9702c5c9a4db8b2" 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.SetName           </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>name</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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9ddd321337780f828103a7aef5662a66"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::GetId" ref="9ddd321337780f828103a7aef5662a66" 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.GetId           </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="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="b6907301d8393ce0e80bf014d37133ac"></a><!-- doxytag: member="smesh::Mesh_Segment_Python::geom" ref="b6907301d8393ce0e80bf014d37133ac" 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__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment.geom</a><code> [inherited]</code>          </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__Algorithm.html#f6608d059606200dce0679f3367112d1">smesh.Mesh_Algorithm</a>.    </td>
-  </tr>
-</table>
-<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="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
deleted file mode 100644 (file)
index 68ae8f3..0000000
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__Python__inherit__graph.jpg and /dev/null 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
deleted file mode 100644 (file)
index 05c33ce..0000000
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Segment__inherit__graph.jpg and /dev/null 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
deleted file mode 100644 (file)
index f3aa6de..0000000
+++ /dev/null
@@ -1,1059 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh__Tetrahedron.html">Mesh_Tetrahedron</a></div>
-<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__Tetrahedron.html#c0eaf2eaf4fadde975e6127e4a2156f1">Parameters</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Netgen 3D Parameters" hypothesis.  <a href="#c0eaf2eaf4fadde975e6127e4a2156f1"></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#8aeb0f8ae2afe7607508e66917048b1f">SetMaxSize</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set MaxSize.  <a href="#8aeb0f8ae2afe7607508e66917048b1f"></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#0d5a4b74e9536e327df4212466138887">SetSecondOrder</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set SecondOrder flag.  <a href="#0d5a4b74e9536e327df4212466138887"></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#c24fc1ef1afa5850e995284d77c5caee">SetOptimize</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set Optimize flag.  <a href="#c24fc1ef1afa5850e995284d77c5caee"></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#c23b97b21244cd1ae46d5dba22c446af">SetFineness</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set Fineness.  <a href="#c23b97b21244cd1ae46d5dba22c446af"></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#54cff72fa1177898bf489cdec09606e0">SetGrowthRate</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set GrowthRate.  <a href="#54cff72fa1177898bf489cdec09606e0"></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#e72ccfb372fab5e0f9636e0f3dc8d1ff">SetNbSegPerEdge</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set NbSegPerEdge.  <a href="#e72ccfb372fab5e0f9636e0f3dc8d1ff"></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#88005a951d36f15c14471339564696d8">SetNbSegPerRadius</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set NbSegPerRadius.  <a href="#88005a951d36f15c14471339564696d8"></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="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
- else return the submesh associated to this algorithm.  <a href="#39dd34eb5db727c1ff2b69a84df18394"></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#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#f13cd452b3fce74939e43d49ae937e9e">GetCompatibleHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#f13cd452b3fce74939e43d49ae937e9e"></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#b1b1de005b6bb9764bc282f54b2925c2">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#b1b1de005b6bb9764bc282f54b2925c2"></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#67ab9bf21cd85694a9702c5c9a4db8b2">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#67ab9bf21cd85694a9702c5c9a4db8b2"></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#9ddd321337780f828103a7aef5662a66">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#9ddd321337780f828103a7aef5662a66"></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__Tetrahedron.html#79b86fe05d300bb0a784b2ceea0b4327">algoType</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__Tetrahedron.html#e44277e96e89677fb254311f462a4c2f">params</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__Tetrahedron.html#e00a10e0a5c1eb4497dbb504aac70f6b">params</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__Tetrahedron.html#e6ef59593ce8ba300a4a46ab154d4546">algoType</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>
-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>algoType</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="c0eaf2eaf4fadde975e6127e4a2156f1"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::Parameters" ref="c0eaf2eaf4fadde975e6127e4a2156f1" 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.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="8aeb0f8ae2afe7607508e66917048b1f"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::SetMaxSize" ref="8aeb0f8ae2afe7607508e66917048b1f" 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.SetMaxSize           </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>theSize</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>
-<a class="anchor" name="0d5a4b74e9536e327df4212466138887"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::SetSecondOrder" ref="0d5a4b74e9536e327df4212466138887" 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.SetSecondOrder           </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>theVal</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>
-<a class="anchor" name="c24fc1ef1afa5850e995284d77c5caee"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::SetOptimize" ref="c24fc1ef1afa5850e995284d77c5caee" 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.SetOptimize           </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>theVal</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>
-<a class="anchor" name="c23b97b21244cd1ae46d5dba22c446af"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::SetFineness" ref="c23b97b21244cd1ae46d5dba22c446af" 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.SetFineness           </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>theFineness</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>theFineness</em>&nbsp;</td><td>is: VeryCoarse, Coarse, Moderate, Fine, VeryFine or Custom </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="54cff72fa1177898bf489cdec09606e0"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::SetGrowthRate" ref="54cff72fa1177898bf489cdec09606e0" 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.SetGrowthRate           </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>theRate</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>
-<a class="anchor" name="e72ccfb372fab5e0f9636e0f3dc8d1ff"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::SetNbSegPerEdge" ref="e72ccfb372fab5e0f9636e0f3dc8d1ff" 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.SetNbSegPerEdge           </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>theVal</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>
-<a class="anchor" name="88005a951d36f15c14471339564696d8"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::SetNbSegPerRadius" ref="88005a951d36f15c14471339564696d8" 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.SetNbSegPerRadius           </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>theVal</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>
-<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="f13cd452b3fce74939e43d49ae937e9e"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::GetCompatibleHypothesis" ref="f13cd452b3fce74939e43d49ae937e9e" 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.GetCompatibleHypothesis           </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="b1b1de005b6bb9764bc282f54b2925c2"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::GetName" ref="b1b1de005b6bb9764bc282f54b2925c2" 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.GetName           </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="67ab9bf21cd85694a9702c5c9a4db8b2"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::SetName" ref="67ab9bf21cd85694a9702c5c9a4db8b2" 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.SetName           </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>name</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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9ddd321337780f828103a7aef5662a66"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::GetId" ref="9ddd321337780f828103a7aef5662a66" 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.GetId           </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="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="e00a10e0a5c1eb4497dbb504aac70f6b"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::params" ref="e00a10e0a5c1eb4497dbb504aac70f6b" 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__Tetrahedron.html#e00a10e0a5c1eb4497dbb504aac70f6b">smesh.Mesh_Tetrahedron.params</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="e6ef59593ce8ba300a4a46ab154d4546"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::algoType" ref="e6ef59593ce8ba300a4a46ab154d4546" 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__Tetrahedron.html#e6ef59593ce8ba300a4a46ab154d4546">smesh.Mesh_Tetrahedron.algoType</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="79b86fe05d300bb0a784b2ceea0b4327"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::algoType" ref="79b86fe05d300bb0a784b2ceea0b4327" 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__Tetrahedron.html#e6ef59593ce8ba300a4a46ab154d4546">smesh.Mesh_Tetrahedron.algoType</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="e44277e96e89677fb254311f462a4c2f"></a><!-- doxytag: member="smesh::Mesh_Tetrahedron::params" ref="e44277e96e89677fb254311f462a4c2f" 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__Tetrahedron.html#e00a10e0a5c1eb4497dbb504aac70f6b">smesh.Mesh_Tetrahedron.params</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_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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </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
deleted file mode 100644 (file)
index 78d01b1..0000000
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Tetrahedron__inherit__graph.jpg and /dev/null 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
deleted file mode 100644 (file)
index 7046b0e..0000000
+++ /dev/null
@@ -1,1130 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-   <title>Main Page</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head>
-<body>
-&nbsp;
-</body>
-</html>
-<!-- Generated by Doxygen 1.4.6 -->
-<div class="nav">
-<a class="el" href="namespacesmesh.html">smesh</a>.<a class="el" href="classsmesh_1_1Mesh__Triangle.html">Mesh_Triangle</a></div>
-<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__Triangle.html#69a341f624cb8402e386658fa98e29d0">Parameters</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define "Netgen 2D Parameters" hypothesis.  <a href="#69a341f624cb8402e386658fa98e29d0"></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#7a07e4f1132d91e8ba07fca47ca5d0f9">SetMaxSize</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set MaxSize.  <a href="#7a07e4f1132d91e8ba07fca47ca5d0f9"></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#4e81ffd268d1bbd163b8686a4d6ed263">SetSecondOrder</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set SecondOrder flag.  <a href="#4e81ffd268d1bbd163b8686a4d6ed263"></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#aedfeb9fd639cb01e01b7989c3619524">SetOptimize</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set Optimize flag.  <a href="#aedfeb9fd639cb01e01b7989c3619524"></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#4a348dfd84e1c7d17437cffb6ba5011a">SetFineness</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set Fineness.  <a href="#4a348dfd84e1c7d17437cffb6ba5011a"></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#b1fce7c1e3c257b65069b05e906f94cb">SetGrowthRate</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set GrowthRate.  <a href="#b1fce7c1e3c257b65069b05e906f94cb"></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#dbc76e5ec41100c11642f29a1e1bdb42">SetNbSegPerEdge</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set NbSegPerEdge.  <a href="#dbc76e5ec41100c11642f29a1e1bdb42"></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#ea4546d82521e441d31d1db1254b94b2">SetNbSegPerRadius</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set NbSegPerRadius.  <a href="#ea4546d82521e441d31d1db1254b94b2"></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#34ee5173a46e2ea3ca66f9225229efbb">SetQuadAllowed</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set QuadAllowed flag.  <a href="#34ee5173a46e2ea3ca66f9225229efbb"></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="mdescLeft">&nbsp;</td><td class="mdescRight">If the algorithm is global, return 0; <br>
- else return the submesh associated to this algorithm.  <a href="#39dd34eb5db727c1ff2b69a84df18394"></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#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#f13cd452b3fce74939e43d49ae937e9e">GetCompatibleHypothesis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get list of hypothesis that can be used with this algorithm.  <a href="#f13cd452b3fce74939e43d49ae937e9e"></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#b1b1de005b6bb9764bc282f54b2925c2">GetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name of algo.  <a href="#b1b1de005b6bb9764bc282f54b2925c2"></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#67ab9bf21cd85694a9702c5c9a4db8b2">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set name to algo.  <a href="#67ab9bf21cd85694a9702c5c9a4db8b2"></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#9ddd321337780f828103a7aef5662a66">GetId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get id of algo.  <a href="#9ddd321337780f828103a7aef5662a66"></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__Triangle.html#57e6b5372ec214aab175c16ebbf2fd18">algoType</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__Triangle.html#a0a5947fbd5e4c91734d87c73af00a2d">params</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__Triangle.html#78df0a3eb610328638ec5c69e7c6af60">algoType</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__Triangle.html#099db285c4146ebe49dd7a1323693a9a">params</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>
-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>algoType</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="69a341f624cb8402e386658fa98e29d0"></a><!-- doxytag: member="smesh::Mesh_Triangle::Parameters" ref="69a341f624cb8402e386658fa98e29d0" 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.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="7a07e4f1132d91e8ba07fca47ca5d0f9"></a><!-- doxytag: member="smesh::Mesh_Triangle::SetMaxSize" ref="7a07e4f1132d91e8ba07fca47ca5d0f9" 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.SetMaxSize           </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>theSize</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>
-<a class="anchor" name="4e81ffd268d1bbd163b8686a4d6ed263"></a><!-- doxytag: member="smesh::Mesh_Triangle::SetSecondOrder" ref="4e81ffd268d1bbd163b8686a4d6ed263" 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.SetSecondOrder           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>seld</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>theVal</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>
-<a class="anchor" name="aedfeb9fd639cb01e01b7989c3619524"></a><!-- doxytag: member="smesh::Mesh_Triangle::SetOptimize" ref="aedfeb9fd639cb01e01b7989c3619524" 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.SetOptimize           </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>theVal</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>
-<a class="anchor" name="4a348dfd84e1c7d17437cffb6ba5011a"></a><!-- doxytag: member="smesh::Mesh_Triangle::SetFineness" ref="4a348dfd84e1c7d17437cffb6ba5011a" 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.SetFineness           </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>theFineness</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>theFineness</em>&nbsp;</td><td>is: VeryCoarse, Coarse, Moderate, Fine, VeryFine or Custom </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="b1fce7c1e3c257b65069b05e906f94cb"></a><!-- doxytag: member="smesh::Mesh_Triangle::SetGrowthRate" ref="b1fce7c1e3c257b65069b05e906f94cb" 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.SetGrowthRate           </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>theRate</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>
-<a class="anchor" name="dbc76e5ec41100c11642f29a1e1bdb42"></a><!-- doxytag: member="smesh::Mesh_Triangle::SetNbSegPerEdge" ref="dbc76e5ec41100c11642f29a1e1bdb42" 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.SetNbSegPerEdge           </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>theVal</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>
-<a class="anchor" name="ea4546d82521e441d31d1db1254b94b2"></a><!-- doxytag: member="smesh::Mesh_Triangle::SetNbSegPerRadius" ref="ea4546d82521e441d31d1db1254b94b2" 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.SetNbSegPerRadius           </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>theVal</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>
-<a class="anchor" name="34ee5173a46e2ea3ca66f9225229efbb"></a><!-- doxytag: member="smesh::Mesh_Triangle::SetQuadAllowed" ref="34ee5173a46e2ea3ca66f9225229efbb" 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.SetQuadAllowed           </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>toAllow</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>
-<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="f13cd452b3fce74939e43d49ae937e9e"></a><!-- doxytag: member="smesh::Mesh_Triangle::GetCompatibleHypothesis" ref="f13cd452b3fce74939e43d49ae937e9e" 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.GetCompatibleHypothesis           </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="b1b1de005b6bb9764bc282f54b2925c2"></a><!-- doxytag: member="smesh::Mesh_Triangle::GetName" ref="b1b1de005b6bb9764bc282f54b2925c2" 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.GetName           </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="67ab9bf21cd85694a9702c5c9a4db8b2"></a><!-- doxytag: member="smesh::Mesh_Triangle::SetName" ref="67ab9bf21cd85694a9702c5c9a4db8b2" 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.SetName           </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>name</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>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9ddd321337780f828103a7aef5662a66"></a><!-- doxytag: member="smesh::Mesh_Triangle::GetId" ref="9ddd321337780f828103a7aef5662a66" 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.GetId           </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="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="78df0a3eb610328638ec5c69e7c6af60"></a><!-- doxytag: member="smesh::Mesh_Triangle::algoType" ref="78df0a3eb610328638ec5c69e7c6af60" 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__Triangle.html#78df0a3eb610328638ec5c69e7c6af60">smesh.Mesh_Triangle.algoType</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="099db285c4146ebe49dd7a1323693a9a"></a><!-- doxytag: member="smesh::Mesh_Triangle::params" ref="099db285c4146ebe49dd7a1323693a9a" 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__Triangle.html#099db285c4146ebe49dd7a1323693a9a">smesh.Mesh_Triangle.params</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="57e6b5372ec214aab175c16ebbf2fd18"></a><!-- doxytag: member="smesh::Mesh_Triangle::algoType" ref="57e6b5372ec214aab175c16ebbf2fd18" 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__Triangle.html#78df0a3eb610328638ec5c69e7c6af60">smesh.Mesh_Triangle.algoType</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="a0a5947fbd5e4c91734d87c73af00a2d"></a><!-- doxytag: member="smesh::Mesh_Triangle::params" ref="a0a5947fbd5e4c91734d87c73af00a2d" 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__Triangle.html#099db285c4146ebe49dd7a1323693a9a">smesh.Mesh_Triangle.params</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_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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </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>
-
-<p>
-Reimplemented in <a class="el" href="classsmesh_1_1Mesh__Segment.html#b6907301d8393ce0e80bf014d37133ac">smesh.Mesh_Segment</a>.    </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
deleted file mode 100644 (file)
index 30692a1..0000000
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Triangle__inherit__graph.jpg and /dev/null differ
index 68f0d78375cece3acf7076131f7867f7816248a7..669113793a0c6dabec5caf0216f463416b4df0d6 100644 (file)
 <link href="tabs.css" rel="stylesheet" type="text/css">
 </head>
 <body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
 <h1>Package smesh</h1>
-Python package smesh defines several classes, destined for easy and
-clear mesh creation and edition.
-<p class="whs2"><a
- href="../../../../../../../../../misc/dn22/SALOME/series3x/CURRENT/current19.10.2006/Mandrake/SMESH/doc/salome/gui/SMESH/smesh.py_introduction.htm">Example.</a><br>
-<br>
-</p>
+<p>
+<p>
+For available methods and classes please see documentation of 
+<a class="el" href="namespacesmeshDC.html">smeshDC</a> package.
+All methods of smeshDC package are accessible via smesh namespace,
+for example &quot;mesh = smesh.Mesh(shape, name)&quot;.
 <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__CompositeSegment.html">Mesh_CompositeSegment</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__CompositeSegment.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__Projection1D.html">Mesh_Projection1D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a projection 1D algorithm.  <a href="classsmesh_1_1Mesh__Projection1D.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__Projection2D.html">Mesh_Projection2D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a projection 2D algorithm.  <a href="classsmesh_1_1Mesh__Projection2D.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__Projection3D.html">Mesh_Projection3D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a projection 3D algorithm.  <a href="classsmesh_1_1Mesh__Projection3D.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__Prism3D.html">Mesh_Prism3D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a 3D extrusion algorithm.  <a href="classsmesh_1_1Mesh__Prism3D.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__RadialPrism3D.html">Mesh_RadialPrism3D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a Radial Prism 3D algorithm.  <a href="classsmesh_1_1Mesh__RadialPrism3D.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="mdescLeft">&nbsp;</td><td class="mdescRight">Gets object name.  <a href="#78d19ec2e8b9d0290e401878b14ade9c"></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="namespacesmesh.html#79291ef16549a9ea4338f6515d2a3347">SetName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets name to object.  <a href="#79291ef16549a9ea4338f6515d2a3347"></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="namespacesmesh.html#5c11d47101c96bda3d7162617b33f58a">EnumToLong</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns long value from enumeration Uses for SMESH.FunctorType enumeration.  <a href="#5c11d47101c96bda3d7162617b33f58a"></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="namespacesmesh.html#7e175d2c5495363a6df421313faf4c43">GetPointStruct</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get PointStruct from vertex.  <a href="#7e175d2c5495363a6df421313faf4c43"></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="namespacesmesh.html#d26e9b90b0cb5d2e43123e6f127e5a87">GetDirStruct</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get DirStruct from vector.  <a href="#d26e9b90b0cb5d2e43123e6f127e5a87"></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="namespacesmesh.html#ee0c3f87cae057e11d1d18a657e315f9">GetAxisStruct</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get AxisStruct from object.  <a href="#ee0c3f87cae057e11d1d18a657e315f9"></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="namespacesmesh.html#e40116571038fba2db7a1c3588b89598">SetEmbeddedMode</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the current mode.  <a href="#e40116571038fba2db7a1c3588b89598"></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="namespacesmesh.html#14affae9db8e4a412eafb2a6fe174218">IsEmbeddedMode</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current mode.  <a href="#14affae9db8e4a412eafb2a6fe174218"></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="namespacesmesh.html#d39ae64cb08100cd93234d15aca978d5">SetCurrentStudy</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the current study.  <a href="#d39ae64cb08100cd93234d15aca978d5"></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="namespacesmesh.html#451cd7527b6484ed2dd7bf58275adaf6">GetCurrentStudy</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current study.  <a href="#451cd7527b6484ed2dd7bf58275adaf6"></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="namespacesmesh.html#e92c083f2c9ac716012531aa3e9f786f">CreateMeshesFromUNV</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create <a class="el" href="classsmesh_1_1Mesh.html">Mesh</a> object importing data from given UNV file.  <a href="#e92c083f2c9ac716012531aa3e9f786f"></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="namespacesmesh.html#45cc030efe388e131d0aa54d75b83b31">CreateMeshesFromMED</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create <a class="el" href="classsmesh_1_1Mesh.html">Mesh</a> object(s) importing data from given MED file.  <a href="#45cc030efe388e131d0aa54d75b83b31"></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="namespacesmesh.html#eab78614705c83dd55a54e7239b164e4">CreateMeshesFromSTL</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create <a class="el" href="classsmesh_1_1Mesh.html">Mesh</a> object importing data from given STL file.  <a href="#eab78614705c83dd55a54e7239b164e4"></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="namespacesmesh.html#fa73ac57b58b7d409a33ec3971bbd278">GetSubShapesId</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">From SMESH_Gen interface.  <a href="#fa73ac57b58b7d409a33ec3971bbd278"></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="namespacesmesh.html#f2e028022f5f3399ba1b1790acc5a853">GetPattern</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">From SMESH_Gen interface.  <a href="#f2e028022f5f3399ba1b1790acc5a853"></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="namespacesmesh.html#03961f7bbd325cfd29d0a80685ec719d">GetEmptyCriterion</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates an empty criterion.  <a href="#03961f7bbd325cfd29d0a80685ec719d"></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="namespacesmesh.html#f1ee4dcc9ba12ec95d99eb794ae4636f">GetCriterion</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a criterion by given parameters.  <a href="#f1ee4dcc9ba12ec95d99eb794ae4636f"></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="namespacesmesh.html#62eb2a46d9a194cc14210a3b169a0206">GetFilter</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates filter by given parameters of criterion.  <a href="#62eb2a46d9a194cc14210a3b169a0206"></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="namespacesmesh.html#99e71a9fd57d9298e553af661f46c420">GetFunctor</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates numerical functor by its type.  <a href="#99e71a9fd57d9298e553af661f46c420"></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="namespacesmesh.html#4c9816c7de2ca573df022a3395498a77">TreatHypoStatus</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print error message if a hypothesis was not assigned.  <a href="#4c9816c7de2ca573df022a3395498a77"></a><br></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#f6669b275aa02ad8b527f8480374c308">noNETGENPlugin</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="namespacesmesh.html#f6669b275aa02ad8b527f8480374c308">noNETGENPlugin</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#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#76a5fdf46440e128f9ab6791d61f76a6">COMPOSITE</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#4449cc4d5e7910c0afa9a35238736519">MEFISTO</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#72b65da5195aa8d71574f95e5533d612">NETGEN</a> = 4</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> = 5</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#13a34e1016fc530291cb7c688709efb3">FULL_NETGEN</a> = 6</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmesh.html#b0be2f91db6c32bfdd43d124340b7af7">POINT</a> = <a class="el" href="namespacesmesh.html#b0be2f91db6c32bfdd43d124340b7af7">SMESH_MeshEditor.POINT</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmesh.html#0365dc0276024fad14f43dec877248a4">AXIS</a> = <a class="el" href="namespacesmesh.html#0365dc0276024fad14f43dec877248a4">SMESH_MeshEditor.AXIS</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmesh.html#a7f05b05f3918e114ad62c869b824310">PLANE</a> = <a class="el" href="namespacesmesh.html#a7f05b05f3918e114ad62c869b824310">SMESH_MeshEditor.PLANE</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmesh.html#9fe9597639de7e8c26f4b92657568c62">LAPLACIAN_SMOOTH</a> = <a class="el" href="namespacesmesh.html#9fe9597639de7e8c26f4b92657568c62">SMESH_MeshEditor.LAPLACIAN_SMOOTH</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmesh.html#85f9acba1823ef2dcb8f0c33d44f626c">CENTROIDAL_SMOOTH</a> = <a class="el" href="namespacesmesh.html#85f9acba1823ef2dcb8f0c33d44f626c">SMESH_MeshEditor.CENTROIDAL_SMOOTH</a></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#8063a2dbc510a33b4f6c056b0e059ce3">VeryCoarse</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="namespacesmesh.html#f7f5ba712f050ae89776eb0b27edc1bf">Coarse</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#ac157436ade9909f14cc94865ec94ef7">Moderate</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#0cbc436d589be051e2bd733da2006528">Fine</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#b2cb5fe43d16d24399313f85d6956b05">VeryFine</a> = 4</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#beaf031bab31506b47b3c28066afb637">Custom</a> = 5</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>
-
 <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>
 
-</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>
-<a class="anchor" name="5c11d47101c96bda3d7162617b33f58a"></a><!-- doxytag: member="smesh::EnumToLong" ref="5c11d47101c96bda3d7162617b33f58a" 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.EnumToLong           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theItem</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="7e175d2c5495363a6df421313faf4c43"></a><!-- doxytag: member="smesh::GetPointStruct" ref="7e175d2c5495363a6df421313faf4c43" 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.GetPointStruct           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theVertex</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>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theVertex</em>&nbsp;</td><td>is GEOM object(vertex) </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH.PointStruct </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="d26e9b90b0cb5d2e43123e6f127e5a87"></a><!-- doxytag: member="smesh::GetDirStruct" ref="d26e9b90b0cb5d2e43123e6f127e5a87" 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.GetDirStruct           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theVector</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>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theVector</em>&nbsp;</td><td>is GEOM object(vector) </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH.DirStruct </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="ee0c3f87cae057e11d1d18a657e315f9"></a><!-- doxytag: member="smesh::GetAxisStruct" ref="ee0c3f87cae057e11d1d18a657e315f9" 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.GetAxisStruct           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theObj</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>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObj</em>&nbsp;</td><td>is GEOM object(line or plane) </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH.AxisStruct </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="e40116571038fba2db7a1c3588b89598"></a><!-- doxytag: member="smesh::SetEmbeddedMode" ref="e40116571038fba2db7a1c3588b89598" 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.SetEmbeddedMode           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theMode</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="14affae9db8e4a412eafb2a6fe174218"></a><!-- doxytag: member="smesh::IsEmbeddedMode" ref="14affae9db8e4a412eafb2a6fe174218" 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.IsEmbeddedMode           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>          </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="d39ae64cb08100cd93234d15aca978d5"></a><!-- doxytag: member="smesh::SetCurrentStudy" ref="d39ae64cb08100cd93234d15aca978d5" 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.SetCurrentStudy           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theStudy</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="451cd7527b6484ed2dd7bf58275adaf6"></a><!-- doxytag: member="smesh::GetCurrentStudy" ref="451cd7527b6484ed2dd7bf58275adaf6" 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.GetCurrentStudy           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>          </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="e92c083f2c9ac716012531aa3e9f786f"></a><!-- doxytag: member="smesh::CreateMeshesFromUNV" ref="e92c083f2c9ac716012531aa3e9f786f" 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.CreateMeshesFromUNV           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theFileName</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>
-<dl compact><dt><b>Returns:</b></dt><dd>an instance of <a class="el" href="classsmesh_1_1Mesh.html">Mesh</a> class </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="45cc030efe388e131d0aa54d75b83b31"></a><!-- doxytag: member="smesh::CreateMeshesFromMED" ref="45cc030efe388e131d0aa54d75b83b31" 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.CreateMeshesFromMED           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theFileName</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>
-<dl compact><dt><b>Returns:</b></dt><dd>a list of <a class="el" href="classsmesh_1_1Mesh.html">Mesh</a> class instances </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="eab78614705c83dd55a54e7239b164e4"></a><!-- doxytag: member="smesh::CreateMeshesFromSTL" ref="eab78614705c83dd55a54e7239b164e4" 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.CreateMeshesFromSTL           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theFileName</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>
-<dl compact><dt><b>Returns:</b></dt><dd>an instance of <a class="el" href="classsmesh_1_1Mesh.html">Mesh</a> class </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="fa73ac57b58b7d409a33ec3971bbd278"></a><!-- doxytag: member="smesh::GetSubShapesId" ref="fa73ac57b58b7d409a33ec3971bbd278" 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.GetSubShapesId           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theMainObject</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>theListOfSubObjects</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>
-<a class="anchor" name="f2e028022f5f3399ba1b1790acc5a853"></a><!-- doxytag: member="smesh::GetPattern" ref="f2e028022f5f3399ba1b1790acc5a853" 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.GetPattern           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>          </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>
-Creates pattern     </td>
-  </tr>
-</table>
-<a class="anchor" name="03961f7bbd325cfd29d0a80685ec719d"></a><!-- doxytag: member="smesh::GetEmptyCriterion" ref="03961f7bbd325cfd29d0a80685ec719d" 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.GetEmptyCriterion           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>          </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>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH.Filter.Criterion </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="f1ee4dcc9ba12ec95d99eb794ae4636f"></a><!-- doxytag: member="smesh::GetCriterion" ref="f1ee4dcc9ba12ec95d99eb794ae4636f" 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.GetCriterion           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>elementType</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>CritType</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>Compare</em> = <code>FT_EqualTo</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>Treshold</em> = <code>&quot;&quot;</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>UnaryOp</em> = <code>FT_Undefined</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>BinaryOp</em> = <code>FT_Undefined</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>elementType</em>&nbsp;</td><td>is the type of elements(NODE, EDGE, FACE, VOLUME) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>CritType</em>&nbsp;</td><td>is type of criterion( FT_Taper, FT_Area, FT_RangeOfIds, FT_LyingOnGeom etc. ) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Compare</em>&nbsp;</td><td>belong to {FT_LessThan, FT_MoreThan, FT_EqualTo} </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Treshold</em>&nbsp;</td><td>is threshold value (range of ids as string, shape, numeric) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>UnaryOp</em>&nbsp;</td><td>is FT_LogicalNOT or FT_Undefined </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>BinaryOp</em>&nbsp;</td><td>is binary logical operation FT_LogicalAND, FT_LogicalOR or FT_Undefined(must be for the last criterion in criteria) </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH.Filter.Criterion </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="62eb2a46d9a194cc14210a3b169a0206"></a><!-- doxytag: member="smesh::GetFilter" ref="62eb2a46d9a194cc14210a3b169a0206" 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.GetFilter           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>elementType</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>CritType</em> = <code>FT_Undefined</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>Compare</em> = <code>FT_EqualTo</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>Treshold</em> = <code>&quot;&quot;</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>UnaryOp</em> = <code>FT_Undefined</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>elementType</em>&nbsp;</td><td>is the type of elements in the group </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>CritType</em>&nbsp;</td><td>is type of criterion( FT_Taper, FT_Area, FT_RangeOfIds, FT_LyingOnGeom etc. ) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Compare</em>&nbsp;</td><td>belong to {FT_LessThan, FT_MoreThan, FT_EqualTo} </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Treshold</em>&nbsp;</td><td>is threshold value (range of id ids as string, shape, numeric) </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>UnaryOp</em>&nbsp;</td><td>is FT_LogicalNOT or FT_Undefined </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH_Filter </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="99e71a9fd57d9298e553af661f46c420"></a><!-- doxytag: member="smesh::GetFunctor" ref="99e71a9fd57d9298e553af661f46c420" 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.GetFunctor           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theCriterion</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>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theCrierion</em>&nbsp;</td><td>is FT_...; functor type </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>SMESH_NumericalFunctor </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="4c9816c7de2ca573df022a3395498a77"></a><!-- doxytag: member="smesh::TreatHypoStatus" ref="4c9816c7de2ca573df022a3395498a77" 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.TreatHypoStatus           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&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>
-    </td>
-  </tr>
 </table>
 <hr><h2>Variable Documentation</h2>
-<a class="anchor" name="f6669b275aa02ad8b527f8480374c308"></a><!-- doxytag: member="smesh::noNETGENPlugin" ref="f6669b275aa02ad8b527f8480374c308" 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#f6669b275aa02ad8b527f8480374c308">smesh.noNETGENPlugin</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="f6669b275aa02ad8b527f8480374c308"></a><!-- doxytag: member="smesh::noNETGENPlugin" ref="f6669b275aa02ad8b527f8480374c308" 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#f6669b275aa02ad8b527f8480374c308">smesh.noNETGENPlugin</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="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="76a5fdf46440e128f9ab6791d61f76a6"></a><!-- doxytag: member="smesh::COMPOSITE" ref="76a5fdf46440e128f9ab6791d61f76a6" 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#76a5fdf46440e128f9ab6791d61f76a6">smesh.COMPOSITE</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="4449cc4d5e7910c0afa9a35238736519"></a><!-- doxytag: member="smesh::MEFISTO" ref="4449cc4d5e7910c0afa9a35238736519" 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#4449cc4d5e7910c0afa9a35238736519">smesh.MEFISTO</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="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> = 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="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> = 5<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="13a34e1016fc530291cb7c688709efb3"></a><!-- doxytag: member="smesh::FULL_NETGEN" ref="13a34e1016fc530291cb7c688709efb3" 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#13a34e1016fc530291cb7c688709efb3">smesh.FULL_NETGEN</a> = 6<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="b0be2f91db6c32bfdd43d124340b7af7"></a><!-- doxytag: member="smesh::POINT" ref="b0be2f91db6c32bfdd43d124340b7af7" 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="namespacesmesh.html#b0be2f91db6c32bfdd43d124340b7af7">smesh.POINT</a> = <a class="el" href="namespacesmesh.html#b0be2f91db6c32bfdd43d124340b7af7">SMESH_MeshEditor.POINT</a><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="0365dc0276024fad14f43dec877248a4"></a><!-- doxytag: member="smesh::AXIS" ref="0365dc0276024fad14f43dec877248a4" 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="namespacesmesh.html#0365dc0276024fad14f43dec877248a4">smesh.AXIS</a> = <a class="el" href="namespacesmesh.html#0365dc0276024fad14f43dec877248a4">SMESH_MeshEditor.AXIS</a><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="a7f05b05f3918e114ad62c869b824310"></a><!-- doxytag: member="smesh::PLANE" ref="a7f05b05f3918e114ad62c869b824310" 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="namespacesmesh.html#a7f05b05f3918e114ad62c869b824310">smesh.PLANE</a> = <a class="el" href="namespacesmesh.html#a7f05b05f3918e114ad62c869b824310">SMESH_MeshEditor.PLANE</a><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="9fe9597639de7e8c26f4b92657568c62"></a><!-- doxytag: member="smesh::LAPLACIAN_SMOOTH" ref="9fe9597639de7e8c26f4b92657568c62" 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="namespacesmesh.html#9fe9597639de7e8c26f4b92657568c62">smesh.LAPLACIAN_SMOOTH</a> = <a class="el" href="namespacesmesh.html#9fe9597639de7e8c26f4b92657568c62">SMESH_MeshEditor.LAPLACIAN_SMOOTH</a><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="85f9acba1823ef2dcb8f0c33d44f626c"></a><!-- doxytag: member="smesh::CENTROIDAL_SMOOTH" ref="85f9acba1823ef2dcb8f0c33d44f626c" 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="namespacesmesh.html#85f9acba1823ef2dcb8f0c33d44f626c">smesh.CENTROIDAL_SMOOTH</a> = <a class="el" href="namespacesmesh.html#85f9acba1823ef2dcb8f0c33d44f626c">SMESH_MeshEditor.CENTROIDAL_SMOOTH</a><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="8063a2dbc510a33b4f6c056b0e059ce3"></a><!-- doxytag: member="smesh::VeryCoarse" ref="8063a2dbc510a33b4f6c056b0e059ce3" 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#8063a2dbc510a33b4f6c056b0e059ce3">smesh.VeryCoarse</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="f7f5ba712f050ae89776eb0b27edc1bf"></a><!-- doxytag: member="smesh::Coarse" ref="f7f5ba712f050ae89776eb0b27edc1bf" 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#f7f5ba712f050ae89776eb0b27edc1bf">smesh.Coarse</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="ac157436ade9909f14cc94865ec94ef7"></a><!-- doxytag: member="smesh::Moderate" ref="ac157436ade9909f14cc94865ec94ef7" 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#ac157436ade9909f14cc94865ec94ef7">smesh.Moderate</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="0cbc436d589be051e2bd733da2006528"></a><!-- doxytag: member="smesh::Fine" ref="0cbc436d589be051e2bd733da2006528" 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#0cbc436d589be051e2bd733da2006528">smesh.Fine</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="b2cb5fe43d16d24399313f85d6956b05"></a><!-- doxytag: member="smesh::VeryFine" ref="b2cb5fe43d16d24399313f85d6956b05" 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#b2cb5fe43d16d24399313f85d6956b05">smesh.VeryFine</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="beaf031bab31506b47b3c28066afb637"></a><!-- doxytag: member="smesh::Custom" ref="beaf031bab31506b47b3c28066afb637" 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#beaf031bab31506b47b3c28066afb637">smesh.Custom</a> = 5<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">
+<a class="anchor" name="6e041b9ca898fefe3ea0abafeed4aff2"></a><!-- doxytag: member="smesh::smesh" ref="6e041b9ca898fefe3ea0abafeed4aff2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
         <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>
+          <td class="memname">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>
+</div>
+<div class="memdoc">
 
 <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>
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:39 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
 </BODY>
 </HTML>
diff --git a/doc/salome/gui/SMESH/smeshpy_doc/namespacesmeshDC.html b/doc/salome/gui/SMESH/smeshpy_doc/namespacesmeshDC.html
new file mode 100644 (file)
index 0000000..ba523db
--- /dev/null
@@ -0,0 +1,530 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<h1>Package smeshDC</h1>
+<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="classsmeshDC_1_1smeshDC.html">smeshDC</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmeshDC_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="classsmeshDC_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="classsmeshDC_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="classsmeshDC_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="classsmeshDC_1_1Mesh__CompositeSegment.html">Mesh_CompositeSegment</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a segment 1D algorithm for discretization.  <a href="classsmeshDC_1_1Mesh__CompositeSegment.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="classsmeshDC_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="classsmeshDC_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="classsmeshDC_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="classsmeshDC_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="classsmeshDC_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="classsmeshDC_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="classsmeshDC_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="classsmeshDC_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="classsmeshDC_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="classsmeshDC_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="classsmeshDC_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="classsmeshDC_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="classsmeshDC_1_1Mesh__Projection1D.html">Mesh_Projection1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a projection 1D algorithm.  <a href="classsmeshDC_1_1Mesh__Projection1D.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="classsmeshDC_1_1Mesh__Projection2D.html">Mesh_Projection2D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a projection 2D algorithm.  <a href="classsmeshDC_1_1Mesh__Projection2D.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="classsmeshDC_1_1Mesh__Projection3D.html">Mesh_Projection3D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a projection 3D algorithm.  <a href="classsmeshDC_1_1Mesh__Projection3D.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="classsmeshDC_1_1Mesh__Prism3D.html">Mesh_Prism3D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a 3D extrusion algorithm.  <a href="classsmeshDC_1_1Mesh__Prism3D.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="classsmeshDC_1_1Mesh__RadialPrism3D.html">Mesh_RadialPrism3D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a Radial Prism 3D algorithm.  <a href="classsmeshDC_1_1Mesh__RadialPrism3D.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="classsmeshDC_1_1Mesh.html">Mesh</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class to define a mesh.  <a href="classsmeshDC_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="namespacesmeshDC.html#77e81fcdcad4ae78d1742a9b3fcce17e">GetName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets object name.  <a href="#77e81fcdcad4ae78d1742a9b3fcce17e"></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="namespacesmeshDC.html#3acd2894e05c10d68008d96002621164">SetName</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmeshDC.html#e95246982a965040a02c573066a8196e">TreatHypoStatus</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="namespacesmeshDC.html#f49588f8e1034367434a54957435b7ea">noNETGENPlugin</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="namespacesmeshDC.html#f49588f8e1034367434a54957435b7ea">noNETGENPlugin</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="namespacesmeshDC.html#fcd10952f4e87878b85f48b0b225372f">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="namespacesmeshDC.html#955814fbbff4cdc590cd03dbbb859927">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="namespacesmeshDC.html#e50ede87044d2daa26c4f139fe696c53">COMPOSITE</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="namespacesmeshDC.html#12ae6b0bb6a0f0e08228bb238dab824d">MEFISTO</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="namespacesmeshDC.html#12e2315ca0c10d490928dcc3b2351864">NETGEN</a> = 4</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmeshDC.html#67ce8984d9b8d988f78b632def748817">GHS3D</a> = 5</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmeshDC.html#118f33758b4f4725cc68db7aebd34083">FULL_NETGEN</a> = 6</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmeshDC.html#fd5b5cedbc611e37e599f437c575ae36">POINT</a> = <a class="el" href="namespacesmeshDC.html#fd5b5cedbc611e37e599f437c575ae36">SMESH_MeshEditor.POINT</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmeshDC.html#b9611ddbe9d93a2d4760a7de092cfd1f">AXIS</a> = <a class="el" href="namespacesmeshDC.html#b9611ddbe9d93a2d4760a7de092cfd1f">SMESH_MeshEditor.AXIS</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmeshDC.html#92fd2c2fd43b6ce9f16f89ba7626742c">PLANE</a> = <a class="el" href="namespacesmeshDC.html#92fd2c2fd43b6ce9f16f89ba7626742c">SMESH_MeshEditor.PLANE</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmeshDC.html#e8fab2e03b1a8d462378fe74c57de619">LAPLACIAN_SMOOTH</a> = <a class="el" href="namespacesmeshDC.html#e8fab2e03b1a8d462378fe74c57de619">SMESH_MeshEditor.LAPLACIAN_SMOOTH</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmeshDC.html#676e25a560cffbde266e642411de6c89">CENTROIDAL_SMOOTH</a> = <a class="el" href="namespacesmeshDC.html#676e25a560cffbde266e642411de6c89">SMESH_MeshEditor.CENTROIDAL_SMOOTH</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmeshDC.html#f13ac029f6502c7c30cf9d57eb799a1b">VeryCoarse</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="namespacesmeshDC.html#926afa25436fb731b6ad7402f054bb9a">Coarse</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="namespacesmeshDC.html#b434de550c6237c4896761aa23b9eac3">Moderate</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="namespacesmeshDC.html#8633ea7354db60e8ba8bf538280be54a">Fine</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="namespacesmeshDC.html#5c61377a364e30640a40aa6d1a9660e1">VeryFine</a> = 4</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmeshDC.html#8a359232ccf0e37f34296dc3c74fca2c">Custom</a> = 5</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesmeshDC.html#f609ee42a882d226c71c6491757c7d86">NO_NAME</a> = &quot;NoName&quot;</td></tr>
+
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="77e81fcdcad4ae78d1742a9b3fcce17e"></a><!-- doxytag: member="smeshDC::GetName" ref="77e81fcdcad4ae78d1742a9b3fcce17e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.GetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>obj</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="3acd2894e05c10d68008d96002621164"></a><!-- doxytag: member="smeshDC::SetName" ref="3acd2894e05c10d68008d96002621164" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.SetName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>obj</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="e95246982a965040a02c573066a8196e"></a><!-- doxytag: member="smeshDC::TreatHypoStatus" ref="e95246982a965040a02c573066a8196e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def smeshDC.TreatHypoStatus           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>hypName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>geomName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>isAlgo</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="f49588f8e1034367434a54957435b7ea"></a><!-- doxytag: member="smeshDC::noNETGENPlugin" ref="f49588f8e1034367434a54957435b7ea" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#f49588f8e1034367434a54957435b7ea">smeshDC.noNETGENPlugin</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f49588f8e1034367434a54957435b7ea"></a><!-- doxytag: member="smeshDC::noNETGENPlugin" ref="f49588f8e1034367434a54957435b7ea" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#f49588f8e1034367434a54957435b7ea">smeshDC.noNETGENPlugin</a> = 1<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fcd10952f4e87878b85f48b0b225372f"></a><!-- doxytag: member="smeshDC::REGULAR" ref="fcd10952f4e87878b85f48b0b225372f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#fcd10952f4e87878b85f48b0b225372f">smeshDC.REGULAR</a> = 1<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="955814fbbff4cdc590cd03dbbb859927"></a><!-- doxytag: member="smeshDC::PYTHON" ref="955814fbbff4cdc590cd03dbbb859927" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#955814fbbff4cdc590cd03dbbb859927">smeshDC.PYTHON</a> = 2<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="e50ede87044d2daa26c4f139fe696c53"></a><!-- doxytag: member="smeshDC::COMPOSITE" ref="e50ede87044d2daa26c4f139fe696c53" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#e50ede87044d2daa26c4f139fe696c53">smeshDC.COMPOSITE</a> = 3<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="12ae6b0bb6a0f0e08228bb238dab824d"></a><!-- doxytag: member="smeshDC::MEFISTO" ref="12ae6b0bb6a0f0e08228bb238dab824d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#12ae6b0bb6a0f0e08228bb238dab824d">smeshDC.MEFISTO</a> = 3<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="12e2315ca0c10d490928dcc3b2351864"></a><!-- doxytag: member="smeshDC::NETGEN" ref="12e2315ca0c10d490928dcc3b2351864" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#12e2315ca0c10d490928dcc3b2351864">smeshDC.NETGEN</a> = 4<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="67ce8984d9b8d988f78b632def748817"></a><!-- doxytag: member="smeshDC::GHS3D" ref="67ce8984d9b8d988f78b632def748817" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#67ce8984d9b8d988f78b632def748817">smeshDC.GHS3D</a> = 5<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="118f33758b4f4725cc68db7aebd34083"></a><!-- doxytag: member="smeshDC::FULL_NETGEN" ref="118f33758b4f4725cc68db7aebd34083" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#118f33758b4f4725cc68db7aebd34083">smeshDC.FULL_NETGEN</a> = 6<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="fd5b5cedbc611e37e599f437c575ae36"></a><!-- doxytag: member="smeshDC::POINT" ref="fd5b5cedbc611e37e599f437c575ae36" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespacesmeshDC.html#fd5b5cedbc611e37e599f437c575ae36">smeshDC.POINT</a> = <a class="el" href="namespacesmeshDC.html#fd5b5cedbc611e37e599f437c575ae36">SMESH_MeshEditor.POINT</a><code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="b9611ddbe9d93a2d4760a7de092cfd1f"></a><!-- doxytag: member="smeshDC::AXIS" ref="b9611ddbe9d93a2d4760a7de092cfd1f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespacesmeshDC.html#b9611ddbe9d93a2d4760a7de092cfd1f">smeshDC.AXIS</a> = <a class="el" href="namespacesmeshDC.html#b9611ddbe9d93a2d4760a7de092cfd1f">SMESH_MeshEditor.AXIS</a><code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="92fd2c2fd43b6ce9f16f89ba7626742c"></a><!-- doxytag: member="smeshDC::PLANE" ref="92fd2c2fd43b6ce9f16f89ba7626742c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespacesmeshDC.html#92fd2c2fd43b6ce9f16f89ba7626742c">smeshDC.PLANE</a> = <a class="el" href="namespacesmeshDC.html#92fd2c2fd43b6ce9f16f89ba7626742c">SMESH_MeshEditor.PLANE</a><code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="e8fab2e03b1a8d462378fe74c57de619"></a><!-- doxytag: member="smeshDC::LAPLACIAN_SMOOTH" ref="e8fab2e03b1a8d462378fe74c57de619" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespacesmeshDC.html#e8fab2e03b1a8d462378fe74c57de619">smeshDC.LAPLACIAN_SMOOTH</a> = <a class="el" href="namespacesmeshDC.html#e8fab2e03b1a8d462378fe74c57de619">SMESH_MeshEditor.LAPLACIAN_SMOOTH</a><code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="676e25a560cffbde266e642411de6c89"></a><!-- doxytag: member="smeshDC::CENTROIDAL_SMOOTH" ref="676e25a560cffbde266e642411de6c89" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespacesmeshDC.html#676e25a560cffbde266e642411de6c89">smeshDC.CENTROIDAL_SMOOTH</a> = <a class="el" href="namespacesmeshDC.html#676e25a560cffbde266e642411de6c89">SMESH_MeshEditor.CENTROIDAL_SMOOTH</a><code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f13ac029f6502c7c30cf9d57eb799a1b"></a><!-- doxytag: member="smeshDC::VeryCoarse" ref="f13ac029f6502c7c30cf9d57eb799a1b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#f13ac029f6502c7c30cf9d57eb799a1b">smeshDC.VeryCoarse</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="926afa25436fb731b6ad7402f054bb9a"></a><!-- doxytag: member="smeshDC::Coarse" ref="926afa25436fb731b6ad7402f054bb9a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#926afa25436fb731b6ad7402f054bb9a">smeshDC.Coarse</a> = 1<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="b434de550c6237c4896761aa23b9eac3"></a><!-- doxytag: member="smeshDC::Moderate" ref="b434de550c6237c4896761aa23b9eac3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#b434de550c6237c4896761aa23b9eac3">smeshDC.Moderate</a> = 2<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="8633ea7354db60e8ba8bf538280be54a"></a><!-- doxytag: member="smeshDC::Fine" ref="8633ea7354db60e8ba8bf538280be54a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#8633ea7354db60e8ba8bf538280be54a">smeshDC.Fine</a> = 3<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="5c61377a364e30640a40aa6d1a9660e1"></a><!-- doxytag: member="smeshDC::VeryFine" ref="5c61377a364e30640a40aa6d1a9660e1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#5c61377a364e30640a40aa6d1a9660e1">smeshDC.VeryFine</a> = 4<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="8a359232ccf0e37f34296dc3c74fca2c"></a><!-- doxytag: member="smeshDC::Custom" ref="8a359232ccf0e37f34296dc3c74fca2c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="namespacesmeshDC.html#8a359232ccf0e37f34296dc3c74fca2c">smeshDC.Custom</a> = 5<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="f609ee42a882d226c71c6491757c7d86"></a><!-- doxytag: member="smeshDC::NO_NAME" ref="f609ee42a882d226c71c6491757c7d86" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">string <a class="el" href="namespacesmeshDC.html#f609ee42a882d226c71c6491757c7d86">smeshDC.NO_NAME</a> = &quot;NoName&quot;<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 13:26:39 2007 for SALOME - SMESH - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/SMESH/static/doxygen.css b/doc/salome/gui/SMESH/static/doxygen.css
new file mode 100755 (executable)
index 0000000..88e613d
--- /dev/null
@@ -0,0 +1,170 @@
+H1 { 
+   text-align: center; 
+}
+
+CAPTION { 
+   font-weight: bold 
+}
+
+/* Link in the top navbar */
+A.qindex {}
+
+A.qindexRef {}
+
+/* Link to any cross-referenced Doxygen element */
+A.el { 
+   text-decoration: none; 
+   font-weight: bold 
+}
+
+A.elRef { 
+   font-weight: bold 
+}
+
+/* Link to any cross-referenced Doxygen element inside a code section 
+   (ex: header)
+*/
+A.code { 
+   text-decoration: none; 
+   font-weight: normal; 
+   color: #4444ee 
+}
+
+A.codeRef { 
+   font-weight: normal; 
+   color: #4444ee 
+}
+
+A:hover { 
+   text-decoration: none; 
+   background-color: lightblue 
+}
+
+DL.el { 
+   margin-left: -1cm 
+}
+
+/* A code fragment (ex: header) */
+DIV.fragment { 
+   width: 100%; 
+   border: none; 
+   background-color: #CCCCCC 
+}
+
+/* In the alpha list (coumpound index), style of an alphabetical index letter */
+DIV.ah { 
+   background-color: #CCCCCC; 
+   font-weight: bold; 
+   color: #ffffff; 
+   margin-bottom: 3px; 
+   margin-top: 3px 
+}
+
+/* Method name (+ type) */
+TD.md { 
+   background-color: lightblue; 
+   font-weight: bold; 
+}
+
+/* Method parameter (some of them) */
+TD.mdname1 { 
+   background-color: lightblue; 
+   font-weight: bold; color: #602020; 
+}
+
+/* Method parameter (some of them) */
+TD.mdname { 
+   background-color: lightblue; 
+   font-weight: bold; 
+   color: #602020; 
+   width: 600px; 
+}
+
+/* Separator between methods group (usually empty, seems not supported by IE) */
+DIV.groupHeader { 
+   margin-left: 16px; 
+   margin-top: 12px; 
+   margin-bottom: 6px; 
+   font-weight: bold 
+}
+
+DIV.groupText { 
+   margin-left: 16px; 
+   font-style: italic; 
+   font-size: smaller 
+}
+
+BODY { 
+   background: #FFFFFF;
+}
+
+/*div.div-page { 
+  background-color: #FFFFFF; 
+  margin-left: 1em;
+  margin-right: 1em;
+  margin-top: 1em;
+  margin-bottom: 0.1em;
+
+  padding-left: 1em;
+  padding-right: 1em;
+  padding-top: 0.5em;
+  padding-bottom: 0.5em;
+
+  border: 2px solid #0D299A; 
+  border-width: 2px;
+  border-color: #0D299A; 
+}*/
+
+div.tabs { 
+  text-align: justify; 
+  margin-left    : 2px;         
+  margin-right   : 2px;  
+  margin-top     : 2px; 
+  margin-bottom  : 2px
+  font-weight: bold;
+  color: #FFFFFF;
+}
+
+DIV.div-footer { 
+  margin-left: 1em;
+  margin-right: 1em;
+  margin-bottom: 0.2em;
+  text-align: right;
+  font-size: 9pt; 
+}
+
+/* In File List, Coumpound List, etc, 1st column of the index */
+TD.indexkey { 
+   background-color: #CCCCCC; 
+   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  
+}
+
+/* In File List, Coumpound List, etc, 2nd column of the index */
+TD.indexvalue { 
+   background-color: #CCCCCC; 
+   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  
+}
+
+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 }
diff --git a/doc/salome/gui/SMESH/static/footer.html b/doc/salome/gui/SMESH/static/footer.html
new file mode 100755 (executable)
index 0000000..56d52a6
--- /dev/null
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+</head>
+<body>
+<hr style="width: 100%; height: 2px;">
+<div style="text-align: center;">Copyright &copy; 2003-2007 CEA, EDF<br>
+</div>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/static/header.html b/doc/salome/gui/SMESH/static/header.html
new file mode 100755 (executable)
index 0000000..a70a95e
--- /dev/null
@@ -0,0 +1,12 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <title>$title</title>
+   <link href="doxygen.css" rel="stylesheet" type="text/css">
+</head>
+<hr>
+<center>
+SALOME documentation central
+</center>
+<hr>
diff --git a/doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg b/doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg
deleted file mode 100755 (executable)
index a10d494..0000000
Binary files a/doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/transforming_meshes.htm b/doc/salome/gui/SMESH/transforming_meshes.htm
deleted file mode 100755 (executable)
index 4f740bb..0000000
+++ /dev/null
@@ -1,758 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Transforming Meshes</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-h3.whs1 { margin-top:0pt; margin-bottom:0pt; }
-h4.whs2 { margin-top:0pt; margin-bottom:0pt; }
-p.whs3 { font-family:'Lucida Console' , monospace; margin-top:0pt; margin-bottom:0pt; }
-p.whs4 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
-p.whs5 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
-p.whs6 { margin-top:0pt; margin-bottom:0pt; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "h3.whs1 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "h4.whs2 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nTUI Scripts\nTransforming Meshes");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Transforming Meshes</h1>
-
-<h3 class="whs1">Transforming Meshes</h3>
-
-<h4 class="whs2">&nbsp;</h4>
-
-<h4 class="whs2"><a name=bookmark>Translation</a></h4>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4">import SMESH_mechanic</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">smesh 
- = SMESH_mechanic.smesh </span></p>
-
-<p class="whs4">mesh = SMESH_mechanic.mesh 
- </p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># define translation 
- vector</p>
-
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">point 
- = smesh.PointStruct(-150., -150., 0.)</span></p>
-
-<p class="whs4">vector =smesh.DirStruct(point) 
- </p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># translate a mesh</p>
-
-<p class="whs4">doCopy = 1</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">mesh.Translate([], 
- vector, doCopy) &nbsp;</p>
-
-<p class="whs6">&nbsp;</p>
-
-<h4 class="whs2"><a name=bookmark1>Rotation</a></h4>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3">import math</p>
-
-<p class="whs3">import SMESH_mechanic</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">smesh 
- = SMESH_mechanic.smesh</span></p>
-
-<p class="whs3">mesh = SMESH_mechanic.mesh </p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs5"># define rotation axis 
- and angle</p>
-
-<p class="whs3">axisXYZ = smesh.AxisStruct(0., 0., 0., 
- 5., 5., 20.)</p>
-
-<p class="whs3">angle270 = 1.5 * math.pi</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs5"># rotate a mesh</p>
-
-<p class="whs4">mesh.Rotate([], 
- axisXYZ, angle270, 1) &nbsp;</p>
-
-<p class="whs6">&nbsp;</p>
-
-<h4 class="whs2"><a name=bookmark2>Symmetry</a></h4>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3">import math</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3">import SMESH_mechanic</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">smesh 
- = SMESH_mechanic.smesh</span></p>
-
-<p class="whs3">mesh = SMESH_mechanic.mesh </p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs5"># create a symmetrical 
- copy of the mesh mirrored through a point</p>
-
-<p class="whs3">axis = SMESH.AxisStruct(0, 0, 0, 0, 0, 
- 0)</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3">mesh.Mirror([], axis, smesh.POINT, 1) 
- </p>
-
-<p class="whs6">&nbsp;</p>
-
-<h4 class="whs2"><a name=bookmark3>Merging 
- Nodes</a></h4>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4">import SMESH_mechanic</p>
-
-<p class="whs4">mesh = SMESH_mechanic.mesh</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># merge nodes</p>
-
-<p class="whs4">Tolerance = 25.0</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">GroupsOfNodes = 
- &nbsp;mesh.FindCoincidentNodes(Tolerance)</p>
-
-<p class="whs4">mesh.MergeNodes(GroupsOfNodes) 
- &nbsp;</p>
-
-<p class="whs6">&nbsp;</p>
-
-<h4><a name=bookmark8>Merging Elements</a></h4>
-
-<p class="whs4">import salome</p>
-
-<p class="whs4">import geompy</p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a face to 
- be meshed</p>
-
-<p class="whs4">px = geompy.MakeVertex(100., 
- 0. &nbsp;, 0. 
- &nbsp;)</p>
-
-<p class="whs4">py = geompy.MakeVertex(0. 
- &nbsp;, 100., 
- 0. &nbsp;)</p>
-
-<p class="whs4">pz = geompy.MakeVertex(0. 
- &nbsp;, 0. &nbsp;, 
- 100.)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">vxy = geompy.MakeVector(px, 
- py)</p>
-
-<p class="whs4">arc = geompy.MakeArc(py, 
- pz, px)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">wire = geompy.MakeWire([vxy, 
- arc])</p>
-
-<p class="whs4">isPlanarFace = 1</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">face1 = geompy.MakeFace(wire, 
- isPlanarFace)</p>
-
-<p class="whs4">id_face1 = geompy.addToStudy(face1, 
- &quot;Face1&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a circle to 
- be an extrusion path</p>
-
-<p class="whs4">px1 = geompy.MakeVertex( 
- 100., &nbsp;100., 
- &nbsp;0.)</p>
-
-<p class="whs4">py1 = geompy.MakeVertex(-100., 
- -100., &nbsp;0.)</p>
-
-<p class="whs4">pz1 = geompy.MakeVertex( 
- &nbsp;&nbsp;0., 
- &nbsp;&nbsp;&nbsp;0., 
- 50.)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">circle = geompy.MakeCircleThreePnt(py1, 
- pz1, px1)</p>
-
-<p class="whs4">id_circle = geompy.addToStudy(circle, 
- &quot;Path&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a 2D mesh 
- on the face</p>
-
-<p class="whs4">trias = smesh.Mesh(face1, 
- &quot;Face : 2D mesh&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">algo1D = trias.Segment()</p>
-
-<p class="whs4">algo1D.NumberOfSegments(6)</p>
-
-<p class="whs4">algo2D = trias.Triangle()</p>
-
-<p class="whs4">algo2D.LengthFromEdges()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">trias.Compute()</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"># create a path mesh</p>
-
-<p class="whs4">circlemesh = smesh.Mesh(circle, 
- &quot;Path mesh&quot;)</p>
-
-<p class="whs4">algo = circlemesh.Segment()</p>
-
-<p class="whs4">algo.NumberOfSegments(10)</p>
-
-<p class="whs4">circlemesh.Compute()</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"># extrusion of the 
- mesh</p>
-
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">trias.ExtrusionAlongPath([], 
- circlemesh, circle,</span></p>
-
-<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1, 
- 0, [], 0, smesh.PointStruct(0, 0, 0))</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># merge nodes</p>
-
-<p class="whs4">print &quot;Number 
- of nodes before MergeNodes:&quot;, </p>
-
-<p class="whs4">trias.NbNodes()</p>
-
-<p class="whs4">tolerance = 0.001</p>
-
-<p class="whs4">array_of_nodes_groups 
- = trias.FindCoincidentNodes(tolerance)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">trias.MergeNodes(array_of_nodes_groups)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">print &quot;Number 
- of nodes after MergeNodes:&quot;, trias.NbNodes()</p>
-
-<p class="whs4">print &quot;&quot;</p>
-
-<p class="whs4">print &quot;Number 
- of elements before MergeEqualElements:&quot;</p>
-
-<p class="whs4">print &quot;Edges 
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
- &quot;, trias.NbEdges()</p>
-
-<p class="whs4">print &quot;Triangles 
- &nbsp;: &quot;, 
- trias.NbTriangles()</p>
-
-<p class="whs4">print &quot;Quadrangles: 
- &quot;, trias.NbQuadrangles()</p>
-
-<p class="whs4">print &quot;Volumes 
- &nbsp;&nbsp;&nbsp;: 
- &quot;, trias.NbVolumes()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># merge elements</p>
-
-<p class="whs4">trias.MergeEqualElements()</p>
-
-<p class="whs4">print &quot;Number 
- of elements after MergeEqualElements:&quot;</p>
-
-<p class="whs4">print &quot;Edges 
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
- &quot;, trias.NbEdges()</p>
-
-<p class="whs4">print &quot;Triangles 
- &nbsp;: &quot;, 
- trias.NbTriangles()</p>
-
-<p class="whs4">print &quot;Quadrangles: 
- &quot;, trias.NbQuadrangles()</p>
-
-<p class="whs4">print &quot;Volumes 
- &nbsp;&nbsp;&nbsp;: 
- &quot;, trias.NbVolumes()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs4">&nbsp;</p>
-
-<h3>Sewing Meshes</h3>
-
-<h4><a name=bookmark4>Sew Meshes Border to Border</a></h4>
-
-<p class="whs4">import geompy</p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create two faces 
- of a box</p>
-
-<p class="whs4">box1 = geompy.MakeBox(0., 
- 0., -10., 30., 20., 25.)</p>
-
-<p class="whs4">facesList1 = geompy.SubShapeAll(box1, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs4">face1 = facesList1[2]</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">box2 = geompy.MakeBox(0., 
- 5., 0., 20., 20., 15.)</p>
-
-<p class="whs4">facesList2 = geompy.SubShapeAll(box2, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs4">face2 = facesList2[1]</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">edgesList = geompy.SubShapeAll(face2, 
- geompy.ShapeType[&quot;EDGE&quot;])</p>
-
-<p class="whs4">edge1 = edgesList[2]</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">aComp = geompy.MakeCompound([face1, 
- face2])</p>
-
-<p class="whs4">geompy.addToStudy(aComp, 
- &quot;Two faces&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a mesh on 
- two faces</p>
-
-<p class="whs4">mesh = smesh.Mesh(aComp, 
- &quot;Two faces : quadrangle mesh&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">algo1D = mesh.Segment()</p>
-
-<p class="whs4">algo1D.NumberOfSegments(9)</p>
-
-<p class="whs4">algo2D = mesh.Quadrangle()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">algo_local = mesh.Segment(edge1)</p>
-
-<p class="whs4">algo_local.Arithmetic1D(1, 
- 4)</p>
-
-<p class="whs4">algo_local.Propagation()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">mesh.Compute()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># sew border to side</p>
-
-<p class="whs5"># FirstNodeIDOnFreeBorder, 
- SecondNodeIDOnFreeBorder, LastNodeIDOnFreeBorder,</p>
-
-<p class="whs5"># FirstNodeIDOnSide, 
- LastNodeIDOnSide,</p>
-
-<p class="whs5"># CreatePolygons, CreatePolyedrs</p>
-
-<p class="whs4">mesh.SewBorderToSide(5, 
- 45, 6, 113, 109, 0, 0) </p>
-
-<h4><a name=bookmark5>Sew Conform Free Borders</a></h4>
-
-<p class="whs4">import geompy</p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create two faces 
- of the box</p>
-
-<p class="whs4">box1 = geompy.MakeBox(0., 
- 0., -10., 20., 20., 15.)</p>
-
-<p class="whs4">facesList1 = geompy.SubShapeAll(box1, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs4">face1 = facesList1[2]</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">box2 = geompy.MakeBox(0., 
- 5., 0., 20., 20., 15.)</p>
-
-<p class="whs4">facesList2 = geompy.SubShapeAll(box2, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs4">face2 = facesList2[1]</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">edgesList = geompy.SubShapeAll(face2, 
- geompy.ShapeType[&quot;EDGE&quot;])</p>
-
-<p class="whs4">edge1 = edgesList[2]</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">aComp = geompy.MakeCompound([face1, 
- face2])</p>
-
-<p class="whs4">geompy.addToStudy(aComp, 
- &quot;Two faces&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a mesh on 
- two faces</p>
-
-<p class="whs4">mesh = smesh.Mesh(aComp, 
- &quot;Two faces : quadrangle mesh&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">algo1D = mesh.Segment()</p>
-
-<p class="whs4">algo1D.NumberOfSegments(9)</p>
-
-<p class="whs4">algo2D = mesh.Quadrangle()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">algo_local = mesh.Segment(edge1)</p>
-
-<p class="whs4">algo_local.Arithmetic1D(1, 
- 4)</p>
-
-<p class="whs4">algo_local.Propagation()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">mesh.Compute()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># sew conform free 
- borders</p>
-
-<p class="whs5"># FirstNodeID1, SecondNodeID1, 
- LastNodeID1, FirstNodeID2, SecondNodeID2</p>
-
-<p class="whs4">mesh.SewConformFreeBorders(5, 
- 45, 6, 3, 24) &nbsp;</p>
-
-<h4><a name=bookmark6>Sew Free Borders</a></h4>
-
-<p class="whs4">import geompy</p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create two faces 
- of the box</p>
-
-<p class="whs4">box1 = geompy.MakeBox(0., 
- 0., 0., 20., 20., 15.)</p>
-
-<p class="whs4">facesList1 = geompy.SubShapeAll(box1, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs4">face1 = facesList1[2]</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">box2 = geompy.MakeBox(0., 
- 5., 0., 20., 20., 15.)</p>
-
-<p class="whs4">facesList2 = geompy.SubShapeAll(box2, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs4">face2 = facesList2[1]</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">edgesList = geompy.SubShapeAll(face2, 
- geompy.ShapeType[&quot;EDGE&quot;])</p>
-
-<p class="whs4">edge1 = edgesList[2]</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">aComp = geompy.MakeCompound([face1, 
- face2])</p>
-
-<p class="whs4">geompy.addToStudy(aComp, 
- &quot;Two faces&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a mesh on 
- two faces</p>
-
-<p class="whs4">mesh = smesh.Mesh(aComp, 
- &quot;Two faces : quadrangle mesh&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">algo1D = mesh.Segment()</p>
-
-<p class="whs4">algo1D.NumberOfSegments(4)</p>
-
-<p class="whs4">algo2D = mesh.Quadrangle()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">algo_local = mesh.Segment(edge1)</p>
-
-<p class="whs4">algo_local.Arithmetic1D(1, 
- 4)</p>
-
-<p class="whs4">algo_local.Propagation()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">mesh.Compute()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># sew free borders</p>
-
-<p class="whs5"># FirstNodeID1, SecondNodeID1, 
- LastNodeID1,</p>
-
-<p class="whs5"># FirstNodeID2, SecondNodeID2, 
- LastNodeID2, CreatePolygons, CreatePolyedrs</p>
-
-<p class="whs6">mesh.SewFreeBorders(6, 
- 21, 5, 1, 12, 3, 0, 0) </p>
-
-<h4><a name=bookmark7>Sew Side Elements</a></h4>
-
-<p class="whs4">import geompy</p>
-
-<p class="whs4">import smesh</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create two boxes</p>
-
-<p class="whs4">box1 = geompy.MakeBox(0., 
- &nbsp;0., 0., 
- 10., 10., 10.)</p>
-
-<p class="whs4">box2 = geompy.MakeBox(0., 
- 15., 0., 20., 25., 10.)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">EdgesList = geompy.SubShapeAll(box2, 
- geompy.ShapeType[&quot;EDGE&quot;])</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">aComp = geompy.MakeCompound([box1, 
- box2])</p>
-
-<p class="whs4">geompy.addToStudy(aComp, 
- &quot;Two boxes&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># create a mesh on 
- two boxes</p>
-
-<p class="whs4">mesh = smesh.Mesh(aComp, 
- &quot;Two faces : quadrangle mesh&quot;)</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">algo1D = mesh.Segment()</p>
-
-<p class="whs4">algo1D.NumberOfSegments(2)</p>
-
-<p class="whs4">algo2D = mesh.Quadrangle()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">algo_local = mesh.Segment(EdgesList[8])</p>
-
-<p class="whs4">algo_local.NumberOfSegments(4)</p>
-
-<p class="whs4">algo_local.Propagation()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">mesh.Compute()</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"># sew side elements</p>
-
-<p class="whs5"># IDsOfSide1Elements, 
- IDsOfSide2Elements,</p>
-
-<p class="whs5"># NodeID1OfSide1ToMerge, 
- NodeID1OfSide2ToMerge, NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge</p>
-
-<p class="whs4">mesh.SewSideElements([69, 
- 70, 71, 72], [91, 92, 89, 90], 8, 38, 23, 58) </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/transparency.htm b/doc/salome/gui/SMESH/transparency.htm
deleted file mode 100755 (executable)
index ab7df8c..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Transparency</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { margin-left:40px; }
-img_whs2 { border:none; border-style:none; width:354px; height:173px; float:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nViewing meshes\nTransparency");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Transparency</h1>
-
-<p class="whs1"><img src="pics/a-transparency.png" x-maintain-ratio="TRUE" width="354px" height="173px" border="0" class="img_whs2"></p>
-
-<p>&nbsp;</p>
-
-<p>Using this slider you can set the transparency of shading. Absolutely 
- transparent shading will be invisible. By default it is absolutely opaque. 
- &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/viewing_meshes.htm b/doc/salome/gui/SMESH/viewing_meshes.htm
deleted file mode 100755 (executable)
index f2eca5e..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Viewing Meshes</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; margin-top:0pt; margin-bottom:0pt; }
-p.whs2 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nTUI Scripts\nViewing Meshes");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Viewing Meshes</h1>
-
-<h3>Viewing Mesh Infos</h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs1">import smesh</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a box</p>
-
-<p class="whs1">box = geompy.MakeBox(0., 0., 0., 20., 
- 20., 20.)</p>
-
-<p class="whs1">geompy.addToStudy(box, &quot;box&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a mesh</p>
-
-<p class="whs1">tetra = smesh.Mesh(box, &quot;MeshBox&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">algo1D = tetra.Segment()</p>
-
-<p class="whs1">algo1D.NumberOfSegments(3)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">algo2D = tetra.Triangle()</p>
-
-<p class="whs1">algo2D.MaxElementArea(10.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">algo3D = tetra.Tetrahedron(smesh.NETGEN)</p>
-
-<p class="whs1">algo3D.MaxElementVolume(900.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># compute the mesh</p>
-
-<p class="whs1">tetra.Compute()</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># print information 
- about the mesh</p>
-
-<p class="whs1">print &quot;Information about mesh:&quot; 
- </p>
-
-<p class="whs1">print &quot;Number of nodes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
- &quot;, tetra.NbNodes()</p>
-
-<p class="whs1">print &quot;Number of edges &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
- &quot;, tetra.NbEdges()</p>
-
-<p class="whs1">print &quot;Number of faces &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
- &quot;, tetra.NbFaces()</p>
-
-<p class="whs1">print &quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;triangles 
- &nbsp;&nbsp;: 
- &quot;, tetra.NbTriangles()</p>
-
-<p class="whs1">print &quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;quadrangles 
- : &quot;, tetra.NbQuadrangles()</p>
-
-<p class="whs1">print &quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;polygons 
- &nbsp;&nbsp;&nbsp;: 
- &quot;, tetra.NbPolygons()</p>
-
-<p class="whs1">print &quot;Number of volumes &nbsp;&nbsp;&nbsp;&nbsp;: 
- &quot;, tetra.NbVolumes()</p>
-
-<p class="whs1">print &quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tetrahedrons: 
- &quot;, tetra.NbTetras()</p>
-
-<p class="whs1">print &quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hexahedrons 
- : &quot;, tetra.NbHexas()</p>
-
-<p class="whs1">print &quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prisms 
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
- &quot;, tetra.NbPrisms()</p>
-
-<p class="whs1">print &quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pyramids 
- &nbsp;&nbsp;&nbsp;: 
- &quot;, tetra.NbPyramids()</p>
-
-<p class="whs1">print &quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;polyhedrons 
- : &quot;, tetra.NbPolyhedrons() &nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/volume.htm b/doc/salome/gui/SMESH/volume.htm
deleted file mode 100755 (executable)
index bb675f1..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Volume</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
-<!--
-h1.whs1 { font-size:24pt; }
-img_whs2 { border:none; width:30px; height:30px; float:none; border-style:none; }
-p.whs3 { margin-left:40px; }
-img_whs4 { border:none; width:164px; height:199px; border-style:none; }
-img_whs5 { border:none; width:23px; height:25px; border-style:none; }
-p.whs6 { margin-left:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs6 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("MESH module\nQuality controls\nVolume");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1 class="whs1">Volume</h1>
-
-<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 
- criterion reflects the volume of meshes of a 3D object. </p>
-
-<p class="whs3"><img src="image143.gif" width="164px" height="199px" border="0" class="img_whs4"></p>
-
-<p class=TODO
-       style="font-family: 'Arial Black', sans-serif; font-style: italic;">To 
- apply the Volume quality criterion to your mesh:</p>
-
-<p class="whs3">1. Display your mesh in the viewer.</p>
-
-<p class="whs3">2. Choose <span style="font-weight: bold;"><B>Controls 
- &gt; Volume </B></span>or click <img src="image145.gif" width="23px" height="25px" border="0" class="img_whs5"> button in the toolbar. Your 
- mesh will be displayed in the viewer with its elements colored according 
- to the applied mesh quality control criterion:</p>
-
-<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> 
- a sample TUI Script of a <a href="quality_controls.htm#bookmark12"><span 
- style="font-weight: bold;"><B>Volume</B></span> quality control</a> operation. 
- &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/webhelp.cab b/doc/salome/gui/SMESH/webhelp.cab
deleted file mode 100755 (executable)
index b942f64..0000000
Binary files a/doc/salome/gui/SMESH/webhelp.cab and /dev/null differ
diff --git a/doc/salome/gui/SMESH/webhelp.jar b/doc/salome/gui/SMESH/webhelp.jar
deleted file mode 100755 (executable)
index 1d1697e..0000000
Binary files a/doc/salome/gui/SMESH/webhelp.jar and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whcsh_home.htm b/doc/salome/gui/SMESH/whcsh_home.htm
deleted file mode 100755 (executable)
index bc99598..0000000
+++ /dev/null
@@ -1,600 +0,0 @@
-<html>
-<script language="javascript1.2" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-if(gbIE4||gbNav61)
-{
-       document.write("<body></body>");
-}
-else
-{
-       document.write("<frameset rows=\"100%,*\"><frame name=\"data_frm\" src=\"about:blank\"><frame name=\"dumb_frm\" src=\"about:blank\"></frameset>");
-}
-var gCSHFileName="whcshdata.htm";
-
-var gHomePage="index.htm";
-var gaProj=new Array();
-gaProj[0]=new Object();
-gaProj[0].sProjPath=_replaceSlash(_getPath(document.location.href));
-gaProj[0].nLoadState=0;
-var gCurrent=0;
-
-var gsTopicURL="";
-var gnCurProj=0;
-var gnCommand=-1;
-var CMD_SHOWTOC=1;
-var CMD_SHOWINDEX=2;
-var CMD_SHOWSEARCH=3;
-var CMD_SHOWGLOSSARY=4;
-var CMD_SHOWNONE=0;
-
-var RHWO_LOCATION=0x01;                /*need location bar?*/
-var RHWO_MENUBAR=0x02;         /*need menubar?*/               
-var RHWO_RESIZABLE=0x04;       /*resizable window?*/
-var RHWO_TOOLBAR=0x08;         /*need toolbar?*/
-var RHWO_STATUS=0x10;          /*need statusbar?*/
-var RHWO_SCROLLBARS=0x20;      /*need scrollbars?*/
-
-var gsStr="";
-var gnId=-1;
-var gsWindow="";
-var gsJava="false";
-var gbUseStr=false;
-var gbURLReady=false;
-var goWnd=new Object();
-goWnd.sName="whCshDefault";
-goWnd.nBOptions=RHWO_RESIZABLE|RHWO_SCROLLBARS;
-goWnd.sBLeft="49%";
-goWnd.sBTop="0";
-goWnd.sBWidth="49%";
-goWnd.sBHeight="49%";
-goWnd.nPanes=1;
-var goFullWnd=new Object();
-goFullWnd.sName="whDefault";
-goFullWnd.nBOptions=RHWO_RESIZABLE|RHWO_SCROLLBARS;
-goFullWnd.sBLeft="20%";
-goFullWnd.sBTop="0";
-goFullWnd.sBWidth="79%";
-goFullWnd.sBHeight="79%";
-goFullWnd.nPanes=2;
-
-var goNewWnd=null;
-var gbLoadWnd=false;
-var gsURL="";
-
-function showCSH(sParam)
-{
-       //id=
-       //str=
-       //url=
-       //cmd=
-       //with the format #<a=xxx>>b=xxx>>c=xxx...
-       parseParam(sParam);
-       SwitchURL();
-}
-
-function IsWndReady()
-{
-       if(gaProj[0].nLoadState==0)
-       {
-               var sCshFile=_getFullPath(gaProj[0].sProjPath,gCSHFileName);
-               gaProj[0].nLoadState=1;
-               setTimeout("loadFail("+0+");",3000);
-               loadDataCsh(sCshFile);
-               gbLoadWnd=true;
-               return false;
-       }
-       else
-               return true;
-}
-
-function SwitchURL()
-{
-       if(gbURLReady)
-       {
-               var sURL="";
-               var oWnd=null;
-               if(gsTopicURL)
-               {
-                       sURL=_getPath(document.location.href)+gHomePage+"#"+gsTopicURL;
-                       oWnd=goWnd;
-               }
-               else
-               {
-                       if(gnCommand!=-1)
-                               sURL=_getPath(document.location.href)+gHomePage+"#>>cmd="+gnCommand;
-                       else
-                               sURL=_getPath(document.location.href)+gHomePage;
-                       oWnd=goFullWnd;
-               }
-               if(gsWindow)
-               {
-                       if(!IsWndReady())
-                               return false;
-                       if(gaProj[gnCurProj].aWnd)
-                       {
-                               var aWnd=gaProj[gnCurProj].aWnd;
-                               var bFound=false;
-                               for(var i=0;i<aWnd.length;i++)
-                               {
-                                       if(aWnd[i].sName.toLowerCase()==gsWindow.toLowerCase())
-                                       {
-                                               oWnd=aWnd[i];
-                                               bFound=true;
-                                               break;
-                                       }
-                               }
-                               if(!bFound&&gnCurProj!=0)
-                               {
-                                       var aWnd=gaProj[0].aWnd;
-                                       for(var j=0;j<aWnd.length;j++)
-                                       {
-                                               if(aWnd[j].sName.toLowerCase()==gsWindow.toLowerCase())
-                                               {
-                                                       oWnd=aWnd[j];
-                                                       break;
-                                               }
-                                       }
-                               }
-                       }
-               }
-
-               if(sURL&&oWnd)
-               {
-                       strURLOpt="";
-                       if(oWnd.sCaption)
-                               strURLOpt+=">>cap="+oWnd.sCaption;
-                       if(oWnd.nPanes==1)
-                               strURLOpt+=">>pan="+oWnd.nPanes;
-                       else if(oWnd.nPanes==2)
-                       {
-                               strURLOpt+=">>pan="+oWnd.nPanes;
-                               if(oWnd.nPOptions)
-                                       strURLOpt+=">>pot="+oWnd.nPOptions;
-                               if(oWnd.sPButtons)
-                                       strURLOpt+=">>pbs="+oWnd.sPButtons;
-                               if(oWnd.sPDefBtn)
-                                       strURLOpt+=">>pdb="+oWnd.sPDefBtn;
-                       }
-                       if(strURLOpt)
-                       {
-                               if(sURL.indexOf("#")==-1)
-                                       sURL+="#";
-                               sURL+=strURLOpt;
-                       }
-                       if(gsJava=="false")
-                       {
-                               var strOpt=getBrowserOptionString(oWnd);
-                               var sNewName=convertWindowName(oWnd.sName);
-                               if(gbNav4)
-                               {
-                                       if (gbNav6)
-                                       {
-                                               gsURL = sURL;
-                                               goNewWnd=window.open("about:blank",sNewName,strOpt);
-                                               setTimeout("postWindowNSOpen();",100);
-                                       }
-                                       else
-                                       {
-                                               window.open("about:blank",sNewName,strOpt);
-                                               var oNewWnd=window.open(sURL,sNewName);
-                                               window.close();
-                                               oNewWnd.focus();
-                                       }
-                               }
-                               else
-                               {
-                                       if(gbIE5)
-                                       {
-                                               window.open("about:blank",sNewName,strOpt);
-                                               goNewWnd=window.open(sURL,sNewName);
-                                       }
-                                       else
-                                       {
-                                               gsURL = sURL; // IE4 had hard time to handle bookmark.
-                                               goNewWnd=window.open("about:blank",sNewName,strOpt);
-                                       }
-                                       setTimeout("postWindowOpen();",100);
-                               }
-                       }
-                       else
-                               document.location=sURL;
-               }
-       }
-}
-
-function convertWindowName(strName)
-{
-       var strNewName = strName;
-       var strResultName = "";
-       var re=new RegExp("_","g");
-       strNewName = strName.replace(re,"__");
-       for (var i=0;i<strNewName.length;i++)
-               if (!(strNewName[i] == '_' ||
-                       (strNewName[i] <= '9' && strNewName[i] >= '0') ||
-                       (strNewName[i] <= 'z' && strNewName[i] >= 'a') ||
-                       (strNewName[i] <= 'Z' && strNewName[i] >= 'A')))
-               {
-                       strResultName += "_" + strNewName.charCodeAt(i);
-               }
-               else
-                       strResultName += strNewName[i];
-       return strResultName;
-}
-
-function postWindowNSOpen()
-{
-       if(goNewWnd)
-       {
-               if (gsURL)
-                       goNewWnd.document.location.href=gsURL;
-               window.close();
-               goNewWnd.focus();
-       }
-}
-
-function postWindowOpen()
-{
-       if(goNewWnd)
-       {
-               if (gsURL&&!gbIE5&&gbIE4)
-                       goNewWnd.document.location.href=gsURL;
-               goNewWnd.focus();
-       }
-}
-
-function parseParam(sParam)
-{
-       if(sParam)
-       {
-               var nBPos=0;
-               do
-               {
-                       var nPos=sParam.indexOf(">>",nBPos);
-                       if(nPos!=-1)
-                       {
-                               if(nPos>0)
-                               {
-                                       var sPart=sParam.substring(nBPos,nPos);
-                                       parsePart(sPart);
-                               }
-                               nBPos=nPos+2;
-                       }
-                       else
-                       {
-                               var sPart=sParam.substring(nBPos);
-                               parsePart(sPart);
-                               break;
-                       }
-               }while(nBPos<sParam.length);
-       }
-}
-
-function parsePart(sPart)
-{
-       if(sPart.toLowerCase().indexOf("id=")==0)
-       {
-               fetchURLById(sPart.substring(3));
-               gbURLReady=false;
-       }
-       else if(sPart.toLowerCase().indexOf("str=")==0)
-       {
-               fetchURLByStr(sPart.substring(4));
-               gbURLReady=false;
-       }
-       else if(sPart.toLowerCase().indexOf("url=")==0)
-       {
-               gsTopicURL=sPart.substring(4);
-               gbURLReady=true;
-       }
-       else if(sPart.toLowerCase().indexOf("cmd=")==0)
-       {
-               var sCmd=sPart.substring(4);
-               if(sCmd.toLowerCase()=="toc")
-               {
-                       gnCommand=CMD_SHOWTOC;
-               }
-               else if(sCmd.toLowerCase()=="idx")
-               {
-                       gnCommand=CMD_SHOWINDEX;
-               }
-               else if(sCmd.toLowerCase()=="fts")
-               {
-                       gnCommand=CMD_SHOWSEARCH;
-               }
-               else if(sCmd.toLowerCase()=="glo")
-               {
-                       gnCommand=CMD_SHOWGLOSSARY;
-               }
-               else if(sCmd.toLowerCase()=="none")
-               {
-                       gnCommand=CMD_SHOWNONE;
-               }
-               gbURLReady=true;
-       }
-       else if(sPart.toLowerCase().indexOf("wnd=")==0)
-       {
-               gsWindow=_browserStringToText(sPart.substring(4));
-       }
-       else if(sPart.toLowerCase().indexOf("java=")==0)
-       {
-               gsJava=sPart.substring(5);
-       }
-}
-
-function fetchURLById(sId)
-{
-       var nId=parseInt(sId);
-       gsTopicURL="";
-       fetchURL("",nId,false);
-}
-
-function fetchURLByStr(sStr)
-{
-       gsTopicURL="";
-       fetchURL(sStr,0,true);
-}
-
-function fetchURL(sStr,nId,bUseStr)
-{
-       var bNeedLoad=false;
-       var bFound=false;
-       for(var i=0;i<gaProj.length;i++)
-       {
-               if(gaProj[i].nLoadState==3)
-               {
-                       if(gaProj[i].aCsh)
-                       {
-                               for(var j=0;j<gaProj[i].aCsh.length;j++)
-                               {
-                                       var sTopicURL="";
-                                       if(bUseStr)
-                                       {
-                                               if(gaProj[i].aCsh[j].strAliasId.toLowerCase()==sStr.toLowerCase())
-                                                       sTopicURL=gaProj[i].aCsh[j].strUrl;
-                                       }
-                                       else
-                                       {
-                                               if(gaProj[i].aCsh[j].nTopicNum==nId)
-                                                       sTopicURL=gaProj[i].aCsh[j].strUrl;
-                                       }
-                                       if(sTopicURL)
-                                       {
-                                               if(i!=0)
-                                               {
-                                                       gnCurProj=i;
-                                                       if(gaProj[i].sProjPath.indexOf(gaProj[0].sProjPath)==0)
-                                                       {
-                                                               var sRelPath=gaProj[i].sProjPath.substring(gaProj[0].sProjPath.length);
-                                                               gsTopicURL=sRelPath+sTopicURL;
-                                                       }
-                                                       else
-                                                               gsTopicURL=gaProj[i].sProjPath+sTopicURL;
-                                               }
-                                               else
-                                                       gsTopicURL=sTopicURL;
-                                               bFound=true;
-                                               break;
-                                       }
-                               }
-                       }
-                       
-               }
-               else if(gaProj[i].nLoadState==0)
-               {
-                       gsStr=sStr;
-                       gnId=nId;
-                       gbUseStr=bUseStr;
-                       var sCshFile=_getFullPath(gaProj[i].sProjPath,gCSHFileName);
-                       gaProj[i].nLoadState=1;
-                       setTimeout("loadFail("+i+");",3000);
-                       loadDataCsh(sCshFile);
-                       bNeedLoad=true;
-               }
-               if(bFound||bNeedLoad)
-                       break;
-       }
-       if(!bNeedLoad)
-       {
-               gbURLReady=true;
-               SwitchURL();
-       }
-}
-
-function loadDataCsh(sFile)
-{
-       if(gbIE4||gbNav61)
-               loadData(sFile);
-       else
-       {
-               window.frames[0].location=sFile;
-       }
-}
-
-function loadFail(nProj)
-{
-       if(gaProj[nProj].nLoadState==1)
-       {
-               gaProj[nProj].nLoadState=2;
-               if(!gbLoadWnd)
-                       fetchURL(gsStr,gnId,gbUseStr);
-               else
-                       SwitchURL();
-       }
-}
-
-function putCshData(strProj,aCsh,aWnd,aRmtProj)
-{
-       if(strProj)
-       {
-               strProj=_replaceSlash(strProj);
-               if(strProj.lastIndexOf("/")!=strProj.length-1)
-                       strProj+="/";
-               for(var i=0;i<gaProj.length;i++)
-               {
-                       if(gaProj[i].sProjPath)
-                       {
-                               if(isSamePath(gaProj[i].sProjPath,strProj))
-                               {
-                                       gaProj[i].nLoadState=3;
-                                       gaProj[i].aCsh=aCsh;
-                                       gaProj[i].aWnd=aWnd;
-                                       break;
-                               }
-                       }
-               }
-               if(aRmtProj&&aRmtProj.length)
-               {
-                       for(var j=0;j<aRmtProj.length;j++)
-                       {
-                               var strRPath=_getFullPath(strProj,aRmtProj[j]);
-                               var bFound=false;
-                               for (var k=0;k<gaProj.length;k++)
-                               {
-                                       if(gaProj[k].sProjPath)
-                                       {
-                                               if(isSamePath(gaProj[k].sProjPath,strRPath))
-                                               {
-                                                       bFound=true;
-                                                       break;
-                                               }
-                                       }
-                               }
-                               if(!bFound)
-                               {
-                                       var len=gaProj.length;
-                                       gaProj[len]=new Object();
-                                       gaProj[len].sProjPath=strRPath;
-                                       gaProj[len].nLoadState=0;
-                               }
-                       }
-               }
-               if(!gbLoadWnd)
-                       fetchURL(gsStr,gnId,gbUseStr);
-               else
-                       SwitchURL();
-                       
-       }
-}
-
-function isSamePath(strPath1,strPath2)
-{
-       return strPath1.toLowerCase()==strPath2.toLowerCase();
-}
-
-function getRelHomePage(strLocation)
-{
-       var strCurPPath=_getPath(strLocation);
-       var strOriPPath=_getPath(getHomePage());
-       var strRelPath=_getRelativeFileName(strOriPPath,strCurPPath);
-       var strURL=getHomePage()+"#"+strRelPath;
-       return strURL;
-}
-
-function getHomePage()
-{
-       var strHomePage;
-       var strTmp=location.toString();
-       var nPos=strTmp.indexOf("#");
-       if(nPos!=-1)
-       {
-               strHomePage=strTmp.substring(0,nPos);
-       }
-       else
-       {
-               strHomePage=strTmp;
-       }
-       return strHomePage;
-}
-
-function getBrowserOptionString(oWnd)
-{
-       var strOpts="";
-       if(oWnd.bUseDefault)
-               return strOpts;
-       if(oWnd.nBOptions&RHWO_LOCATION)
-               strOpts+="location=yes";
-       else
-               strOpts+="location=no";
-       if(oWnd.nBOptions&RHWO_TOOLBAR)
-               strOpts+=",toolbar=yes";                
-       else
-               strOpts+=",toolbar=no";         
-       if(oWnd.nBOptions&RHWO_MENUBAR)
-               strOpts+=",menubar=yes";                
-       else
-               strOpts+=",menubar=no";
-       if(oWnd.nBOptions&RHWO_STATUS)
-               strOpts+=",status=yes";         
-       else
-               strOpts+=",status=no";          
-       if(oWnd.nBOptions&RHWO_SCROLLBARS)
-               strOpts+=",scrollbars=yes";
-       else
-               strOpts+=",scrollbars=no";      
-       if(oWnd.nBOptions&RHWO_RESIZABLE)
-               strOpts+=",resizable=yes";
-       else
-               strOpts+=",resizable=no";
-       if(oWnd.sBTop)
-       {
-               var nTop=getSValue(oWnd.sBTop,screen.height);
-               strOpts+=",top="+nTop;
-               strOpts+=",screenY="+nTop;
-       }
-       if(oWnd.sBLeft)
-       {
-               var nLeft=getSValue(oWnd.sBLeft,screen.width);
-               strOpts+=",left="+nLeft;
-               strOpts+=",screenX="+nLeft;
-       }
-       if(oWnd.sBWidth)
-       {
-               var nWidth=getSValue(oWnd.sBWidth,screen.width);
-               strOpts+=",width="+nWidth;
-               strOpts+=",outerWidth="+nWidth;
-       }
-       if(oWnd.sBHeight)
-       {
-               var nHeight=getSValue(oWnd.sBHeight,screen.height);
-               strOpts+=",height="+nHeight;
-               strOpts+=",outerHeight="+nHeight;
-       }
-       return strOpts;
-}
-
-function getSValue(sValue,nLength)
-{
-       var nValue=0;
-       var nPos=sValue.indexOf("%");
-       if(nPos!=-1)
-       {
-               if(nPos>0)
-               {
-                       var nPart=parseInt(sValue.substring(0,nPos));
-                       nValue=nLength*nPart/100;
-               }
-       }
-       else
-               nValue=parseInt(sValue);
-       return nValue;
-}
-
-
-window.onload=window_OnLoad;
-
-function window_OnLoad()
-{
-       if(document.location.hash.length>0)
-       {
-               showCSH(document.location.hash.substring(1));
-       }
-
-       if(gsJava=="false")
-               window.moveTo(screen.width,screen.height);
-}
-//-->
-</script>
-</html>
diff --git a/doc/salome/gui/SMESH/whcshdata.htm b/doc/salome/gui/SMESH/whcshdata.htm
deleted file mode 100755 (executable)
index a219839..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-<script language="javascript1.2" src="whver.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="JavaScript">
-<!--
-var gaCsh=new Array();
-
-var gaWindow=new Array();
-
-var gaRmtProj=new Array();
-
-var gsProjPath=_getPath(document.location.href);
-
-function CshEntityItem(strAliasId,nTopicNum,strUrl)
-{
-       this.strAliasId=strAliasId;
-       this.nTopicNum=nTopicNum;
-       this.strUrl=strUrl;
-}
-
-function CshWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn)
-{
-       this.sName=sWName;
-       this.bUseDefault=bBUseDefault;
-       if(!this.bUseDefault)
-       {
-               this.nBOptions=nWBOptions;
-               this.sBLeft=sWBLeft;
-               this.sBTop=sWBTop;
-               this.sBWidth=sWBWidth;
-               this.sBHeight=sWBHeight;
-       }
-       this.sCaption=sWCaption;
-       this.nPanes=nWPanes;
-       if(this.nPanes==2)
-       {
-               this.nPOptions=nWPOptions;
-               this.sPButtons=sWPButtons;
-               this.sPDefBtn=sWPDefBtn;
-       }
-}
-
-function addRemoteProject(sPath)
-{
-       if(sPath.length!=0)
-       {
-               if(sPath.lastIndexOf("/")!=sPath.length-1)
-                       sPath+="/";
-               gaRmtProj[gaRmtProj.length]=sPath;      
-       }
-}
-
-//Set Context-sensitive help entity...
-function SetCsh(n,strAliasId,nTopicNum,strUrl)
-{
-       gaCsh[n]=new CshEntityItem(strAliasId,nTopicNum,strUrl);
-}
-
-function addWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn)
-{
-       gaWindow[gaWindow.length]=new CshWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn);
-}
-
-
-
-
-
-window.onload=window_OnLoad;
-
-function window_OnLoad()
-{
-       if(parent&&parent!=this&&parent.putCshData)
-       {
-               parent.putCshData(gsProjPath,gaCsh,gaWindow,gaRmtProj);
-       }
-}
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/whd_dpns.htm b/doc/salome/gui/SMESH/whd_dpns.htm
deleted file mode 100755 (executable)
index 3983ccb..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<html>
-<head>
-<title>Navigator Pane</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body border=0 topmargin=0 bottommargin=0 rightmargin=0 leftmargin=0 scroll=no>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whphost.js"></script>
-<script language="javascript1.2">
-<!--
-var gsNavReDirect="whgdata/whnvp30.htm";
-var gbReDirectThis=false;
-  var bPreferXML             = false;
-  var strProjectFileXML =  "whproj.xml";
-  var strProjectFileHTM =  "whproj.htm";       
-if(window.gbWhPHost)
-{
-         addProject(bPreferXML, strProjectFileXML, strProjectFileHTM);
-         addPane("toc","whtdhtml.htm");
-  addPane("fts","whfdhtml.htm");
-  addPane("glo","whgdhtml.htm");
-  setShowPane("toc");
-
-}
-else
-       document.location.reload();
-
-if (window.gbNav6)
-{
-       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);
-       SendMessage(oMsg);
-}
-
-//-->
-</script>
-</body>
-</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
deleted file mode 100755 (executable)
index 97ea0bb..0000000
Binary files a/doc/salome/gui/SMESH/whd_hide0.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_hide1.gif b/doc/salome/gui/SMESH/whd_hide1.gif
deleted file mode 100755 (executable)
index 97ea0bb..0000000
Binary files a/doc/salome/gui/SMESH/whd_hide1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_hide2.gif b/doc/salome/gui/SMESH/whd_hide2.gif
deleted file mode 100755 (executable)
index 97ea0bb..0000000
Binary files a/doc/salome/gui/SMESH/whd_hide2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_next0.gif b/doc/salome/gui/SMESH/whd_next0.gif
deleted file mode 100755 (executable)
index d92dda5..0000000
Binary files a/doc/salome/gui/SMESH/whd_next0.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_next1.gif b/doc/salome/gui/SMESH/whd_next1.gif
deleted file mode 100755 (executable)
index d92dda5..0000000
Binary files a/doc/salome/gui/SMESH/whd_next1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_next2.gif b/doc/salome/gui/SMESH/whd_next2.gif
deleted file mode 100755 (executable)
index d92dda5..0000000
Binary files a/doc/salome/gui/SMESH/whd_next2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_nvp10.htm b/doc/salome/gui/SMESH/whd_nvp10.htm
deleted file mode 100755 (executable)
index 05b5f90..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<html>
-<head>
-<title>Navigation Pane</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-</head>
-<frameset rows="30, *" border="0" frameborder="0">
-       <frame name="navtabs" title="tab selection frame" src="whd_tabs.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>
-       <frame name="navpane" title="navigation frame" src="whd_dpns.htm" ></frame>
-</frameset>
-</html>
diff --git a/doc/salome/gui/SMESH/whd_nvp20.htm b/doc/salome/gui/SMESH/whd_nvp20.htm
deleted file mode 100755 (executable)
index 23c23dc..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-<html>
-<head>
-<title>navigation pane</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-var gsInitPane="toc";
-var gsCurrentPane="";
-var gbLoading = "unknown";
-var gbTryTime = 0;
-var gbMaxTryTime = 6;
-var gbPassPhase0 = 0;
-var gbretried = 0;
-var gbmaxretry = 3;
-var gbretrytime = new Array();
-
-var origWidth = 0;
-var origHeight = 0;
-
-gbretrytime[0]= 5000;
-gbretrytime[1]= 30000;
-gbretrytime[2]= 60000;
-
-function addPane(sName, sFile)
-{
-}
-
-function setShowPane(sName)
-{
-       gsInitPane=sName;
-}
-
-  addPane("toc","whtdhtml.htm");
-  addPane("fts","whfdhtml.htm");
-  addPane("glo","whgdhtml.htm");
-  setShowPane("toc");
-
-
-function window_unload()
-{
-       UnRegisterListener2(this, WH_MSG_SHOWTOC);
-       UnRegisterListener2(this, WH_MSG_SHOWIDX);
-       UnRegisterListener2(this, WH_MSG_SHOWFTS);
-       UnRegisterListener2(this, WH_MSG_SHOWGLO);
-       UnRegisterListener2(this, WH_MSG_SYNCTOC);
-       UnRegisterListener2(this, WH_MSG_SEARCHTHIS);
-       UnRegisterListener2(this, WH_MSG_GETPANEINFO);
-}
-
-function window_OnLoad()
-{
-       var bHidePane=false;
-       var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);
-       if (SendMessage(oMsg))
-       {
-               if(oMsg.oParam>0)
-               {
-                       if(oMsg.oParam==1)
-                               gsInitPane="toc";
-                       else if(oMsg.oParam==2)
-                               gsInitPane="idx";
-                       else if(oMsg.oParam==3)
-                               gsInitPane="fts";
-                       else if(oMsg.oParam==4)
-                               gsInitPane="glo";
-               }
-               else if(oMsg.oParam==0)
-               {
-                       bHidePane=true;
-               }
-       }
-       if (bHidePane)
-       {
-               oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null)
-               SendMessage(oMsg);
-       }
-       else if (gsInitPane == "toc")
-       {
-               oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)
-               SendMessage(oMsg);      
-       }
-       else if (gsInitPane=="idx")
-       {
-               oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)
-               SendMessage(oMsg);      
-       }
-       else if (gsInitPane=="fts")
-       {
-               oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)
-               SendMessage(oMsg);      
-       }
-       else if (gsInitPane=="glo")
-       {
-               oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)
-               SendMessage(oMsg);      
-       }
-}
-
-function CheckLoadingPhase0()
-{
-       if (!gbPassPhase0) {
-               setTimeout("CheckLoadingPhase0()", 1000);
-               document.applets[0];
-               gbPassPhase0 = 1;
-       }
-       else {
-               CheckLoadingPhase1();
-       }
-}
-
-function CheckLoadingPhase1()
-{
-       if (gbNav4) {
-               if ("unknown" == gbLoading && document.readystate < 4) {
-                       setTimeout("CheckLoadingPhase1()", 1000);
-               }
-               else if ("unknown" == gbLoading) {
-                       CheckLoadingPhase2();
-               }
-       }
-}
-
-function CheckLoadingPhase2()
-{
-       if (gbNav4) {
-               gbTryTime ++;
-               if ("unknown" == gbLoading) {
-                       if (gbTryTime <= gbMaxTryTime )
-                               setTimeout("CheckLoadingPhase2()", 1000);
-                       else {
-                               if (gnVerMinor != 4.60) {
-                                       alert("Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited.");
-                               }
-                       }       
-               }
-       }
-}
-
-function CheckAppletLoaded()
-{
-       if (typeof(document.webhelp) == "undefined")
-       {
-               document.location.reload();
-               if (gbretried < gbmaxretry)
-               {
-                       gbretried ++;
-                       setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);
-               }
-       }
-}
-
-function reDo() 
-{
-       if (innerWidth != origWidth || innerHeight != origHeight)  
-       {
-               //reloaded applet if nessary
-               gbretried = 0;
-
-               if (gnVerMinor == 4.60) 
-               {
-                       //reload the applet again.
-                       document.location.reload();
-                       gbretried ++;
-               }
-               setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);
-       }
-}
-
-function onSendMessage(oMsg)
-{
-       if (oMsg)
-       {       
-               var nMsgId = oMsg.nMessageId;
-               var WebHelpApplet = null;
-               if (gbNav4)
-               {
-                       WebHelpApplet = document.applets["WebHelp"];
-                       if (!WebHelpApplet.Command)
-                               document.location="whgdata/whnvp30.htm";
-               }
-               else
-                       WebHelpApplet = WebHelp;
-
-               if(nMsgId==WH_MSG_GETPANEINFO)
-               {
-                       oMsg.oParam=gsCurrentPane;
-                       return false;
-               }
-               else if (gbLoading!="unknown"||gbNav6)
-               {
-                       if (nMsgId == WH_MSG_SHOWTOC)
-                       {
-                               gsCurrentPane="toc";
-                               WebHelpApplet .Command("Contents", null);
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");
-                               SendMessage(onMsg);
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                               SendMessage(onMsg);
-                       }
-                       else if (nMsgId == WH_MSG_SHOWIDX)
-                       {
-                               gsCurrentPane="idx";
-                               WebHelpApplet .Command("Index", null);
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");
-                               SendMessage(onMsg);
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                               SendMessage(onMsg);
-                       }
-                       else if (nMsgId == WH_MSG_SHOWFTS)
-                       {
-                               gsCurrentPane="fts";
-                               WebHelpApplet .Command("Search", null);
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");
-                               SendMessage(onMsg);
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                               SendMessage(onMsg);
-                       }
-                       else if (nMsgId == WH_MSG_SHOWGLO)
-                       {
-                               gsCurrentPane="glo";
-                               WebHelpApplet .Command("Glossary", null);
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");
-                               SendMessage(onMsg);
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                               SendMessage(onMsg);
-                       }
-                       else if (nMsgId == WH_MSG_SYNCTOC)
-                       {
-                               gsCurrentPane="toc";
-                               var oTopicParam = oMsg.oParam;
-                               if (oTopicParam && oTopicParam.aPaths && oTopicParam.aPaths.length > 0 && oTopicParam.sPPath)
-                               {
-                                       var sPPath = _browserStringToText(oTopicParam.sPPath);
-                                       var sParam = "";
-                                       for (var i = 0; i < oTopicParam.aPaths.length; i ++)
-                                       {
-                                               sParam += oTopicParam.aPaths[i] + "\r\r";
-                                       }
-                                       WebHelpApplet.Command("SyncToc", sPPath,  sParam);
-                               }
-                       }
-                       else if(nMsgId==WH_MSG_SEARCHTHIS)
-                       {
-                               gsCurrentPane="fts";
-                               WebHelpApplet .Command("Search", oMsg.oParam);
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");
-                               SendMessage(onMsg);
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                               SendMessage(onMsg);
-                       }
-               }
-       }
-       return true;
-}
-
-function getInitTocInfo()
-{
-       // send message ask for the first time sync toc info.
-       var oParam = new Object();
-       oParam.oTocInfo = null;
-       var oMsg = new whMessage(WH_MSG_GETTOCPATHS, this, 1, oParam);
-       if (SendMessage(oMsg ))
-       {
-               var oTopicParam = oMsg.oParam.oTocInfo;
-               if (oTopicParam && oTopicParam.aPaths && oTopicParam.aPaths.length > 0 && oTopicParam.sPPath)
-               {
-                       var sPPath = _browserStringToText(oTopicParam.sPPath);
-                       var sParam = "";
-                       for (var i = 0; i < oTopicParam.aPaths.length; i ++)
-                       {
-                               sParam += oTopicParam.aPaths[i] + "\r\r";
-                       }
-                       var WebHelpApplet;
-                       if (gbNav4)
-                               WebHelpApplet = document.applets["WebHelp"];
-                       else
-                               WebHelpApplet = WebHelp;
-                       WebHelpApplet.Command("SyncToc", sPPath,  sParam);
-               }
-       }
-}
-
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
-{
-       RegisterListener2(this, WH_MSG_SHOWTOC);
-       RegisterListener2(this, WH_MSG_SHOWIDX);
-       RegisterListener2(this, WH_MSG_SHOWFTS);
-       RegisterListener2(this, WH_MSG_SHOWGLO);
-       RegisterListener2(this, WH_MSG_SYNCTOC);
-       RegisterListener2(this, WH_MSG_SEARCHTHIS);
-       RegisterListener2(this, WH_MSG_GETPANEINFO);
-
-       window.onunload = window_unload;
-       window.onload=window_OnLoad;
-       window.onerror = null;
-       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));
-
-       if (gbNav4 && !gbNav6 && gbWindows) {
-               setTimeout("CheckLoadingPhase0()", 1000);
-       }
-
-       if (gbNav4) 
-       {
-               origWidth = innerWidth;
-               origHeight = innerHeight;
-               onresize = reDo;
-       }
-}
-else
-       document.location.reload();
-
-if (window.gbNav6)
-{
-       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);
-       SendMessage(oMsg);
-}
-
-//-->
-</script>
-</head>
-<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" bgcolor="c0c0c0">
-<applet code=WebHelp.class name=WebHelp  archive=webhelp.jar width=100% height=100% MAYSCRIPT hspace=0 vspace=0>
-<PARAM name=ProjectFile value=whproj.xml><PARAM name=ResourceFile value=whres.xml>
-<PARAM name=Frame value=bsscright>
-<PARAM name=cabbase value=webhelp.cab>
-</applet>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/whd_prev0.gif b/doc/salome/gui/SMESH/whd_prev0.gif
deleted file mode 100755 (executable)
index 518561a..0000000
Binary files a/doc/salome/gui/SMESH/whd_prev0.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_prev1.gif b/doc/salome/gui/SMESH/whd_prev1.gif
deleted file mode 100755 (executable)
index 518561a..0000000
Binary files a/doc/salome/gui/SMESH/whd_prev1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_prev2.gif b/doc/salome/gui/SMESH/whd_prev2.gif
deleted file mode 100755 (executable)
index 518561a..0000000
Binary files a/doc/salome/gui/SMESH/whd_prev2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_show0.gif b/doc/salome/gui/SMESH/whd_show0.gif
deleted file mode 100755 (executable)
index 60e8e68..0000000
Binary files a/doc/salome/gui/SMESH/whd_show0.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_show1.gif b/doc/salome/gui/SMESH/whd_show1.gif
deleted file mode 100755 (executable)
index 60e8e68..0000000
Binary files a/doc/salome/gui/SMESH/whd_show1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_show2.gif b/doc/salome/gui/SMESH/whd_show2.gif
deleted file mode 100755 (executable)
index 60e8e68..0000000
Binary files a/doc/salome/gui/SMESH/whd_show2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_sync0.gif b/doc/salome/gui/SMESH/whd_sync0.gif
deleted file mode 100755 (executable)
index 1a9785c..0000000
Binary files a/doc/salome/gui/SMESH/whd_sync0.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_sync1.gif b/doc/salome/gui/SMESH/whd_sync1.gif
deleted file mode 100755 (executable)
index 1a9785c..0000000
Binary files a/doc/salome/gui/SMESH/whd_sync1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_sync2.gif b/doc/salome/gui/SMESH/whd_sync2.gif
deleted file mode 100755 (executable)
index 1a9785c..0000000
Binary files a/doc/salome/gui/SMESH/whd_sync2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_tab0.gif b/doc/salome/gui/SMESH/whd_tab0.gif
deleted file mode 100755 (executable)
index 955c42f..0000000
Binary files a/doc/salome/gui/SMESH/whd_tab0.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_tab1.gif b/doc/salome/gui/SMESH/whd_tab1.gif
deleted file mode 100755 (executable)
index b3ec41d..0000000
Binary files a/doc/salome/gui/SMESH/whd_tab1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_tab2.gif b/doc/salome/gui/SMESH/whd_tab2.gif
deleted file mode 100755 (executable)
index 08fb0ce..0000000
Binary files a/doc/salome/gui/SMESH/whd_tab2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_tab3.gif b/doc/salome/gui/SMESH/whd_tab3.gif
deleted file mode 100755 (executable)
index 1819c8e..0000000
Binary files a/doc/salome/gui/SMESH/whd_tab3.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_tab4.gif b/doc/salome/gui/SMESH/whd_tab4.gif
deleted file mode 100755 (executable)
index 1a6fc4f..0000000
Binary files a/doc/salome/gui/SMESH/whd_tab4.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_tab5.gif b/doc/salome/gui/SMESH/whd_tab5.gif
deleted file mode 100755 (executable)
index 9340192..0000000
Binary files a/doc/salome/gui/SMESH/whd_tab5.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_tab6.gif b/doc/salome/gui/SMESH/whd_tab6.gif
deleted file mode 100755 (executable)
index fe312d2..0000000
Binary files a/doc/salome/gui/SMESH/whd_tab6.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_tab7.gif b/doc/salome/gui/SMESH/whd_tab7.gif
deleted file mode 100755 (executable)
index 3b95ae2..0000000
Binary files a/doc/salome/gui/SMESH/whd_tab7.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_tab8.gif b/doc/salome/gui/SMESH/whd_tab8.gif
deleted file mode 100755 (executable)
index c80acc8..0000000
Binary files a/doc/salome/gui/SMESH/whd_tab8.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_tabs.htm b/doc/salome/gui/SMESH/whd_tabs.htm
deleted file mode 100755 (executable)
index e8c498c..0000000
+++ /dev/null
@@ -1,533 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>WebHelp Tabs Frame in Navigation Pane</TITLE>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<!-- WebHelp version 5.10 -->
-</HEAD>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-var gsBgColor="#c0c0c0"
-var gsBgImage="";
-var gnCurPane=0;
-var gsFirstPane="";
-var goTocFont=null;
-var goIdxFont=null;
-var goFtsFont=null;
-var goGloFont=null;
-var gPane=new Array();
-var gShowFirst=0;
-var gnTabType=0;
-
-function window_unload()
-{
-       UnRegisterListener2(this,WH_MSG_SHOWTOC);
-       UnRegisterListener2(this,WH_MSG_SHOWIDX);
-       UnRegisterListener2(this,WH_MSG_SHOWFTS);
-       UnRegisterListener2(this,WH_MSG_SHOWGLO);
-}
-
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       if(sType=="Toc") goTocFont=vFont;
-       else if(sType=="Idx") goIdxFont=vFont;
-       else if(sType=="Fts") goFtsFont=vFont;
-       else if(sType=="Glo") goGloFont=vFont;
-}
-
-function TocWriteClassStyle()
-{
-       var sStyle="<STYLE TYPE='text/css'>";
-       sStyle+=".TextTabToc {"+getFontStyle(goTocFont)+"}";
-       sStyle+=".TextTabIdx {"+getFontStyle(goIdxFont)+"}";
-       sStyle+=".TextTabFts {"+getFontStyle(goFtsFont)+"}";
-       sStyle+=".TextTabGlo {"+getFontStyle(goGloFont)+"}";
-       sStyle+="A:hover {text-decoration:underline;}";
-       sStyle+="</STYLE>";
-       document.write(sStyle);
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       if(sBgColor!=null&&sBgColor.length>0)
-               gsBgColor=sBgColor;
-}
-
-function setBackground(sBgImage)
-{
-       if(sBgImage!=null&&sBgImage.length>0)
-               gsBgImage=sBgImage;
-}
-
-function selectToc()
-{
-       var oMessage=new whMessage(WH_MSG_SHOWTOC,this,1,null);
-       SendMessage(oMessage);
-}
-
-function selectIdx()
-{
-       var oMessage=new whMessage(WH_MSG_SHOWIDX,this,1,null);
-       SendMessage(oMessage);
-}
-function selectFts()
-{
-       var oMessage=new whMessage(WH_MSG_SHOWFTS,this,1,null);
-       SendMessage(oMessage);
-}
-
-function selectGlo()
-{
-       var oMessage=new whMessage(WH_MSG_SHOWGLO,this,1,null);
-       SendMessage(oMessage);
-}
-
-
-function onSendMessage(oMsg)
-{
-       if(oMsg)
-       {
-               var nMsgId=oMsg.nMessageId;
-               if(nMsgId==WH_MSG_SHOWTOC)
-               {
-                       setTimeout("showTabByName(\"toc\");",1);
-               }
-               else if(nMsgId==WH_MSG_SHOWIDX)
-               {
-                       setTimeout("showTabByName(\"idx\");",1);
-               }
-               else if(nMsgId==WH_MSG_SHOWFTS)
-               {
-                       setTimeout("showTabByName(\"fts\");",1);
-               }
-               else if(nMsgId==WH_MSG_SHOWGLO)
-               {
-                       setTimeout("showTabByName(\"glo\");",1);
-               }
-       }
-       return true;
-}
-
-function showTabByName(sTabName)
-{
-       for(var i=0;i<gPane.length;i++)
-       {
-               if(gPane[i]==sTabName)
-               {
-                       showTab(i);
-                       break;
-               }
-       }
-}
-
-function showTab(n)
-{
-       gnCurPane=n;
-       if(gnTabType==0)
-       {
-               if(n<gPane.length)
-               {
-                       if(document.images["TocTab"]&&document.images["TocTab"]!=null){
-                               if(gPane[n]=="toc")
-                                       document.images["TocTab"].src=getBtnImage("toc",1);
-                               else
-                                       document.images["TocTab"].src=getBtnImage("toc",0);
-                       }
-                       if(document.images["IndexTab"]&&document.images["IndexTab"]!=null){
-                               if(gPane[n]=="idx")
-                                       document.images["IndexTab"].src=getBtnImage("idx",1);
-                               else
-                                       document.images["IndexTab"].src=getBtnImage("idx",0);
-                       }
-                       if(document.images["FtsTab"]&&document.images["FtsTab"]!=null){
-                               if(gPane[n]=="fts")
-                                       document.images["FtsTab"].src=getBtnImage("fts",1);
-                               else
-                                       document.images["FtsTab"].src=getBtnImage("fts",0);
-                       }
-                       if(document.images["GloTab"]&&document.images["GloTab"]!=null){
-                               if(gPane[n]=="glo")
-                                       document.images["GloTab"].src=getBtnImage("glo",1);
-                               else
-                                       document.images["GloTab"].src=getBtnImage("glo",0);
-                       }
-               }
-       }
-       else if(gnTabType==1)
-       {
-       }
-       else if(gnTabType==2)
-       {
-               if(n<gPane.length)
-               {
-                       if(document.images["tabSelection"]!=null)
-                               document.images["tabSelection"].src=getMapImage(gPane[n]);
-               }
-       }
-}
-
-function addPane(sName)
-{
-       gPane[gPane.length]=sName;
-}
-
-function setShowPane(sName)
-{
-       if(gsFirstPane!="")
-               sName=gsFirstPane;
-       for(var i=0;i<gPane.length;i++)
-       {
-               if(gPane[i]==sName)
-                       gShowFirst=i;
-       }
-}
-
-function selectDefaultTab()
-{
-       showTab(gShowFirst);
-       if(document.body)
-       {
-               if(gsBgImage&&gsBgImage.length>0)
-               {
-                       document.body.background=gsBgImage;
-               }
-               if(gsBgColor&&gsBgColor.length>0)
-               {
-                       document.body.bgColor=gsBgColor;
-               }
-       }
-}
-
-function getTabsHTML()
-{
-       var sHTML="";
-       for(var i=0;i<gPane.length;i++)
-       {
-               if(gnTabType==0)
-                       sHTML+=getTabHTML(gPane[i]);
-               else if(gnTabType==1)
-               {
-                       if(sHTML.length>0)
-                       {
-                               sHTML+=getSeparator();
-                       }
-                       sHTML+=getTabHTMLText(gPane[i]);
-               }
-
-       }
-       return sHTML;
-}
-
-function getSeparator()
-{
-       var sSep="";
-       
-       return sSep;
-}
-
-function getTabHTML(sTabName)
-{
-       if (sTabName == "toc")
-               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>";
-       else if (sTabName =="idx")
-               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>";
-       else if (sTabName == "fts")
-               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>";
-       else if (sTabName == "glo")
-               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>";
-       return "";
-}
-
-function mouseOverToc()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "toc")
-       {
-               sImg = getBtnImage("toc", 3);
-       }
-       else
-       {
-               sImg = getBtnImage("toc", 2);
-       }
-       if (sImg.length > 0)
-               document.images["TocTab"].src = sImg;
-}
-
-function mouseOverIdx()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "idx")
-       {
-               sImg = getBtnImage("idx", 3);
-       }
-       else
-       {
-               sImg = getBtnImage("idx", 2);
-       }
-       if (sImg.length > 0)
-               document.images["IndexTab"].src = sImg;
-}
-
-function mouseOverFts()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "fts")
-       {
-               sImg = getBtnImage("fts", 3);
-       }
-       else
-       {
-               sImg = getBtnImage("fts", 2);
-       }
-       if (sImg.length > 0)
-               document.images["FtsTab"].src = sImg;
-}
-
-function mouseOverGlo()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "glo")
-       {
-               sImg = getBtnImage("glo", 3);
-       }
-       else
-       {
-               sImg = getBtnImage("glo", 2);
-       }
-       if (sImg.length > 0)
-               document.images["GloTab"].src = sImg;
-}
-
-function mouseOutToc()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "toc")
-       {
-               sImg = getBtnImage("toc", 1);
-       }
-       else
-       {
-               sImg = getBtnImage("toc", 0);
-       }
-       if (sImg.length > 0)
-               document.images["TocTab"].src = sImg;
-}
-
-function mouseOutIdx()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "idx")
-       {
-               sImg = getBtnImage("idx", 1);
-       }
-       else
-       {
-               sImg = getBtnImage("idx", 0);
-       }
-       if (sImg.length > 0)
-               document.images["IndexTab"].src = sImg;
-}
-
-function mouseOutFts()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "fts")
-       {
-               sImg = getBtnImage("fts", 1);
-       }
-       else
-       {
-               sImg = getBtnImage("fts", 0);
-       }
-       if (sImg.length > 0)
-               document.images["FtsTab"].src = sImg;
-}
-
-function mouseOutGlo()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "glo")
-       {
-               sImg = getBtnImage("glo", 1);
-       }
-       else
-       {
-               sImg = getBtnImage("glo", 0);
-       }
-       if (sImg.length > 0)
-               document.images["GloTab"].src = sImg;
-}
-
-function getTabHTMLText(sTabName)
-{
-       if (sTabName == "toc")
-               return "<a class=\"TextTabToc\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\">Contents</a>&nbsp;";
-       else if (sTabName =="idx")
-               return "<a class=\"TextTabIdx\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\">Index</a>&nbsp;";
-       else if (sTabName == "fts")
-               return "<a class=\"TextTabFts\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\">Search</a>&nbsp;";
-       else if (sTabName == "glo")
-               return "<a class=\"TextTabGlo\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\">Glossary</a>&nbsp;";
-       return "";
-}
-
-function getImageMap()
-{
-       var sHTML = "<map name=\"tabSelectionMap\">";
-       for (var i = 0; i < gPane.length; i ++)
-       {
-               sHTML += getMapArea(gPane[i]);
-       }
-       sHTML += "</map>";
-       return sHTML;
-}
-
-function getMapArea(sTabName)
-{
-       if (sTabName == "toc")
-               return "<area title=\"Contents\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\">";
-       else if (sTabName =="idx")
-               return "<area title=\"Index\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\">";
-       else if (sTabName == "fts")
-               return "<area title=\"Search\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\">";
-       else if (sTabName == "glo")
-               return "<area title=\"Glossary\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\">";
-       return "";
-}
-
-function getBtnImage(sTabName, nStatus)
-{
-       if (sTabName == "toc")
-       {
-               if (nStatus == 0)
-                       return "whd_tab2.gif";
-               else if (nStatus == 1)
-                       return "whd_tab1.gif";
-               else if (nStatus == 2)
-                       return "";
-               else if (nStatus == 3)
-                       return "";
-       }
-       else if (sTabName =="idx")
-       {
-               if (nStatus == 0)
-                       return "whd_tab4.gif";
-               else if (nStatus == 1)
-                       return "whd_tab3.gif";
-               else if (nStatus == 2)
-                       return "";
-               else if (nStatus == 3)
-                       return "";
-       }
-       else if (sTabName == "fts")
-       {
-               if (nStatus == 0)
-                       return "whd_tab6.gif";
-               else if (nStatus == 1)
-                       return "whd_tab5.gif";
-               else if (nStatus == 2)
-                       return "";
-               else if (nStatus == 3)
-                       return "";
-       }
-       else if (sTabName == "glo")
-       {
-               if (nStatus == 0)
-                       return "whd_tab8.gif";
-               else if (nStatus == 1)
-                       return "whd_tab7.gif";
-               else if (nStatus == 2)
-                       return "";
-               else if (nStatus == 3)
-                       return "";
-       }
-       return "";
-}
-
-function getMapImage(sTabName)
-{
-       if (sTabName == "toc")
-               return "";
-       else if (sTabName =="idx")
-               return "";
-       else if (sTabName == "fts")
-               return "";
-       else if (sTabName == "glo")
-               return "";
-       return "";
-}
-
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
-{
-       window.onload = selectDefaultTab;
-       RegisterListener2(this, WH_MSG_SHOWTOC);
-       RegisterListener2(this, WH_MSG_SHOWIDX);
-       RegisterListener2(this, WH_MSG_SHOWFTS);
-       RegisterListener2(this, WH_MSG_SHOWGLO);
-       window.onunload = window_unload;
-       goTocFont=new whFont("Arial","9pt","#000000","normal","normal","none");
-       goIdxFont=new whFont("Arial","9pt","#000000","normal","normal","none");
-       goFtsFont=new whFont("Arial","9pt","#000000","normal","normal","none");
-       goGloFont=new whFont("Arial","9pt","#000000","normal","normal","none");
-
-       if (navigator.currentNavPen)
-               gsFirstPane = navigator.currentNavPen;
-
-       setBackgroundcolor("");
-       setBackground("whd_tab0.gif");
-       
-       
-       
-       
-         addPane("toc","whtdhtml.htm");
-  addPane("fts","whfdhtml.htm");
-  addPane("glo","whgdhtml.htm");
-  setShowPane("toc");
-
-
-       gnTabType = 0; // 0 button. // 1 text. // 2 image mapping.
-       TocWriteClassStyle();
-       var sHTML = "<body scroll=\"no\" bgcolor=\"#c0c0c0\"    background=\"whd_tab0.gif\" style=\"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0\">";
-       if (gPane.length > 0)
-       {
-               if (gnTabType == 0 || gnTabType == 1)
-               {
-                       sHTML += "<table width=\"100%\">";
-                       sHTML += "<tr>";
-                       sHTML += "<td>";
-                       sHTML += "<nobr>";
-                       sHTML += getTabsHTML();
-                       sHTML += "</nobr></td></tr>";
-                       sHTML += " <tr><td height=\"2\"></td></tr>";
-                       sHTML += "</table>";
-               }
-               else if (gnTabType == 2)
-               {
-                       sHTML += getImageMap();
-                       sHTML +="<img name=\"tabSelection\" src=\"" + getMapImage(gPane[0]) + "\" x-maintain-ratio=\"true\" usemap=\"#tabSelectionMap\"";
-                       if (gbIE)
-                               sHTML +=" style=\"border: none; width:px; height:px; float: none;\"";
-                       sHTML +=" width=\"\" height=\"\" border=\"0\">";
-               }
-       }
-       sHTML += "</body>";
-       document.write(sHTML);
-}
-else
-       document.location.reload();
-
-if (window.gbNav6)
-{
-       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);
-       SendMessage(oMsg);
-}
-//-->
-</script>
-</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
deleted file mode 100755 (executable)
index 1101725..0000000
Binary files a/doc/salome/gui/SMESH/whd_toc1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_toc2.gif b/doc/salome/gui/SMESH/whd_toc2.gif
deleted file mode 100755 (executable)
index 975e5f6..0000000
Binary files a/doc/salome/gui/SMESH/whd_toc2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_toc3.gif b/doc/salome/gui/SMESH/whd_toc3.gif
deleted file mode 100755 (executable)
index 4b8122f..0000000
Binary files a/doc/salome/gui/SMESH/whd_toc3.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_toc4.gif b/doc/salome/gui/SMESH/whd_toc4.gif
deleted file mode 100755 (executable)
index 354aa6e..0000000
Binary files a/doc/salome/gui/SMESH/whd_toc4.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_topic.xml b/doc/salome/gui/SMESH/whd_topic.xml
deleted file mode 100755 (executable)
index b1946d7..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>
-<topictemplate>
- <topic type="normal">
-  <add tag="head" pos="endbefore" >
-   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_PROXY_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       ";
-         OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");
-         OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");
-         OutputInTopicNavBarDataButtons("addButton(\"%s\",%s, \"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",%d,%d);\r\n");
-       "
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       ";
-         OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");
-         OutputInTopicNavBarDataWebSearch.href("addSearchFormHref(\"%s\");\r\n");
-       "
-               autoSync(";WH_USER_OPTIONS.autosync_toc;");
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-"]]>
-  </add>
-  <add tag="body" pos="beginafter">
-    <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(";WH_WEBSKIN.topic.bar.top.pos;");
-//-->
-</script>"]]>  
-  </add>
-  <add tag="body" pos="endbefore">
-   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(";WH_WEBSKIN.topic.bar.bottom.pos;");
-//-->
-</script>";
-OutputInTopicNavBarDataWebSearch.form();]]>    
-  </add>
- </topic>
- <topic type="frameset">
-  <add tag="head" pos="endbefore" >
-   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_FRAMESET_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\">
-<!--
-if (window.setRelStartPage)
-{
-";
-  OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");
-  OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");
-  OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");
-"
-if (window.autoSync)
-       autoSync(1);
-}
-//-->
-</script>
-"]]>
-  </add>
- </topic>
-</topictemplate>
diff --git a/doc/salome/gui/SMESH/whd_wbsh0.gif b/doc/salome/gui/SMESH/whd_wbsh0.gif
deleted file mode 100755 (executable)
index 383688e..0000000
Binary files a/doc/salome/gui/SMESH/whd_wbsh0.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_wbsh1.gif b/doc/salome/gui/SMESH/whd_wbsh1.gif
deleted file mode 100755 (executable)
index 383688e..0000000
Binary files a/doc/salome/gui/SMESH/whd_wbsh1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whd_wbsh2.gif b/doc/salome/gui/SMESH/whd_wbsh2.gif
deleted file mode 100755 (executable)
index 383688e..0000000
Binary files a/doc/salome/gui/SMESH/whd_wbsh2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whfbody.htm b/doc/salome/gui/SMESH/whfbody.htm
deleted file mode 100755 (executable)
index ea648e4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<html>
-<head>
-<title>Search Result</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<base target="bsscright">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whlang.js"></script>
-<script language="javascript1.2" src="whfhost.js"></script>
-<script language="javascript1.2">
-<!--
-if(window.gbWhFHost)
-{
-       
-       
-       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
-       setFont("Error", "Arial","9pt","#000000","normal","normal","none");
-       setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
-       setActiveBgColor("#cccccc");
-       setMargin("0pt");
-       setIndent("9pt");
-       FtsWriteClassStyle();
-}
-else
-       document.location.reload();
-//-->
-</script>
-</head>
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" scroll="auto" bgcolor="white">
-</body>
-</html>
-
diff --git a/doc/salome/gui/SMESH/whfdhtml.htm b/doc/salome/gui/SMESH/whfdhtml.htm
deleted file mode 100755 (executable)
index c2e65be..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<html>
-<head>
-<title>Search Frame</TITLE>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script LANGUAGE="javascript1.2">
-<!--
-var gbIndexLayerInit = false;
-var strWrite="";
-if (window.gbWhVer&&window.gbWhProxy&&window.gbWhMsg)
-{
-       if (gbMac)
-               strWrite="<FRAMESET ROWS='45,100%' framespacing=0  frameborder=1>";
-       else
-               strWrite="<FRAMESET ROWS='60,100%' framespacing=0  frameborder=1>";
-       strWrite +="<FRAME SRC='whfform.htm' title='search form frame' name='ftsform' noresize='yes' scrolling='no'>";
-       strWrite +="<FRAME SRC='whfbody.htm' title='search result frame' name='ftsbody' scrolling='yes'>";
-       strWrite +="</FRAMESET>";
-       document.write(strWrite);
-}
-else
-       document.location.reload();
-//-->
-</script>
-</html>
diff --git a/doc/salome/gui/SMESH/whfform.htm b/doc/salome/gui/SMESH/whfform.htm
deleted file mode 100755 (executable)
index 0f8f90a..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-<html>
-<head>
-<title>Search Form</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<style>
-<!--
-body {margin:0;}
--->
-</style>
-<body bgcolor="#c0c0c0">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whform.js"></script>
-<script language="javascript1.2">
-<!--
-var gstrInput = "";
-function ftsLookup(bCR)
-{
-       if (bCR)
-       {
-               var strInput = document.FtsInputForm.keywordField.value.toUpperCase();
-               if (strInput != "") {
-                       var oMsg = new whMessage(WH_MSG_SEARCHFTSKEY, this, 1, strInput);
-                       if (!SendMessage(oMsg))
-                       {
-                               gstrInput = strInput;
-                       }
-                       else
-                               gstrInput = "";
-               }
-
-               if (gbMac) {
-                       document.FtsInputForm.keywordField.focus();
-               }
-       }
-       return;
-}
-
-function beforeInit()
-{
-       var oParam = new Object();
-       oParam.sValue = "";
-       var oMsg = new whMessage(WH_MSG_GETSEARCHS, this, 1, oParam);
-       if (SendMessage(oMsg))
-       {
-               if (oParam.sValue != "" && oParam.sValue != "- Search -")
-               {
-                       document.FtsInputForm.keywordField.value = oParam.sValue;
-                       gfunLookUp(true);
-               }
-       }
-       init(); 
-}
-
-function window_unload()
-{
-       UnRegisterListener2(this, WH_MSG_SHOWTOC);
-       UnRegisterListener2(this, WH_MSG_SHOWIDX);
-       UnRegisterListener2(this, WH_MSG_SHOWFTS);
-       UnRegisterListener2(this, WH_MSG_SHOWGLO);
-       UnRegisterListener2(this, WH_MSG_SEARCHTHIS);
-       UnRegisterListener2(this, WH_MSG_BACKUPSEARCH);
-}
-
-function onSendMessage(oMsg)
-{
-       if (oMsg.nMessageId == WH_MSG_SHOWFTS)
-       {
-               document.FtsInputForm.keywordField.focus();
-       }
-       else if (oMsg.nMessageId == WH_MSG_SHOWIDX ||
-               oMsg.nMessageId == WH_MSG_SHOWTOC || 
-               oMsg.nMessageId == WH_MSG_SHOWGLO)
-       {
-               document.FtsInputForm.keywordField.blur();
-       }
-       else if (oMsg.nMessageId == WH_MSG_SEARCHTHIS)
-       {
-               if (oMsg.oParam != "- Search -")
-               {
-                       document.FtsInputForm.keywordField.value = oMsg.oParam;
-                       gfunLookUp(true);
-               }
-       }
-       else if (oMsg.nMessageId == WH_MSG_BACKUPSEARCH)
-       {
-               if (gstrInput)
-               {
-                       oMsg.oParam = gstrInput;
-                       gstrInput = "";
-                       return false;
-               }
-       }
-       return true;
-}
-
-if (window.gbWhForm)
-{
-       RegisterListener2(this, WH_MSG_SHOWTOC);
-       RegisterListener2(this, WH_MSG_SHOWIDX);
-       RegisterListener2(this, WH_MSG_SHOWFTS);
-       RegisterListener2(this, WH_MSG_SHOWGLO);
-       RegisterListener2(this, WH_MSG_SEARCHTHIS);
-       RegisterListener2(this, WH_MSG_BACKUPSEARCH);
-       gfunLookUp = ftsLookup;
-       gfunInit = null;
-       gstrFormName = "FtsInputForm"
-       gsTitle = "Type in the word(s) to search for:";
-       gsTitle = "Type in the word(s) to search for:";
-       setGoImage1("");
-       
-       
-       
-       
-       
-       
-       setGoText("Go");
-       setFont("Title", "Arial","9pt","#000000","normal","normal","none");
-       
-       
-       document.write(getFormHTML());
-       writeFormStyle();
-       window.onload = beforeInit;
-       window.onunload=window_unload;
-}
-else
-       document.location.reload();
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/whfhost.js b/doc/salome/gui/SMESH/whfhost.js
deleted file mode 100755 (executable)
index c3c7144..0000000
+++ /dev/null
@@ -1,945 +0,0 @@
-//     WebHelp 5.10.003
-var gsSK2=null;
-var gsSK=null;
-var gsFtsBreakChars="\t\r\n\"\\ .,!@#$%^&*()~'`:;<>?/{}[]|+-=\x85\x92\x93\x94\x95\x96\x97\x99\xA9\xAE\xB7";
-var gnCLF=0;
-var gsHelpCannotSearch="Cannot search for that phrase.";
-var gsNoTopics="No Topics Found.";
-var gsLoadingDivID="LoadingDiv";
-var gsLoadingMsg="Loading data, please wait...";
-var gsSearchMsg="Searching...";
-var gsResultDivID="ResultDiv";
-var gaaFCD=new Array();
-var gaaFTCD=new Array();
-var goCF=null;
-var goCTF=null;
-var gaTI=null;
-var gnCurrentOp=0;
-var gbNot=false;
-var gbReady=false;
-var gnLoadFts=1;
-var gnCacheLimits=5;
-var gaCCD=new Array();
-var gbXML=false;
-var gaData=new Array();
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var gsMargin="0pt";
-var gsIndent="0pt";
-var gsCheckKey=null;
-var gnIndexNum=0;
-var gaFtsContentsCon=null;
-var gaTopicCheckInfo=null;
-var gnTopicCheck=0;
-var goFont=null;
-var goErrFont=null;
-var goHoverFont=null;
-var gsABgColor="#cccccc";
-var gbWhFHost=false;
-var gbFirst=false;
-
-function setBackground(sBgImage)
-{
-       gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       gsBgColor=sBgColor;
-}
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       if(sType=="Normal")
-               goFont=vFont;
-       else if(sType=="Error")
-               goErrFont=vFont;
-       else if(sType=="Hover")
-               goHoverFont=vFont;
-}
-
-function setActiveBgColor(sBgColor)
-{
-       gsABgColor=sBgColor;
-}
-
-function setMargin(sMargin)
-{
-       gsMargin=sMargin;
-}
-
-function setIndent(sIndent)
-{
-       gsIndent=sIndent;
-}
-
-function updateCache(oCF)
-{
-       var len=gaCCD.length;
-       if(len<gnCacheLimits*gnCLF)
-               gaCCD[len]=oCF;
-       else{
-               gaCCD[0].aTopics=null;
-               gaCCD[0].aFtsKeys=null;
-               removeItemFromArray(gaCCD,0);
-               gaCCD[len-1]=oCF;
-       }
-}
-
-function addFtsInfo(sPPath,sDPath,sFtsFile)
-{
-       gaData[gaData.length]=new ftsInfo(sPPath,sDPath,sFtsFile);
-}
-
-function onLoadXMLError()
-{
-       if(gnLoadFts==1)
-       {
-               var aFCD=new Array();
-               var aFTCD=new Array();
-               ftsReady(aFCD,aFTCD);
-       }
-       else if(gnLoadFts==3)
-       {
-               var aTopics=new Array();
-               putFtsTData(aTopics);
-       }
-       else if(gnLoadFts==2)
-       {
-               putFtsWData(aFtsContents);
-               var aFtsContents=new Array();
-       }
-}
-
-function putDataXML(xmlDoc,sDocPath)
-{
-       if(gnLoadFts==1)
-       {
-               var node=xmlDoc.lastChild;
-               if(node)
-               {
-                       var oChild=node.firstChild;
-                       var aFCD=new Array();
-                       var aFTCD=new Array();
-                       while(oChild)
-                       {
-                               if(oChild.nodeName=="chunkinfo")
-                               {
-                                       var sURL=oChild.getAttribute("url");
-                                       var sFirst=oChild.getAttribute("first");
-                                       var sLast=oChild.getAttribute("last");
-                                       if(sURL&&sFirst&&sLast)
-                                       {
-                                               item=new Object();
-                                               item.sStartKey=sFirst;
-                                               item.sEndKey=sLast;
-                                               item.sFileName=sURL;
-                                               aFCD[aFCD.length]=item;
-                                       }
-                               }
-                               else if(oChild.nodeName=="tchunkinfo")
-                               {
-                                       var sURL=oChild.getAttribute("url");
-                                       var nB=parseInt(oChild.getAttribute("first"));
-                                       var nE=parseInt(oChild.getAttribute("last"));
-                                       if(sURL&&sFirst&&sLast)
-                                       {
-                                               item=new Object();
-                                               item.nBegin=nB;
-                                               item.nEnd=nE;
-                                               item.sFileName=sURL;
-                                               aFTCD[aFTCD.length]=item;
-                                       }
-
-                               }
-                               oChild=oChild.nextSibling;
-                       }
-                       ftsReady(aFCD,aFTCD);
-               }
-       }
-       else if(gnLoadFts==3)
-       {
-               var node=xmlDoc.lastChild;
-               if(node)
-               {
-                       var oChild=node.firstChild;
-                       var aTopics=new Array();
-                       while(oChild)
-                       {
-                               if(oChild.nodeName=="topic")
-                               {
-                                       var name=oChild.getAttribute("name");
-                                       var sURL=oChild.getAttribute("url");
-                                       if(name&&name.length>0&&sURL)
-                                       {
-                                               var topic=new Object();
-                                               topic.sTopicTitle=name;
-                                               topic.sTopicURL=sURL;
-                                               aTopics[aTopics.length]=topic;
-                                       }
-                               }
-                               oChild=oChild.nextSibling;
-                       }
-                       putFtsTData(aTopics);
-               }
-       }
-       else if(gnLoadFts==2)
-       {
-               var node=xmlDoc.lastChild;
-               if(node)
-               {
-                       var oChild=node.firstChild;
-                       var aFtsContents=new Array();
-                       while(oChild)
-                       {
-                               if(oChild.nodeName=="key")
-                               {
-                                       var name=oChild.getAttribute("name");
-                                       if(name&&name.length>0)
-                                       {
-                                               var item=new Object();
-                                               item.sItemName=name;
-                                               aFtsContents[aFtsContents.length]=item;
-                                               var oChildChild=oChild.firstChild;
-                                               while(oChildChild)
-                                               {
-                                                       if(oChildChild.nodeName=="#text")
-                                                       {
-                                                               var sIDs=oChildChild.nodeValue;
-                                                               if(sIDs)
-                                                               {
-                                                                       var nBPos=0;
-                                                                       do
-                                                                       {
-                                                                               var nPos=sIDs.indexOf(",",nBPos);
-                                                                               var sID=null;
-                                                                               if(nPos!=-1)
-                                                                                       sID=sIDs.substring(nBPos,nPos);
-                                                                               else
-                                                                                       sID=sIDs.substring(nBPos);
-
-                                                                               if(sID)
-                                                                               {
-                                                                                       var id=parseInt(sID);
-                                                                                       if(!isNaN(id))
-                                                                                       {
-                                                                                               if(!item.aTopics)
-                                                                                                       item.aTopics=new Array();
-                                                                                               item.aTopics[item.aTopics.length]=id;
-                                                                                       }
-                                                                               }
-                                                                               nBPos=nPos+1;
-                                                                       }while(nBPos!=0&&nBPos<sIDs.length);
-                                                               }
-                                                       }
-                                                       oChildChild=oChildChild.nextSibling;
-                                               }
-                                       }
-                               }
-                               oChild=oChild.nextSibling;
-                       }
-                       putFtsWData(aFtsContents);
-               }
-       }
-}
-
-function ftsInfo(sPPath,sDPath,sFtsFile)
-{
-       this.sPPath=sPPath;
-       this.sDPath=sDPath;
-       this.sFtsFile=sFtsFile;
-}
-
-function window_OnLoad()
-{
-       if(gsBgImage&&gsBgImage.length>0)
-       {
-               document.body.background=gsBgImage;
-       }
-       if(gsBgColor&&gsBgColor.length>0)
-       {
-               document.body.bgColor=gsBgColor;
-       }
-       writeResultDiv();
-       loadFts();
-       var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)
-       SendMessage(oMsg);
-}
-
-function writeResultDiv()
-{
-       var sHTML="<div id=\""+gsResultDivID+"\" style=\"POSITION:absolute;\"></div>";
-       document.body.insertAdjacentHTML("beforeEnd",sHTML);
-}
-
-function loadFts()
-{
-       if(!gbReady)
-       {
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
-               if(SendMessage(oResMsg)&&oResMsg.oParam)
-               {
-                       gbReady=true;
-                       var oProj=oResMsg.oParam;
-                       var aProj=oProj.aProj;
-                       gbXML=oProj.bXML;
-                       if(aProj.length>0)
-                       {
-                               var sLangId=aProj[0].sLangId;
-                               for(var i=0;i<aProj.length;i++)
-                               {
-                                       if(aProj[i].sFts&&aProj[i].sLangId==sLangId)
-                                       {
-                                               addFtsInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sFts);
-                                       }
-                               }
-                       }
-                       loadFD();
-
-               }                               
-       }
-}
-
-function loadFD()
-{
-       if(gnCLF<gaData.length)
-       {
-               gnLoadFts=1;
-               loadData2(gaData[gnCLF].sPPath+gaData[gnCLF].sDPath+gaData[gnCLF].sFtsFile);
-       }
-       else 
-       {
-               var oMsg = new whMessage(WH_MSG_BACKUPSEARCH, this, 1, null);
-               if (SendMessage(oMsg))
-               {
-                       if (oMsg.oParam)
-                       {
-                               gsSK=oMsg.oParam.toLowerCase();
-                               findFTSKey();
-                       }
-               }
-               RegisterListener2(this, WH_MSG_SEARCHFTSKEY);
-       }
-}
-
-function loadData2(sFile)
-{
-       if(gbXML)
-               loadDataXML(sFile);
-       else
-               loadData(sFile);
-}
-
-function findFTSKey()
-{
-       gaTI=new Array();
-       gnCurrentOp=1;
-       gbNot=false;
-       displayMsg(gsSearchMsg);
-       if(gsSK!="")
-       {
-               gbFirst=true;
-               findOneKey();
-       }
-}
-
-function findOneKey()
-{
-       if(gsSK && gsSK!="")
-       {
-               var sInput=gsSK;
-               var sCW="";
-               var nS=-1;
-               var nSep=-1;
-               for(var nChar=0;nChar<gsFtsBreakChars.length;nChar++){
-                       var nFound=sInput.indexOf(gsFtsBreakChars.charAt(nChar));
-                       if((nFound!=-1)&&((nS==-1)||(nFound<nS))){
-                               nS=nFound;
-                               nSep=nChar;
-                       }
-               }
-               if(nS==-1){
-                       sCW=sInput;
-                       sInput="";
-               }else{
-                       sCW=sInput.substring(0,nS);
-                       sInput=sInput.substring(nS+1);
-               }
-
-               gsSK=sInput;
-               
-               if((sCW=="or")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="|"))){
-                       gnCurrentOp=0;
-                       gbNot=false;
-               }else if((sCW=="and")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="&"))){
-                       gnCurrentOp=1;
-                       gbNot=false;
-               }else if((sCW=="not")||
-                       ((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="~"))){
-                       gbNot=!gbNot;
-               }else if(sCW!=""&&!IsStopWord(sCW,gaFtsStop)){
-                       var sCurrentStem=GetStem(sCW);
-                       gsCW=sCurrentStem;
-                       ftsFindKeyword();
-                       return;
-               }
-               findOneKey();
-       }
-       else{
-               displayTopics();
-               checkAgain();
-       }
-}
-
-function checkAgain()
-{
-       gsCheckKey = "";
-       gnIndexNum = 0;
-       gsSK=gsSK2;
-       gsSK2=null;
-       if(gsSK!=null)
-               setTimeout("findFTSKey();",1);
-}
-
-function displayTopics()
-{
-       var sHTML="";
-       var sLine="";
-       for(var i=0;i<gaTI.length;i++){
-               sLine+="<dt><nobr><a href='"+gaTI[i].sTopicURL+"'>"+_textToHtml(gaTI[i].sTopicTitle)+"</a></nobr></dt>";
-               if(i>>4<<4==i)
-               {
-                       sHTML+=sLine;
-                       sLine="";
-               }
-       }
-       if(sLine.length>0)
-               sHTML+=sLine;
-
-       if(sHTML.length==0)
-               sHTML="<P>"+gsNoTopics+"</P>"
-       else
-               sHTML="<dl>"+sHTML+"</dl>";
-
-       var resultDiv=getElement(gsResultDivID);
-       if(resultDiv)
-               resultDiv.innerHTML=sHTML;
-}
-
-function displayMsg(sErrorMsg)
-{
-       var sHTML="<P>"+sErrorMsg+"</P>";
-
-       var resultDiv=getElement(gsResultDivID);
-       if(resultDiv)
-               resultDiv.innerHTML=sHTML;
-}
-
-function ftsFindKeyword()
-{
-       var sKey=gsCW;
-       var bNeedLoad=false;
-       var aFtsContentsCon=null;
-       var s=0;
-       if(sKey==null) return;
-       if(!gsCheckKey||sKey!=gsCheckKey||gnIndexNum==0)
-       {
-               aFtsContentsCon=new Array();
-               gnCheck=0;
-               gsCheckKey=sKey;
-               gnTopicCheck=0;
-               gaTopicCheckInfo=null;
-       }
-       else{
-               s=gnIndexNum;
-               aFtsContentsCon=gaFtsContentsCon;
-       }
-       for(var i=gnCheck;i<gaaFCD.length;i++)
-       {
-               var oCF=getChunkedFts(i,sKey);
-               if(oCF)
-               {
-                       if(!oCF.aFtsKeys&&oCF.sFileName!=null)
-                       {
-                               bNeedLoad=true;
-                               oCF.nProjId=i;
-                               goCF=oCF;
-                               gnIndexNum=s;
-                               gnCheck=i;
-                               gaFtsContentsCon=aFtsContentsCon;
-                               gnLoadFts=2;
-                               beginLoading();
-                               loadData2(gaData[i].sPPath+gaData[i].sDPath+oCF.sFileName);
-                               break;
-                       }
-                       else{
-                               aFtsContentsCon[s++]=oCF;
-                       }
-               }
-       }
-       if(!bNeedLoad)
-       {
-               var aTI=gaTopicCheckInfo;
-               for(var m=gnTopicCheck;m<aFtsContentsCon.length;m++)
-               {
-                       var aTIPart=getTopics(aFtsContentsCon[m],sKey);
-                       if(aTIPart==null)
-                       {
-                               gnCheck=gaaFCD.length;
-                               gnTopicCheck=m;
-                               gaTopicCheckInfo=aTI;
-                               gaFtsContentsCon=aFtsContentsCon;
-                               return;
-                       }
-                       if(m==0)
-                               aTI=aTIPart;
-                       else
-                               aTI=mergeTopics(aTI,aTIPart);
-               }
-               if(mergewithPreviousResult(aTI))
-               {
-                       gbFirst=false;
-                       findOneKey();
-               }
-               else
-                       checkAgain();
-       }
-}
-
-function mergewithPreviousResult(aTI)
-{
-       if(aTI!=null&&aTI.length!=0)
-       {
-               var nNumTopics=aTI.length;
-               if(gnCurrentOp==0||gbFirst){
-                       if(gbNot){
-                               displayMsg(gsHelpCannotSearch);
-                               return false;
-                       }else{
-                               var aLS,aSS;
-                               if(gaTI.length>=aTI.length)
-                               {
-                                       aLS=gaTI;
-                                       aSS=aTI;
-                               }
-                               else
-                               {
-                                       aLS=aTI;
-                                       aSS=gaTI;
-                               }
-                               var s=0;
-                               for(var i=0;i<aSS.length;i++)
-                               {
-                                       var bAlreadyThere=false;
-                                       for(var j=s;j<aLS.length;j++)
-                                       {
-                                               if(aSS[i].equalTo(aLS[j]))
-                                               {
-                                                       bAlreadyThere=true;
-                                                       s=j;
-                                                       break;
-                                               }
-                                       }
-                                       if(!bAlreadyThere)
-                                       {
-                                               insertTopic(aLS,aSS[i]);
-                                       }
-                               }
-                               gaTI=aLS;
-                       }
-               }else if(gnCurrentOp==1){
-                       if(gbNot){
-                               var s=0;
-                               for(var i=0;i<aTI.length;i++)
-                               {
-                                       for(var j=s;j<gaTI.length;j++)
-                                       {
-                                               if(aTI[i].equalTo(gaTI[j]))
-                                               {
-                                                       removeItemFromArray(gaTI,j);
-                                                       s=j;
-                                                       break;
-                                               }
-                                       }
-                               }
-                       }else{
-                               var s=0;
-                               for(var i=0;i<gaTI.length;i++)
-                               {
-                                       var bFound=false;
-                                       for(var j=s;j<aTI.length;j++)
-                                       {
-                                               if(gaTI[i].equalTo(aTI[j]))
-                                               {
-                                                       bFound=true;
-                                                       s=j;
-                                               }
-                                       }
-                                       if(!bFound)
-                                       {
-                                               removeItemFromArray(gaTI,i);
-                                               i--;
-                                       }
-                               }                               
-                       }
-               }
-       }else{
-               if((gnCurrentOp==1)&&(!gbNot)){
-                       gaTI.length=0;
-               }else if((gnCurrentOp==0)&&(gbNot)){
-                       displayMsg(gsHelpCannotSearch);
-                       return false;
-               }
-       }
-       return true;
-}
-
-function insertTopic(aTI,oTI)
-{
-       var nB=0;
-       var nE=aTI.length-1;
-       if(nE>=0)
-       {
-               var nM;
-               var bFound=false;
-               do{
-                       nM=(nB+nE)>>1;
-                       if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)>0)
-                               nE=nM-1;
-                       else if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)
-                               nB=nM+1;
-                       else
-                       {
-                               bFound=true;
-                               break;
-                       }
-               }while(nB<=nE);
-               if(bFound)
-                       insertItemIntoArray(aTI,nM,oTI);
-               else
-               {
-                       if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)
-                               insertItemIntoArray(aTI,nM+1,oTI);
-                       else
-                               insertItemIntoArray(aTI,nM,oTI);
-               }
-       }
-       else
-               aTI[0]=oTI;
-}
-
-function mergeTopics(aTI1,aTI2)
-{
-       var i1=0;
-       var i2=0;
-       var len1=aTI1.length;
-       var len2=aTI2.length;
-       var aTopicNew=new Array();
-       var i=0;
-       while(i1<len1||i2<len2)
-       {
-               if(i1<len1&&i2<len2)
-               {
-                       if(compare(aTI1[i1].sTopicTitle,aTI2[i2].sTopicTitle)<0)
-                               aTopicNew[i++]=aTI1[i1++];
-                       else
-                               aTopicNew[i++]=aTI2[i2++];
-               }
-               else if(i1<len1)
-                       aTopicNew[i++]=aTI1[i1++];
-               else if(i2<len2)
-                       aTopicNew[i++]=aTI2[i2++];
-       }
-       return aTopicNew;
-}
-
-function getTopics(oCF,sKey)
-{
-       var aTIPart=new Array();
-       if(oCF&&oCF.aFtsKeys)
-       {
-               var keys=oCF.aFtsKeys;
-               var nB=0;
-               var nE=keys.length-1;
-               var nM=-1;
-               var bFound=false;
-               do{
-                       nM=(nB+nE)>>1;
-                       if(compare(keys[nM].sItemName,sKey)>0)
-                               nE=nM-1;
-                       else if(compare(keys[nM].sItemName,sKey)<0)
-                               nB=nM+1;
-                       else{
-                               bFound=true;
-                               break;
-                       }
-               }while(nB<=nE);
-               if(bFound)
-               {
-                       if(keys[nM].aTopics)
-                       {
-                               for(var i=0;i<keys[nM].aTopics.length;i++)
-                               {
-                                       var oTC=getTopicChunk(gaaFTCD[oCF.nProjId],keys[nM].aTopics[i]);
-                                       if(oTC.aTopics)
-                                       {
-                                               aTIPart[aTIPart.length]=
-                                                       new topicInfo(oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicTitle,
-                                                               gaData[oCF.nProjId].sPPath+oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicURL);
-                                       }
-                                       else{
-                                               goCTF=oTC;
-                                               gnLoadFts=3;
-                                               beginLoading();
-                                               loadData2(gaData[oCF.nProjId].sPPath+gaData[oCF.nProjId].sDPath+oTC.sFileName);
-                                               return null;
-                                       }
-                               }
-                       }
-               }
-       }
-       return aTIPart;
-}
-
-function getTopicChunk(aFTCD,nTopicId)
-{
-       if(aFTCD&&aFTCD.length)
-       {
-               var nB=0;
-               var nE=aFTCD.length-1;
-               var nM=-1;
-               var bFound=false;
-               do{
-                       nM=(nB+nE)>>1;
-                       if(aFTCD[nM].nBegin>nTopicId)
-                               nE=nM-1;
-                       else if(aFTCD[nM].nEnd<nTopicId)
-                               nB=nM+1;
-                       else{
-                               bFound=true;
-                               break;
-                       }
-               }while(nB<=nE);
-               if(bFound)
-                       return aFTCD[nM];
-       }
-       return null;
-}
-
-function endLoading()
-{
-       var oDiv=getElement(gsLoadingDivID);
-       if(oDiv)
-               oDiv.style.visibility="hidden";
-}
-
-function beginLoading()
-{
-       var oDiv=getElement(gsLoadingDivID);
-       if(!oDiv)
-       {
-               document.body.insertAdjacentHTML("afterBegin",writeLoadingDiv());
-               oDiv=getElement(gsLoadingDivID);
-       }
-       
-       if(oDiv)
-       {
-               oDiv.style.top=document.body.scrollTop;
-               oDiv.style.visibility="visible";
-       }
-}
-
-function writeLoadingDiv(nIIdx)
-{
-       return "<div id=\""+gsLoadingDivID+"\" style=\"position:absolute;top:0;left:0;z-index:600;visibility:hidden;padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
-}
-
-function topicInfo(sTopicTitle,sTopicURL)
-{
-       this.sTopicTitle=sTopicTitle;
-       this.sTopicURL=sTopicURL;
-       this.equalTo=function(oTI)
-       {
-               return ((this.sTopicTitle==oTI.sTopicTitle)&&
-                       (this.sTopicURL==oTI.sTopicURL));
-       }
-}
-
-function getChunkedFts(nIndex,sKey)
-{
-       var oCF=null;
-       if(nIndex<gaaFCD.length)
-       {
-               var len=gaaFCD[nIndex].length;
-               if(len>0)
-               {
-                       var nB=0;
-                       var nE=len-1;
-                       var bFound=false;
-                       do{
-                               var nM=(nB+nE)>>1;
-                               if(compare(sKey,gaaFCD[nIndex][nM].sEndKey)>0)
-                               {
-                                       nB=nM+1;
-                               }
-                               else if(compare(sKey,gaaFCD[nIndex][nM].sStartKey)<0)
-                               {
-                                       nE=nM-1;
-                               }
-                               else{
-                                       bFound=true;
-                                       break;
-                               }
-                       }while(nE>=nB);
-                       if(bFound)
-                               oCF=gaaFCD[nIndex][nM];
-               }
-       }
-       return oCF;
-}
-
-function ftsReady(aFCD,aFTCD)
-{
-       endLoading();
-       gaaFTCD[gnCLF]=aFTCD;
-       gaaFCD[gnCLF++]=aFCD;
-       setTimeout("loadFD();",1);
-}
-
-function putFtsTData(aTopics)
-{
-       endLoading();
-       var oCTF=goCTF;
-       if(oCTF)
-       {
-               oCTF.aTopics=aTopics;
-               setTimeout("ftsFindKeyword();",1);
-       }
-}
-
-function putFtsWData(aFtsContents)
-{
-       endLoading();
-       var oCF=goCF;
-       if(oCF)
-       {
-               updateCache(oCF);
-               oCF.aFtsKeys=aFtsContents;
-               setTimeout("ftsFindKeyword();",1);
-       }
-}
-
-function IsStopWord(sCW,aFtsStopArray)
-{
-       var nStopArrayLen=aFtsStopArray.length;
-       var nB=0;
-       var nE=nStopArrayLen-1;
-       var nM=0;
-       var bFound=false;
-       var sStopWord="";
-       while(nB<=nE){
-               nM=(nB+nE);
-               nM>>=1;
-               sStopWord=aFtsStopArray[nM];
-               if(compare(sCW,sStopWord)>0){
-                       nB=(nB==nM)?nM+1:nM;
-               }else{
-                       if(compare(sCW,sStopWord)<0){
-                               nE=(nE==nM)?nM-1:nM;
-                       }else{
-                               bFound=true;
-                               break;
-                       }
-               }
-       }
-       return bFound;
-}
-
-function GetStem(szWord)
-{
-       if(gaFtsStem==null||gaFtsStem.length==0)return szWord;
-       var aStems=gaFtsStem;
-
-       var nStemPos=0;
-       var csStem="";
-       for(var iStem=0;iStem<aStems.length;iStem++){
-
-               if(aStems[iStem].length>=szWord.length-1)       continue;
-               nStemPos=szWord.lastIndexOf(aStems[iStem]);
-               if(nStemPos>0){
-                       var cssub=szWord.substring(nStemPos);
-                       if(cssub==aStems[iStem]){
-                               csStem=szWord;
-                               if(szWord.charAt(nStemPos-2)==szWord.charAt(nStemPos-1)){
-                                       csStem=csStem.substring(0,nStemPos-1);
-                               }else{
-                                       csStem=csStem.substring(0,nStemPos);
-                               }
-                               return csStem;
-                       }
-               }
-       }
-       return szWord;
-}
-
-function FtsWriteClassStyle()
-{
-       var sStyle="<STYLE TYPE='text/css'>\n";
-       if (gsBgImage)
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
-       else
-               sStyle+="body {border-top:black 1px solid;}\n";
-       sStyle+="P {"+getFontStyle(goErrFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";
-       sStyle+="dl {"+getFontStyle(goFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:active {background-color:"+gsABgColor+";}\n";
-       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";
-       sStyle+="</STYLE>";
-       document.write(sStyle);
-}
-
-function window_Unload()
-{
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);
-       UnRegisterListener2(this, WH_MSG_SEARCHFTSKEY);
-}
-
-
-function onSendMessage(oMsg)
-{
-       var nMsgId=oMsg.nMessageId;
-       if(nMsgId==WH_MSG_SEARCHFTSKEY)
-       {
-               if(oMsg.oParam)
-               {
-                       if(gsSK==null||gsSK=="")
-                       {
-                               gsSK=oMsg.oParam.toLowerCase();
-                               findFTSKey();
-                       }
-                       else
-                               gsSK2=oMsg.oParam.toLowerCase();
-               }
-       }
-       else if(nMsgId==WH_MSG_PROJECTREADY)
-       {
-               loadFts();
-       }
-       return true;
-}
-
-if (window.gbWhUtil&&window.gbWhLang&&window.gbWhProxy&&window.gbWhVer&&window.gbWhMsg)
-{
-       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
-       goErrFont=new whFont("Verdana","8pt","#000000","normal","bold","none");
-       goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
-       window.onload=window_OnLoad;
-       window.onbeforeunload=window_BUnload;
-       window.onunload=window_Unload;
-       RegisterListener2(this,WH_MSG_PROJECTREADY);
-       gbWhFHost=true;
-}
-else
-       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whform.js b/doc/salome/gui/SMESH/whform.js
deleted file mode 100755 (executable)
index bc4ebfd..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-//     WebHelp 5.10.001
-var gfunLookUp;
-var gbInputEnable;
-var gfunInit;
-var gstrFormName= "";
-var gbWithButton = false;
-var gsTitle="";
-var gsOverImage = "";
-var gsOutImage = "";
-var gsClickImage = "";
-var gsText = "";
-var gsBgColor = "#c0c0c0";
-var gsBgImage = "";
-var gbInImage = 0;
-var gbInputEnable = 0;
-
-var goTitleFont=null;
-var goInputFont=null;
-var goNormalFont=null;
-var goHoverFont=null;
-var gnType=-1;
-var gbWhForm=false;
-
-function setBackground(sBgImage)
-{
-       if (sBgImage != null && sBgImage.length > 0)
-               gsBgImage = sBgImage;
-
-       if  (gsBgImage  && gsBgImage .length > 0)
-       {
-               document.body.background = gsBgImage ;
-       }
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       if (sBgColor != null && sBgColor.length > 0)
-               gsBgColor = sBgColor;
-
-       if (gsBgColor&& gsBgColor.length > 0)
-       {
-               document.body.bgColor = gsBgColor;
-       }
-}
-
-function setBtnType(sType)
-{
-       if (sType == "image")
-       {
-               gnType = 0;
-       }
-       else if (sType == "text")
-       {
-               gnType = 1;
-       }
-}
-
-function setGoImage1(sImage1)
-{
-       gsOutImage = sImage1;
-       if (gsOutImage && gsOutImage.length > 0)
-               gbWithButton = true;
-}
-
-function setGoImage2(sImage2)
-{
-       gsOverImage = sImage2;
-       if (gsOverImage && gsOverImage.length > 0)
-               gbWithButton = true;
-}
-
-function setGoImage3(sImage3)
-{
-       gsClickImage = sImage3;
-       if (gsClickImage && gsClickImage.length > 0)
-               gbWithButton = true;
-}
-
-function setGoText(sText)
-{
-       gsText = sText;
-       if (gsText.length > 0)
-               gbWithButton = true;
-}
-
-function setFont(sType, sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration)
-{
-       var vFont = new whFont(sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration);
-       if (sType == "Title")
-       {
-               goTitleFont = vFont;
-               var vFont1 = new whFont(sFontName, sFontSize, "black", sFontStyle, sFontWeight, sFontDecoration);
-               goInputFont=vFont1;             
-       }
-       else if (sType == "Normal")
-               goNormalFont = vFont;
-       else if (sType == "Hover")
-               goHoverFont = vFont;
-}
-
-function writeFormStyle()
-{
-       var sStyle = "<style type='text/css'>";
-       sStyle += "p.title {" + getFontStyle(goTitleFont) + "margin-top:0;margin-bottom:0}\n";
-       sStyle += ".inputfield {" + getFontStyle(goInputFont) +"width:100%; }\n";
-       sStyle+="A:link {"+getFontStyle(goNormalFont)+"}\n";
-       sStyle+="A:visited {"+getFontStyle(goNormalFont)+"}\n";
-       sStyle +="A:hover {"+getFontStyle(goHoverFont)+"}\n";
-       sStyle+=".clsFormBackground{\n";
-       if (gsBgImage)
-               sStyle+="border-top:"+gsBgColor+" 1px solid;}\n";
-       else
-               sStyle+="border-top:black 1px solid;}\n";
-
-       sStyle += "</style>";
-       document.write(sStyle);
-}
-
-function lookupKeyDown()
-{
-       if (gbInputEnable)
-       {
-               if (gbIE4)
-               {
-                       if (event.keyCode == 13)        //Enter key
-                               gfunLookUp(true);
-                       else
-                               gfunLookUp(false);
-               }                       
-               else
-                       gfunLookUp(false);
-       }
-}
-
-function init()
-{
-       if (gfunInit)
-               gfunInit();
-       if (!window.Array)  return;
-               document.onkeyup = lookupKeyDown;
-}
-
-function inputSubmit()
-{
-       if ((gbInputEnable && !gbIE4)|| gbInImage)
-               gfunLookUp(true);
-}
-
-function inputEnable(bEnable)
-{
-       gbInputEnable = bEnable;
-}
-
-function inImage(bImage)
-{
-       gbInImage = bImage;
-}
-
-function getFormHTML()
-{
-       var sForm = "";
-       sForm += "<table class=\"clsFormBackground\" width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"0\">";
-       sForm += "<form name=\"" + gstrFormName + "\" method=\"POST\" action=\"javascript:inputSubmit()\" style=\"width:100%\">";
-       sForm += "<tr>";
-       sForm += "<td>";
-       sForm += "<p class=title><nobr>" + gsTitle + "</nobr><br><table width=\"100%\"><tr valign=\"middle\"><td width=\"100%\"><input class=\"inputfield\" type=\"text\" name=\"keywordField\" onfocus=\"inputEnable(1);\" onblur=\"inputEnable(0);\"></td>";
-       if (gbWithButton && gnType >= 0)
-       {
-               sForm += "<td><a title=\"submit button\" href=\"javascript:void(0);\" onclick=\"" + gstrFormName + ".submit(); return false;\" onfocus=\"inImage(1);\" onblur=\"inImage(0);\" onmouseup=\"onMouseUp();\" onmousedown=\"onMouseDown();\" onmouseover=\"onMouseOver();\" onmouseout=\"onMouseOut();\">"
-               if (gnType == 0)
-               {
-                       if (!gsText)
-                               gsText="Go";
-                       sForm += "<img alt=\""+gsText+"\" id=\"go\" border=\"0\" src=\"" + gsOutImage + "\">";
-               }
-               else
-                       sForm += gsText ;
-               sForm += "</a></td>";
-       }
-       sForm += "</tr></table></p></td></tr></form></table>";
-       return sForm;
-}
-
-function onMouseOver()
-{
-       if (getElement("go") && gsOverImage)
-               getElement("go").src = gsOverImage;
-}
-
-function onMouseDown()
-{
-       if (getElement("go") && gsClickImage)
-               getElement("go").src = gsClickImage;
-}
-
-function onMouseUp()
-{
-       if (getElement("go") && gsOutImage)
-               getElement("go").src = gsOutImage;
-}
-
-function onMouseOut()
-{
-       if (getElement("go") && gsOutImage)
-               getElement("go").src = gsOutImage;
-}
-
-if (window.gbWhUtil&&window.gbWhVer&&window.gbWhProxy&&window.gbWhMsg)
-{
-       goTitleFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "none");
-       goNormalFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "none");
-       goHoverFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "underline");
-       gbWhForm=true;
-}
-else
-       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whframes.js b/doc/salome/gui/SMESH/whframes.js
deleted file mode 100755 (executable)
index 121011e..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-//     WebHelp 5.10.001
-// this value should be identical to the value used in whproxy.js
-window.whname = "wh_stub";
-
-// this file will be used by Topic and NavBar and NavPane and other components
-// and this file is used in child frame html.
-// and the whstub.js will be used in the start page.
-// see reference in whstub.js.
-// Internal Area
-var gbInited = false;
-var gWndStubPage = null;
-function getStubPage()
-{
-       if (!gbInited)
-       {
-               gWndStubPage = getStubPage_inter(window);
-               gbInited = true;
-       }
-       return gWndStubPage;
-}
-
-function getStubPage_inter(wCurrent) {
-       if (null == wCurrent.parent || wCurrent.parent == wCurrent)
-               return null;
-
-       if (wCurrent.parent.whname && "wh_stub" == wCurrent.parent.whname) 
-               return wCurrent.parent;
-       else
-               if (wCurrent.parent.frames.length != 0 && wCurrent.parent != wCurrent)
-                       return getStubPage_inter(wCurrent.parent);
-               else 
-                       return null;
-}
-
-// Public interface begin here................
-function RegisterListener(framename, nMessageId)
-{
-       var wStartPage = getStubPage();
-       if (wStartPage && wStartPage != this) {
-               return wStartPage.RegisterListener(framename, nMessageId);
-       }
-       else 
-               return false;
-}
-
-function RegisterListener2(oframe, nMessageId)
-{
-       var wStartPage = getStubPage();
-       if (wStartPage && wStartPage != this) {
-               return wStartPage.RegisterListener2(oframe, nMessageId);
-       }
-       else 
-               return false;
-}
-
-function UnRegisterListener2(oframe, nMessageId)
-{
-       var wStartPage = getStubPage();
-       if (wStartPage && wStartPage != this && wStartPage.UnRegisterListener2) {
-               return wStartPage.UnRegisterListener2(oframe, nMessageId);
-       }
-       else 
-               return false;
-}
-
-function SendMessage(oMessage)
-{
-       var nMsgId = oMessage.nMessageId;
-       if (nMsgId == WH_MSG_ISINFRAMESET && oMessage.wSender != this)
-               return true;
-       var wStartPage = getStubPage();
-       if (wStartPage && wStartPage != this && wStartPage.SendMessage) 
-       {
-               return wStartPage.SendMessage(oMessage);
-       }
-       else 
-               return false;
-}
-var gbWhProxy=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whgbody.htm b/doc/salome/gui/SMESH/whgbody.htm
deleted file mode 100755 (executable)
index 34d782d..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<html>
-<head>
-<title>Glossary Term</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whlang.js"></script>
-<script language="javascript1.2" src="whhost.js"></script>
-<script language="javascript1.2" src="whghost.js"></script>
-<script language="javascript1.2">
-<!--
-if(window.gbWhGHost)
-{
-       
-       
-       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
-       setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
-       setActiveBgColor("#cccccc");
-       setMargin("0pt");
-       setIndent("9pt");
-       GloWriteClassStyle();
-}
-else
-       document.location.reload();
-//-->
-</script>
-</head>
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" bgcolor="white">
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/whgdef.htm b/doc/salome/gui/SMESH/whgdef.htm
deleted file mode 100755 (executable)
index 5ff0f67..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<html>
-<head>
-<title>Glossary Definition</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var goGloFont=null;
-
-function setBackground(sBgImage)
-{
-       gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       gsBgColor=sBgColor;
-}
-
-function window_Unload()
-{
-       UnRegisterListener2(this, WH_MSG_SHOWGLODEF);
-}
-
-function window_OnLoad()
-{
-       if(gsBgImage&&gsBgImage.length>0)
-               document.body.background=gsBgImage;
-       if(gsBgColor&&gsBgColor.length>0)
-               document.body.bgColor=gsBgColor;
-}
-
-function setFont(sType, sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration)
-{
-       var vFont = new whFont(sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration);
-       if (sType == "Normal")
-               goGloFont = vFont;
-}
-
-function textToHtml_nbsp_specialcare(sText)
-{
-       if (sText == null) return null;
-       var sHTML= sText;
-       var re = new RegExp("  ","g");
-       sHTML=  sHTML.replace(re, "&nbsp; ");
-       return  sHTML;
-}
-
-function onSendMessage(oMsg)
-{
-       var nMsgId = oMsg.nMessageId;
-       if (nMsgId == WH_MSG_SHOWGLODEF)
-       {
-               document.body.innerHTML = sDefHead + textToHtml_nbsp_specialcare(oMsg.oParam.sDef) + sDefTail;
-               return true;
-       }
-}
-
-function GDefWriteClassStyle()
-{
-       var sStyle="<STYLE TYPE='text/css'>\n";
-       if (gsBgImage)
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
-       else
-               sStyle+="body {border-top:black 1px solid;}\n";
-       sStyle+=".definition {"+getFontStyle(goGloFont)+"margin:2;}\n";
-       sStyle+="</STYLE>";
-       document.write(sStyle);
-}
-
-if (window.gbWhMsg&&window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer)
-{
-       window.onload=window_OnLoad;
-       window.onunload = window_Unload;
-       goGloFont=new whFont("Verdana", "8pt", "#000000", "normal", "normal", "none");
-       
-       
-       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
-       GDefWriteClassStyle();
-       RegisterListener2(this, WH_MSG_SHOWGLODEF);
-       var sDefHead = "<p class=\"definition\">";
-       var sDefTail = "</p>";
-}
-else
-       document.location.reload();
-//-->
-</script>
-</head>
-<body bgproperties="fixed" bgcolor="white">
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/whgdhtml.htm b/doc/salome/gui/SMESH/whgdhtml.htm
deleted file mode 100755 (executable)
index d02a99f..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<html>
-<head>
-<title>Glossary</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body bgcolor=#c0c0c0 scroll=no RIGHTMARGIN=0 BOTTOMMARGIN=0 TOPMARGIN=0 LEFTMARGIN=0>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2">
-<!--
-var gsBgImage="";
-var    gsBgColor="";
-var goTitleFont=null;
-
-function setBackground(sBgImage)
-{
-       gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       gsBgColor=sBgColor;
-}
-
-function setFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       if(sType=="Title")
-               goTitleFont=vFont;
-}
-
-function getTermText()
-{
-       var strString="Term:";
-strString = "Term:";
-       return strString;
-}
-
-function getDefinitionText()
-{
-       var strString="Definition for:";
-strString = "Definition:";
-       return strString;
-}
-
-function getHTML()
-{
-       var sHTML="";
-       sHTML+="<P class=title><nobr>&nbsp;" + getTermText() + "</nobr></p>";
-       sHTML+="<iframe id=glossaryIFrame title=\"glossary term\" src=\"whgbody.htm\" width=100% height=200 MARGINHEIGHT=0 MARGINWIDTH=0></iframe>";
-       sHTML+="<P class=title><nobr>&nbsp;" + getDefinitionText() + "&nbsp;<b id=Name></b></nobr></p>";
-       sHTML+="<iframe id=defIFrame title=\"glossary definition\" src=\"whgdef.htm\" width=100% height=100% MARGINHEIGHT=0 MARGINWIDTH=0></iframe>";
-       return sHTML;
-}
-
-function writeStyle()
-{
-       var sStyle="<style type='text/css'>";
-       sStyle+="p.title {" + getFontStyle(goTitleFont) + "margin-top:4;margin-bottom:4}\n";
-       if (gsBgImage)
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
-       else
-               sStyle+="body {border-top:black 1px solid;}\n";
-       sStyle+="</style>";
-       document.write(sStyle);
-}
-
-
-function window_OnResize()
-{
-       setIFrameHeight();
-}
-
-function window_OnLoad()
-{
-       if(gsBgImage&&gsBgImage.length>0)
-               document.body.background=gsBgImage;
-       if(gsBgColor&&gsBgColor.length>0)
-               document.body.bgColor=gsBgColor;
-       setIFrameHeight();
-}
-
-function setIFrameHeight()
-{
-       var tH=0;
-       if(gbNav6)
-       {
-               tH=parseInt(window.innerHeight)-30;
-       }
-       else
-       {
-               tH=parseInt(document.body.clientHeight)-4;
-       }
-               
-       var oEle=getElement("glossaryIFrame");
-       if(oEle)
-       {
-               tH=tH-2*parseInt(oEle.offsetTop);
-               if(tH>0)
-               {
-                       oEle.style.height=Math.floor(tH*.6);
-                       var oEleDef=getElement("defIFrame");
-                       if(oEleDef)
-                       {
-                               oEleDef.style.height=tH-parseInt(oEle.style.height);
-                       }
-               }
-       }
-}
-
-function window_Unload()
-{
-       UnRegisterListener2(this,WH_MSG_SHOWGLODEF);
-}
-
-function onSendMessage(oMsg)
-{
-       var nMsgId=oMsg.nMessageId;
-       if(nMsgId==WH_MSG_SHOWGLODEF)
-       {
-               if(getElement("Name"))
-                       getElement("Name").innerHTML=oMsg.oParam.sName;
-               return true;
-       }
-}
-
-if(window.gbWhVer&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhProxy)
-{
-       goTitleFont=new whFont("Arial","9pt","#000000","normal","normal","none");
-       setFont("Title", "Arial","9pt","#000000","normal","normal","none");
-       
-       
-       window.onresize=window_OnResize;
-       window.onload=window_OnLoad;
-       window.onunload=window_Unload;
-       RegisterListener2(this,WH_MSG_SHOWGLODEF);
-       writeStyle();
-       document.write(getHTML());
-}
-else
-       document.location.reload();
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/whghost.js b/doc/salome/gui/SMESH/whghost.js
deleted file mode 100755 (executable)
index 9ebcf24..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-//     WebHelp 5.10.004
-var gbXML=false;
-var gaDef=new Array();
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var goFont=null;
-var goHoverFont=null;
-var gsMargin="2pt";
-var gsIndent="2pt";
-var gsActiveBgColor="#cccccc";
-var gbWhGHost=false;
-var gbShowDef=true;
-var gsGloId="Glo_"
-
-function setBackground(sBgImage)
-{
-       gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       gsBgColor=sBgColor;
-}
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       if(sType=="Normal")
-               goFont=vFont;
-       else if(sType=="Hover")
-               goHoverFont=vFont;
-}
-
-function setActiveBgColor(sBgColor)
-{
-       gsActiveBgColor=sBgColor;
-}
-
-function setMargin(sMargin)
-{
-       gsMargin=sMargin;
-}
-
-function setIndent(sIndent)
-{
-       gsIndent=sIndent;
-}
-
-function insertDef(sKName,sDef)
-{
-       var nLength=gaDef.length
-       var oGlo=new nameDefPair(sKName,sDef);
-       gaDef[nLength]=oGlo;
-       return nLength;
-}
-
-function showDef(nDef)
-{
-       if(nDef<gaDef.length)
-       {       
-               HighLight(nDef);
-               var oParam=gaDef[nDef];
-               var oMsg=new whMessage(WH_MSG_SHOWGLODEF,this,1,oParam);
-               SendMessage(oMsg);
-       }
-}
-
-function nameDefPair(sName,sDef)
-{
-       this.sName=sName;
-       this.sDef=sDef;
-}
-
-function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
-{
-       var sHTML="";
-       var nIdxSet=aCurIdxSet[0];
-       var nIIdx=aPos[nIdxSet];
-       var sRawKName = getItemName(aDataCon,nIdxSet,nIIdx);
-       var sKName=_textToHtml(sRawKName);
-       var sDText=_textToHtml_nonbsp(getDef(aDataCon,nIdxSet,nIIdx));
-       var sDef=sDText;
-       for(var i=1;i<nLength;i++)
-       {
-               var nIdxSeti=aCurIdxSet[i];
-               var nIIdxi=aPos[nIdxSeti];
-               var sRawKNamei = getItemName(aDataCon,nIdxSeti,nIIdxi);
-               var sKNamei=_textToHtml(sRawKNamei);
-               var sDTexti=_textToHtml_nonbsp(getDef(aDataCon,nIdxSeti,nIIdxi));
-               if (compare(sKNamei,sKName)==0)
-               {
-                       if (sDText!=sDTexti)
-                               sDef+="<br>"+sDTexti;
-               }
-       }
-       var nIndex=insertDef(sKName,sDef);
-       if(nLevel==1)
-       {
-               sHTML+="<p><nobr id=\""+getGloId(nIndex)+"\">";
-               sHTML+="<a alt=\""+sKName+"\" href=\"javascript:void(0);\" onfocus=\"HighLight("+nIndex+");\" onclick=\"showDef("+nIndex+");return false;\">"+sKName+"</a></nobr></p>";
-               oHTML.addHTML(sHTML,nLength,bDown,true,sRawKName);
-               if(gbShowDef)
-               {
-                       setTimeout("showDef(0);",100);
-                       gbShowDef = false;
-               }
-       }
-}
-
-function HighLight(nIndex)
-{
-       var oObj=getElement(getGloId(nIndex));
-       if(oObj)
-               HighLightElement(oObj,gsActiveBgColor,"transparent");
-}
-
-function getGloId(nIndex)
-{
-       return gsGloId+nIndex;
-}
-
-function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)
-{
-       if(bDown)
-       {
-               for(var i=0;i<nLength;i++)
-                       aPos[aCurIdxSet[i]]++;
-       }
-       else{
-               for(var i=0;i<nLength;i++)
-                       aPos[aCurIdxSet[i]]--;
-       }
-}
-
-function getDef(aDataCon,nIdxSet,nIIdx)
-{
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-               return aDataCon[nIdxSet].aKs[nIIdx].sDef;
-       else
-               return null;
-}
-
-function getItemName(aDataCon,nIdxSet,nIIdx)
-{
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-               return aDataCon[nIdxSet].aKs[nIIdx].sName;
-       else
-               return null;
-}
-
-function window_OnLoad()
-{
-       if(gsBgImage&&gsBgImage.length>0)
-               document.body.background=gsBgImage;
-       if(gsBgColor&&gsBgColor.length>0)
-               document.body.bgColor=gsBgColor;
-       document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());
-       loadGlo();
-       var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)
-       SendMessage(oMsg);
-}
-
-function loadGlo()
-{
-       if(!gbReady)
-       {
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
-               if(SendMessage(oResMsg)&&oResMsg.oParam)
-               {
-                       gbReady=true;
-                       var oProj=oResMsg.oParam;
-                       var aProj=oProj.aProj;
-                       gbXML=oProj.bXML;
-                       if(aProj.length>0)
-                       {
-                               var sLangId=aProj[0].sLangId;
-                               for(var i=0;i<aProj.length;i++)
-                               {
-                                       if(aProj[i].sGlo&&aProj[i].sLangId==sLangId)
-                                               addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sGlo);
-                               }
-                       }
-                       writeDataIFrame();
-                       enEvt();
-               }               
-       }
-}
-
-function findCKInDom()
-{
-       return true;
-}
-
-function GloWriteClassStyle()
-{
-       var sStyle="<STYLE TYPE='text/css'>\n";
-       if (gsBgImage)
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
-       else
-               sStyle+="body {border-top:black 1px solid;}\n";
-       sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";margin-left:"+gsIndent+";}\n";
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:active {background-color:"+gsActiveBgColor+";}\n";
-       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";
-       sStyle+="</STYLE>";     
-       document.write(sStyle);
-}
-
-function window_Unload()
-{
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);
-       UnRegisterListener2(this,WH_MSG_SHOWGLO);
-}
-
-function onSendMessage(oMsg)
-{
-       if(oMsg)
-       {
-               var nMsgId=oMsg.nMessageId;
-               if(nMsgId==WH_MSG_SHOWGLO)
-               {
-                       if(!gbNav6)
-                               document.body.focus();
-               }
-               else if(nMsgId==WH_MSG_PROJECTREADY)
-               {
-                       loadGlo();
-               }
-       }
-       return true;
-}
-
-if (window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhHost)
-{
-       RegisterListener2(this,WH_MSG_PROJECTREADY);
-       RegisterListener2(this,WH_MSG_SHOWGLO);
-       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
-       goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
-       window.onload=window_OnLoad;
-       window.onbeforeunload=window_BUnload;
-       window.onunload=window_Unload;
-       gbWhGHost=true;
-}
-else
-       document.location.reload();
-
diff --git a/doc/salome/gui/SMESH/whhost.js b/doc/salome/gui/SMESH/whhost.js
deleted file mode 100755 (executable)
index a32225a..0000000
+++ /dev/null
@@ -1,1305 +0,0 @@
-//     WebHelp 5.10.002
-var gaChunks=new Array();
-var gaFakes=new Array();
-var gaDataCon=null;
-var gaData=new Array();
-
-var gbFindCK=false;;
-var gbNeedCalc=false;
-var gbScrl=false;
-var gbProcess=false;
-var gbReady=false;
-
-var gnCheck=0;
-var gnNum=0;
-var gnIns=-1;
-var gnLoad=0;
-var gnRef=-1;
-var gnMaxItems=0;
-var gnMaxMargin=32000;
-var gnNeeded=0;
-var gnNKI=-1;
-var gnRE=0;
-var gnScrlMgn=30;
-var gnSE=0;
-var gnVisible=0;
-var gnItems=0;
-var gnUHeight=1;
-
-var gsBCK=null;
-var gsChK=null;
-var gsCK=null;
-var gsLoadingDivID="LoadingDiv";
-var gsLoadingMsg="Loading data, please wait...";
-var gsSKA=null;
-var gsSKB=null;
-
-var gbLoadInfo=false;
-
-function onLoadXMLError()
-{
-       if(gbLoadInfo)
-       {
-               var aChunk=new Array();
-               projReady(aChunk);
-       }
-       else
-       {
-               var aData=new Array();
-               putData(aData);
-       }
-}
-
-function putDataXML(xmlDoc,sDocPath)
-{
-       if(gbLoadInfo)
-       {
-               var node=xmlDoc.lastChild;
-               if(node)
-               {
-                       var nTotal=0
-                       var aChunk=new Array();
-                       var oC=node.firstChild;
-                       while(oC)
-                       {
-                               if(oC.nodeName=="chunkinfo")
-                               {
-                                       var item=new Object();
-                                       item.sBK=oC.getAttribute("first");
-                                       item.sEK=oC.getAttribute("last");
-                                       item.sFileName=oC.getAttribute("url");
-                                       item.nNum=parseInt(oC.getAttribute("num"));
-                                       nTotal+=item.nNum;
-                                       item.nTotal=nTotal;
-                                       aChunk[aChunk.length]=item;
-                               }
-                               oC=oC.nextSibling;
-                       }
-                       projReady(aChunk);
-               }
-       }
-       else
-       {
-               var node=xmlDoc.lastChild;
-               if(node)
-               {
-                       var aData=new Array();
-                       var nPrev=0;
-                       var nNext=0;
-                       var oC=node.firstChild;
-                       while(oC)
-                       {
-                               nPrev=nNext;
-                               if(oC.nodeName=="key")
-                               {
-                                       var sName=oC.getAttribute("name");
-                                       if(sName&&sName.length>0)
-                                       {
-                                               var sTarget=oC.getAttribute("target");
-                                               var item=new Object();
-                                               item.nType=2;
-                                               item.sName=sName;
-                                               if(sTarget)
-                                                       item.sTarget=sTarget;
-                                               item.nPKOff=nPrev;
-                                               aData[aData.length]=item;
-                                               var nCurIndex=aData.length;
-                                               processKey(oC,aData,item);
-                                               nNext=aData.length-nCurIndex;
-                                               item.nNKOff=nNext;
-                                       }
-                               }
-                               else if(oC.nodeName=="letter")
-                               {
-                                       var name=oC.getAttribute("name");
-                                       if(name&&name.length>0)
-                                       {
-                                               var item=new Object();
-                                               item.nType=1;
-                                               item.sName=name;
-                                               item.nPKOff=nPrev;
-                                               nNext=0;
-                                               item.nNKOff=nNext;
-                                               aData[aData.length]=item;
-                                       }
-                               }
-                               else if(oC.nodeName=="entry")
-                               {
-                                       var name=oC.getAttribute("name");
-                                       var def=oC.getAttribute("value");
-                                       if(name&&name.length>0)
-                                       {
-                                               var item=new Object();
-                                               item.sName=name;
-                                               item.sDef=def;
-                                               item.nPKOff=nPrev;
-                                               nNext=0;
-                                               item.nNKOff=nNext;
-                                               aData[aData.length]=item;
-                                       }
-                               }
-                               oC=oC.nextSibling;
-                       }
-                       putData(aData);
-               }
-       }
-}
-
-function processKey(element,aData,item)
-{
-       var i=0;
-       var nPrev=0;
-       var nNext=0;
-       var oC=element.firstChild;
-       while(oC)
-       {
-               if(oC.nodeName=="topic")
-               {
-                       var name=oC.getAttribute("name");
-                       var url=oC.getAttribute("url");
-                       if(url&&url.length!=0)
-                       {
-                               if(!name||name.length==0)
-                                       name=url;
-                               var topic=new Object();
-                               topic.sName=name;
-                               topic.sURL=url;
-                               if(!item.aTopics)
-                                       item.aTopics=new Array();
-                               item.aTopics[item.aTopics.length]=topic;
-                       }
-               }
-               else if(oC.nodeName=="key")
-               {
-                       nPrev=nNext;
-                       var name=oC.getAttribute("name");
-                       if(name&&name.length!=0)
-                       {
-                               var subItem=new Object();
-                               subItem.sName=name;
-                               subItem.nType=3;
-                               subItem.nPKOff=nPrev;
-                               aData[aData.length]=subItem;
-                               var nCurIndex=aData.length;
-                               processKey(oC,aData,subItem);
-                               nNext=aData.length-nCurIndex;
-                               subItem.nNKOff=nNext;
-                       }
-               }
-               oC=oC.nextSibling;
-       }
-}
-
-function putData(aData)
-{
-       endLoading();
-       var oCData=goCData;
-       if(oCData)
-       {
-               oCData.aKs=aData;
-               if(gnNKI==-1)
-                       setTimeout("checkReady();",1);
-               else
-               {
-                       gsSKA=getKByIdx(oCData,gnNKI);
-                       gbNeedCalc=true;
-                       gbScrl=true;
-                       gnNKI=-1;
-                       if(gsSKA)
-                               setTimeout("checkReady();",1);
-                       else
-                       {
-                               markEnd();
-                               setTimeout("checkAgain();",50);
-                       }
-               }
-       }
-}
-
-function markEnd()
-{
-       if(gbProcess)
-               gbProcess=false;
-}
-
-function endLoading()
-{
-       var oDiv=getElement(gsLoadingDivID);
-       if(oDiv)
-               oDiv.style.visibility="hidden";
-}
-
-function markBegin()
-{
-       gbProcess=true;
-}
-
-function beginLoading()
-{
-       var oDiv=getElement(gsLoadingDivID);
-       if(oDiv)
-       {
-               oDiv.style.top=document.body.scrollTop;
-               oDiv.style.visibility="visible";
-       }
-}
-
-function indexHTMLPart()
-{
-       this.sHTML="";
-       this.nNeeded=0;
-       this.nCurrent=0;
-       this.nConsumed=0;
-       this.sFK=null;
-       this.sLK=null;
-       this.addHTML=function(sHTML,nConsumed,bDown,bK,sK){
-               if(bDown)
-                       this.sHTML+=sHTML;
-               else
-                       this.sHTML=sHTML+this.sHTML;
-               this.nCurrent++;                        
-               this.nConsumed+=nConsumed;
-               if(bK)
-               {
-                       if(!this.sFK)
-                               this.sFK=sK;
-                       if(!this.sLK)
-                               this.sLK=sK;
-                       if(bDown)
-                               this.sLK=sK;
-                       else
-                               this.sFK=sK;
-               }
-       }
-       this.appendHTML=function(oHTML,bDown){
-               this.addSubHTML(oHTML,bDown);
-               if(!this.sFK)
-                       this.sFK=oHTML.sFK;
-               if(!this.sLK)
-                       this.sLK=oHTML.sLK;
-               if(bDown)
-                       this.sLK=oHTML.sLK;
-               else
-                       this.sFK=oHTML.sFK;
-       }       
-       
-       this.addSubHTML=function(oHTML,bDown){
-               if(bDown)
-                       this.sHTML+=oHTML.sHTML;
-               else
-                       this.sHTML=oHTML.sHTML+this.sHTML;
-               this.nCurrent+=oHTML.nCurrent;
-               this.nConsumed+=oHTML.nConsumed;                        
-       }
-}
-
-function getMaxUnits()
-{
-       return Math.floor(gnMaxMargin/gnUHeight)+1;
-}
-
-function getFakeItemsHTMLbyCount(nB,nCount)
-{
-       var nMU=getMaxUnits();
-       var nNum=Math.floor(nCount/nMU);
-       var sHTML="";
-       for(var i=0;i<nNum;i++)
-               sHTML+=getFakeItemHTML(nB,nMU-1);
-               
-       var nRest=nCount%nMU;
-       sHTML+=getFakeItemHTML(nB,nRest-1);
-       return sHTML;
-}
-
-function getFakeItemHTML(nB,nNum)
-{
-       return "<h6 name=fk"+nB+" id=fk"+nB+" style=\"margin-top:"+gnUHeight*nNum+";margin-bottom:0\">&nbsp;</h6>";
-}
-
-function fakeItemsArea(nB,n,sKA,sKB,obj)
-{
-       this.nB=nB;
-       this.nNum=n;
-       this.sKA=sKA;
-       this.sKB=sKB;
-       this.obj=obj;
-       this.nMargin=(n-1)*gnUHeight;
-
-       this.setNum=function(n)
-       {
-               var nLastobj=-1;
-               var nDelta=this.nMargin;
-               this.nMargin=(n-1)*gnUHeight;
-               nDelta=nDelta-this.nMargin;
-               if(n>0)
-               {
-                       this.nNum=n;
-                       var nMU=getMaxUnits();
-                       nLastobj=Math.floor((n-1)/nMU);
-                       if(this.obj.length)
-                               this.obj[nLastobj].style.marginTop=((n-1)%nMU)*gnUHeight;
-                       else
-                               this.obj.style.marginTop=((n-1)%nMU)*gnUHeight;
-               }
-               if(this.obj.length)
-               {
-                       for(var i=this.obj.length-1;i>nLastobj;i--)
-                               removeThis(this.obj[i]);
-               }
-               else
-               {
-                       if(nLastobj==-1)
-                               removeThis(this.obj);
-               }
-               return nDelta;
-       }
-       this.insertAdjacentHTML=function(sWhere,sHTML)
-       {
-               if(sWhere=="beforeBegin")
-               {
-                       if(this.obj.length)
-                               this.obj[0].insertAdjacentHTML(sWhere,sHTML);
-                       else
-                               this.obj.insertAdjacentHTML(sWhere,sHTML);
-               }
-               else if(sWhere=="afterEnd")
-               {
-                       if(this.obj.length)
-                       {
-                               if(gbMac&&gbIE5&&this.obj[this.obj.length-1].nextSibling)
-                                       this.obj[this.obj.length-1].nextSibling.insertAdjacentHTML("beforeBegin",sHTML);
-                               else
-                                       this.obj[this.obj.length-1].insertAdjacentHTML(sWhere,sHTML);
-                       }
-                       else
-                       {
-                               if(gbMac&&gbIE5&&this.obj.nextSibling)
-                                       this.obj.nextSibling.insertAdjacentHTML("beforeBegin",sHTML);
-                               else
-                                       this.obj.insertAdjacentHTML(sWhere,sHTML);
-                       }
-               }
-       }
-       this.getBtm=function()
-       {
-               if(this.obj.length)
-                       return this.obj[this.obj.length-1].offsetTop;
-               else
-                       return this.obj.offsetTop;
-       }
-       this.getTop=function()
-       {
-               return this.getBtm()-this.nMargin;
-       }
-}
-
-function usedItems(nB,nE)
-{
-       this.nB=nB;
-       this.nE=nE;
-       this.oN=null;
-}
-
-function checkReady()
-{
-       var len=gaChunks.length;
-       var bNeedLoad=false;
-       var aDataCon;
-       var s=0;
-       var bDown=(gsSKB==null);
-       var sK=bDown?gsSKA:gsSKB;
-       if(sK==null)
-       {
-               markEnd();
-               setTimeout("checkAgain();",50);
-               return;
-       }
-       if(!gsChK||sK!=gsChK||gnNum==0)
-       {
-               gnCheck=0;
-               gsChK=sK;
-               aDataCon=new Array();
-       }
-       else{
-               s=gnNum;
-               aDataCon=gaDataCon;
-       }
-       for(var i=gnCheck;i<len;i++)
-       {
-               var oCData=getChunkedData(i,bDown,sK);
-               if(oCData)
-               {
-                       if(!oCData.aKs&&oCData.sFileName!=null)
-                       {
-                               bNeedLoad=true;
-                               goCData=oCData;
-                               gnNum=s;
-                               gnCheck=i;
-                               gaDataCon=aDataCon;
-                               oCData.nProjId=i;
-                               gbLoadInfo=false;
-                               beginLoading();
-                               loadData2(gaData[i].sPPath+gaData[i].sDPath+oCData.sFileName);
-                               return;
-                       }
-                       else{
-                               aDataCon[s++]=oCData;
-                       }
-               }
-       }
-       if(!bNeedLoad)
-       {
-               gnNum=0;
-               gsSKA=gsSKB=gsShowK=null;
-               
-               var oHTML=new indexHTMLPart();
-               var aPos=new Array();
-               var aOriPos=new Array();
-               var aMaxPos=new Array();
-               var aMinPos=new Array();
-               
-               if(gbNeedCalc||gbFindCK) gnIns=0;
-               for(i=0;i<aDataCon.length;i++)
-               {
-                       aPos[i]=getIdxPos(aDataCon[i],bDown,sK);
-                       if(gbNeedCalc||gbFindCK)
-                       {
-                               gnIns+=aPos[i]+aDataCon[i].nTotal-aDataCon[i].nNum;
-                               if(!bDown)
-                               {
-                                       if(aPos[i]!=-1)
-                                       {
-                                               if(aDataCon[i].aKs)
-                                                       gnIns+=aDataCon[i].aKs[aPos[i]].nNKOff;
-                                               else
-                                               {
-                                                       var n=aPos[i]+1;
-                                                       while(n<aDataCon[i].aKsOnly.length&&!aDataCon[i].aKsOnly[n])
-                                                               n++;
-                                                       n=n-aPos[i]-1;
-                                                       gnIns+=n;
-                                               }
-                                       }
-                               }
-                       }
-                       aOriPos[i]=aPos[i];
-                       getLimit(aDataCon,aPos,aMaxPos,aMinPos,i);
-               }
-               if((gbNeedCalc||gbFindCK)&&!bDown&&gnIns!=-1)
-               {
-                       gnIns+=(aDataCon.length-1)
-               }
-               if(gnIns!=-1||gbFindCK)
-               {
-                       oHTML.nNeeded=gnNeeded;
-                       var bDone=writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,1);
-                       if(oHTML.nConsumed!=0)
-                       {
-                               var nB;
-                               if(!bDown)
-                                       nB=gnIns-oHTML.nConsumed+1;
-                               else
-                                       nB=gnIns;
-                                       
-                               var oldScrollPos=document.body.scrollTop;
-                               if(insertIdxKs(nB,oHTML,gbScrl))
-                               {
-                                       updateUsedK(aDataCon,aOriPos,aPos,bDown);
-                                       if(!gbScrl&&gbMac)
-                                       {
-                                               while(document.body.scrollTop!=oldScrollPos)
-                                                       document.body.scrollTop=oldScrollPos;
-                                       }
-                                       gbScrl=false;
-                               }
-                               if(gbFindCK)
-                               {
-                                       gbFindCK=false;
-                                       gbNeedCalc=true;
-                                       gsSKB=oHTML.sFK;
-                                       gnIns=-1;
-                                       setTimeout("checkReady();",50);
-                                       return;
-                               }
-                       }
-                       else if(gbFindCK)
-                       {
-                               gbFindCK=false;
-                               gbNeedCalc=true;
-                               gsSKB=getFirstKeyFromPos(aDataCon,aPos);
-                               gnIns=-1;
-                               setTimeout("checkReady();",50);
-                               return;
-                       }
-                       if(!findCKInDom()) return;
-
-                       gnNeeded=gnNeeded-oHTML.nCurrent;
-                       gnIns=-1;
-                       markEnd();
-                       setTimeout("checkAgain();",50);
-                       gbNeedCalc=false;
-               }
-               else
-               {
-                       if(!findCKInDom()) return;
-                       markEnd();
-                       setTimeout("checkAgain();",50);
-               }
-       }
-}
-
-function getFirstKeyFromPos(aDataCon,aPos)
-{
-       var sCurrentK=getBiggestChar();
-       for(var i=0;i<aPos.length;i++)
-       {
-               if(aDataCon[i].aKs&&aDataCon[i].aKs.length>0&&aPos[i]>=0&&aPos[i]<aDataCon[i].aKs.length)
-               {
-                       if(sCurrentK==""||
-                               compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)
-                       {
-                               sCurrentK=aDataCon[i].aKs[aPos[i]].sName;
-                       }
-               }
-       }
-       return sCurrentK;
-}
-
-function checkAgain()
-{
-       if(!gbProcess)
-       {
-               if(gsBCK!=null)
-               {
-                       gsCK=gsBCK;
-                       gsBCK=null;
-                       findCK();
-               }
-               else
-               {
-                       markBegin();
-                       getUnitIdx(document.body.scrollTop,document.body.clientHeight);
-               }
-       }
-       else
-               setTimeout("checkAgain()",50);
-}
-
-function getLimit(aDataCon,aPos,aMaxPos,aMinPos,i)
-{
-       aMaxPos[i]=aDataCon[i].nNum;
-       aMinPos[i]=-1;
-       var oPNode=null;
-       if(aDataCon[i].oUsedItems)
-       {
-               var oUsedItems=aDataCon[i].oUsedItems;
-               do{
-                       if(oUsedItems.nB>aPos[i])
-                       {
-                               aMaxPos[i]=oUsedItems.nB;
-                               break;
-                       }
-                       oPNode=oUsedItems;
-                       oUsedItems=oUsedItems.oN;
-               }while(oUsedItems!=null);
-               if(oPNode)
-                       aMinPos[i]=oPNode.nE;
-       }
-       else if(aDataCon[i].aKs==null)
-       {
-               aMaxPos[i]=aMinPos[i]=aPos[i];
-       }
-       if(aMinPos[i]>=aPos[i]||aMaxPos[i]<=aPos[i])
-       {
-               aMaxPos[i]=aMinPos[i]=aPos[i];
-       }
-}
-
-function getIdxPos(oIdx,bDown,sK)
-{
-       var aKs=oIdx.aKs;
-       var nIdx;
-       if(bDown)
-               nIdx=oIdx.nNum;
-       else
-               nIdx=-1;
-       if(aKs!=null)
-       {
-               for(var i=0;i<aKs.length;i++)
-               {       
-                       if(bDown)
-                       {
-                               if(compare(aKs[i].sName,sK)>0)
-                               {
-                                       nIdx=i;
-                                       break;
-                               }
-                       }
-                       else
-                       {
-                               if(compare(aKs[i].sName,sK)<0)
-                                       nIdx=i;
-                               else
-                                       break;
-                       }
-                       i+=aKs[i].nNKOff;
-               }
-       }
-       else if(oIdx.aKsOnly)
-       {
-               var aKsOnly=oIdx.aKsOnly;
-               for(var i=0;i<aKsOnly.length;i++)
-               {       
-                       if(aKsOnly[i])
-                       {
-                               if(bDown)
-                               {
-                                       if(compare(aKsOnly[i],sK)>0)
-                                       {
-                                               nIdx=i;
-                                               break;
-                                       }
-                               }
-                               else
-                               {
-                                       if(compare(aKsOnly[i],sK)<0)
-                                               nIdx=i;
-                                       else
-                                               break;
-                               }
-                       }
-               }
-       }
-       return nIdx;
-}
-
-function writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,nLevel)
-{
-       var aOldPos=new Array();
-       for(var i=0;i<aPos.length;i++)
-       {
-               aOldPos[i]=aPos[i];
-       }
-       var p;
-       do{
-               var sCurrentK="";
-               var aCurIdxSet=new Array();
-               p=0;
-               for(i=0;i<aDataCon.length;i++)
-               {
-                       if(aDataCon[i].aKs&&aDataCon[i].aKs.length&&aPos[i]!=-1&&
-                               (bDown&&aPos[i]<aMaxPos[i])||(!bDown&&aPos[i]>aMinPos[i]))
-                       {
-                               if(sCurrentK==""||
-                                       (bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)||
-                                       (!bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)<0))
-                               {
-                                       sCurrentK=aDataCon[i].aKs[aPos[i]].sName;
-                                       p=0;
-                                       aCurIdxSet[p++]=i;
-                               }
-                               else if(compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)==0){
-                                       aCurIdxSet[p++]=i;
-                               }
-                       }
-                       else if(nLevel==1&&aMaxPos[i]!=aMinPos[i]){
-                               if(bDown&&aPos[i]==aMaxPos[i])
-                               {
-                                       if(aDataCon[i].aKs)
-                                       {
-                                               gsSKA=aDataCon[i].aKs[aOldPos[i]].sName;
-                                               return false;
-                                       }
-                               }
-                               else if(!bDown&&aPos[i]==aMinPos[i])
-                               {
-                                       if(aDataCon[i].aKs)
-                                       {
-                                               gsSKB=aDataCon[i].aKs[aOldPos[i]].sName;
-                                               return false;
-                                       }
-                               }
-                       }
-               }
-               if(p>=1){
-                       for(var s=0;s<p;s++)
-                       {
-                               aOldPos[aCurIdxSet[s]]=aPos[aCurIdxSet[s]];
-                       }
-                       mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,p,aPos,nLevel);
-                       adjustPosition(bDown,aDataCon,aCurIdxSet,p,aPos);
-                       
-                       if(nLevel==1&&oHTML.nNeeded<=oHTML.nCurrent){
-                               return true;
-                       }
-               }
-       }while(p>0);
-       return true;
-}
-
-function updateUsedK(aDataCon,aOriPos,aOldPos,bDown)
-{
-       for(var i=0;i<aDataCon.length;i++)
-       {
-               if (aOldPos[i]!=aOriPos[i])
-               {
-                       var nBP=0;
-                       var nEP=0;
-                       if(bDown)
-                       {
-                               nBP=aOriPos[i];
-                               nEP=aOldPos[i]-1;
-                       }
-                       else
-                       {
-                               if (aOldPos[i]!=-1)
-                                       nBP=aOldPos[i]+aDataCon[i].aKs[aOldPos[i]].nNKOff+1;
-                               else
-                                       nBP=0;
-                               nEP=aOriPos[i]+aDataCon[i].aKs[aOriPos[i]].nNKOff;
-                       }
-                       if(nBP<=nEP)
-                       {
-                               setContentsUsed(aDataCon[i],nBP,nEP);
-                               
-                               var oFirstPair=aDataCon[i].oUsedItems;
-                               if(oFirstPair.oN==null&&oFirstPair.nB==0&&oFirstPair.nE==aDataCon[i].nNum-1)
-                               {
-                                       storeKeysOnly(aDataCon[i]);
-                                       aDataCon[i].oUsedItems=aDataCon[i].aKs=aDataCon[i].sFileName=null;
-                               }
-                       }
-               }
-       }
-}
-
-function storeKeysOnly(oCData)
-{
-       oCData.aKsOnly=new Array();
-       for(var i=0;i<oCData.aKs.length;i++)
-       {
-               oCData.aKsOnly[i]=oCData.aKs[i].sName;
-               i+=oCData.aKs[i].nNKOff;
-       }
-}
-
-function setContentsUsed(oIdx,nB,nE)
-{
-       if(!oIdx.oUsedItems)
-               oIdx.oUsedItems=new usedItems(nB,nE);
-       else
-       {
-               var oUsedItems=oIdx.oUsedItems;
-               var oPNode=null;
-               do{
-                       if(oUsedItems.nB>nB)
-                       {
-                               if(oUsedItems.nB==nE+1)
-                               {
-                                       oUsedItems.nB=nB;
-                               }
-                               else{
-                                       var oNewNode=new usedItems(oUsedItems.nB,oUsedItems.nE);
-                                       oNewNode.oN=oUsedItems.oN;
-                                       oUsedItems.nB=nB;
-                                       oUsedItems.nE=nE;
-                                       oUsedItems.oN=oNewNode;
-                               }
-                               break;
-                       }
-                       oPNode=oUsedItems;
-                       oUsedItems=oUsedItems.oN;
-               }while(oUsedItems);
-               if(!oUsedItems)
-               {
-                       if(oPNode!=null)
-                               oPNode.oN=new usedItems(nB,nE);
-               }
-               if(oPNode!=null){
-                       if(oPNode.nE==oPNode.oN.nB-1)
-                       {
-                               oPNode.nE=oPNode.oN.nE;
-                               oPNode.oN=oPNode.oN.oN;
-                       }
-               }
-       }
-}
-
-function projInfo(sPPath,sDPath,sFile)
-{
-       this.sPPath=sPPath;
-       this.sDPath=sDPath;
-       this.sFile=sFile;
-}
-
-function addProjInfo(sPPath,sDPath,sFile)
-{
-       var oIdxInfo=new projInfo(sPPath,sDPath,sFile);
-       gaData[gaData.length]=oIdxInfo;
-       return oIdxInfo;
-}
-
-function writeDataIFrame()
-{
-       if(gnLoad<gaData.length)
-       {
-               gbLoadInfo=true;
-               loadData2(gaData[gnLoad].sPPath+gaData[gnLoad].sDPath+gaData[gnLoad].sFile);
-       }
-       else{
-               if(gnItems!=0)
-               {
-                       markBegin();
-                       writeFakeItems();
-                       gsSKA="";
-                       gnNeeded=gnVisible;
-                       gnIns=0;
-                       checkReady();
-               }
-       }
-}
-
-function getH6ById(nPos)
-{
-       if(document.all)
-               return document.all("fk"+nPos);
-       else if(document.getElementsByName)
-               return document.getElementsByName("fk"+nPos);
-       return null;            
-}
-
-function showItemsInEvaluation(nBP)
-{
-       var bRtn=true;
-       var fPer=nBP/gnItems;
-       var nB=Math.floor(fPer*gnMaxItems);
-       var oCData=getChunkByIdx(gnRef,nB);
-       if(oCData)
-       {
-               if(!oCData.aKs&&oCData.sFileName!=null)
-               {
-                       gnNKI=nB;
-                       goCData=oCData;
-                       oCData.nProjId=gnRef;
-                       gbLoadInfo=false;
-                       beginLoading();
-                       loadData2(gaData[gnRef].sPPath+gaData[gnRef].sDPath+oCData.sFileName);
-               }
-               else{
-                       gsSKA=getKByIdx(oCData,nB);
-                       if(gsSKA)
-                       {
-                               gsSKB=null;
-                               gbNeedCalc=true;
-                               gbScrl=true;
-                               checkReady()
-                       }
-                       else
-                       {
-                               markEnd();
-                               bRtn=false;
-                       }
-               }
-       }
-       else
-       {
-               markEnd();
-               bRtn=false;
-       }
-       return bRtn;
-}
-
-function isUsed(oCData,nPos)
-{
-       var oUsed=oCData.oUsedItems;
-       while(oUsed&&oUsed.nB<=nPos)
-       {
-               if(oUsed.nE>=nPos) return true;
-               oUsed=oUsed.oN;
-       }
-       return false;
-}
-
-function getKByIdx(oCData,nB)
-{
-       var nRelPos=nB-(oCData.nTotal-oCData.nNum);
-       var aIKs=oCData.aKs;
-       if(nRelPos>=0&&aIKs&&nRelPos<aIKs.length)
-       {
-               var oK=null;
-               do{
-                       oK=aIKs[nRelPos++];
-               }       
-               while((oK.nType==3||isUsed(oCData,nRelPos-1))&&nRelPos<aIKs.length);
-               if(oK.nType!=3)
-               {
-                       return oK.sName;
-               }
-               else{
-                       nRelPos=nB-(oCData.nTotal-oCData.nNum)-1;
-                       if(nRelPos>=0)
-                       {
-                               do{
-                                       oK=aIKs[nRelPos--];
-                               }
-                               while((oK.nType==3||isUsed(oCData,nRelPos+1))&&nRelPos>=0);
-                       }
-                       if(oK.nType!=3)
-                       {
-                               return oK.sName;
-                       }
-               }
-       }
-       return null;
-}
-
-function loadData2(sFileName)
-{
-       disEvt();
-       if(gbXML)
-               loadDataXML(sFileName);
-       else
-               loadData(sFileName);
-       enEvt();
-}
-
-function projReady(aChunk)
-{
-       gaChunks[gnLoad++]=aChunk;
-       var len=aChunk.length;
-       var nTotal=0;
-       if(len>0)
-               nTotal=aChunk[len-1].nTotal;
-       gnItems+=nTotal;
-       if(nTotal>gnMaxItems)
-       {
-               gnMaxItems=nTotal;
-               gnRef=gnLoad-1;
-       }
-       setTimeout("writeDataIFrame();",1);
-}
-
-function writeFakeItems()
-{
-       disEvt();
-       gnUHeight=15;
-       var sHTML=getFakeItemsHTMLbyCount(0,gnItems);
-       document.body.insertAdjacentHTML("beforeEnd",sHTML);
-       var obj=getH6ById(0);
-       if (document.body != null)
-       {
-               gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);
-       }
-       gaFakes[0]=new fakeItemsArea(0,gnItems,"",getEndString(),obj);
-       enEvt();
-}
-
-function getEndString()
-{
-       var sBC=getBiggestChar();
-       return sBC+sBC+sBC+sBC+sBC+sBC+sBC+sBC;
-}
-
-function getUnitIdx(nScrl,nHeight)
-{
-       if(gaFakes.length==0)
-       {
-               markEnd();
-               return;
-       }
-       var nB=0;
-       var nE=gaFakes.length-1;
-       var nM=-1;
-       var nTop=0;
-       var nBtm=0;
-       var bF=false;
-       do{
-               nM=(nB+nE)>>1;
-               nBtm=gaFakes[nM].getBtm();
-               nTop=gaFakes[nM].getTop();
-                       
-               if(nTop>=nScrl+nHeight)
-                       nE=nM-1;
-               else if(nBtm<nScrl)
-                       nB=nM+1;
-               else{
-                       bF=true;
-                       break;
-               }
-       }while(nE>=nB);
-       if(bF)
-       {
-               if(nTop>=nScrl){
-                       gsSKA=gaFakes[nM].sKA;
-                       gsSKB=null;
-                       gnNeeded=Math.ceil((nHeight-nTop+nScrl)/gnUHeight);
-                       gnIns=gaFakes[nM].nB;
-                       checkReady();
-               }
-               else if(nBtm<=nScrl+nHeight){
-                       gsSKB=gaFakes[nM].sKB;
-                       gsSKA=null;
-                       gnNeeded=Math.ceil((nBtm-nScrl+gnScrlMgn)/gnUHeight);
-                       gbNeedCalc=true;
-                       checkReady();
-               }
-               else{
-                       gnNeeded=gnVisible;
-                       var nUnitIdx=gaFakes[nM].nB+Math.floor((nScrl-nTop)/gnUHeight);
-                       if (!showItemsInEvaluation(nUnitIdx))
-                       {
-                               gsSKA=gaFakes[nM].sKA;
-                               gsSKB=null;
-                               gnNeeded=Math.ceil(nHeight/gnUHeight);
-                               gnIns=gaFakes[nM].nB;
-                               checkReady();
-                       }
-               }
-       }
-       else
-               markEnd();
-}
-
-function disEvt()
-{
-       window.onscroll=null;
-       window.onresize=null;
-}
-
-function enEvt()
-{
-       window.onscroll=window_OnScroll;
-       window.onresize=window_OnResize;
-}
-
-function insertIdxKs(nIns,oHTML,bScrl)
-{
-       var bRtn=true;
-       disEvt();
-       var nCount=oHTML.nConsumed;
-       var nB=0;
-       var nE=gaFakes.length-1;
-       var nM=-1;
-       var bF=false;
-       do{
-               nM=(nB+nE)>>1;
-               if(gaFakes[nM].nB>nIns)
-                       nE=nM-1;
-               else if(gaFakes[nM].nB+gaFakes[nM].nNum<=nIns)
-                       nB=nM+1;
-               else{
-                       bF=true;
-                       break;
-               }
-       }while(nE>=nB);
-       if(bF)
-       {
-               var oFIA=gaFakes[nM];
-               var nOffsetTop=oFIA.getTop();
-               var nOffsetBottom=oFIA.getBtm();
-               var nDelta=0;
-               var nHDiff=nIns-oFIA.nB;
-               var nTDiff=oFIA.nNum+oFIA.nB-(nIns+nCount);
-               if(nHDiff>0)
-               {
-                       nDelta=oFIA.setNum(nHDiff);
-                       var sOldKBefore=oFIA.sKB;
-                       oFIA.sKB=oHTML.sFK;
-                       if(nTDiff>0)
-                       {
-                               var sHTML=getFakeItemsHTMLbyCount(nIns,nTDiff);
-                               oFIA.insertAdjacentHTML("afterEnd",sHTML);
-                               var obj=getH6ById(nIns);
-                               insertItemIntoArray(gaFakes,nM+1,new fakeItemsArea(nIns+nCount,nTDiff,oHTML.sLK,sOldKBefore,obj));
-                       }
-                       oFIA.insertAdjacentHTML("afterEnd",oHTML.sHTML);        
-                       if(bScrl)
-                       {
-                               if(gbMac&&gbIE4)
-                               {
-                                       var nScrollPos=nOffsetBottom-nDelta;
-                                       while(document.body.scrollTop!=nScrollPos)
-                                               document.body.scrollTop=nScrollPos;
-                               }
-                               else
-                                       window.scrollTo(0,nOffsetBottom-nDelta);
-                       }
-               }
-               else{
-                       oFIA.insertAdjacentHTML("beforeBegin",oHTML.sHTML);
-                       if(bScrl){
-                               if(gbMac&&gbIE4)
-                               {
-                                       var nScrollPos=nOffsetTop;
-                                       while(document.body.scrollTop!=nScrollPos)
-                                               document.body.scrollTop=nScrollPos;
-                               }
-                               else
-                                       window.scrollTo(0,nOffsetTop);
-                       }
-                                       
-                       if(nTDiff>0)
-                       {
-                               oFIA.nB=nIns+nCount;
-                               nDelta=oFIA.setNum(nTDiff);
-                               oFIA.sKA=oHTML.sLK;
-                       }       
-                       else{
-                               gaFakes[nM].setNum(0);
-                               removeItemFromArray(gaFakes,nM);
-                       }
-               }
-       }
-       else
-               bRtn=false;
-       enEvt();
-       return bRtn;
-}
-
-function window_OnScroll()
-{
-       gnSE++;
-       setTimeout("procScroll();",50); 
-}
-
-function procScroll()
-{
-       if(gnSE==1&&!gbProcess)
-       {
-               markBegin();
-               getUnitIdx(document.body.scrollTop,document.body.clientHeight);
-       }
-       gnSE--;
-}
-
-function window_OnResize()
-{
-       gnRE++;
-       setTimeout("procResize();",50);
-}
-
-function procResize()
-{
-       if(gnRE==1&&!gbProcess)
-       {
-               markBegin();
-               gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);
-               if(gnIns==-1)
-                       getUnitIdx(document.body.scrollTop,document.body.clientHeight);
-       }
-       gnRE--;
-}
-
-function getChunkByIdx(nIdx,nPosition)
-{
-       var oCData=null;
-       if(nIdx<gaChunks.length)
-       {
-               var len=gaChunks[nIdx].length;
-               if(len>0)
-               {
-                       var nB=0;
-                       var nE=len-1;
-                       var bF=false;
-                       do{
-                               var nM=(nB+nE)>>1;
-                               if(nPosition<gaChunks[nIdx][nM].nTotal)
-                               {
-                                       bF=true;
-                                       nE=nM;
-                               }
-                               else
-                                       nB=nM+1;
-                       }while(nE>nB);
-                       if(bF)
-                               oCData=gaChunks[nIdx][nE];
-                       else if(nPosition<gaChunks[nIdx][nB].nTotal)
-                               oCData=gaChunks[nIdx][nB];
-               }
-       }
-       return oCData;
-}
-
-function getChunkedData(nIdx,bDown,sK)
-{
-       var oCData=null;
-       var nCandId=-1;
-       if(nIdx<gaChunks.length)
-       {
-               var len=gaChunks[nIdx].length;
-               if(len>0)
-               {
-                       var nB=0;
-                       var nE=len-1;
-                       var bF=false;
-                       do{
-                               var nM=(nB+nE+(bDown?0:1))>>1;
-                               if(bDown)
-                               {
-                                       if(compare(sK,gaChunks[nIdx][nM].sEK)<0)
-                                       {
-                                               bF=true;
-                                               nE=nM;
-                                       }
-                                       else
-                                               nB=nM+1;
-                               }
-                               else
-                               {
-                                       if(compare(sK,gaChunks[nIdx][nM].sBK)>0)
-                                       {
-                                               bF=true;
-                                               nB=nM;
-                                       }
-                                       else
-                                               nE=nM-1;
-                               }
-                       }while(nE>nB);
-                       if(bF)
-                       {
-                               if(bDown)
-                                       nCandId=nE;
-                               else
-                                       nCandId=nB;
-                       }
-                       else
-                       {
-                               if(bDown)
-                               {
-                                       if(gaChunks[nIdx].length>nB&&compare(sK,gaChunks[nIdx][nB].sEK)<0)
-                                               nCandId=nB;
-                                       else
-                                               nCandId=gaChunks[nIdx].length-1;
-                               }
-                               else
-                               {
-                                       if(0<=nE&&compare(sK,gaChunks[nIdx][nE].sBK)>0)
-                                               nCandId=nE;
-                                       else
-                                               nCandId=0;
-                               }
-                       }
-                       return gaChunks[nIdx][nCandId];
-               }
-       }
-       return null;
-}
-
-function findCK()
-{
-       if(gsCK!=null)
-       {
-               gsSKA=gsCK;
-               gbFindCK=true;
-               gnNeeded=1;
-               markBegin();
-               checkReady();
-       }
-}
-
-function writeLoadingDiv(nIIdx)
-{
-       return "<div id=\""+gsLoadingDivID+"\" style=\"position:absolute;top:0;left:0;z-index:600;visibility:hidden;padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
-}
-
-var gbWhHost=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whibody.htm b/doc/salome/gui/SMESH/whibody.htm
deleted file mode 100755 (executable)
index 46aeaa2..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-<html>
-<head>
-<title>Index content</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<base target="bsscright">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whlang.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whhost.js"></script>
-<script language="javascript1.2" src="whihost.js"></script>
-<script language="javascript1.2">
-<!--
-var goPopup = null;
-var gbPopupMenuTimeoutExpired=false;
-var gBsClientWidth=640;
-var gBsClientHeight=480;
-var g_bIsPopupMenuInit=false;
-
-function WritePopupMenuLayer()
-{
-       if (!g_bIsPopupMenuInit)
-       {
-               document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");
-               document.write("<STYLE TYPE='text/css'>");
-               if (gbMac && gbIE4) {
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; text-decoration:none;}");
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; text-decoration:none;}");
-               } else {
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:8pt; text-decoration:none;}");
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:8pt; text-decoration:none;}");
-               }
-               document.write("</STYLE>");
-       }
-       g_bIsPopupMenuInit = true;
-}
-
-function PopupMenu_Invoke()
-{
-       if (gbNav6)
-               resetHighLight();
-       
-       if (!gbNav6  && document.readyState != "complete")
-               return false;
-       var fn_arguments = PopupMenu_Invoke.arguments; 
-       // Make sure we have reasonable arguments
-       var argLen = fn_arguments.length;
-       if (argLen < 3) {
-               return false;
-       }
-
-       // Check to see if we only have one target
-       var strTarget = "";
-       
-       strTarget = "TARGET='" + fn_arguments[1] + "'";
-       
-       if (argLen < 5) {
-               // Get the place that we will be putting the topic into
-               var strURL = fn_arguments[3];
-
-               if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined")
-                       window.open(strURL, fn_arguments[1]);
-               else
-                       window.open(strURL);
-                       
-               return false;
-       }
-       
-       var strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';
-       if (gbMac && gbIE4) {
-               strMenu += ' CELLPADDING=4';
-       } else {
-               strMenu += ' CELLPADDING=2';
-       }       
-       strMenu += ' BGCOLOR=#c0c0c0>';
-
-       // Add each of the items
-       if (gbIE55)
-       {
-               var i = 2;
-               while (i <= argLen - 1) {
-                       strMenu += '<TR><TD><NOBR>'
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A ';
-                       strMenu += ' onclick="parent.PopupMenu_2HandleClick(\'' + excapeSingleQuotandSlash(fn_arguments[i + 1]) + '\', \'' + fn_arguments[1] + '\');"';
-                       strMenu += ' onmouseover="parent.PopupMenu_Over(event);"';
-                       strMenu += ' onmouseout="parent.PopupMenu_Out(event);"';
-                       strMenu += '>';
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';
-                       strMenu += '</A></DIV></NOBR></TD></TR>';
-                       i += 2;
-               }
-       }
-       else
-       {
-               var i = 2;
-               while (i <= argLen - 1) {
-                       strMenu += '<TR><TD><NOBR>'
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + fn_arguments[i + 1] + '" ' + strTarget;
-                       strMenu += ' onclick="PopupMenu_HandleClick(event);"';
-                       strMenu += ' onmouseover="PopupMenu_Over(event);"';
-                       strMenu += ' onmouseout="PopupMenu_Out(event);"';
-                       strMenu += '>';
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + excapeSingleQuotandSlash(fn_arguments[i]) + '</SPAN>';
-                       strMenu += '</A></DIV></NOBR></TD></TR>';
-                       i += 2;
-               }
-       }
-       strMenu += "</TABLE>";
-
-       if (gbMac && gbIE4) {
-       // ie5 in mac need something. </TABLE> is one of them.
-               strMenu +="<TABLE></TABLE>";
-       }
-
-       var layerPopup = null;
-       var stylePopup = null;
-       var nEventX = 0;
-       var nEventY = 0;
-       var nWindowWidth = 0;
-       if (gbIE4||gbOpera7)
-       {
-               layerPopup = document.all["PopupMenu"];
-               layerPopup.innerHTML = strMenu;
-               stylePopup = layerPopup.style;
-
-               _BSPSGetClientSize();
-
-               // Get the position of the item causing the event (relative to its parent)
-               nEventX = window.event.clientX;
-               nEventY = window.event.clientY;
-               
-               if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) {
-                       nEventY += document.body.scrollTop + 10;
-               } else {
-                       nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20;
-               }
-               stylePopup.top = nEventY;
-
-               if (nEventX + layerPopup.scrollWidth + 20 > gBsClientWidth) {
-                       if (gBsClientWidth - layerPopup.scrollWidth < 5) {
-                               stylePopup.left = 5;
-                       } else {
-                               stylePopup.left = gBsClientWidth - layerPopup.scrollWidth - 5;
-                       }
-               } else {
-                       stylePopup.left = nEventX + document.body.scrollLeft + 20;
-               }
-
-               if (gbIE55) {
-                       var nPosX = window.event.clientX;
-                       var nPosY = window.event.clientY;
-                       if (window.event.srcElement)
-                       {
-                               nPosX = window.event.srcElement.offsetLeft + window.event.srcElement.offsetWidth - document.body.scrollLeft;
-                               nPosY = window.event.srcElement.offsetTop + window.event.srcElement.offsetHeight - document.body.scrollTop;
-                       }
-                       goPopup = window.createPopup();
-                       var oPopupBody = goPopup.document.body;
-                       goPopup.document.createStyleSheet();
-                       goPopup.document.styleSheets[0].addRule(".PopupOver", "{font-family:\"Arial\"; cursor: hand;color:white; background:navy; font-size:8pt; text-decoration:none;}");
-                       goPopup.document.styleSheets[0].addRule(".PopupNotOver", "{font-family:\"Arial\"; color:black; background:#c0c0c0; font-size:8pt; text-decoration:none;}");
-                       oPopupBody.insertAdjacentHTML("afterBegin", strMenu);
-                       goPopup.show(nPosX, nPosY, layerPopup.scrollWidth, layerPopup.scrollHeight, document.body);
-               }
-               else 
-               {
-                       stylePopup.visibility = "visible";
-                       document.onclick = PopupMenu_HandleClick;
-               }
-       } else if (gbNav6) {
-               layerPopup = document.getElementById("PopupMenu");
-               layerPopup.style.visibility = "hidden";
-       
-               var e = fn_arguments[0];
-               nEventX = e.pageX;
-               nEventY = e.pageY;
-               _BSPSGetClientSize();
-               layerPopup.innerHTML = strMenu;
-
-               if (nEventY + layerPopup.offsetHeight + 20  <  window.pageYOffset + gBsClientHeight) {
-                       nEventY += 20;
-               } else {
-                       nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20;
-               }
-
-               if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) {
-                       if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) {
-                               nEventX = 5;
-                       } else {
-                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20;
-                       }
-               } else {
-                       nEventX += 20;
-               }
-               layerPopup.style.top = nEventY;
-               layerPopup.style.left = nEventX;
-
-               // set again to avoid the frash in netscape 6.
-               layerPopup.innerHTML = strMenu;
-               layerPopup.style.visibility = "visible";
-               window.onclick = PopupMenu_HandleClick;
-       } 
-
-       window.gbPopupMenuTimeoutExpired = false;
-       setTimeout("PopupMenu_Timeout();", 100);
-       return false;
-}
-
-function PopupMenu_Timeout()
-{
-       window.gbPopupMenuTimeoutExpired = true;
-}
-
-function PopupMenu_Over(e)
-{
-       if (gbIE4||gbOpera7)
-               e.srcElement.className = "PopupOver";
-       else if (gbNav6)
-               e.target.parentNode.className = "PopupOver";
-}
-
-function PopupMenu_Out(e)
-{
-       if (gbIE4||gbOpera7)
-               e.srcElement.className = "PopupNotOver";
-       else if (gbNav6)
-               e.target.parentNode.className = "PopupNotOver";
-}
-
-function PopupMenu_2HandleClick(surl, starget)
-{
-       window.open(surl, starget);
-       goPopup.hide();
-}
-
-function PopupMenu_HandleClick(e)
-{
-       if (!window.gbPopupMenuTimeoutExpired) {
-               return;
-       }
-
-       var layerPopup = getElement("PopupMenu");
-       layerPopup.style.visibility = "hidden";
-
-       return;
-}
-
-//Get client size info
-function _BSPSGetClientSize()
-{
-       gBsClientWidth  = document.body.clientWidth;
-       gBsClientHeight = document.body.clientHeight;
-}
-
-if (window.gbWhIHost)
-{
-       
-       
-       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
-       setFont("Empty", "Arial","9pt","#000000","normal","normal","none");
-       setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
-       setActiveBgColor("#cccccc");
-       setMargin("0pt");
-       setIndent("9pt");
-       IndexWriteClassStyle();
-}
-else
-       document.location.reload();
-//-->
-</script>
-</head>
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" scroll="auto" bgcolor="white">
-<script languageE="JavaScript">
-<!--
-WritePopupMenuLayer();
-//-->
-</script>
-</body>
-</html>
-
diff --git a/doc/salome/gui/SMESH/whidhtml.htm b/doc/salome/gui/SMESH/whidhtml.htm
deleted file mode 100755 (executable)
index feb7b2b..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<html>
-<head>
-<title>Index</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2">
-<!--
-var gbIndexLayerInit = false;
-if (window.gbWhProxy&&window.gbWhMsg&&window.gbWhVer)
-{
-       var strWrite;
-       if (gbMac)
-               strWrite="<FRAMESET ROWS='45,100%' framespacing=0  frameborder=1>";
-       else
-               strWrite="<FRAMESET ROWS='60,100%' framespacing=0  frameborder=1>";
-       strWrite +="<FRAME SRC='whiform.htm' title='index form frame' name='idxform' noresize='yes' scrolling='no'>";
-       strWrite +="<FRAME SRC='whibody.htm' title='index content frame' name='idxbody' scrolling='yes'>";
-       strWrite +="</FRAMESET>";
-       document.write(strWrite);
-}
-else
-       document.location.reload();
-//-->
-</script>
-</html>
diff --git a/doc/salome/gui/SMESH/whiform.htm b/doc/salome/gui/SMESH/whiform.htm
deleted file mode 100755 (executable)
index d412744..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<html>
-<head>
-<title>Index form</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<style>
-<!--
-body {margin:0;}
--->
-</style>
-<body bgcolor="#c0c0c0">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whform.js"></script>
-<script language="javascript1.2">
-<!--
-function indexLookup(bCR)
-{
-       var strInput = document.IndexInputForm.keywordField.value.toUpperCase();
-       if (strInput != "") {
-               var oParam = new Object();
-               oParam.sInput = strInput;
-               oParam.bCR = bCR;
-               var oMessage = new whMessage(WH_MSG_SEARCHINDEXKEY, this, 1, oParam);
-               SendMessage(oMessage);
-       }
-       if (gbMac) {
-               document.IndexInputForm.keywordField.focus();
-       }
-}
-
-function window_Unload()
-{
-       UnRegisterListener2(this, WH_MSG_SHOWTOC);
-       UnRegisterListener2(this, WH_MSG_SHOWIDX);
-       UnRegisterListener2(this, WH_MSG_SHOWFTS);
-       UnRegisterListener2(this, WH_MSG_SHOWGLO);
-}
-
-function onSendMessage(oMessage)
-{
-       if (oMessage.nMessageId == WH_MSG_SHOWIDX)
-       {
-               document.IndexInputForm.keywordField.focus();
-       }
-       else if (oMessage.nMessageId == WH_MSG_SHOWFTS ||
-               oMessage.nMessageId == WH_MSG_SHOWTOC || 
-               oMessage.nMessageId == WH_MSG_SHOWGLO)
-       {
-               document.IndexInputForm.keywordField.blur();
-       }
-       return true;
-}
-
-if (window.gbWhForm)
-{
-       RegisterListener2(this, WH_MSG_SHOWTOC);
-       RegisterListener2(this, WH_MSG_SHOWIDX);
-       RegisterListener2(this, WH_MSG_SHOWFTS);
-       RegisterListener2(this, WH_MSG_SHOWGLO);
-       window.onunload=window_Unload;
-       window.onload = init;
-       gfunLookUp = indexLookup;
-       gfunInit = null;
-       gstrFormName = "IndexInputForm"
-       gsTitle = "Type in the keyword to find:";
-       gsTitle = "Type in the keyword to find:";
-
-       
-       
-       
-       
-       
-       
-       setGoText("Go");
-       setFont("Title", "Arial","9pt","#000000","normal","normal","none");
-       
-       
-       document.write(getFormHTML());
-       writeFormStyle();
-}
-else
-       document.location.reload();
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/whihost.js b/doc/salome/gui/SMESH/whihost.js
deleted file mode 100755 (executable)
index d48c493..0000000
+++ /dev/null
@@ -1,424 +0,0 @@
-//     WebHelp 5.10.002
-var gsDefaultTarget="bsscright";
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var goIdxFont=null;
-var goIdxEmptyFont=null;
-var goIdxHoverFont=null;
-var gsIdxMargin="0pt";
-var gsIdxIndent="8pt";
-var gsIdxActiveBgColor="#cccccc";
-var gsCK = null;
-var gsBCK = null;
-var gbCR = false;
-var gbBCR = false;
-var gbWhIHost=true;
-
-function myEvent()
-{
-       this.pageX = 0;
-       this.pageY = 0;
-}
-var _event=new myEvent();
-
-function setBackgroundcolor(sBgColor)
-{
-       gsBgColor=sBgColor;
-}
-
-function setBackground(sBgImage)
-{
-       gsBgImage=sBgImage;
-}
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       if(sType=="Normal")
-               goIdxFont=vFont;
-       else if(sType=="Empty")
-               goIdxEmptyFont=vFont;
-       else if(sType=="Hover")
-               goIdxHoverFont=vFont;
-}
-
-function setActiveBgColor(sBgColor)
-{
-       gsIdxActiveBgColor=sBgColor;
-}
-
-function setMargin(sMargin)
-{
-       gsIdxMargin=sMargin;
-}
-
-function setIndent(sIndent)
-{
-       gsIdxIndent=sIndent;
-}
-
-function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
-{
-       var sHTML="";
-       var nIdxSet=aCurIdxSet[0];
-       var nIIdx=aPos[nIdxSet];
-       var sKOriName=getItemName(aDataCon,nIdxSet,nIIdx);
-       var sKName=_textToHtml(sKOriName);
-
-       var nIdxIndent=parseInt(gsIdxIndent);
-       var sTopics="";
-       if(nLevel==1){
-               if(getItemType(aDataCon,nIdxSet,nIIdx)==1)
-               {
-                       sHTML+="<H6><nobr>";
-                       sHTML+="<b>"+sKName+"</b></nobr></H6>";
-               }
-               else{
-                       for(var i=0;i<nLength;i++)
-                               sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
-                       sHTML+="<p style=\"margin-left:"+gsIdxIndent+"\"><nobr>";
-                       sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+excapeSingleQuotandSlash(getTargetName(aDataCon,nIdxSet,nIIdx))+"'";
-                       if(sTopics.length>0)
-                               sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></p>";
-                       else
-                               sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></p>";
-               }
-       }
-       else if(nLevel>=2){
-               var nIndent=nIdxIndent*nLevel;
-               for(var i=0;i<nLength;i++)
-                       sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
-               if (nLevel==2)
-                       sHTML+="<h6 class=\"firstsub\" style=\"margin-left:"+nIndent+"pt\"><nobr>";
-               else
-                       sHTML+="<h6 style=\"margin-left:"+nIndent+"pt\"><nobr>";
-               sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+excapeSingleQuotandSlash(getTargetName(aDataCon,nIdxSet,nIIdx))+"'";
-               if(sTopics.length>0)
-                       sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></h6>";
-               else
-                       sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></h6>";
-       }
-       oHTML.addHTML(sHTML,nLength,bDown,(nLevel==1),sKOriName);
-}
-
-function getTargetName(aDataCon,nIdxSet,nIIdx)
-{
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-               if(aDataCon[nIdxSet].aKs[nIIdx].sTarget)
-                       return aDataCon[nIdxSet].aKs[nIIdx].sTarget;
-       return gsDefaultTarget;
-}
-
-function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
-{
-       var oLocalHTML=new indexHTMLPart();
-       writeOneItem(oLocalHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel);
-       
-       var aLocalPos=new Array();
-       var aMaxPos=new Array();
-       for(var i=0;i<aPos.length;i++)
-       {
-               aLocalPos[i]=aPos[i];
-               aMaxPos[i]=-1;
-       }
-       
-       for(i=0;i<nLength;i++)
-       {
-               var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aLocalPos[aCurIdxSet[i]]);
-               aLocalPos[aCurIdxSet[i]]++;
-               if(nNKOff>0)
-                       aMaxPos[aCurIdxSet[i]]=aLocalPos[aCurIdxSet[i]]+nNKOff;
-       }
-       var oSubHTML=new indexHTMLPart();
-       writeItems(oSubHTML,aDataCon,aLocalPos,null,aMaxPos,true,nLevel+1);
-       oLocalHTML.addSubHTML(oSubHTML,true);
-       oHTML.appendHTML(oLocalHTML,bDown);
-}
-
-function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)
-{
-       if(bDown)
-       {
-               for(var i=0;i<nLength;i++)
-               {
-                       var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
-                       aPos[aCurIdxSet[i]]+=(1+nNKOff);
-               }
-       }
-       else{
-               for(var i=0;i<nLength;i++)
-               {
-                       var nPKOff=getPKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
-                       aPos[aCurIdxSet[i]]-=(1+nPKOff);
-               }
-       }
-}
-
-function getItemName(aDataCon,nIdxSet,nIIdx)
-{
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-               return aDataCon[nIdxSet].aKs[nIIdx].sName;
-       else
-               return null;
-}
-
-function getItemType(aDataCon,nIdxSet,nIIdx)
-{
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-               return aDataCon[nIdxSet].aKs[nIIdx].nType;
-       else
-               return 0;
-}
-
-function getNKOff(aDataCon,nIdxSet,nIIdx)
-{
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-               return aDataCon[nIdxSet].aKs[nIIdx].nNKOff;
-       else
-               return null;
-}
-
-function getPKOff(aDataCon,nIdxSet,nIIdx)
-{
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-               return aDataCon[nIdxSet].aKs[nIIdx].nPKOff;
-       else
-               return null;
-}
-
-function window_OnLoad()
-{
-       if(gsBgImage&&gsBgImage.length>0)
-       {
-               document.body.background=gsBgImage;
-       }
-       if(gsBgColor&&gsBgColor.length>0)
-       {
-               document.body.bgColor=gsBgColor;
-       }
-       document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());
-       loadIdx();
-       var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)
-       SendMessage(oMsg);
-}
-
-function loadIdx()
-{
-       if(!gbReady)
-       {
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
-               if(SendMessage(oResMsg)&&oResMsg.oParam)
-               {
-                       gbReady=true;
-                       var oProj=oResMsg.oParam;
-                       var aProj=oProj.aProj;
-                       gbXML=oProj.bXML;
-                       if(aProj.length>0)
-                       {
-                               var sLangId=aProj[0].sLangId;
-                               for(var i=0;i<aProj.length;i++)
-                               {
-                                       if(aProj[i].sIdx&&aProj[i].sLangId==sLangId)
-                                       {
-                                               addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sIdx);
-                                       }
-                               }
-                       }
-                       writeDataIFrame();
-                       enEvt();
-               }               
-       }
-}
-
-function getIdxTopics(aDataCon,nIdxSet,nIIdx)
-{
-       var sTopics="";
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-       {
-               if(aDataCon[nIdxSet].aKs[nIIdx].aTopics)
-               {
-                       var nLen=aDataCon[nIdxSet].aKs[nIIdx].aTopics.length;
-                       var nProj=aDataCon[nIdxSet].nProjId;
-                       var sPath=gaData[nProj].sPPath;
-                       for(var i=0;i<nLen;i++)
-                       {
-                               var sURL=aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sURL;
-                               var sFullPath=_getFullPath(sPath,sURL);
-                               sTopics+=",'"+excapeSingleQuotandSlash(_textToHtml(aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sName))+"','"+excapeSingleQuotandSlash(_textToHtml_nonbsp(sFullPath))+"'";
-                       }
-               }
-       }
-       return sTopics;         
-}
-
-function findCKInDom()
-{
-       if(gsCK!=null)
-       {
-               var sK=gsCK;
-               var oP=getElementsByTag(document,"P");
-               if(!oP) return false;
-               var len=oP.length;
-               var nB=0;
-               var nE=len-1;
-               var nM=0;
-               var sItem="";
-               var bF=false;
-               while(nB<nE){
-                       nM=(nB+nE+1)>>1;
-                       sItem=getInnerText(oP[nM]);
-                       
-                       if(compare(sItem,sK)==0)
-                       {
-                               bF=true;
-                               break;
-                       }
-                       else if(compare(sItem,sK)>0)
-                               nE=nM-1;
-                       else if(compare(sItem,sK)<0)
-                               nB=nM;
-               }
-               if(!bF)
-               {
-                       if(nB==nE) nM=nB;
-               
-                       if(nM+1<len)
-                       {
-                               sItem=getInnerText(oP[nM+1]);
-                               if(compare(sItem,sK)<=0) nM++;
-                       }                       
-                       if(nM+1<len)
-                       {
-                               sItem=getInnerText(oP[nM+1]);
-                               if(compare(sItem.substring(0,sK.length),sK)==0) nM++;
-                       }                       
-               }
-       
-               var oMatch=oP[nM];
-               if(oMatch)
-               {
-                       window.scrollTo(0,oMatch.offsetTop);
-                       var tempColl=getElementsByTag(oMatch,"A");
-                       if(tempColl&&tempColl.length>0){
-                               var nbTag=getElementsByTag(oMatch,"NOBR");
-                               if(nbTag&&nbTag.length>0)
-                                       HighLightElement(nbTag[0], gsIdxActiveBgColor, "transparent");
-                               if (gbCR)
-                               {
-                                       if (gbIE4)
-                                               tempColl(0).click();
-                                       else
-                                       {
-                                               var strCommand = tempColl[0].getAttribute("onClick");
-                                               var nstrCommand = strCommand.indexOf(";");
-                                               strCommand = strCommand.substring(0, nstrCommand);
-                                               strCommand = strCommand.replace("event", "_event");
-                                               window._event.pageX = oMatch.offsetLeft ;
-                                               window._event.pageY = oMatch.offsetTop + 20;
-                                               window.setTimeout(strCommand, 100);
-                                       }
-                               }
-                       }
-               }
-               gsCK=gsBCK;
-               gbCR=gbBCR;
-               if(gsBCK!=null)
-               {
-                       gsBCK=null;
-                       gbBCR=false;
-                       findCK();
-                       return false;
-               }
-               
-       }
-       return true;
-}
-
-function clearHighLight()
-{
-       resetHighLight(gsBgColor);
-}
-
-function IndexWriteClassStyle()
-{
-       var sStyle="";
-       sStyle+="<STYLE TYPE='text/css'>";
-       if (gsBgImage)
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
-       else
-               sStyle+="body {border-top:black 1px solid;}\n";
-       if(gbIE4&&gbMac&&!gbIE5)
-       {
-               var nMargin=parseInt(gsIdxMargin);
-               nMargin-=10;
-               sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
-               sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
-               sStyle+="H6.firstsub {"+getFontStyle(goIdxFont)+"margin-top:"+nMargin+"pt;margin-bottom:"+gsIdxMargin+";}\n";
-       }
-       else
-       {
-               sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
-               sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
-       }
-       sStyle+="DIV {margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
-       sStyle+="A:link {"+getFontStyle(goIdxFont)+"}\n";
-       sStyle+="A:visited {"+getFontStyle(goIdxFont)+"}\n";
-       sStyle+="A:active {background-color:"+gsIdxActiveBgColor+";}\n";
-       sStyle+="A:hover {"+getFontStyle(goIdxHoverFont)+"}\n";
-       sStyle+="</STYLE>";     
-       document.write(sStyle);
-       return;
-}
-
-function window_Unload()
-{
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);
-       UnRegisterListener2(this,WH_MSG_SEARCHINDEXKEY);
-}
-
-function onSendMessage(oMsg)
-{
-       if(oMsg)
-       {
-               var nMsgId=oMsg.nMessageId;
-               if(nMsgId==WH_MSG_SEARCHINDEXKEY)
-               {
-                       if(oMsg.oParam && oMsg.oParam.sInput)
-                       {
-                               if(gsCK==null)
-                               {
-                                       gsCK=oMsg.oParam.sInput;
-                                       gbCR = oMsg.oParam.bCR;
-                                       findCK();
-                               }
-                               else
-                               {
-                                       gsBCK=oMsg.oParam.sInput;
-                                       gbBCR = oMsg.oParam.bCR;
-                               }
-                       }
-               }
-               else if(nMsgId==WH_MSG_PROJECTREADY)
-               {
-                       loadIdx();
-               }
-       }
-       return true;
-}
-
-if(window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhHost&&window.gbWhProxy)
-{
-       RegisterListener2(this,WH_MSG_PROJECTREADY);
-       RegisterListener2(this,WH_MSG_SEARCHINDEXKEY);
-       goIdxFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
-       goIdxEmptyFont=new whFont("Verdana","8pt","#666666","normal","normal","none");
-       goIdxHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
-
-       window.onload=window_OnLoad;
-       window.onbeforeunload=window_BUnload;
-       window.onunload=window_Unload;
-       gbWhIHost=true;
-}
-else
-       document.location.reload();
-
diff --git a/doc/salome/gui/SMESH/whlang.js b/doc/salome/gui/SMESH/whlang.js
deleted file mode 100755 (executable)
index fb848c5..0000000
+++ /dev/null
@@ -1,453 +0,0 @@
-//     WebHelp 5.10.001
-var garrSortChar=new Array();
-var gaFtsStop=new Array();
-var gaFtsStem=new Array();
-var gbWhLang=false;
-
-garrSortChar[0] = 0;
-garrSortChar[1] = 1;
-garrSortChar[2] = 2;
-garrSortChar[3] = 3;
-garrSortChar[4] = 4;
-garrSortChar[5] = 5;
-garrSortChar[6] = 6;
-garrSortChar[7] = 7;
-garrSortChar[8] = 8;
-garrSortChar[9] = 40;
-garrSortChar[10] = 41;
-garrSortChar[11] = 42;
-garrSortChar[12] = 43;
-garrSortChar[13] = 44;
-garrSortChar[14] = 9;
-garrSortChar[15] = 10;
-garrSortChar[16] = 11;
-garrSortChar[17] = 12;
-garrSortChar[18] = 13;
-garrSortChar[19] = 14;
-garrSortChar[20] = 15;
-garrSortChar[21] = 16;
-garrSortChar[22] = 17;
-garrSortChar[23] = 18;
-garrSortChar[24] = 19;
-garrSortChar[25] = 20;
-garrSortChar[26] = 21;
-garrSortChar[27] = 22;
-garrSortChar[28] = 23;
-garrSortChar[29] = 24;
-garrSortChar[30] = 25;
-garrSortChar[31] = 26;
-garrSortChar[32] = 38;
-garrSortChar[33] = 45;
-garrSortChar[34] = 46;
-garrSortChar[35] = 47;
-garrSortChar[36] = 48;
-garrSortChar[37] = 49;
-garrSortChar[38] = 50;
-garrSortChar[39] = 33;
-garrSortChar[40] = 51;
-garrSortChar[41] = 52;
-garrSortChar[42] = 53;
-garrSortChar[43] = 88;
-garrSortChar[44] = 54;
-garrSortChar[45] = 34;
-garrSortChar[46] = 55;
-garrSortChar[47] = 56;
-garrSortChar[48] = 115;
-garrSortChar[49] = 119;
-garrSortChar[50] = 121;
-garrSortChar[51] = 123;
-garrSortChar[52] = 125;
-garrSortChar[53] = 126;
-garrSortChar[54] = 127;
-garrSortChar[55] = 128;
-garrSortChar[56] = 129;
-garrSortChar[57] = 130;
-garrSortChar[58] = 57;
-garrSortChar[59] = 58;
-garrSortChar[60] = 89;
-garrSortChar[61] = 90;
-garrSortChar[62] = 91;
-garrSortChar[63] = 59;
-garrSortChar[64] = 60;
-garrSortChar[65] = 131;
-garrSortChar[66] = 148;
-garrSortChar[67] = 150;
-garrSortChar[68] = 154;
-garrSortChar[69] = 158;
-garrSortChar[70] = 168;
-garrSortChar[71] = 171;
-garrSortChar[72] = 173;
-garrSortChar[73] = 175;
-garrSortChar[74] = 185;
-garrSortChar[75] = 187;
-garrSortChar[76] = 189;
-garrSortChar[77] = 191;
-garrSortChar[78] = 193;
-garrSortChar[79] = 197;
-garrSortChar[80] = 214;
-garrSortChar[81] = 216;
-garrSortChar[82] = 218;
-garrSortChar[83] = 220;
-garrSortChar[84] = 225;
-garrSortChar[85] = 230;
-garrSortChar[86] = 240;
-garrSortChar[87] = 242;
-garrSortChar[88] = 244;
-garrSortChar[89] = 246;
-garrSortChar[90] = 252;
-garrSortChar[91] = 61;
-garrSortChar[92] = 62;
-garrSortChar[93] = 63;
-garrSortChar[94] = 64;
-garrSortChar[95] = 66;
-garrSortChar[96] = 67;
-garrSortChar[97] = 131;
-garrSortChar[98] = 148;
-garrSortChar[99] = 150;
-garrSortChar[100] = 154;
-garrSortChar[101] = 158;
-garrSortChar[102] = 168;
-garrSortChar[103] = 171;
-garrSortChar[104] = 173;
-garrSortChar[105] = 175;
-garrSortChar[106] = 185;
-garrSortChar[107] = 187;
-garrSortChar[108] = 189;
-garrSortChar[109] = 191;
-garrSortChar[110] = 193;
-garrSortChar[111] = 197;
-garrSortChar[112] = 214;
-garrSortChar[113] = 216;
-garrSortChar[114] = 218;
-garrSortChar[115] = 220;
-garrSortChar[116] = 225;
-garrSortChar[117] = 230;
-garrSortChar[118] = 240;
-garrSortChar[119] = 242;
-garrSortChar[120] = 244;
-garrSortChar[121] = 246;
-garrSortChar[122] = 252;
-garrSortChar[123] = 68;
-garrSortChar[124] = 69;
-garrSortChar[125] = 70;
-garrSortChar[126] = 71;
-garrSortChar[127] = 27;
-garrSortChar[128] = 114;
-garrSortChar[129] = 28;
-garrSortChar[130] = 82;
-garrSortChar[131] = 170;
-garrSortChar[132] = 85;
-garrSortChar[133] = 112;
-garrSortChar[134] = 109;
-garrSortChar[135] = 110;
-garrSortChar[136] = 65;
-garrSortChar[137] = 113;
-garrSortChar[138] = 223;
-garrSortChar[139] = 86;
-garrSortChar[140] = 213;
-garrSortChar[141] = 29;
-garrSortChar[142] = 255;
-garrSortChar[143] = 30;
-garrSortChar[144] = 31;
-garrSortChar[145] = 80;
-garrSortChar[146] = 81;
-garrSortChar[147] = 83;
-garrSortChar[148] = 84;
-garrSortChar[149] = 111;
-garrSortChar[150] = 36;
-garrSortChar[151] = 37;
-garrSortChar[152] = 79;
-garrSortChar[153] = 229;
-garrSortChar[154] = 222;
-garrSortChar[155] = 87;
-garrSortChar[156] = 212;
-garrSortChar[157] = 32;
-garrSortChar[158] = 254;
-garrSortChar[159] = 251;
-garrSortChar[160] = 39;
-garrSortChar[161] = 72;
-garrSortChar[162] = 97;
-garrSortChar[163] = 98;
-garrSortChar[164] = 99;
-garrSortChar[165] = 100;
-garrSortChar[166] = 73;
-garrSortChar[167] = 101;
-garrSortChar[168] = 74;
-garrSortChar[169] = 102;
-garrSortChar[170] = 133;
-garrSortChar[171] = 93;
-garrSortChar[172] = 103;
-garrSortChar[173] = 35;
-garrSortChar[174] = 104;
-garrSortChar[175] = 75;
-garrSortChar[176] = 105;
-garrSortChar[177] = 92;
-garrSortChar[178] = 122;
-garrSortChar[179] = 124;
-garrSortChar[180] = 76;
-garrSortChar[181] = 106;
-garrSortChar[182] = 107;
-garrSortChar[183] = 108;
-garrSortChar[184] = 77;
-garrSortChar[185] = 120;
-garrSortChar[186] = 199;
-garrSortChar[187] = 94;
-garrSortChar[188] = 116;
-garrSortChar[189] = 117;
-garrSortChar[190] = 118;
-garrSortChar[191] = 78;
-garrSortChar[192] = 131;
-garrSortChar[193] = 131;
-garrSortChar[194] = 131;
-garrSortChar[195] = 131;
-garrSortChar[196] = 131;
-garrSortChar[197] = 131;
-garrSortChar[198] = 131;
-garrSortChar[199] = 150;
-garrSortChar[200] = 158;
-garrSortChar[201] = 158;
-garrSortChar[202] = 158;
-garrSortChar[203] = 158;
-garrSortChar[204] = 175;
-garrSortChar[205] = 175;
-garrSortChar[206] = 175;
-garrSortChar[207] = 175;
-garrSortChar[208] = 154;
-garrSortChar[209] = 193;
-garrSortChar[210] = 197;
-garrSortChar[211] = 197;
-garrSortChar[212] = 197;
-garrSortChar[213] = 197;
-garrSortChar[214] = 197;
-garrSortChar[215] = 95;
-garrSortChar[216] = 197;
-garrSortChar[217] = 230;
-garrSortChar[218] = 230;
-garrSortChar[219] = 230;
-garrSortChar[220] = 230;
-garrSortChar[221] = 246;
-garrSortChar[222] = 227;
-garrSortChar[223] = 224;
-garrSortChar[224] = 131;
-garrSortChar[225] = 131;
-garrSortChar[226] = 131;
-garrSortChar[227] = 131;
-garrSortChar[228] = 131;
-garrSortChar[229] = 131;
-garrSortChar[230] = 131;
-garrSortChar[231] = 150;
-garrSortChar[232] = 158;
-garrSortChar[233] = 158;
-garrSortChar[234] = 158;
-garrSortChar[235] = 158;
-garrSortChar[236] = 175;
-garrSortChar[237] = 175;
-garrSortChar[238] = 175;
-garrSortChar[239] = 175;
-garrSortChar[240] = 154;
-garrSortChar[241] = 193;
-garrSortChar[242] = 197;
-garrSortChar[243] = 197;
-garrSortChar[244] = 197;
-garrSortChar[245] = 197;
-garrSortChar[246] = 197;
-garrSortChar[247] = 96;
-garrSortChar[248] = 197;
-garrSortChar[249] = 230;
-garrSortChar[250] = 230;
-garrSortChar[251] = 230;
-garrSortChar[252] = 230;
-garrSortChar[253] = 246;
-garrSortChar[254] = 227;
-garrSortChar[255] = 250;
-
-gaFtsStop[0] = "a";
-gaFtsStop[1] = "about";
-gaFtsStop[2] = "after";
-gaFtsStop[3] = "against";
-gaFtsStop[4] = "all";
-gaFtsStop[5] = "also";
-gaFtsStop[6] = "among";
-gaFtsStop[7] = "an";
-gaFtsStop[8] = "and";
-gaFtsStop[9] = "are";
-gaFtsStop[10] = "as";
-gaFtsStop[11] = "at";
-gaFtsStop[12] = "be";
-gaFtsStop[13] = "became";
-gaFtsStop[14] = "because";
-gaFtsStop[15] = "been";
-gaFtsStop[16] = "between";
-gaFtsStop[17] = "but";
-gaFtsStop[18] = "by";
-gaFtsStop[19] = "can";
-gaFtsStop[20] = "come";
-gaFtsStop[21] = "do";
-gaFtsStop[22] = "during";
-gaFtsStop[23] = "each";
-gaFtsStop[24] = "early";
-gaFtsStop[25] = "for";
-gaFtsStop[26] = "form";
-gaFtsStop[27] = "found";
-gaFtsStop[28] = "from";
-gaFtsStop[29] = "had";
-gaFtsStop[30] = "has";
-gaFtsStop[31] = "have";
-gaFtsStop[32] = "he";
-gaFtsStop[33] = "her";
-gaFtsStop[34] = "his";
-gaFtsStop[35] = "however";
-gaFtsStop[36] = "in";
-gaFtsStop[37] = "include";
-gaFtsStop[38] = "into";
-gaFtsStop[39] = "is";
-gaFtsStop[40] = "it";
-gaFtsStop[41] = "its";
-gaFtsStop[42] = "late";
-gaFtsStop[43] = "later";
-gaFtsStop[44] = "made";
-gaFtsStop[45] = "many";
-gaFtsStop[46] = "may";
-gaFtsStop[47] = "me";
-gaFtsStop[48] = "med";
-gaFtsStop[49] = "more";
-gaFtsStop[50] = "most";
-gaFtsStop[51] = "near";
-gaFtsStop[52] = "no";
-gaFtsStop[53] = "non";
-gaFtsStop[54] = "not";
-gaFtsStop[55] = "of";
-gaFtsStop[56] = "on";
-gaFtsStop[57] = "only";
-gaFtsStop[58] = "or";
-gaFtsStop[59] = "other";
-gaFtsStop[60] = "over";
-gaFtsStop[61] = "several";
-gaFtsStop[62] = "she";
-gaFtsStop[63] = "some";
-gaFtsStop[64] = "such";
-gaFtsStop[65] = "than";
-gaFtsStop[66] = "that";
-gaFtsStop[67] = "the";
-gaFtsStop[68] = "their";
-gaFtsStop[69] = "then";
-gaFtsStop[70] = "there";
-gaFtsStop[71] = "these";
-gaFtsStop[72] = "they";
-gaFtsStop[73] = "this";
-gaFtsStop[74] = "through";
-gaFtsStop[75] = "to";
-gaFtsStop[76] = "under";
-gaFtsStop[77] = "until";
-gaFtsStop[78] = "use";
-gaFtsStop[79] = "was";
-gaFtsStop[80] = "we";
-gaFtsStop[81] = "were";
-gaFtsStop[82] = "when";
-gaFtsStop[83] = "where";
-gaFtsStop[84] = "which";
-gaFtsStop[85] = "who";
-gaFtsStop[86] = "with";
-gaFtsStop[87] = "you";
-
-gaFtsStem[0] = "ed";
-gaFtsStem[1] = "es";
-gaFtsStem[2] = "er";
-gaFtsStem[3] = "e";
-gaFtsStem[4] = "s";
-gaFtsStem[5] = "ingly";
-gaFtsStem[6] = "ing";
-gaFtsStem[7] = "ly";
-
-
-// as javascript 1.3 support unicode instead of ISO-Latin-1
-// need to transfer come code back to ISO-Latin-1 for compare purpose
-// Note: Different Language(Code page) maybe need different array:
-var gaUToC=new Array();
-gaUToC[8364]=128;
-gaUToC[8218]=130;
-gaUToC[402]=131;
-gaUToC[8222]=132;
-gaUToC[8230]=133;
-gaUToC[8224]=134;
-gaUToC[8225]=135;
-gaUToC[710]=136;
-gaUToC[8240]=137;
-gaUToC[352]=138;
-gaUToC[8249]=139;
-gaUToC[338]=140;
-gaUToC[381]=142;
-gaUToC[8216]=145;
-gaUToC[8217]=146;
-gaUToC[8220]=147;
-gaUToC[8221]=148;
-gaUToC[8226]=149;
-gaUToC[8211]=150;
-gaUToC[8212]=151;
-gaUToC[732]=152;
-gaUToC[8482]=153;
-gaUToC[353]=154;
-gaUToC[8250]=155;
-gaUToC[339]=156;
-gaUToC[382]=158;
-gaUToC[376]=159;
-
-var gsBiggestChar="";
-function getBiggestChar()
-{
-       if(gsBiggestChar.length==0)
-       {
-               if(garrSortChar.length<256)
-                       gsBiggestChar=String.fromCharCode(255);
-               else
-               {
-                       var nBiggest=0;
-                       var nBigChar=0;
-                       for(var i=0;i<=255;i++)
-                       {
-                               if(garrSortChar[i]>nBiggest)
-                               {
-                                       nBiggest=garrSortChar[i];
-                                       nBigChar=i;
-                               }
-                       }
-                       gsBiggestChar=String.fromCharCode(nBigChar);
-               }
-
-       }       
-       return gsBiggestChar;
-}
-
-function getCharCode(str,i)
-{
-       var code=str.charCodeAt(i)
-       if(code>256)
-       {
-               code=gaUToC[code];
-       }
-       return code;
-}
-
-function compare(strText1,strText2)
-{
-       if(garrSortChar.length<256)
-       {
-               var strt1=strText1.toLowerCase();
-               var strt2=strText2.toLowerCase();
-               if(strt1<strt2) return -1;
-               if(strt1>strt2) return 1;
-               return 0;
-       }
-       else
-       {
-               for(var i=0;i<strText1.length&&i<strText2.length;i++)
-               {
-                       if(garrSortChar[getCharCode(strText1,i)]<garrSortChar[getCharCode(strText2,i)]) return -1;
-                       if(garrSortChar[getCharCode(strText1,i)]>garrSortChar[getCharCode(strText2,i)]) return 1;
-               }
-               if(strText1.length<strText2.length) return -1;
-               if(strText1.length>strText2.length) return 1;
-               return 0;
-       }
-}
-gbWhLang=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whmozemu.js b/doc/salome/gui/SMESH/whmozemu.js
deleted file mode 100755 (executable)
index 8fd89b2..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-//     WebHelp 5.10.002
-if (! window.gbIE4 && window.gbNav6 && !document.childNodes[0].insertAdjacentHTML){
-
-HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)
-{
-       switch (where){
-       case 'beforeBegin':
-               this.parentNode.insertBefore(parsedNode,this);
-               break;
-       case 'afterBegin':
-               this.insertBefore(parsedNode,this.firstChild);
-               break;
-       case 'beforeEnd':
-               this.appendChild(parsedNode);
-               break;
-       case 'afterEnd':
-               if (this.nextSibling){
-               this.parentNode.insertBefore(parsedNode,this.nextSibling);
-               } else {
-               this.parentNode.appendChild(parsedNode);
-               }
-               break;
-       }
-}
-
-HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr){
-
-       var r = this.ownerDocument.createRange();
-       r.setStartBefore(this);
-       var parsedHTML = r.createContextualFragment(htmlStr);
-       this.insertAdjacentElement(where,parsedHTML);
-}
-
-
-HTMLElement.prototype.insertAdjacentText = function(where,txtStr){
-
-       var parsedText = document.createTextNode(txtStr);
-       this.insertAdjacentElement(where,parsedText);
-}
-}
-
-function testScroll() {
-       // Initialize scrollbar cache if necessary
-       if (window._pageXOffset==null) {
-               window._pageXOffset = window.pageXOffset;
-               window._pageYOffset = window.pageYOffset;
-       }
-       // Expose Internet Explorer compatible object model
-       document.scrollTop = window.pageYOffset;
-       document.scrollLeft = window.pageXOffset;
-       window.document.scrollHeight = document.height;
-       window.document.scrollWidth = document.width;
-       window.document.clientWidth = window.innerWidth;
-       window.document.clientHeight = window.innerHeight;
-
-       // If cache!=current values, call the onscroll event
-       if (((window.pageXOffset!=window._pageXOffset) || (window.pageYOffset!=window._pageYOffset)) && (window.onscroll)) 
-               window.onscroll();
-       // Cache new values
-       window._pageXOffset = window.pageXOffset;
-       window._pageYOffset = window.pageYOffset;
-       }
-
-// Create compatibility layer for Netscape
-if (window.gbNav6 && !window.gbNav7) {
-       setInterval("testScroll()",50)
-}
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whmsg.js b/doc/salome/gui/SMESH/whmsg.js
deleted file mode 100755 (executable)
index 492114b..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-//     WebHelp 5.10.002
-var WH_MSG_RESIZEPANE          =0x0100;
-var WH_MSG_SHOWPANE                    =0x0101;
-var WH_MSG_HIDEPANE                    =0x0102;
-var WH_MSG_SYNCTOC                     =0x0103;
-var WH_MSG_NEXT                                =0x0104;
-var WH_MSG_PREV                                =0x0105;
-var WH_MSG_NOSEARCHINPUT       =0x0106;
-var WH_MSG_NOSYNC                      =0x0107;
-var WH_MSG_ENABLEWEBSEARCH     =0x0108;
-
-var WH_MSG_ISPANEVISIBLE       =0x0109;
-var WH_MSG_PANESTATUE          =0x010a;
-
-var    WH_MSG_SYNCINFO                 =0x010b;
-var WH_MSG_PANEINFO                    =0x010c;
-var WH_MSG_WEBSEARCH           =0x010d;
-
-var WH_MSG_SEARCHINDEXKEY      =0x0201;
-
-var WH_MSG_SEARCHFTSKEY        =0x020a;
-
-var WH_MSG_PROJECTREADY                =0x0301;
-var WH_MSG_GETPROJINFO                 =0x0302;
-
-var WH_MSG_SHOWTOC                     =0x0401;
-var WH_MSG_SHOWIDX                     =0x0402;
-var WH_MSG_SHOWFTS                     =0x0403;
-var WH_MSG_SHOWGLO                     =0x0404;
-
-var WH_MSG_SHOWGLODEF          =0x0500;
-
-var WH_MSG_GETTOCPATHS                 =0x0600;
-var WH_MSG_GETAVIAVENUES       =0x0601;
-var WH_MSG_GETCURRENTAVENUE =0x0602;
-var WH_MSG_GETPANEINFO         =0x0603;
-var WH_MSG_AVENUEINFO          =0x0604;
-
-var WH_MSG_GETSTARTFRAME       =0x0701;
-var WH_MSG_GETDEFAULTTOPIC     =0x0702;
-
-var WH_MSG_SEARCHTHIS          =0x0801;
-var WH_MSG_GETSEARCHS          =0x0802;
-
-var WH_MSG_ISINFRAMESET                =0x0900;
-
-var WH_MSG_TOOLBARORDER                =0x0a00;
-var WH_MSG_MINIBARORDER                =0x0a01;
-var WH_MSG_ISSYNCSSUPPORT      =0x0a02;
-var WH_MSG_ISSEARCHSUPPORT     =0x0a03;
-var WH_MSG_GETPANETYPE         =0x0a04;
-var WH_MSG_BACKUPSEARCH                =0x0a05;
-var WH_MSG_GETPANES                    =0x0a06;
-var WH_MSG_INITSEARCHSTRING =0x0a07;
-var WH_MSG_RELOADNS6           =0x0a08;
-var WH_MSG_ISAVENUESUPPORT     =0x0a09;
-
-var WH_MSG_GETCMD                      =0x0b00;
-var    WH_MSG_GETPANE                  =0x0b01;
-var WH_MSG_GETDEFPANE          =0x0b02;
-
-function whMessage(nMessageId,wSender,nVersion,oParam)
-{
-       this.nMessageId=nMessageId;
-       this.wSender=wSender;
-       this.nVersion=nVersion;
-       this.oParam=oParam;
-}
-var gbWhMsg=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whnjs.htm b/doc/salome/gui/SMESH/whnjs.htm
deleted file mode 100755 (executable)
index 2b71c79..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whstub.js"></script>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whstart.js"></script>
-<script language="javascript1.2">
-<!--
-function window_Onload()
-{
-       if (window.gsTopic)
-               frames["bsscright"].document.location = window.gsTopic;
-}
-window.onload=window_Onload;
-//-->
-</script>
-</head>
-
-<frameset id="whPfset" cols="260,*"><noframes><p>Your browser does not support frames. We recommend that you update your browser to a version that supports frames.</p><p>To view the Help system without frames click on this<a href="whgdata/whnvp30.htm">hyperlink.</a></p></noframes><frame src="whgdata/whnvp30.htm" title="navigation pane" name="navigation pane" scrolling="no"><frame src="mesh.htm" title="topic pane" name="bsscright" scrolling="yes"></frameset>
-</html>
diff --git a/doc/salome/gui/SMESH/whphost.js b/doc/salome/gui/SMESH/whphost.js
deleted file mode 100755 (executable)
index b8f74f4..0000000
+++ /dev/null
@@ -1,581 +0,0 @@
-//     WebHelp 5.10.005
-var gaProj=new Array();
-var gnChecked=0;
-var gsProjName="";
-var gbReady=false;
-var goMan=null;
-var gbXML=false;
-var gsFirstPane="";
-var gServerEnabled=false;
-var gsPath="";
-var gbWhPHost=false;
-var goDiv = null;
-var gsHTML = "";
-
-if (navigator.currentNavPen)
-       gsFirstPane = navigator.currentNavPen;
-
-
-function delayLoad()
-{
-       if (goDiv&&gsHTML)
-       {
-               goDiv.innerHTML=gsHTML;
-               goDiv=null;
-               gsHTML="";
-       }
-}
-
-function whCom(sName,sComFile)
-{
-       this.msName=sName;
-       this.msDivId=sName+"Div";
-       this.msIFrameId=sName+"IFrame";
-       this.msComFile=sComFile;
-       this.mbloaded=false;
-       this.mbShow=false;
-       this.show=function(bShow)
-       {
-               if(this.mbShow!=bShow)
-               {
-                       if(bShow&&!this.mbloaded)
-                       {
-                               this.load();
-                       }
-
-                       var oDiv=getElement(this.msDivId);
-                       if(oDiv)
-                       {
-                               if(gbIE55||(gbIE5&&gbMac))
-                               {
-                                       var oIframe=getElement(this.msIFrameId);
-                                       if(oIframe)
-                                       {
-                                               if(bShow)
-                                               {
-                                                       oDiv.style.zIndex=3;
-                                                       if(oIframe!=null)
-                                                       {
-                                                               oIframe.style.zIndex=3;
-                                                               if (!gbIE55)
-                                                                       oIframe.style.visibility="visible";
-                                                       }
-                                               }
-                                               else
-                                               {
-                                                       oDiv.style.zIndex=2;
-                                                       if(oIframe!=null)
-                                                       {
-                                                               oIframe.style.zIndex=2;
-                                                               if (!gbIE55)
-                                                                       oIframe.style.visibility="hidden";
-                                                       }
-                                               }
-                                       }
-                               }
-                               if (!gbIE55)
-                                       oDiv.style.visibility=(bShow==true)?'visible':'hidden';
-                               this.mbShow=bShow;
-                       }
-
-               }
-       }
-       this.load=function()
-       {
-               if(!this.mbloaded)
-               {
-                       if(this.msComFile.length>0){
-                               var strFile= _getFullPath(getPath(), this.msComFile);
-                               var oDiv=getElement(this.msDivId);
-                               if(oDiv){
-                                       if(gbIE4||gbOpera7){
-                                               var nIFrameHeight=oDiv.style.pixelHeight;
-                                               var nIFrameWidth=oDiv.style.pixelWidth;
-                                               var sHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:";
-                                               if(gbMac){
-                                                       sHTML+=nIFrameWidth+"px;height:"+nIFrameHeight+"px;\"></IFRAME>";
-                                               }else{
-                                                       sHTML+="100%; height:100%;\"></IFRAME>";
-                                               }
-                                               oDiv.innerHTML=sHTML;
-                                       }else if(gbNav6){
-                                               gsHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:100%;border:0;height:100%;\"></IFRAME>";
-                                               goDiv = oDiv;
-                                               setTimeout("delayLoad()", 100);
-                                       }
-                                       this.mbloaded=true;
-                               }
-                       }
-               }
-       }
-       this.unload=function()
-       {
-               var oDiv=getElement(this.msDivId);
-               if(oDiv)
-                       oDiv.innerHTML="";
-       }
-       this.getDivHTML=function()
-       {
-               var sHTML="";
-               if(gbMac&&gbIE4)
-                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;margin:0;padding:0;border:0;\">";
-               else if(gbIE5)
-                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;\">";
-               else if(gbIE4||gbWindows)
-                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden\">";
-               else
-                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden\">";
-               sHTML+="</DIV>";
-               return sHTML;
-       }
-}  
-
-function whComMan()
-{
-       this.sName="";
-       this.maCom=new Array();
-       this.addCom=function(sName,sComFile)
-       {
-               var owhCom=new whCom(sName,sComFile);
-               this.maCom[this.maCom.length]=owhCom;
-       }
-       this.init=function()
-       {
-               var sHTML="";
-               for(var i=0;i<this.maCom.length;i++)
-               {
-                       sHTML+=this.maCom[i].getDivHTML();
-               }
-               document.body.insertAdjacentHTML("beforeEnd",sHTML);
-
-       }
-       this.showById=function(nId)
-       {
-               for(var s=0;s<this.maCom.length;s++)
-               {
-                       if(s!==nId)
-                               this.maCom[s].show(false);
-               }
-               this.maCom[nId].show(true);
-       }
-       this.show=function(sName)
-       {
-               navigator.currentNavPen = sName;
-               var bFound=false;
-               for(var i=0;i<this.maCom.length;i++)
-               {
-                       if(sName==this.maCom[i].msName)
-                       {
-                               bFound=true;
-                               break;
-                       }
-               }
-               if(bFound)
-               {
-                       this.showById(i);
-                       this.sName=sName;
-               }
-       }
-       this.unload=function()
-       {
-               for(var i=0;i<this.maCom.length;i++)
-               {
-                       this.maCom[i].unload();
-               }               
-       }
-       this.getCurrent=function()
-       {
-               return this.sName;
-       }
-}
-
-function getPath()
-{
-       if(gsPath=="")
-       {
-               gsPath=location.href;
-               gsPath=_replaceSlash(gsPath);
-               var nPosFile=gsPath.lastIndexOf("/");
-               gsPath=gsPath.substring(0,nPosFile+1);
-       }
-       return gsPath;
-}
-
-goMan=new whComMan();
-function addPane(sName,sFileName)
-{
-       var oParam=new Object();
-       oParam.sName=sName;
-       var oMsg=new whMessage(WH_MSG_GETPANE, this, 1, oParam);
-       if (SendMessage(oMsg))
-       {
-               if (oMsg.oParam.bEnable)
-                       goMan.addCom(sName,sFileName);
-       }
-       else
-               goMan.addCom(sName,sFileName);  
-}
-
-function setShowPane(sName, bForce)
-{
-       if ((gsFirstPane == "") || bForce)
-       {
-               var oMsg=new whMessage(WH_MSG_GETDEFPANE, this, 1, null);
-               if (SendMessage(oMsg))
-               {
-                       if (oMsg.oParam)
-                               gsFirstPane = oMsg.oParam;
-                       else
-                               gsFirstPane=sName;
-               }
-               else
-                       gsFirstPane=sName;
-       }
-}
-
-function window_OnLoad()
-{
-       var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);
-       var bHidePane=false;
-       if (SendMessage(oMsg))
-       {
-               if(oMsg.oParam>0)
-               {
-                       if(oMsg.oParam==1)
-                               gsFirstPane="toc";
-                       else if(oMsg.oParam==2)
-                               gsFirstPane="idx";
-                       else if(oMsg.oParam==3)
-                               gsFirstPane="fts";
-                       else if(oMsg.oParam==4)
-                               gsFirstPane="glo";
-               }
-               else if(oMsg.oParam==0)
-               {
-                       bHidePane=true;
-               }
-       }
-       goMan.init();
-       if(gsProjName!="")                      
-               loadData2(gsProjName);  
-       if (bHidePane)
-       {
-               gsFirstPane="";
-               var oMsg1=new whMessage(WH_MSG_HIDEPANE, this, 1, null)
-               SendMessage(oMsg1);
-       }
-       else
-       {
-               if(gsFirstPane!="")
-                       goMan.show(gsFirstPane);
-               else
-                       goMan.showById(0);
-       }
-}
-
-function setServerEnabled()
-{
-       gServerEnabled = true;
-}
-
-function loadData2(strFile)
-{
-       if(gbXML)
-               loadDataXML(strFile);
-       else
-               loadData(strFile);
-}
-
-function addProject(bPreferXML,sXMLName,sHTMLName)
-{
-       var bLoadXML=bPreferXML;
-       if(!gbIE4&&!gbNav6&&!gbOpera7)
-               return;
-       if(gbIE4&&!gbIE5)
-               bLoadXML=false;
-       if (gbIE5&&!gbMac)
-               bLoadXML=true;
-       if(gbIE55||gbNav6)
-               bLoadXML=true;
-       if(gbOpera7)
-               bLoadXML=false;         
-       if(bLoadXML)
-               addProjectXML(sXMLName);
-       else
-               addProjectHTML(sHTMLName);
-}
-
-function addProjectHTML(sName)
-{
-       gbXML=false;
-       gsProjName=sName;
-}
-
-function addProjectXML(sName)
-{
-       gbXML=true;
-       gsProjName=sName;
-}
-
-function window_MyBunload()
-{
-       goMan.unload();
-       window_BUnload();
-}
-
-function putDataXML(xmlDoc,sdocPath)
-{
-       if(xmlDoc!=null)
-       {
-               var projectNode=xmlDoc.getElementsByTagName("project")[0];
-               if(projectNode)
-               {
-                       var aRProj=new Array();
-                       aRProj[0]=new Object();
-                       aRProj[0].sPPath=_getPath(sdocPath);
-                       var sLangId=projectNode.getAttribute("langid");
-                       if(sLangId)
-                       {
-                               aRProj[0].sLangId=sLangId;
-                       }
-                       var sDPath=projectNode.getAttribute("datapath");
-                       if(sDPath)
-                       {
-                               if(sDPath.lastIndexOf("/")!=sDPath.length-1)
-                                       sDPath+="/";
-                               aRProj[0].sDPath=sDPath;
-                       }
-                       else
-                               aRProj[0].sDPath="";
-                       aRProj[0].sToc=projectNode.getAttribute("toc");
-                       aRProj[0].sIdx=projectNode.getAttribute("index");
-                       aRProj[0].sFts=projectNode.getAttribute("fts");
-                       aRProj[0].sGlo=projectNode.getAttribute("glossary");
-                       var RmtProject=projectNode.getElementsByTagName("remote");
-                       var nCount=1;
-                       for (var i=0;i<RmtProject.length;i++)
-                       {
-                               var sURL=RmtProject[i].getAttribute("url");
-                               if(sURL)
-                               {
-                                       if(sURL.lastIndexOf("/")!=sURL.length-1)
-                                               sURL+="/";
-                                       aRProj[nCount]=new Object();
-                                       aRProj[nCount++].sPPath=_getFullPath(aRProj[0].sPPath,sURL);
-                               }
-                       }
-                       putProjectInfo(aRProj);
-               }
-               else
-               {
-                       // on Netscape 6.0 under some situation the xml file cannot be loaded.
-                       // so we use pure html instead.
-                       if (gnChecked == 0)
-                               setTimeout("redirectToList();",100);
-                       else
-                       {
-                               gnChecked++;
-                               setTimeout("checkRemoteProject();", 1);
-                       }
-               }
-       }
-}
-
-function onLoadXMLError()
-{
-       gnChecked++;
-       setTimeout("checkRemoteProject();", 1);
-}
-
-function redirectToList()
-{
-       if(gbReDirectThis)
-               document.location=gsNavReDirect;
-       else
-               parent.document.location=gsNavReDirect;
-}
-
-function putProjectInfo(aRProj)
-{
-       if(gnChecked==0||isSamePath(gaProj[gnChecked].sPPath,aRProj[0].sPPath))
-       {
-               if(gnChecked!=0)
-               {
-                       if(aRProj[0].sLangId!=gaProj[0].sLangId)
-                               alert("The merged Help system "+aRProj[0].sPPath+" is using a different language from the master Help system, which will cause the index and full-text search functionality to be disabled in the merged Help system.");
-               }
-               gaProj[gnChecked]=aRProj[0];
-               for(var i=1;i<aRProj.length;i++)
-               {
-                       var bFound=false;
-                       for(var j=0;j<gaProj.length;j++)
-                       {
-                               if(isSamePath(gaProj[j].sPPath,aRProj[i].sPPath))
-                               {
-                                       bFound=true;
-                                       break;
-                               }
-                       }
-                       if(!bFound)
-                       {
-                               gaProj[gaProj.length]=aRProj[i];
-                       }
-               }
-               gnChecked++;
-               setTimeout("checkRemoteProject();", 1);
-       }
-       else
-               alert("Could not load correctly, please click Refresh.");
-}
-
-function isSamePath(sPath1,sPath2)
-{
-       return (sPath1.toLowerCase()==sPath2.toLowerCase());
-}
-
-function checkRemoteProject()
-{
-       if(gaProj.length!=gnChecked)
-       {
-               setTimeout("cancelProj("+gnChecked+");",10000);
-               loadData2(gaProj[gnChecked].sPPath+gsProjName);
-       }
-       else{
-               var oMsg=new whMessage(WH_MSG_PROJECTREADY,this,1,null);
-               gbReady=true;
-               SendMessage(oMsg);
-       }
-}
-
-function cancelProj(i)
-{
-       if(i==gnChecked)
-       {
-               gnChecked++;
-               setTimeout("checkRemoteProject();", 1);
-       }       
-}
-
-function window_resize()
-{
-       for(var i=0;i<goMan.maCom.length;i++)
-       {
-               var oFrame=getElement(goMan.maCom[i].msIFrameId);
-               if(oFrame)
-               {
-                       oFrame.style.height=document.body.clientHeight;
-                       oFrame.style.width=document.body.clientWidth;
-               }
-       }
-       window_resize2();
-}
-
-function window_resize2()
-{
-       if(document.body)
-       {
-               if(document.body.clientWidth > 1 && document.body.clientHeight>1)
-               {
-                       var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);
-                       SendMessage(oMsg);
-               }
-       }
-}
-
-function window_unload()
-{
-       UnRegisterListener2(this,WH_MSG_GETPROJINFO);
-       UnRegisterListener2(this,WH_MSG_SHOWTOC);
-       UnRegisterListener2(this,WH_MSG_SHOWIDX);
-       UnRegisterListener2(this,WH_MSG_SHOWFTS);
-       UnRegisterListener2(this,WH_MSG_SHOWGLO);
-       UnRegisterListener2(this,WH_MSG_GETPANEINFO);
-}
-
-function onSendMessage(oMsg)
-{
-       if(oMsg)
-       {
-               var nMsgId=oMsg.nMessageId;
-               if(nMsgId==WH_MSG_GETPROJINFO)
-               {
-                       if(gbReady)
-                       {
-                               var oProj=new Object();
-                               oProj.aProj=gaProj;
-                               oProj.bXML=gbXML;
-                               oMsg.oParam=oProj;
-                       }
-                       else
-                               return false;
-               }
-               else if(nMsgId==WH_MSG_SHOWTOC)
-               {
-                       if(goMan)
-                               goMan.show("toc");
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");
-                       SendMessage(onMsg);
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                       SendMessage(onMsg);
-               }
-               else if(nMsgId==WH_MSG_SHOWIDX)
-               {
-                       if(goMan)
-                               goMan.show("idx");
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");
-                       SendMessage(onMsg);
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                       SendMessage(onMsg);
-               }
-               else if(nMsgId==WH_MSG_SHOWFTS)
-               {
-                       if(goMan)
-                               goMan.show("fts");
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");
-                       SendMessage(onMsg);
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                       SendMessage(onMsg);
-               }
-               else if(nMsgId==WH_MSG_SHOWGLO)
-               {
-                       if(goMan)
-                               goMan.show("glo");
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");
-                       SendMessage(onMsg);
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                       SendMessage(onMsg);
-               }
-               else if(nMsgId==WH_MSG_GETPANEINFO)
-               {
-                       oMsg.oParam=goMan.getCurrent();
-                       return false;
-               }
-       }
-       return true;
-}
-
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
-{
-       RegisterListener2(this,WH_MSG_GETPROJINFO);
-       RegisterListener2(this,WH_MSG_SHOWTOC);
-       RegisterListener2(this,WH_MSG_SHOWIDX);
-       RegisterListener2(this,WH_MSG_SHOWFTS);
-       RegisterListener2(this,WH_MSG_SHOWGLO);
-       RegisterListener2(this,WH_MSG_GETPANEINFO);
-
-       if((gbMac&&gbIE4)||(gbSunOS&&gbIE5)||gbOpera7)
-       {
-               window.onresize=window_resize;
-       }
-       else if(gbIE4)
-       {
-               window.onresize=window_resize2;
-       }
-       window.onload=window_OnLoad;
-       window.onbeforeunload=window_MyBunload;
-       window.onunload=window_unload;
-       gbWhPHost=true;
-}
-else
-       document.location.reload();
-
diff --git a/doc/salome/gui/SMESH/whproj.htm b/doc/salome/gui/SMESH/whproj.htm
deleted file mode 100755 (executable)
index 2549c9a..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<html>
-<head>
-<title>project description</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whproj.js"></script>
-<script language="javascript1.2">
-<!--
-  setLangId("1033");
-  setDataPath("whdata");
-  addToc("whtoc.htm");
-
-  addFts("whfts.htm");
-  addGlo("whglo.htm");
-
-//-->
-</script>
-</body>
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whproj.js b/doc/salome/gui/SMESH/whproj.js
deleted file mode 100755 (executable)
index 7f607a4..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-//     WebHelp 5.10.001
-var gaProj=new Array();
-
-gaProj[0]=new project("");
-
-function setLangId(sLangId)
-{
-       gaProj[0].sLangId=sLangId;
-}
-
-function setDataPath(sPath)
-{
-       if(sPath.length!=0)
-       {
-               if(sPath.lastIndexOf("/")!=sPath.length-1)
-                       sPath+="/";
-               gaProj[0].sDPath=sPath; 
-       }
-       else
-               gaProj[0].sDPath="";
-}
-
-function addToc(sFile)
-{
-       gaProj[0].sToc=sFile;
-}
-
-function addIdx(sFile)
-{
-       gaProj[0].sIdx=sFile;
-}
-
-function addFts(sFile)
-{
-       gaProj[0].sFts=sFile;
-}
-
-function addGlo(sFile)
-{
-       gaProj[0].sGlo=sFile;
-}
-
-function addRemoteProject(sProjRelPath)
-{
-       if(sProjRelPath.lastIndexOf("/")!=sProjRelPath.length-1)
-               sProjRelPath+="/";
-       gaProj[gaProj.length]=new project(sProjRelPath);
-}
-
-function project(sPPath)
-{
-       this.sPPath=sPPath;
-       this.sLangId="";
-       this.sDPath="";
-       this.sToc="";
-       this.sIdx="";
-       this.sFts="";
-       this.sGlo="";
-}
-
-window.onload=window_OnLoad;
-
-function window_OnLoad()
-{
-       gsName=document.location.href;
-       gsName=_replaceSlash(gsName);
-       var nPos=gsName.lastIndexOf("/");
-       if(nPos!=-1)
-               gaProj[0].sPPath=gsName.substring(0,nPos+1);
-       else
-               alert("Error in Loading navigation component. Please regenerate WebHelp.");
-       patchPath(gaProj);
-       if(parent&&parent!=this&& typeof(parent.putProjectInfo)=="function")
-       {
-               parent.putProjectInfo(gaProj);
-       }
-}
-
-function patchPath(aProj)
-{
-       for(var i=1;i<aProj.length;i++)
-       {
-               aProj[i].sPPath=_getFullPath(gaProj[0].sPPath,aProj[i].sPPath);
-       }
-}
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whproj.xml b/doc/salome/gui/SMESH/whproj.xml
deleted file mode 100755 (executable)
index 10e2571..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version='1.0' encoding='windows-1252' ?>
-<project langid="1033" datapath="whxdata" toc="whtoc.xml" fts="whfts.xml" glossary="whglo.xml" >
-</project>
diff --git a/doc/salome/gui/SMESH/whproxy.js b/doc/salome/gui/SMESH/whproxy.js
deleted file mode 100755 (executable)
index 8ea8b68..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-//     WebHelp 5.10.001
-var gbInited=false;
-var gWndStubPage=null;
-function getStubPage()
-{
-       if(!gbInited)
-       {
-               gWndStubPage=getStubPage_inter(window);
-               gbInited=true;
-       }
-       return gWndStubPage;
-}
-
-function getStubPage_inter(wCurrent)
-{
-       if(null==wCurrent.parent||wCurrent.parent==wCurrent)
-               return null;
-
-       if(typeof(wCurrent.parent.whname)=="string"&&"wh_stub"==wCurrent.parent.whname)
-               return wCurrent.parent;
-       else
-               if(wCurrent.parent.frames.length!=0&&wCurrent.parent!=wCurrent)
-                       return getStubPage_inter(wCurrent.parent);
-               else
-                       return null;
-}
-
-function RegisterListener(framename,nMessageId)
-{
-       var wSP=getStubPage();
-       if(wSP&&wSP!=this)
-               return wSP.RegisterListener(framename,nMessageId);
-       else
-               return false;
-}
-
-function RegisterListener2(oframe,nMessageId)
-{
-       var wSP=getStubPage();
-       if(wSP&&wSP!=this)
-               return wSP.RegisterListener2(oframe,nMessageId);
-       else
-               return false;
-}
-
-function UnRegisterListener2(oframe,nMessageId)
-{
-       var wSP=getStubPage();
-       if(wSP&&wSP!=this&&wSP.UnRegisterListener2)
-               return wSP.UnRegisterListener2(oframe,nMessageId);
-       else
-               return false;
-}
-
-function SendMessage(oMessage)
-{
-       var wSP=getStubPage();
-       if(wSP&&wSP!=this&&wSP.SendMessage)
-               return wSP.SendMessage(oMessage);
-       else
-               return false;
-}
-
-var gbWhProxy=true;
-
-var gbPreview=false;
-gbPreview=false; 
-if (gbPreview)
-       document.oncontextmenu=contextMenu;
-
-function contextMenu()
-{
-       return false;
-}
diff --git a/doc/salome/gui/SMESH/whres.xml b/doc/salome/gui/SMESH/whres.xml
deleted file mode 100755 (executable)
index 1d279bb..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-<?xml version='1.0' encoding='windows-1252' ?>
-<resource>
-<item name="Prev" value="&lt;&lt;" />
-<item name="Hide" value="Hide" />
-<item name="SyncTocTooltip" value="Sync TOC" />
-<item name="InTopicSearchBtnText" value="Go" />
-<item name="FtsInputPrompt" value="Type in the word(s) to search for:" />
-<item name="Done" value="Done" />
-<item name="Logo/Author" value="Powered By" />
-<item name="MergeError1" value="The merged Help system" />
-<item name="JS_alert_cantLoadProject" value="Can't load project:" />
-<item name="Next" value="&gt;&gt;" />
-<item name="SyncToc" value="SyncToc" />
-<item name="MergeError2" value="is using a different language from the master Help system, which will cause the index and full-text search functionality to be disabled in the merged Help system." />
-<item name="nls_body_instruction" value="Enter your question in the text box above, then click GO." />
-<item name="ToolBarSearchBtnText" value="Go" />
-<item name="SuggestViewNoFrameMessage" value="To view the Help system without frames click on this" />
-<item name="Hide_Navigation_Component" value="Hide Navigation Component" />
-<item name="FtsBtnText" value="Go" />
-<item name="TopicsFound" value="Topics Found" />
-<item name="LoadingContentsData" value="Loading, click here to cancel..." />
-<item name="Definition" value="Definition:" />
-<item name="CompletingContents" value="Completing Contents..." />
-<item name="Seperate" value="|" />
-<item name="GeneratedBy" value="Generated by" />
-<item name="PoweredBy" value="Powered by" />
-<item name="IndexAlphabetBookmarks" value="ABCDEFGHIJKLMNOPQRSTUVWXYZ" />
-<item name="Contents" value="Contents" />
-<item name="IndexSelectTopicLabel" value="Select a topic, then click Display" />
-<item name="Disabled Prev" value="&lt;&lt;" />
-<item name="Glossary" value="Glossary" />
-<item name="Search" value="Search" />
-<item name="CantSearch" value="Cannot search for that phrase." />
-<item name="LoadingIndex" value="Loading Index..." />
-<item name="LoadingData" value="Loading data, please wait..." />
-<item name="Show_Navigation_Component" value="Show Navigation Component" />
-<item name="Book" value="Book" />
-<item name="Disabled Next" value="&gt;&gt;" />
-<item name="nls_body_empty" value="Sorry, we were unable to find a good answer for your question." />
-<item name="nls_button_go_hint" value="Go Search" />
-<item name="Find" value="Find" />
-<item name="CantOpenURLorFile" value="Can't open URL or file" />
-<item name="Print" value="Print" />
-<item name="About" value="About" />
-<item name="Author" value="Author" />
-<item name="IndexSelectTopicTitle" value="Select a Topic" />
-<item name="Blank_topic_text" value="This topic was created by WinHelp Project Conversion Wizard, and is the destination of a missing topic or broken hyperlink." />
-<item name="BrowserLimitedMessage" value="Your browser does not support frames. We recommend that you update your browser to a version that supports frames." />
-<item name="LoadingTOCItem" value="Loading Table of Contents:" />
-<item name="Display" value="Display" />
-<item name="Cancel" value="Cancel" />
-<item name="IndexSelectTopicError" value="Please select a topic." />
-<item name="nls_edit_label" value="Type in your question:" />
-<item name="SearchLabel" value="Search" />
-<item name="RelateTopicListPrompt" value="Click a topic, then click Display." />
-<item name="NextTooltip" value="Next Topic" />
-<item name="JS_alert_colorlimitation" value="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." />
-<item name="TopicsNotFound" value="No Topics Found." />
-<item name="Show" value="Show" />
-<item name="PreTooltip" value="Previous Topic" />
-<item name="SearchPrompt" value="- Search -" />
-<item name="IndexBtnText" value="Go" />
-<item name="JS_alert_ProjectLoadingFail" value="Could not load correctly, please click Refresh." />
-<item name="LoadingContents" value="Loading contents, please wait..." />
-<item name="Term" value="Term:" />
-<item name="WebSearchButton" value="WebSearch" />
-<item name="Remote_Page" value="Remote Page" />
-<item name="WebSearch" value="WebSearch" />
-<item name="LoadingFTS" value="Reading Search Data..." />
-<item name="Index" value="Index" />
-<item name="JS_alert_ErrorInLoading" value="Error in Loading navigation component. Please regenerate WebHelp." />
-<item name="JS_alert_appletNotLoad" value="Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited." />
-<item name="IndexInputPrompt" value="Type in the keyword to find:" />
-<item name="Page" value="Page" />
-<item name="SuggestViewNoFrameMsg2" value="hyperlink." />
-<item name="nls_button_go_text" value="Go" />
-<item name="Searching" value="Searching..." />
-
-  <item name="English"   value="" />
-  <item name="langorder" value="0,1,2,3,4,5,6,7,8,40,41,42,43,44,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,38,45,46,47,48,49,50,33,51,52,53,88,54,34,55,56,115,119,121,123,125,126,127,128,129,130,57,58,89,90,91,59,60,131,148,150,154,158,168,171,173,175,185,187,189,191,193,197,214,216,218,220,225,230,240,242,244,246,252,61,62,63,64,66,67,131,148,150,154,158,168,171,173,175,185,187,189,191,193,197,214,216,218,220,225,230,240,242,244,246,252,68,69,70,71,27,114,28,82,170,85,112,109,110,65,113,223,86,213,29,255,30,31,80,81,83,84,111,36,37,79,229,222,87,212,32,254,251,39,72,97,98,99,100,73,101,74,102,133,93,103,35,104,75,105,92,122,124,76,106,107,108,77,120,199,94,116,117,118,78,131,131,131,131,131,131,131,150,158,158,158,158,175,175,175,175,154,193,197,197,197,197,197,95,197,230,230,230,230,246,227,224,131,131,131,131,131,131,131,150,158,158,158,158,175,175,175,175,154,193,197,197,197,197,197,96,197,230,230,230,230,246,227,250," />
-
-  <panes show="0">
-    <toc />
-    <fts />
-    <glossary />
-  </panes>
-
-  <stopwords>
-    <word name="a" />
-    <word name="about" />
-    <word name="after" />
-    <word name="against" />
-    <word name="all" />
-    <word name="also" />
-    <word name="among" />
-    <word name="an" />
-    <word name="and" />
-    <word name="are" />
-    <word name="as" />
-    <word name="at" />
-    <word name="be" />
-    <word name="became" />
-    <word name="because" />
-    <word name="been" />
-    <word name="between" />
-    <word name="but" />
-    <word name="by" />
-    <word name="can" />
-    <word name="come" />
-    <word name="do" />
-    <word name="during" />
-    <word name="each" />
-    <word name="early" />
-    <word name="for" />
-    <word name="form" />
-    <word name="found" />
-    <word name="from" />
-    <word name="had" />
-    <word name="has" />
-    <word name="have" />
-    <word name="he" />
-    <word name="her" />
-    <word name="his" />
-    <word name="however" />
-    <word name="in" />
-    <word name="include" />
-    <word name="into" />
-    <word name="is" />
-    <word name="it" />
-    <word name="its" />
-    <word name="late" />
-    <word name="later" />
-    <word name="made" />
-    <word name="many" />
-    <word name="may" />
-    <word name="me" />
-    <word name="med" />
-    <word name="more" />
-    <word name="most" />
-    <word name="near" />
-    <word name="no" />
-    <word name="non" />
-    <word name="not" />
-    <word name="of" />
-    <word name="on" />
-    <word name="only" />
-    <word name="or" />
-    <word name="other" />
-    <word name="over" />
-    <word name="several" />
-    <word name="she" />
-    <word name="some" />
-    <word name="such" />
-    <word name="than" />
-    <word name="that" />
-    <word name="the" />
-    <word name="their" />
-    <word name="then" />
-    <word name="there" />
-    <word name="these" />
-    <word name="they" />
-    <word name="this" />
-    <word name="through" />
-    <word name="to" />
-    <word name="under" />
-    <word name="until" />
-    <word name="use" />
-    <word name="was" />
-    <word name="we" />
-    <word name="were" />
-    <word name="when" />
-    <word name="where" />
-    <word name="which" />
-    <word name="who" />
-    <word name="with" />
-    <word name="you" />
-  </stopwords>
-
-  <stems>
-    <stem name="ed" />
-    <stem name="es" />
-    <stem name="er" />
-    <stem name="e" />
-    <stem name="s" />
-    <stem name="ingly" />
-    <stem name="ing" />
-    <stem name="ly" />
-  </stems>
-
-       <paneskin>
-               <background color="" img="" />
-               <font name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-               <toc>
-                       <background color="" img="" />
-                       <icons>
-                               <book open="whd_toc2.gif" close="whd_toc1.gif" />
-                               <item  local="whd_toc3.gif" remote="whd_toc4.gif" />
-                               <newbook open="whd_toc2.gif" close="whd_toc1.gif" />
-                               <newitem  local="whd_toc3.gif" remote="whd_toc4.gif" />
-                       </icons>
-                       <fonts>
-                               <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-                               <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
-                       </fonts>
-                       <activebackgroundcolor attr="#cccccc" />
-                       <margin attr="0pt" />
-                       <indent attr="9pt" />
-               </toc>
-               <index>
-                       <form>
-                               <fonts>
-                                       <title name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-                               </fonts>
-                               <button normal="" hover="" />
-                               <editwith value="28" />
-                       </form>
-                       <background color="" img="" />
-                       <fonts>
-                               <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-                               <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
-                               <empty name="Arial" size="9pt" color="#666666" style="normal" weight="normal" decoration="none" />
-                       </fonts>
-                       <activebackgroundcolor attr="#cccccc" />
-                       <margin attr="0pt" />
-                       <indent attr="9pt" />
-               </index>
-               <fts>
-                       <form>
-                               <fonts>
-                                       <title name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-                               </fonts>
-                               <button normal="" hover="" />
-                               <editwith value="28" />
-                       </form>
-                       <background color="" img="" />
-                       <fonts>
-                               <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-                               <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
-                               <error name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-                       </fonts>
-                       <activebackgroundcolor attr="#cccccc" />
-                       <margin attr="0pt" />
-                       <indent attr="9pt" />
-               </fts>
-               <glossary>
-                       <background color="" img="" />
-                       <fonts>
-                               <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-                               <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
-                       </fonts>
-                       <activebackgroundcolor attr="#cccccc" />
-                       <margin attr="0pt" />
-                       <indent attr="9pt" />
-               </glossary>
-       </paneskin>
-</resource>
diff --git a/doc/salome/gui/SMESH/whskin_blank.htm b/doc/salome/gui/SMESH/whskin_blank.htm
deleted file mode 100755 (executable)
index a61ddec..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<html>
-<head>
-<title>Blank Page</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/whskin_homepage.htm b/doc/salome/gui/SMESH/whskin_homepage.htm
deleted file mode 100755 (executable)
index 3163eee..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-<html>
-<head>
-<title>Mesh Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whstub.js"></script><script language="javascript1.2" src="whstart.js"></script>
-<script language="javascript">
-<!--
-var strDefaultTopic = "about:blank";
-var nWebhelpNavPaneMode = 1;                   //1: DHTML 2:Applet 3:PureHTML 4:Noframeset
-var bNoApplet  = false;
-var strPaneDHTML  = "whd_nvp10.htm";           //whd_nvp10.htm  if tab enabled, whnframe.htm if tab disabled.
-var strPaneApplet = "whd_nvp20.htm";
-var strPaneList   = "whgdata/whnvp30.htm";
-
-var strHTML = "";
-var strPane = "";
-var nViewFrameType = -1;
-
-function CMRServer()
-{
-  this.m_cAgents = new Array;
-}
-var cMRServer = new CMRServer;
-
-//figure out which mode is the best
-if (!window.gAgent)
-{
-       // low end browser, we don't even try to determine it.
-       document.location = "whnjs.htm";
-}
-else
-{
-       if (!gbNav4&&!gbIE4&&!gbOpera7&&!gbSafari)
-               document.location = "whnjs.htm";
-       else if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))
-               document.location = "whnjs.htm";
-       else if (gbMac && gbIE4 && !gbIE5)
-               document.location = "whnjs.htm";
-       //figure out which mode is the best
-       else 
-       {
-               nViewFrameType=nWebhelpNavPaneMode;
-               if (nWebhelpNavPaneMode==1||nWebhelpNavPaneMode == 2)
-               {
-                       var gbDHTML=(nWebhelpNavPaneMode==1);
-                       if (gbNav4)                                                                             nViewFrameType = 2;
-                       if (gbNav4&&(gnVerMinor < 4.1))                                         nViewFrameType = 3;
-                       if (gbNav4&&(gnVerMinor == 4.6))                                        nViewFrameType = 3;
-                       if (gbIE4&&gbDHTML)                                                                     nViewFrameType = 1;
-                       if (gbIE4&&gbSunOS&&nWebhelpNavPaneMode==2)                     nViewFrameType = 3;
-                       if (gbNav6&&gbDHTML)                                                            nViewFrameType = 1;
-                       if (gbNav6&&!gbNav61&&nWebhelpNavPaneMode == 2)         nViewFrameType = 3;
-                       if (gbMac)                                                                                      nViewFrameType = 3;
-                       if (gbOpera7&&nViewFrameType == 2)                                      nViewFrameType = 3;
-                       if ((bNoApplet)&&(nViewFrameType == 2))                         nViewFrameType = 3;
-               }
-       }
-}
-
-if (nViewFrameType!=-1)
-{
-       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));
-       //The colordepth of the 16 color on Windows is 1. 
-       if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))
-       {
-          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.");
-          nViewFrameType = 3;
-       }
-
-       //figure out which one is navpane
-       if (nViewFrameType == 1)
-               strPane = strPaneDHTML;
-       else if (nViewFrameType == 2)
-               strPane = strPaneApplet;
-       else 
-               strPane = strPaneList;
-
-       var oParam = new Object();
-       oParam.sTopic = "";
-       var oMsg = new whMessage(WH_MSG_GETDEFAULTTOPIC, window, 1, oParam);
-       if (SendMessage(oMsg) && oParam.sTopic != "")
-               strDefaultTopic =  oParam.sTopic;
-
-
-       if (nViewFrameType == 1)
-       {
-               //DHTML (iframe or xml based)
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" frameborder=\"1\">";
-               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane + "\" scrolling=\"no\"></frame>";
-               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
-       }
-       else if (nViewFrameType == 2)
-       {
-               //applet (xml based)
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" framespacing=\"0\" frameborder=\"0\" border=\"0\">";
-               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane+ "\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\"></frame>";
-               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
-       }
-       else if (nViewFrameType == 3)
-       {
-               //generic html (pure html based)
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\">";
-               strHTML += "<frame title=\"navigation frame\" src=\"" + strPane + "\" name=\"bsscleft\"  scrolling=\"no\"></frame>";
-               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" scrolling=\"auto\"></frame>";
-               strHTML += "</frameset>";
-       } 
-       else if (nViewFrameType == 4)
-       {
-               //no navipane at all
-               strHTML += "<frameset  id=\"whPfset\" border=\"0\" cols=\"100%,*\">";
-               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" framespacing=\"0\" frameborder=\"0\" border=\"0\" scrolling=\"auto\">";
-               strHTML += "</frameset>";
-       }
-
-       document.write(strHTML);
-
-       RegisterListener2(window, WH_MSG_SHOWPANE);
-       RegisterListener2(window, WH_MSG_HIDEPANE);
-       RegisterListener2(window, WH_MSG_ISPANEVISIBLE);
-       window.onunload = window_unload;
-}
-
-function window_unload()
-{
-       UnRegisterListener2(window, WH_MSG_SHOWPANE);
-       UnRegisterListener2(window, WH_MSG_HIDEPANE);
-       UnRegisterListener2(window, WH_MSG_ISPANEVISIBLE);
-}
-
-
-function onSendMessage(oMsg)
-{
-       var nMsgId = oMsg.nMessageId;
-       if (nMsgId == WH_MSG_SHOWPANE)
-       {
-               getElement("whPfset").cols = "260,*";
-               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");
-               SendMessage(onMsg);
-               onMsg = new whMessage(WH_MSG_GETPANEINFO, this, 1, "");
-               if (SendMessage(onMsg))
-               {
-                       onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, onMsg.oParam);
-                       SendMessage(onMsg);
-               }
-               return false;
-       }
-       else if (nMsgId == WH_MSG_HIDEPANE)
-       {
-               getElement("whPfset").cols = "0,*";
-               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "invisible");
-               SendMessage(onMsg);
-               onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, "");
-               SendMessage(onMsg);
-               return false;
-       }
-       else if (nMsgId == WH_MSG_ISPANEVISIBLE)
-       {
-               var n = parseInt(getElement("whPfset").cols);
-               if (n > 0)
-               {
-                       oMsg.oParam.bVisible = true;
-               }
-               return false;
-       }
-       return true;
-}
-//-->
-</script>
-<body>
-<noscript>
-       <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>
-</noscript>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/whskin_info.htm b/doc/salome/gui/SMESH/whskin_info.htm
deleted file mode 100755 (executable)
index 0ad872a..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<html>
-<head>
-<title>WebHelp 5.50 </title>
-<meta name="description" content="output from robohelp">
-<meta name="keywords" content="robohelp,webhelp,webhelp enterprise,roboinfo">
-</head>
-<body>
-<h1> WebHelp 5.50 System  Info </h1>
-<table>
-<tr><td> Start Page </td><td>index.htm</td></tr>
-<tr><td> Skin Name </td><td></td></tr>
-<tr><td> Generating Time </td><td>12:45 05/22/2006</td></tr>
-<tr><td> Language ID </td><td>1033</td></tr>
-<tr><td> Compile Script </td><td>webhelp5_compile_script.xml</td></tr>
-<tr><td> Compile Build Version </td><td>13.10.606</td></tr>
-<tr><td> Product Name </td><td>WebHelp 5.50</td></tr>
-<tr><td> Authoring Tool Name </td><td>RoboHelp X5</td></tr>
-<table>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/whskin_pickup.htm b/doc/salome/gui/SMESH/whskin_pickup.htm
deleted file mode 100755 (executable)
index c3469d7..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-<html>
-<head>
-<title>Select a Topic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</title>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript">
-<!--
-var gsBgColor = "#c0c0c0";
-var gsBgImage = "";
-var gsListBgColor = "white";
-var gsListBgImage = "";
-var gsMargin="0pt";
-var gsIndent="0pt";
-var gSelectedItem = -1;
-
-
-var goFont=null;
-var goHoverFont=null;
-var goTableFont=null;
-var gsABgColor="#cccccc";
-
-function setListBackground(sBgImage)
-{
-       if (sBgImage != null && sBgImage.length > 0)
-               gsListBgImage = sBgImage;
-}
-
-function setListBackgroundcolor(sBgColor)
-{
-       if (sBgColor != null && sBgColor.length > 0)
-               gsListBgColor = sBgColor;
-}
-
-function setBackground(sBgImage)
-{
-       if (sBgImage != null && sBgImage.length > 0)
-               gsBgImage = sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       if (sBgColor != null && sBgColor.length > 0)
-               gsBgColor = sBgColor;
-}
-
-function setActiveBgColor(sBgColor)
-{
-       gsABgColor=sBgColor;
-}
-
-function setFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       if (sType == "Normal")
-               goFont=vFont;
-       if (sType == "Hover")
-               goHoverFont=vFont;
-       else if (sType == "Table")
-               goTableFont=vFont;
-}
-
-function fnOnload()
-{
-       if( window.dialogArguments != null )
-               fnLoadOptions( window.dialogArguments );
-       var items = getElementsByTag(document, "a");
-       if (items.length > 0)
-               items[0].focus();
-}
-
-var gaOpts = new Array();
-
-function selectOption(index)
-{
-       gSelectedItem = index;
-}
-
-function displayOption(index)
-{
-       if (index < gaOpts.length)
-       {
-               returnValue = new Object();
-               returnValue.m_url = gaOpts[index];
-       }
-       else
-               returnValue = null;
-
-       window.close();
-}
-
-function fnLoadOptions( cList )
-{
-       var sHTML = "<dl>";
-       for( var i=0;i <cList.length; i++)
-       {
-               sHTML += "<dt><nobr><a href=\"javascript:void(0);\" onclick=\"return false;\" onfocus=\"selectOption(";
-               sHTML += gaOpts.length + ");return false;\" ondblclick=\"displayOption(" + gaOpts.length;
-               sHTML += ");return false;\">"+ _textToHtml(cList[i].m_sName) + "</a></nobr></dt>";
-               gaOpts[gaOpts.length] = cList[i].m_sURL;
-       }
-       sHTML += "</dl>";
-       var oDivCon=getElement("divlist");
-       if(oDivCon)
-               oDivCon.innerHTML=sHTML;
-       return true;
-}
-
-function fnOK()
-{
-       displayOption(gSelectedItem);
-}
-
-function fnCancel()
-{
-       returnValue = null;             window.close();
-}
-
-function fnOnKeypress()
-{
-       switch( event.keyCode )
-       {
-       case 13:        // enter key
-               fnOK();
-               break;
-       case 27:        // escape key
-               fnCancel();
-               break;
-       }
-}
-
-function writeStyle(bMiniBar)
-{
-       var sStyle="";
-       sStyle+="<style type='text/css'>\n";
-       sStyle+="<!--\n";
-       sStyle+="body.clsbody\n";
-       sStyle+="{\n";
-       sStyle+="margin: 4px;\n";
-       sStyle+=getFontStyle(goTableFont);
-       sStyle+="background-attachment: fixed;\n";
-       sStyle+="};\n";
-       sStyle+="P.clsNDXTD\n";
-       sStyle+="{\n";
-       sStyle+="margin:0;\n";
-       sStyle+=getFontStyle(goTableFont);
-       sStyle+="};\n";
-       sStyle+="div.clslist\n";
-       sStyle+="{\n";
-       if (gsListBgImage)
-               sStyle+="background-image:url("+gsListBgImage+");\n";
-       else if (gsListBgColor)
-               sStyle+="background-color:"+gsListBgColor+";\n";
-       sStyle+=getFontStyle(goFont);
-       sStyle+="};\n";
-       sStyle+="BUTTON.clsNDXButton\n";
-       sStyle+="{\n";
-       sStyle+=getFontStyle(goTableFont);
-       sStyle+="background-color: transparent;\n";
-       sStyle+="};\n";
-       sStyle+="dl {"+getFontStyle(goFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:active {background-color:"+gsABgColor+";}\n";
-       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";
-       sStyle+="</style>\n";
-       document.write(sStyle);
-}
-
-function window_OnLoad()
-{
-       if(document.body)
-       {
-               if(gsBgImage&&gsBgImage.length>0)
-               {
-                       document.body.background=gsBgImage;
-               }
-               if(gsBgColor&&gsBgColor.length>0)
-               {
-                       document.body.bgColor=gsBgColor;
-               }
-       }
-       fnOnload();
-       window_onResize();
-}
-
-function window_onResize()
-{
-       var oDiv = getElement("divlist");
-       var oTitle = getElement("p_title");
-       var oButton = getElement("tb_button");
-       if (oDiv && oTitle && oButton)
-       {
-               oDiv.style.height = document.body.offsetHeight - oTitle.offsetHeight - oButton.offsetHeight - 8;
-       }
-}
-goTableFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
-goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
-goHoverFont=new whFont("Verdana","8pt","#666666","normal","normal","none");
-
-
-
-
-setFont("Table", "Arial","9pt","#000000","normal","normal","none");
-
-
-setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
-setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
-setActiveBgColor("#cccccc");
-
-window.onload=window_OnLoad;
-window.onresize = window_onResize;
-writeStyle();
-//-->
-</script>
-</head>
-
-<body class="clsbody" scroll="no" onkeypress="fnOnKeypress()">
-<p id="p_title" class="clsNDXTD"><nobr>Select a topic, then click Display</nobr></p>
-<div id="divlist" class="clslist" style="margin:2px;position: relative;overflow:auto;width:100%;border-style:inset;border-width:2">
-</div>
-<table id="tb_button" width="100%">
-  <tr>
-    <td width="100%" align="center"><button class="clsNDXButton" name="btnOK" onclick="fnOK()">Display</button>&#32;&#32;&#32;<button class="clsNDXButton" name="btnCancel" onclick="fnCancel()">Cancel</button></td>
-  </tr>
-</table>
-
-</body>
-
-</html>
diff --git a/doc/salome/gui/SMESH/whskin_tw.htm b/doc/salome/gui/SMESH/whskin_tw.htm
deleted file mode 100755 (executable)
index 01bee59..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<html>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-var gsTopic="";
-
-if (location.hash.length > 1)
-{
-       var nPos = location.hash.indexOf(">>");
-       if (nPos>1)
-       {
-               gsTopic = location.hash.substring(1, nPos);
-               parseParam(location.hash.substring(nPos+2));
-       }
-       else
-               gsTopic = location.hash.substring(1);
-}
-
-
-       var strHtml="";
-       strHtml+="<frameset rows=\'100%,*\'>";
-       strHtml+="<frame name=\'topicwindow\' src=\'" + gsTopic +"\'></frame>";
-       strHtml+="<frame src=\'whskin_blank.htm\' noresize></frame>";
-       strHtml+="</frameset>";
-       document.write(strHtml);
-
-function parseParam(sParam)
-{
-       if (sParam)
-       {
-               var nBPos=0;
-               do 
-               {
-                       var nPos=sParam.indexOf(">>", nBPos);
-                       if (nPos!=-1)
-                       {
-                               if (nPos>0)
-                               {
-                                       var sPart=sParam.substring(nBPos, nPos);
-                                       parsePart(sPart);
-                               }
-                               nBPos = nPos + 2;
-                       }
-                       else
-                       {
-                               var sPart=sParam.substring(nBPos);
-                               parsePart(sPart);
-                               break;
-                       }
-               } while(nBPos < sParam.length);
-       }       
-}
-
-function parsePart(sPart)
-{
-       if(sPart.toLowerCase().indexOf("cap=")==0)
-       {
-               document.title=_browserStringToText(sPart.substring(4));
-       }
-}
-//-->
-</script>
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whstart.js b/doc/salome/gui/SMESH/whstart.js
deleted file mode 100755 (executable)
index 2fc6ef9..0000000
+++ /dev/null
@@ -1,432 +0,0 @@
-//     WebHelp 5.10.003
-RegisterListener2(this, WH_MSG_GETSTARTFRAME);
-RegisterListener2(this, WH_MSG_GETDEFAULTTOPIC);
-RegisterListener2(this, WH_MSG_MINIBARORDER);
-RegisterListener2(this, WH_MSG_TOOLBARORDER);
-RegisterListener2(this, WH_MSG_ISSEARCHSUPPORT);
-RegisterListener2(this, WH_MSG_ISSYNCSSUPPORT);
-RegisterListener2(this, WH_MSG_ISAVENUESUPPORT);
-RegisterListener2(this, WH_MSG_GETPANETYPE);
-RegisterListener2(this, WH_MSG_GETPANES);
-RegisterListener2(this, WH_MSG_RELOADNS6);
-RegisterListener2(this, WH_MSG_GETCMD);
-RegisterListener2(this, WH_MSG_GETPANE);
-RegisterListener2(this, WH_MSG_GETDEFPANE);
-
-if (gbNav6)
-{
-       var gnReload=0;
-       setTimeout("delayReload();",5000);
-}
-
-function delayReload()
-{
-       if (!(this.cMRServer && cMRServer.m_strVersion))
-       {
-               if(gnReload!=2)
-               {
-                       if(nViewFrameType&&nViewFrameType==1)
-                               document.location=document.location;
-               }
-       }
-}
-
-var gsToolbarOrder = "";
-var gsMinibarOrder = "";
-
-var gsTopic = "mesh.htm";
-var PANE_OPT_SEARCH = 1;
-var PANE_OPT_BROWSESEQ = 2;
-var gnOpts=-1;
-var gnCmd=-1;
-var gnPans=2;
-var gsBtns="invalid";
-var gsDefaultBtn="invalid";
-var gbHasTitle=false;
-
-if (location.hash.length > 1)
-{
-       var sParam = location.hash;
-       if (sParam.indexOf("#<") == 0)
-       {
-               document.location = "whcsh_home.htm#" + sParam.substring(2);
-       }
-       else if (sParam.indexOf("#>>") == 0)
-       {
-               parseParam(sParam.substring(3));
-               sParam = "#" + gsTopic + sParam.substring(1);
-       }
-       else
-       {
-               var nPos = sParam.indexOf(">>");
-               if (nPos>1)
-               {
-                       gsTopic = sParam.substring(1, nPos);
-                       parseParam(sParam.substring(nPos+2));
-               }
-               else
-                       gsTopic = sParam.substring(1);
-       }
-       if (gnPans == 1 && gsTopic)
-       {
-               var strURL=location.href;
-               if (location.hash)
-               {
-                       var nPos=location.href.indexOf(location.hash);
-                       strURL=strURL.substring(0, nPos);
-               }
-               if (gbHasTitle)
-                       document.location=_getPath(strURL)+ "whskin_tw.htm" + sParam;
-               else
-                       document.location=_getPath(strURL)+ gsTopic;
-       }
-}
-
-function parseParam(sParam)
-{
-       if (sParam)
-       {
-               var nBPos=0;
-               do 
-               {
-                       var nPos=sParam.indexOf(">>", nBPos);
-                       if (nPos!=-1)
-                       {
-                               if (nPos>0)
-                               {
-                                       var sPart=sParam.substring(nBPos, nPos);
-                                       parsePart(sPart);
-                               }
-                               nBPos = nPos + 2;
-                       }
-                       else
-                       {
-                               var sPart=sParam.substring(nBPos);
-                               parsePart(sPart);
-                               break;
-                       }
-               } while(nBPos < sParam.length);
-       }       
-}
-
-function parsePart(sPart)
-{
-       if(sPart.toLowerCase().indexOf("cmd=")==0)
-       {
-               gnCmd=parseInt(sPart.substring(4));
-       }
-       else if(sPart.toLowerCase().indexOf("cap=")==0)
-       {
-               document.title=_browserStringToText(sPart.substring(4));
-               gbHasTitle=true;
-       }
-       else if(sPart.toLowerCase().indexOf("pan=")==0)
-       {
-               gnPans=parseInt(sPart.substring(4));
-       }
-       else if(sPart.toLowerCase().indexOf("pot=")==0)
-       {
-               gnOpts=parseInt(sPart.substring(4));
-       }
-       else if(sPart.toLowerCase().indexOf("pbs=")==0)
-       {
-               var sRawBtns = sPart.substring(4);
-               var aBtns = sRawBtns.split("|");
-               for (var i=0;i<aBtns.length;i++)
-               {
-                       aBtns[i] = transferAgentNameToPaneName(aBtns[i]);
-               }
-               gsRawBtns = aBtns.join("|");
-       }
-       else if(sPart.toLowerCase().indexOf("pdb=")==0)
-       {
-               gsDefaultBtn=transferAgentNameToPaneName(sPart.substring(4));
-       }
-}
-
-function setToolbarOrder(sOrder)
-{
-       gsToolbarOrder = sOrder;
-}
-
-function setMinibarOrder(sOrder)
-{
-       gsMinibarOrder = sOrder;
-}
-
-function onSendMessageX(oMsg)
-{
-       var nMsgId = oMsg.nMessageId;
-       if (nMsgId == WH_MSG_GETSTARTFRAME)
-       {
-               oMsg.oParam.oFrame = this;
-               return false;
-       }
-       else if (nMsgId == WH_MSG_GETDEFAULTTOPIC)
-       {
-               if (this.cMRServer && cMRServer.m_strVersion)
-               {
-                       if (cMRServer.m_strURLTopic);
-                       {
-                               oMsg.oParam.sTopic = cMRServer.m_strURLTopic;
-                               return false;
-                       }
-
-               }
-               oMsg.oParam.sTopic = gsTopic;
-               return false;
-       }
-       else if (nMsgId == WH_MSG_TOOLBARORDER)
-       {
-               var oMsg1 = new whMessage(WH_MSG_GETPANES, this, 1, null);
-               if (SendMessage(oMsg1))
-               {
-                       if (oMsg1.oParam)
-                       {
-                               if (this.cMRServer && cMRServer.m_strVersion)
-                               {
-                                       var aToolbarOrder=cMRServer.m_strAgentList.split(";");
-                                       var i=0;
-                                       for (i=0;i<aToolbarOrder.length;i++)
-                                               aToolbarOrder[i]=transferANToPN2(aToolbarOrder[i]);
-                                       aToolbarOrder[aToolbarOrder.length] = "blankblock";
-                                       if (cMRServer.m_bShowSearchInput)
-                                       {
-                                               aToolbarOrder[aToolbarOrder.length] = "searchform";
-                                       }
-                                       aToolbarOrder[aToolbarOrder.length] = "banner";
-                                       var aToolbarOrderNew = new Array();
-                                       for (i=0;i<aToolbarOrder.length;i++)
-                                       {
-                                               if (isAPane(aToolbarOrder[i]))
-                                               {
-                                                       if (oMsg1.oParam.aPanes && oMsg1.oParam.aPanes.length)
-                                                       {
-                                                               for (var j=0;j<oMsg1.oParam.aPanes.length;j++)
-                                                               {
-                                                                       if (aToolbarOrder[i] == oMsg1.oParam.aPanes[j].sPaneName)
-                                                                       {
-                                                                               aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];
-                                                                               break;
-                                                                       }
-                                                               }
-                                                       }
-                                               }
-                                               else
-                                                       aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];
-                                       }
-                                       oMsg.oParam = aToolbarOrderNew.join("|");
-                                       return false;
-                               }
-                       }
-               }
-               var sParam="";
-               if (gsBtns!="invalid")
-                       sParam=gsBtns+"|blankblock|banner";
-               else
-                       sParam = gsToolbarOrder;
-
-               if (gnOpts!=-1)
-               {
-                       var nPosForm=sParam.indexOf("|searchform|");
-                       if (gnOpts&PANE_OPT_SEARCH)
-                       {
-                               if (nPosForm == -1 && sParam.indexOf("|fts|") != -1)
-                               {
-                                       var nPos=sParam.indexOf("banner");
-                                       if (nPos!=-1)
-                                       {
-                                               sParam=sParam.substring(0, nPos) + "searchform|" + sParam.substring(nPos);
-                                       }
-                               }
-                       }
-                       else
-                       {
-                               if (nPosForm!=-1)
-                               {
-                                       sParam=sParam.substring(0,nPosForm) + sParam.substring(nPosForm+11);
-                               }
-                       }
-               }
-               oMsg.oParam=sParam;
-               return false;
-       }
-       else if (nMsgId == WH_MSG_MINIBARORDER)
-       {
-               var sMinParam=gsMinibarOrder;
-               if (gnOpts!=-1)
-               {
-                       var nPosBro=gsMinibarOrder.indexOf("avprev|avnext");
-                       if (gnOpts&PANE_OPT_BROWSESEQ)
-                       {
-                               if (nPosBro==-1)
-                               {
-                                       sMinParam ="avprev|avnext|" + gsMinibarOrder;
-                               }
-                       }
-                       else
-                       {
-                               if (nPosBro!=-1)
-                               {
-                                       if (nPosBro!=0)
-                                               sMinParam=gsMinibarOrder.substring(0, nPosBro) + gsMinibarOrder.substring(nPosBro+14);
-                                       else
-                                               sMinParam=gsMinibarOrder.substring(14);
-                               }
-                       }
-               }
-               oMsg.oParam = sMinParam;
-               return false;
-       }
-       else if (nMsgId == WH_MSG_ISSYNCSSUPPORT)
-       {
-               if (this.cMRServer && cMRServer.m_strVersion)
-               {
-                       if (cMRServer.m_bShowSync)
-                               oMsg.oParam=true;
-                       else
-                               oMsg.oParam=false;
-                       return false;
-               }
-               else
-               {
-                       if(typeof(nViewFrameType)!="undefined")
-                       {
-                               oMsg.oParam= (nViewFrameType < 3);
-                               return false;
-                       }
-               }
-       }
-       else if (nMsgId == WH_MSG_ISAVENUESUPPORT)
-       {
-               if (this.cMRServer && cMRServer.m_strVersion)
-               {
-                       if (cMRServer.m_bShowBrowseSequences)
-                               oMsg.oParam=true;
-                       else
-                               oMsg.oParam=false;
-               }
-               else
-               {
-                       oMsg.oParam=true;
-               }
-               return false;
-       }
-       else if (nMsgId == WH_MSG_ISSEARCHSUPPORT)
-       {
-               if(typeof(nViewFrameType)!="undefined")
-               {
-                       oMsg.oParam= (nViewFrameType < 3);
-                       return false;
-               }
-       }
-       else if (nMsgId == WH_MSG_GETPANETYPE)
-       {
-               if(typeof(nViewFrameType)!="undefined")
-               {
-                       var oPaneInfo = new Object();
-                       oPaneInfo.nType = nViewFrameType;
-                       oPaneInfo.sPaneURL = strPane;
-                       oMsg.oParam = oPaneInfo;
-                       return false;
-               }
-       }
-       else if (nMsgId == WH_MSG_GETPANES)
-       {
-               if (this.cMRServer && cMRServer.m_strVersion)
-               {
-                       var oPanes = new Object();
-                       var aAgentNames = null;
-                       if (cMRServer.m_strDefAgent)
-                               oPanes.sDefault = transferAgentNameToPaneName(cMRServer.m_strDefAgent);
-
-                       aPanes = new Array();
-                       for(var i=0; i< cMRServer.m_cAgents.length; i++)
-                       {
-                               var nCur = aPanes.length;
-                               aPanes[nCur] = new Object();
-                               aPanes[nCur].sPaneName = transferAgentNameToPaneName(cMRServer.m_cAgents[i].m_strID);
-                               aPanes[nCur].sPaneURL = cMRServer.m_cAgents[i].m_strURL;
-                       }
-                       oPanes.aPanes = aPanes;
-                       oMsg.oParam = oPanes;
-                       return false;
-               }
-               else
-               {
-                       oMsg.oParam = null;
-                       return false;
-               }
-       }
-       else if(nMsgId==WH_MSG_RELOADNS6)
-       {
-               if(gbNav6)
-                       gnReload++;
-               return false;
-       }
-       else if(nMsgId==WH_MSG_GETCMD)
-       {
-               oMsg.oParam=gnCmd;
-               return false;
-       }
-       else if(nMsgId==WH_MSG_GETPANE)
-       {
-               if (gsBtns!="invalid" && oMsg.oParam.sName)
-               {
-                       if(gsBtns.indexOf(oMsg.oParam.sName) != -1)
-                               oMsg.oParam.bEnable=true;
-                       else
-                               oMsg.oParam.bEnable=false;
-               }
-               else
-                       oMsg.oParam.bEnable=true;
-               return false;
-       }
-       else if(nMsgId==WH_MSG_GETDEFPANE)
-       {
-               if (gsDefaultBtn!="invalid")
-               {
-                       oMsg.oParam=gsDefaultBtn;
-               }
-               return false;
-       }
-       return true;
-}
-
-function transferANToPN2(sAN)
-{
-       if (sAN =="toc")
-               return "toc";
-       else if (sAN =="ndx")
-               return "idx";
-       else if (sAN =="nls")
-               return "fts";
-       else if (sAN =="gls")
-               return "glo";
-       else if (sAN =="WebSearch")
-               return "websearch";
-       else if (sAN.indexOf("custom_")==0);
-               return "custom" + sAN.substring(7);
-       return sAN;
-}
-
-function transferAgentNameToPaneName(sAgentName)
-{
-       if (sAgentName =="toc")
-               return "toc";
-       else if (sAgentName =="ndx")
-               return "idx";
-       else if (sAgentName =="nls")
-               return "fts";
-       else if (sAgentName =="gls")
-               return "glo";
-       return "";
-}
-
-function isAPane(sPaneName)
-{
-       if (sPaneName == "toc" || sPaneName == "idx" || sPaneName == "fts" || sPaneName == "glo")
-               return true;
-       else
-               return false;
-}
diff --git a/doc/salome/gui/SMESH/whstub.js b/doc/salome/gui/SMESH/whstub.js
deleted file mode 100755 (executable)
index a94288c..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-//     WebHelp 5.10.002
-window.whname="wh_stub";
-function getframehandle(frames,framename)
-{
-       var frame=null;
-       if(null==frames) return null;
-       for(var i=0;i<frames.length;i++)
-       {
-               if(typeof(frames[i].name)!="unknown")
-               {
-                       if(frames[i].name==framename)
-                               return frames[i];
-               }
-               if(frames[i].frames.length>0)
-               {
-                       frame=getframehandle(frames[i].frames,framename);
-                       if(null!=frame)
-                               return frame;
-               }
-       }
-       return frame;
-}
-
-function AddToArray(arr,obj)
-{
-       var bFound=false;
-       for(var i=0;i<arr.length;i++){
-               if(arr[i]==obj){
-                       bFound=true;
-                       break;
-               }
-               else if(arr[i]==null){
-                       break;
-               }
-       }
-       if(!bFound) arr[i]=obj;
-}
-
-var gArrayRegistedMessage=new Array();
-var gArrayCompoentsArray=new Array();
-
-function GetComponentsArray(nMessageId)
-{
-       var len=gArrayRegistedMessage.length;
-       for(var i=0;i<len;i++)
-       {
-               if(gArrayRegistedMessage[i]==nMessageId){
-                       if(gArrayCompoentsArray.length>i)
-                               return gArrayCompoentsArray[i];
-                       else
-                               return null;
-               }
-       }
-       return null;
-}
-
-function CreateComponentsArray(nMessageId)
-{
-       var len=gArrayRegistedMessage.length;
-       gArrayRegistedMessage[len]=nMessageId;
-       gArrayCompoentsArray[len]=new Array();
-       return gArrayCompoentsArray[len];
-}
-
-function listener(sName,oWindow)
-{
-       this.sName=sName;
-       this.oWindow=oWindow;
-}
-
-function RegisterListener(windowName,nMessageId)
-{
-       var arrayComponents=GetComponentsArray(nMessageId);
-       if(arrayComponents==null)
-               arrayComponents=CreateComponentsArray(nMessageId);
-       
-       if(arrayComponents!=null)
-       {
-               for (var i=0;i<arrayComponents.length;i++)
-               {
-                       if (arrayComponents[i].sName == windowName)
-                               return false;
-               }
-               var oListener=new listener(windowName,null);
-               AddToArray(arrayComponents,oListener);
-               return true;
-       }
-       else
-               return false;
-}
-
-function RegisterListener2(oWindow,nMessageId)
-{
-       var arrayComponents=GetComponentsArray(nMessageId);
-       if(arrayComponents==null)
-               arrayComponents=CreateComponentsArray(nMessageId);
-       
-       if(arrayComponents!=null)
-       {
-               var oListener=new listener("",oWindow);
-               AddToArray(arrayComponents,oListener);
-               return true;
-       }
-       else
-               return false;
-}
-
-function UnRegisterListener2(oWindow,nMessageId)
-{
-       var arrayComponents=GetComponentsArray(nMessageId);
-       if(arrayComponents!=null)
-       {
-               for(var i=0;i<arrayComponents.length;i++)
-               {
-                       if(arrayComponents[i].oWindow==oWindow)
-                       {
-                               removeItemFromArray(arrayComponents,i);
-                               return true;
-                       }
-               }
-       }
-       else
-               return false;
-}
-
-function SendMessage(oMessage)
-{
-       var bDelivered=false;
-       var arrayComponents=GetComponentsArray(oMessage.nMessageId);
-       if(arrayComponents!=null&&arrayComponents.length>0){
-               for(var i=0;i<arrayComponents.length;i++)
-               {
-                       if(null!=arrayComponents[i])
-                       {
-                               var pFrame;
-                               if(arrayComponents[i].oWindow==null)
-                                       pFrame=getframehandle(frames,arrayComponents[i].sName);
-                               else
-                                       pFrame=arrayComponents[i].oWindow;
-                               if(null!=pFrame)
-                               {
-                                       if(pFrame.onSendMessageX)
-                                       {
-                                               bDelivered=true;
-                                               if(!pFrame.onSendMessageX(oMessage))
-                                                       break;
-                                       }
-                                       if(pFrame.onSendMessage)
-                                       {
-                                               bDelivered=true;
-                                               if(!pFrame.onSendMessage(oMessage))
-                                                       break;
-                                       }
-                               }
-                       }
-               }
-       }
-       return bDelivered;
-}
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whtdhtml.htm b/doc/salome/gui/SMESH/whtdhtml.htm
deleted file mode 100755 (executable)
index e94f97f..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<html>
-<head>
-<title>Table of contents</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<base target="bsscright">
-</head>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whthost.js"></script>
-<script LANGUAGE="javascript1.2">
-<!--
-if (window.gbWhTHost)
-{
-       
-       
-       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
-       setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
-       setActiveBgColor("#cccccc");
-       setMargin("0pt");
-       setIndent("9pt");
-       setIcon("BookOpen","whd_toc2.gif");
-       setIcon("BookClose","whd_toc1.gif");
-       setIcon("Item","whd_toc3.gif");
-       setIcon("RemoteItem","whd_toc4.gif");
-       setIcon("NewBookOpen","whd_toc2.gif");
-       setIcon("NewBookClose","whd_toc1.gif");
-       setIcon("NewItem","whd_toc3.gif");
-       setIcon("NewRemoteItem","whd_toc4.gif");
-       TocWriteClassStyle();
-       TocWriteFixedWidth(true,400);
-}
-else
-       document.location.reload();
-//-->
-</script>
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" bgcolor="white" scroll="auto">
-<script LANGUAGE="javascript1.2">
-<!--
-TocWriteFixedWidth(false,400);
-TocInitPage();
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/SMESH/whthost.js b/doc/salome/gui/SMESH/whthost.js
deleted file mode 100755 (executable)
index 1a864bb..0000000
+++ /dev/null
@@ -1,1504 +0,0 @@
-//     WebHelp 5.10.007
-var gaHSLoad=new Array();
-var gnMinIdx=0;
-var gnInsIdx=-1;
-var gsLoadingDivID="LoadingDiv";
-var gsLoadingMsg="Loading, click here to cancel...";
-var gaProj=null;
-var gaTocs=new Array();
-var goChunk=null;
-var gbReady=false;
-var gbToc=false;
-var gbXML=false;
-var gaRoot=new Array();
-var gnCC=-1;
-var gsTP="";
-var gaBTPs="";
-var gsCTPath="";
-var gnLT=-1;
-var gsPathSplit="\n";
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var goFont=null;
-var goHFont=null;
-
-var gsMargin="0pt";
-var gsIndent="15pt";
-var gsABgColor="#cccccc";
-
-var giBookClose="";
-var giBookOpen="";
-var giBookItem="";
-var giURLItem="";
-var giNewBookClose="";
-var giNewBookOpen="";
-var giNewBookItem="";
-var giNewURLItem="";
-var gnImages=0;
-var gnLoadedImages=0;
-var gaImgs=new Array();
-var gbLoadData=false;
-var gobj=null;
-var gaTocsNs61Fix=null;
-var gbWhTHost=false;
-var gBookItems=new Array();
-var gInSync=false;
-var gbLData=false;
-var gbNeedFillStub=false;
-var gbLoadToc=false;
-
-function chunkInfoQueue()
-{
-       this.aContent=new Array();
-       this.inQueue=function(cInfo)
-       {
-               this.aContent[this.aContent.length]=cInfo;
-       }
-       this.deQueue=function()
-       {
-               var cInfo=null;
-               if(this.aContent.length>0)
-               {
-                       cInfo=this.aContent[0];
-                       for(var i=1;i<this.aContent.length;i++)
-                               this.aContent[i-1]=this.aContent[i];
-                       this.aContent.length--;
-               }
-               return cInfo;
-       }
-       this.length=function()
-       {
-               return this.aContent.length;
-       }
-}
-
-var gchunkRequestQueue=new chunkInfoQueue();
-
-function chunkInfo(nIdx, bLocal)
-{
-       this.nIdx=nIdx;
-       this.bLocal=bLocal;
-}
-
-function setBackground(sBgImage)
-{
-       gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       gsBgColor=sBgColor;
-}
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       if(sType=="Normal") goFont=vFont;
-       else if(sType=="Hover") goHFont=vFont;
-}
-
-function setActiveBgColor(sBgColor){gsABgColor=sBgColor;}
-
-function setMargin(sMargin){gsMargin=sMargin;}
-
-function setIndent(sIndent){gsIndent=sIndent;}
-
-function setIcon(sType,sURL)
-{
-       if(sType=="BookOpen")
-               giBookOpen=sURL;
-       else if(sType=="BookClose")
-               giBookClose=sURL;
-       else if(sType=="Item")
-               giBookItem=sURL;
-       else if(sType=="RemoteItem")
-               giURLItem=sURL;
-       else if(sType=="NewBookClose")
-               giNewBookClose=sURL;
-       else if(sType=="NewBookOpen")
-               giNewBookOpen=sURL;
-       else if(sType=="NewItem")
-               giNewBookItem=sURL;
-       else if(sType=="NewRemoteItem")
-               giNewURLItem=sURL;              
-}
-
-function bookItem(sTarget,sURL)
-{
-       if(sTarget)
-               this.sTarget=sTarget;
-       else
-               this.sTarget="bsscright";
-       this.sURL=sURL;
-}
-
-function addBookItem(sBookId,sTarget,sURL)
-{
-       gBookItems[sBookId]=new bookItem(sTarget,sURL);         
-}
-
-function tocChunk(sPPath,sDPath)
-{
-       this.sPPath=sPPath;
-       this.sDPath=sDPath;
-       this.nMI=-1;
-       this.aTocs=null;
-}
-
-function addTocChunk(sPPath,sDPath)
-{
-       var oChunk=new tocChunk(sPPath,sDPath);
-       gaTocs[gaTocs.length]=oChunk;
-       return oChunk;
-}
-
-function isHSLoad(nIdx)
-{
-       for(var i=0;i<gaHSLoad.length;i++)
-               if(gaHSLoad[i]==nIdx)
-                       return true;
-       return false;
-}
-
-function setHSLoad(nIdx)
-{
-       if(!isHSLoad(nIdx))
-       {
-               var len=gaHSLoad.length;
-               for(var i=0;i<len;i++)
-                       if(gaHSLoad[i]==-1)
-                       {
-                               gaHSLoad[i]=nIdx;
-                               return;
-                       }
-               gaHSLoad[len]=nIdx;
-       }
-}
-
-function setHSUnLoad(nIdx)
-{
-       if(isHSLoad(nIdx))
-       {
-               for(var i=0;i<gaHSLoad.length;i++)
-                       if(gaHSLoad[i]==nIdx)
-                       {
-                               gaHSLoad[i]=-1;
-                               return;
-                       }
-       }
-}
-
-function removeLoadingDiv()
-{
-       var eLoadingDiv=getElement(gsLoadingDivID);
-       if(eLoadingDiv)
-               removeThis(eLoadingDiv);
-}
-
-function checkBookItem(nIdx)
-{
-       if(!gInSync)
-       {
-               var sBookId=getBookId(nIdx);
-               if(gBookItems[sBookId])
-               {
-                       window.open(gBookItems[sBookId].sURL,gBookItems[sBookId].sTarget);
-               }
-       }
-}
-
-function insertBookItems(nIdx,num)
-{
-       checkBookItem(nIdx);
-       var sChildBookId=getCBId(nIdx);
-       var eChildDiv=getElement(sChildBookId);
-       if(eChildDiv){
-               if((eChildDiv.childNodes&&eChildDiv.childNodes.length==0)||
-                       (eChildDiv.all&&eChildDiv.all.length==0)){
-                       var sHTML=writeBookItems(nIdx,num);
-                       eChildDiv.innerHTML=sHTML;
-                       setTimeout("syncInit()",1);
-               }
-       }
-       ExpandIt(nIdx);
-}
-
-function isBookEmpty(nIdx)
-{
-       var num=getItemContentsNum(nIdx);
-       if (num>0)
-       {
-               var nCIdx=0;
-               do {
-                       nCIdx++;
-                       var i=nIdx+nCIdx;
-                       var nItemType=getItemType(i);
-                       if(nItemType==1){
-                               if (!isBookEmpty(i))
-                                       return false;
-                       }
-                       else if(nItemType==4){
-                               var     sSrc=getRefURL(i);
-                               var nProj=getProject(sSrc);
-                               if(nProj!=-1){
-                                       sSrc=gaRoot[nProj].sToc;
-                                       if(sSrc)
-                                               return false;
-                               }
-                       }
-                       else if(nItemType==2||nItemType==16||nItemType==8)
-                               return false;
-               } while(nCIdx<num);
-       }
-       return true;
-}
-
-function writeBook(nIdx)
-{
-       var sIcon=getBookImage(nIdx,true);
-       var sName=_textToHtml(getItemName(nIdx));
-       sIcon=_textToHtml_nonbsp(sIcon);
-       
-       var nType=getItemType(nIdx);
-       var bLocal=(nType==1);
-       var bLocalProject=(nType!=4);
-       
-       var sHTML="<div id=\""+getPBId(nIdx)+"\" class=";
-       if(bLocal)
-       {
-               if (!isBookEmpty(nIdx))
-               {
-                       sHTML+="parent><p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";
-                       sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);
-                       sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";
-                       sHTML+="&nbsp;"+sName+"</a></nobr></p></div>";
-                       var sURL=_textToHtml_nonbsp(getItemURL(nIdx));
-                       if(sURL!="")
-                               addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);
-                       sHTML+="<div id=\""+getCBId(nIdx)+"\" class=child></div>";
-               }
-               else
-                       sHTML="";
-       }
-       else
-       {
-               sHTML+="stub></div>";
-               gbNeedFillStub=true;
-               setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
-       }
-       return sHTML;
-}
-
-function checkFillStub()
-{
-       if(!gbLData)
-       {
-               if(gchunkRequestQueue.length()>0)
-               {
-                       var cInfo=gchunkRequestQueue.deQueue();
-                       if(cInfo)
-                       {
-                               fillStub(cInfo.nIdx,cInfo.bLocal);
-                               return;
-                       }
-               }
-       }
-       if(gbNeedFillStub)
-       {
-               gbNeedFillStub=false;
-               setTimeout("syncInit()",1);
-       }
-}
-
-function fillStub(nIdx,bLocalProject)
-{
-       if(!gbLData)
-       {
-               gbLData=true;
-               var sObj=getElement(getPBId(nIdx));
-               if(sObj!=null)
-               {
-                       tocExpandHelpSet(nIdx,bLocalProject);
-                       gbNeedFillStub=false;
-                       setTimeout("syncInit()",1);
-               }
-               else
-                       setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
-       }
-       else
-               gchunkRequestQueue.inQueue(new chunkInfo(nIdx,bLocalProject));
-}
-
-function getBookId(nIdx){return "B_"+nIdx;}
-
-function getItemId(nIdx){return "I_"+nIdx;}
-
-function markBook(nIdx)
-{
-       var obj=getElement(getItemId(nIdx));
-       if(obj==null)
-               obj=getElement(getBookId(nIdx));
-       if(gbNav6)
-       {
-               gobj=obj;
-               setTimeout("delayMarkObj();",1);
-       }
-       else
-               markObj(obj);
-}
-
-function delayMarkObj()
-{
-       if(gobj)
-       {
-               markObj(gobj);
-               gobj=null;
-       }
-}
-
-function markObj(obj)
-{
-       if(obj!=null)
-       {
-               HighLightElement(obj,gsABgColor,"transparent");
-               var sPath=calTocPath(obj);
-               if(gsCTPath!=sPath)
-                       gsCTPath=sPath;
-       }
-}
-
-function markItem(nIdx)
-{
-       var obj=getElement(getItemId(nIdx));
-       if(gbNav6)
-       {
-               gobj=obj;
-               setTimeout("delayMarkObj();",1);
-       }
-       else
-               markObj(getElement(getItemId(nIdx)));
-}
-
-function calTocPath(obj)
-{
-       var sPath=getInnerText2(obj);
-       var pObj=getParentNode(obj);
-       do
-       {
-               while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj);
-               if(pObj!=null)
-               {
-                       var nId=getIdByCBId(pObj.id);
-                       var sObj=getElement(getPBId(nId));
-                       if(sObj!=null)
-                       {
-                               var objs=getItemsByBook(sObj);
-                               for(var i=0;i<objs.length;i++)
-                               {
-                                       var sText=getInnerText2(objs[i]);
-                                       if(sText.length!=0)
-                                       {
-                                               sPath=sText+gsPathSplit+sPath;
-                                               break;
-                                       }
-                               }
-                       }
-                       pObj=getParentNode(pObj);
-               }
-       }while(pObj!=null);
-       return sPath;
-}
-
-function writeAnItem(nIdx)
-{
-       var sTarget=_textToHtml_nonbsp(getTopicTarget(nIdx));
-       var sIcon=getItemIcon(nIdx,0);
-       if(sIcon=="")
-       {
-               var nItemType=getItemType(nIdx);
-               if(nItemType&2)
-                       sIcon=getItemImage(nIdx,false);
-               else
-                       sIcon=getItemImage(nIdx,true);
-       }
-       sIcon=_textToHtml_nonbsp(sIcon);
-       var sName=_textToHtml(getItemName(nIdx));
-       var sHTML="<p><nobr><a id=\""+getItemId(nIdx)+"\" onfocus=\"markItem("+nIdx+");\""
-       var sAltString="";
-       if(nItemType&2)
-               sAltString="Page";
-       else
-               sAltString="Remote Page";
-       if(sTarget!="")
-               sHTML+="target=\""+sTarget+"\" ";
-       sHTML+="href=\""+_textToHtml_nonbsp(getItemURL(nIdx))+"\" title=\""+sName+"\"><img alt=\""+sAltString+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">&nbsp;"+sName+"</a></nobr></p>";
-       return sHTML;
-}
-
-function writeBookItems(nIdx,num)
-{
-       var sHTML="";
-       if(num>0){
-               var nCIdx=0;
-               do{
-                       nCIdx++;
-                       var i=nIdx+nCIdx;
-                       var nItemType=getItemType(i);
-                       if(nItemType==1||nItemType==4||nItemType==8){
-                               sHTML+=writeBook(i);    
-                               nCIdx+=getItemContentsNum(i);           
-                       }
-                       else if(nItemType==2||nItemType==16){
-                               sHTML+=writeAnItem(i);
-                       }
-               }
-               while(nCIdx<num);
-       }
-       return sHTML;
-}
-
-function tocExpandHelpSet(nIdx,bLocal)
-{
-       checkBookItem(nIdx);
-       removeLoadingDiv();
-       if(!isHSLoad(nIdx))
-       {
-               setHSLoad(nIdx);
-               var sSrc="";
-               if(bLocal){
-                       var oChunk=getChunk(nIdx);
-                       if(oChunk)
-                       {
-                               goChunk=addTocChunk(oChunk.sPPath,oChunk.sDPath);
-                               sSrc=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
-                       }
-               }
-               else{
-                       sSrc=getRefURL(nIdx);
-                       var nProj=getProject(sSrc);
-                       if(nProj!=-1)
-                       {
-                               sSrc=gaRoot[nProj].sToc;
-                               if(sSrc)
-                                       goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);
-                               else
-                                       goChunk=null;
-                       }
-                       else
-                               goChunk=null;
-               }
-               if(goChunk)
-               {
-                       PrepareLoading(nIdx);
-                       gbToc=false;
-                       loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);
-               }
-               else
-               {
-                       gbLData=false;
-                       checkFillStub();
-               }
-       }
-}
-
-function getProject(sSrc)
-{
-       for(var i=0;i<gaProj.length;i++)
-               if(isSamePath(getPath(sSrc),gaProj[i].sPPath))
-                       return i;
-       return -1;
-}
-
-function getPath(sPath)
-{
-       if(sPath!="")
-       {
-               sPath=_replaceSlash(sPath);
-               var nPosFile=sPath.lastIndexOf("/");
-               sPath=sPath.substring(0,nPosFile+1);
-       }
-       return sPath;
-}
-
-function isSamePath(sPath1,sPath2)
-{
-       return (sPath1.toLowerCase()==sPath2.toLowerCase());
-}
-
-function PrepareLoading(nIdx)
-{
-       gnInsIdx=nIdx;
-       if(!gsTP)
-       {
-               var oObj=getElement(getPBId(gnInsIdx));
-               if(oObj)
-                       oObj.insertAdjacentHTML("afterEnd",writeLoadingDiv(nIdx));
-       }
-}
-
-function writeLoadingDiv(nIdx)
-{
-       return"<div id=\""+gsLoadingDivID+"\" class=parent onclick=\"removeLoadingDiv();\" style=\"padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
-}
-
-function getItemName(nIdx)
-{
-       var oChunk=getChunk(nIdx);
-       if(oChunk)
-               return oChunk.aTocs[nIdx-oChunk.nMI].sItemName;
-       else
-               return null;
-}
-
-function getItemContentsNum(nIdx)
-{
-       var oChunk=getChunk(nIdx);
-       if(oChunk)
-               return oChunk.aTocs[nIdx-oChunk.nMI].nContents;
-       else
-               return null;
-}
-
-function getItemType(nIdx)
-{
-       var oChunk=getChunk(nIdx);
-       if(oChunk)
-               return oChunk.aTocs[nIdx-oChunk.nMI].nType;
-       else
-               return 0;
-}
-
-function getItemURL(nIdx)
-{
-       var oChunk=getChunk(nIdx);
-       if(oChunk)
-       {
-               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL;
-               if(!(sPath==null||sPath==""))
-               {
-                       return _getFullPath(oChunk.sPPath,sPath);
-               }
-       }
-       return "";
-}
-
-function getRefURL(nIdx)
-{
-       var oChunk=getChunk(nIdx);
-       if(oChunk)
-       {
-               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
-               if(!(sPath==null||sPath==""))
-               {
-                       return _getFullPath(oChunk.sPPath,sPath)
-               }
-       }
-       return "";
-}
-
-function getTopicTarget(nIdx)
-{
-       var oChunk=getChunk(nIdx);
-       if(oChunk)
-       {
-               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined")
-                       return oChunk.aTocs[nIdx-oChunk.nMI].sTarget;
-       }
-       return "";
-}
-
-function getItemIcon(nIdx,nIconIdx)
-{
-       var oChunk=getChunk(nIdx);
-       if(oChunk)
-       {
-               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined")
-               {
-                       var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef;
-                       var nIndex=sIconRef.indexOf(";");
-                       while(nIconIdx-->0&&nIndex!=-1)
-                       {
-                               sIconRef=sIconRef.substring(nIndex+1);
-                               nIndex=sIconRef.indexOf(";");
-                       }
-                       if(nIconIdx<0)
-                       {
-                               if(nIndex!=-1)
-                                       sIconRef=sIconRef.substring(0,nIndex);
-                               return _getFullPath(oChunk.sPPath,sIconRef)
-                       }
-               }
-       }
-       return "";
-}
-
-function TocWriteClassStyle()
-{
-       var sStyle="<STYLE TYPE='text/css'>\n";
-       if(gsBgImage)
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
-       else
-               sStyle+="body {border-top:black 1px solid;}\n";
-       sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
-       sStyle+="DIV {margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
-       sStyle+=".parent {margin-left:0pt;}\n";
-       sStyle+=".stub {margin-left:0pt;display:none}\n";
-       sStyle+=".child {display:none;margin-left:"+gsIndent+";}\n";
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:active {background-color:"+gsABgColor+";}\n";
-       sStyle +="A:hover {"+getFontStyle(goHFont)+"}\n";
-       sStyle+="</STYLE>";
-       document.write(sStyle);
-}
-
-function TocWriteFixedWidth(bBegin,nWidth)
-{
-       if((gbIE4)&&(gbMac)&&(!gbIE5)){
-               if(bBegin)
-                       document.write("<table width="+nWidth+" border=0><tr><td>");
-               else
-                       document.write("</td></tr></table>");
-       }
-}
-
-function TocInitPage()
-{
-       var tempColl=getItemsByBook(document.body);
-       if(tempColl.length>0)
-               tempColl[0].focus();
-}
-
-function getItemsFromObj(obj)
-{
-       var aAnchor=new Array();
-       var tempColl=getChildrenByTag(obj,"P");
-       if(tempColl&&tempColl.length>0)
-       {
-               var anobr=new Array();
-               for(var i=0;i<tempColl.length;i++)
-               {
-                       var tempNobr=getChildrenByTag(tempColl[i],"NOBR");
-                       if(tempNobr&&tempNobr.length>0)
-                               for(var j=0;j<tempNobr.length;j++)
-                                       anobr[anobr.length]=tempNobr[j];
-               }
-               for(var s=0;s<anobr.length;s++)
-               {
-                       var tempAnchor=getChildrenByTag(anobr[s],"A");
-                       if(tempAnchor&&tempAnchor.length>0)
-                               for(var u=0;u<tempAnchor.length;u++)
-                                       aAnchor[aAnchor.length]=tempAnchor[u];
-               }
-       }
-       return aAnchor;
-}
-
-function getItemsByBook(obj)
-{
-       var aAnchor=new Array();
-       var aTAnchor=getItemsFromObj(obj);
-       for(var i=0;i<aTAnchor.length;i++)
-               aAnchor[aAnchor.length]=aTAnchor[i];
-       var tempBook=getChildrenByTag(obj,"DIV");
-       if(tempBook&&tempBook.length>0)
-               for(var j=0;j<tempBook.length;j++)
-               {
-                       var aTAnchorDiv=getItemsFromObj(tempBook[j]);
-                       for(var s=0;s<aTAnchorDiv.length;s++)
-                               aAnchor[aAnchor.length]=aTAnchorDiv[s];
-               }
-       return aAnchor;
-}
-
-function ExpandIt(nId)
-{
-       if(!gsTP)
-               ExpandIt2(nId,false);
-}
-
-function ExpandIt2(nId,bForceOpen)
-{
-       var oC=TocExpand(nId,true,bForceOpen);
-       var nNewScroll=document.body.scrollTop;
-       if(oC.style.display=="block"){
-               var nTop=oC.offsetTop;
-               var nBottom=nTop+oC.offsetHeight;
-               if(document.body.scrollTop+document.body.clientHeight<nBottom){
-                       nNewScroll=nBottom-document.body.clientHeight;
-               }
-               if(nBottom-nTop>document.body.clientHeight){
-                       nNewScroll=nTop-20;
-               }
-       }
-       document.body.scrollTop=nNewScroll;
-}
-
-function TocExpand(nId,bChangeImg,bForceOpen)
-{
-       var oDiv=getElement(getCBId(nId));
-       if(oDiv==null) return null;
-
-       var whichIm=document.images[getBId(nId)];
-       if((oDiv.style.display!="block")||bForceOpen){
-               oDiv.style.display="block";
-               if(bChangeImg){
-                       var sPath=getPath(whichIm.src);
-                       sPath=_getFullPath(sPath,getBookImage(nId,false));
-                       whichIm.src=sPath;              
-               }
-       }else{
-               oDiv.style.display="none";
-               if(bChangeImg){
-                       var sPath=getPath(whichIm.src);
-                       sPath=_getFullPath(sPath,getBookImage(nId,true));
-                       whichIm.src=sPath;
-               }
-               if(gbMac&&gbIE5){
-                       this.parent.document.getElementById("tocIFrame").style.width="101%";
-                       this.parent.document.getElementById("tocIFrame").style.width="100%";
-               }
-       }
-       return oDiv;
-}
-
-function getChunkId(n)
-{
-       var nCan=-1;
-       for(var i=0;i<gaTocs.length;i++)
-               if(gaTocs[i].nMI<=n&&gaTocs[i].nMI!=-1)
-               {
-                       if(nCan==-1)
-                               nCan=i;
-                       else
-                               if(gaTocs[i].nMI>=gaTocs[nCan].nMI)
-                                       nCan=i;
-               }
-       if(nCan!=-1)
-               return nCan;
-       else
-               return -1;
-}
-
-function getChunk(n)
-{
-       if(gnCC!=-1&&gaTocs[gnCC].nMI<=n&&(gnCC==gaTocs.length-1||
-               gaTocs[gnCC+1].nMI>n))
-       {       
-               return gaTocs[gnCC];
-       }
-       else{
-               gnCC=getChunkId(n);
-               if(gnCC!=-1)
-                       return gaTocs[gnCC];
-               else
-                       return null;
-       }
-}
-
-function getBookImage(nIdx,bClosed)
-{
-       var nIdx=bClosed?0:1;
-       var sIcon=getItemIcon(nIdx,nIdx);
-       if(sIcon=="")
-               if(bClosed)
-                       sIcon=giBookClose;
-               else
-                       sIcon=giBookOpen;
-       return _getFullPath(gaProj[0].sPPath,sIcon);
-}
-
-function getItemImage(nIdx,bRemote)
-{
-       var sIcon=getItemIcon(nIdx,0);
-       if(sIcon=="")
-               if(bRemote)
-                       sIcon=giURLItem;
-               else
-                       sIcon=giBookItem;
-       return _getFullPath(gaProj[0].sPPath,sIcon);
-}
-
-function getInnerText2(obj)
-{
-       var sText=getInnerText(obj);
-       if(sText.length>0&&!gbOpera7)
-               sText=sText.substring(1);
-       return sText;
-}
-
-function expandToc(oObj,sRest,aIdList)
-{
-       var len=aIdList.length;
-       var nPos=sRest.indexOf(gsPathSplit);
-       if(nPos!=-1)
-       {
-               sPart=sRest.substring(0,nPos);
-               sRest=sRest.substring(nPos+1);
-       }
-       else
-       {
-               sPart=sRest;
-               var aTagAs=getItemsByBook(oObj);
-               for(var s=0;s<aTagAs.length;s++)
-               {
-                       var sText=getInnerText2(aTagAs[s]);
-                       if(sText==sPart)
-                       {
-                               aIdList[len]=aTagAs[s];
-                               return 1;
-                       }
-               }
-               return 0;
-       }
-               
-       var aChildren=getChildrenByTag(oObj,"DIV");
-       for(var i=0;i<aChildren.length;i++)
-       {
-               var sPId=aChildren[i].id;
-               if(!isPBId(sPId))
-                       continue;
-               var sText=getInnerText2(aChildren[i]);
-               if(sText!=sPart)
-                       continue;
-               aIdList[len]=getIdByPBId(sPId);
-               var sCId=getCBId(aIdList[len]);
-               var oCObj=getElement(sCId);
-               if(oCObj)
-               {
-                       if(oCObj.innerHTML=="")
-                       {
-                               var obj=getItemsByBook(aChildren[i]);
-                               if(obj.length>0)
-                               {
-                                       if(gbNav6)
-                                       {
-                                               var sCommand=obj[0].getAttribute("onClick");
-                                               var nCommand=sCommand.indexOf(";");
-                                               sCommand=sCommand.substring(0,nCommand);
-                                               setTimeout(sCommand,1);
-                                       }
-                                       else
-                                               obj[0].click();
-                               }
-                               return -1;
-                       }
-                       var nRet=expandToc(oCObj,sRest,aIdList);
-                       if(nRet)
-                               return nRet;
-               }
-       }
-       aIdList.length=len;
-       return 0;
-}
-
-function getIdByPBId(sPId)
-{
-       return parseInt(sPId.substring(2,sPId.length-1));
-}
-
-function getIdByCBId(sCId)
-{
-       return parseInt(sCId.substring(2,sCId.length-1));
-}
-
-function isPBId(sId)
-{
-       return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("P")==sId.length-1);
-}
-
-function isCBId(sId)
-{
-       return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("C")==sId.length-1);
-}
-
-function getBId(nIdx)
-{
-       return "B_"+nIdx;
-}
-
-function getPBId(nIdx)
-{
-       return getBId(nIdx)+"P";
-}
-
-function getCBId(nIdx)
-{
-       return getBId(nIdx)+"C";
-}
-
-function getClosestTocPath(aPaths)
-{
-       var nMaxSimilarity=0;
-       var nThatIndex=-1;
-       var sPath=null;
-       if(aPaths.length==0) return sPath;
-       for(var i=0;i<aPaths.length;i++)
-       {
-               var nSimilarity=comparePath(gsCTPath,aPaths[i]);
-               if(nSimilarity>nMaxSimilarity)
-               {
-                       nMaxSimilarity=nSimilarity;
-                       nThatIndex=i;
-               }
-       }
-       if(nThatIndex!=-1)
-               sPath=aPaths[nThatIndex];
-       else
-               sPath=aPaths[0];
-       return sPath;
-}
-
-function comparePath(sPath1,sPath2)
-{
-       var nMaxSimilarity=0;
-       var nStartPos1=0;
-       var nPos1=-1;
-       var nStartPos2=0;
-       var nPos2=-1;
-       do{
-               var sCheck1=null;
-               var sCheck2=null;
-               nPos1=sPath1.indexOf(gsPathSplit,nStartPos1);
-               if(nPos1!=-1)
-               {
-                       sCheck1=sPath1.substring(nStartPos1,nPos1);
-                       nStartPos1=nPos1+1;
-               }
-               else
-               {
-                       sCheck1=sPath1.substring(nStartPos1);
-                       nStartPos1=-1;
-               }
-               nPos2=sPath2.indexOf(gsPathSplit,nStartPos2);
-               if(nPos1!=-1)
-               {
-                       sCheck2=sPath2.substring(nStartPos2,nPos2);
-                       nStartPos2=nPos2+1;
-               }
-               else
-               {
-                       sCheck2=sPath2.substring(nStartPos2);
-                       nStartPos2=-1;
-               }
-               if(sCheck1==sCheck2)
-                       nMaxSimilarity++;
-               else
-                       break;
-       }while(nStartPos1!=-1&&nStartPos2!=-1);
-       return nMaxSimilarity;
-}
-
-function getTocPaths(oTopicParam)
-{
-       var aRelTocPaths=oTopicParam.aPaths;
-       var aPaths=new Array();
-       for(var i=0;i<gaProj.length;i++)
-               if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))
-               {
-                       for(var j=0;j<aRelTocPaths.length;j++)
-                               for (var k=0;k<gaRoot[i].aRPath.length;k++)
-                               {
-                                       var sPath=gaRoot[i].aRPath[k]+aRelTocPaths[j];
-                                       aPaths[aPaths.length]=sPath.substring(1);
-                               }
-                       break;
-               }
-       return aPaths;
-}
-
-function syncInit()
-{
-       if(gsTP&&!gbNeedFillStub)
-       {
-               gInSync=true;
-               var obj=document.body;
-               var aIdList=new Array();
-               var nRet=expandToc(obj,gsTP,aIdList);
-               if(nRet!=-1)
-               {
-                       if(nRet==1)
-                       {
-                               if(aIdList.length)
-                                       for(var i=0;i<aIdList.length-1;i++)
-                                               ExpandIt2(aIdList[i],true);
-                               gsCTPath=gsTP;
-                               if(!gbIE55)
-                                       aIdList[aIdList.length-1].focus();
-                               else
-                                       HighLightElement(aIdList[aIdList.length-1],gsABgColor,"transparent");
-                       }
-                       var aPaths=gaBTPs;
-                       gsTP=null;
-                       gaBTPs=null;
-                       if(aPaths!=null)
-                       {
-                               var sPath=getClosestTocPath(aPaths);
-                               if(sPath!=null)
-                               {       
-                                       gsTP=sPath;             
-                                       setTimeout("syncInit()",1);
-                               }
-                       }
-               }
-               gInSync=false;
-       }
-}
-
-function loadToc()
-{
-       if(!gbLoadToc)
-       {
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
-               if(SendMessage(oResMsg)&&oResMsg.oParam)
-               {
-                       gbLoadToc=true;
-                       var oProj=oResMsg.oParam;
-                       gaProj=oProj.aProj;
-                       gbXML=oProj.bXML;
-                       load1B1();
-               }
-       }
-}
-
-function load1B1()
-{
-       if(gnLT+1<gaProj.length)
-               for(var i=gnLT+1;i<gaProj.length;i++)
-                       if(gaProj[i].sToc)
-                       {
-                               gbToc=true;
-                               gnLT=i;
-                               setTimeout("loadTocInfo()",1);
-                               return true;
-                       }
-       return false;
-}
-
-function loadTocInfo()
-{
-       loadData2(gaProj[gnLT].sPPath+gaProj[gnLT].sDPath+gaProj[gnLT].sToc);
-}
-
-function loadData2(sFile)
-{
-       if(gbXML)
-               loadDataXML(sFile);
-       else
-               loadData(sFile);
-}
-
-function projReady(sRoot,aProj)
-{
-       if(gaRoot.length<=gnLT||!gaRoot[gnLT])
-               gaRoot[gnLT]=new Object();
-       gaRoot[gnLT].sToc=sRoot;
-       
-       if(gnLT==0)
-       {
-               gaRoot[gnLT].aRPath=new Array();
-               gaRoot[gnLT].aRPath[0]=gsPathSplit;
-       }
-
-       updatePTPath(gnLT,aProj);
-
-       if(!((gnLT+1<gaProj.length)&&load1B1()))
-       {
-               gbReady=true;
-               if(gbIE4)
-                       setTimeout("loadImages();",1);
-               else
-                       setTimeout("loadTData();",1);
-       }
-}
-
-function loadTData()
-{
-       if(gaProj[0].sToc!="")
-       {
-               gbLData=true;
-               goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);
-               gbToc=false;
-               loadData2(gaProj[0].sPPath+gaProj[0].sDPath+gaRoot[0].sToc);
-       }
-}
-
-function updatePTPath(n,aProj)
-{
-       if(aProj)
-               for(var i=0;i<aProj.length;i++)
-               {
-                       var sFullPath=_getFullPath(gaProj[n].sPPath,aProj[i].sPPath);
-                       for(var j=0;j<gaProj.length;j++)
-                               if(isSamePath(sFullPath,gaProj[j].sPPath))
-                               {
-                                       if(gaRoot.length<=j||!gaRoot[j])
-                                               gaRoot[j]=new Object();
-                                       if(!gaRoot[j].aRPath)
-                                               gaRoot[j].aRPath=new Array();
-
-                                       if(gaRoot[n].aRPath)
-                                               for(var k=0;k<gaRoot[n].aRPath.length;k++)
-                                               {
-                                                       var bDup=false;
-                                                       var sTFPath=gaRoot[n].aRPath[k]+aProj[i].sRPath;
-                                                       for(var l=0;l<gaRoot[j].aRPath.length;l++)
-                                                               if(gaRoot[j].aRPath[l]==sTFPath)
-                                                               {
-                                                                       bDup=true;
-                                                                       break;
-                                                               }
-                                                       if(!bDup)
-                                                               gaRoot[j].aRPath[gaRoot[j].aRPath.length]=sTFPath;
-                                               }
-                                       else
-                                               gaRoot[j].aRPath[gaRoot[j].aRPath.length]=aProj[i].sRPath;
-                                       break;
-                               }
-               }
-}
-
-function onLoadXMLError()
-{
-       if(gbToc)
-       {
-               var sRoot="";
-               var aRProj=new Array();
-               projReady(sRoot,aRProj);
-       }
-       else
-       {
-               var aToc=new Array();
-               putData(aToc)
-       }
-}
-
-function putDataXML(xmlDoc,sDocPath)
-{
-       if(gbToc)
-       {
-               var tocNode=xmlDoc.getElementsByTagName("toc")[0];
-               if(tocNode)
-               {
-                       var sRoot=tocNode.getAttribute("root");
-                       var rmtProject=tocNode.getElementsByTagName("project");
-                       var aRProj=new Array();
-                       if(rmtProject.length>0)
-                       {
-                               for(var i=0;i<rmtProject.length;i++)
-                               {
-                                       aRProj[i]=new Object();
-                                       var sURL=rmtProject[i].getAttribute("url");
-                                       if(sURL)
-                                       {
-                                               if(sURL.lastIndexOf("/")!=sURL.length-1)
-                                                       sURL+="/";                                              
-                                       }
-                                       aRProj[i].sPPath=sURL;
-                                       aRProj[i].sRPath = "";
-                                       var oSubPath = rmtProject[i].getElementsByTagName("subpath")[0];
-                                       if (oSubPath)
-                                       {
-                                               while (oSubPath)
-                                               {
-                                                       aRProj[i].sRPath += oSubPath.getAttribute("name") + "\n";
-                                                       oSubPath = oSubPath.getElementsByTagName("subpath")[0];
-                                               }
-                                       }
-                                       else
-                                               aRProj[i].sRPath=rmtProject[i].getAttribute("path");
-                               }
-                       }
-                       projReady(sRoot,aRProj);
-               }
-       }
-       else
-       {
-               var chunkNode=xmlDoc.getElementsByTagName("tocdata")[0];
-               if(chunkNode)
-               {
-                       var aToc=new Array();
-                       processBook(chunkNode,aToc);
-                       putData(aToc);
-               }
-       }
-}
-
-function processBook(node,aToc)
-{
-       var i=0;
-       var entry=null;
-       var prevEntry=null;
-       var oChild=node.firstChild;
-       do{
-               if(oChild)
-               {
-                       if(oChild.nodeName.indexOf("#")!=0)
-                       {
-                               var sName=oChild.getAttribute("name");
-                               var sURL=oChild.getAttribute("url");
-                               var sRef=oChild.getAttribute("ref");
-                               var sTarget=oChild.getAttribute("target");
-                               var sIcons=oChild.getAttribute("images");
-                               var item=new Object();
-                               item.sItemName=sName;
-                               if(sTarget)
-                                       item.sTarget=sTarget;
-                               if(sIcons)
-                                       item.sIconRef=sIcons;
-                               if(sURL==null) sURL="";
-
-                               item.sItemURL=sURL;
-                               
-                               if(oChild.nodeName=="book")
-                               {
-                                       item.nType=1;
-                                       aToc[aToc.length]=item;
-                                       var nCurrPos=aToc.length;
-                                       processBook(oChild,aToc);
-                                       item.nContents=aToc.length-nCurrPos;
-                               }
-                               else if(oChild.nodeName=="item")
-                               {
-                                       item.nType=2;
-                                       item.nContents=0;
-                                       aToc[aToc.length]=item;
-                               }
-                               else if(oChild.nodeName=="remoteitem")
-                               {
-                                       item.nType=16;
-                                       item.nContents=0;
-                                       aToc[aToc.length]=item;
-                               }
-                               else if(oChild.nodeName=="project")
-                               {
-                                       if(sRef)
-                                       {
-                                               if(sRef.lastIndexOf("/")!=sRef.length-1)
-                                                       sRef+="/";                                              
-                                       }
-                                       item.nType=4;
-                                       item.sRefURL=sRef;
-                                       item.nContents=0;
-                                       aToc[aToc.length]=item;
-                               }
-                               else if(oChild.nodeName=="chunk")
-                               {
-                                       item.nType=8;
-                                       item.sRefURL=sRef;
-                                       item.nContents=0;
-                                       aToc[aToc.length]=item;
-                               }
-                       }
-               }
-               else
-                       break;
-               oChild=oChild.nextSibling;
-       }while(true);
-}
-
-function putData(aTocs)
-{
-       gaTocsNs61Fix=aTocs;
-       setTimeout("realPutData();",1);
-}
-
-function realPutData()
-{
-       removeLoadingDiv();
-       var aTocs=gaTocsNs61Fix;
-       if(!aTocs) return;
-       if(goChunk)
-       {
-               var n=gnMinIdx;
-               goChunk.nMI=gnMinIdx;
-               goChunk.aTocs=aTocs;
-               gnMinIdx+=aTocs.length;
-               if(gnInsIdx!=-1)
-               {
-                       var oObj=getElement(getPBId(gnInsIdx));
-                       if(oObj)
-                       {
-                               oObj.insertAdjacentHTML("afterEnd",writeBookItems(n-1,aTocs.length));
-                               setTimeout("syncInit()",1);
-                       }
-               }
-               else{
-                       document.body.insertAdjacentHTML("beforeEnd",writeBookItems(n-1,aTocs.length));
-                       var oParam=new Object();
-                       oParam.oTocInfo=null;
-                       var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);
-                       if(SendMessage(oMsg))
-                       {
-                               if(oMsg.oParam.oTocInfo)
-                                       syncWithPaths(oMsg.oParam.oTocInfo);
-                       }
-               }       
-       }
-       gbLData=false;
-       checkFillStub();
-}
-
-function syncWithPaths(oTopicParam)
-{
-       var aPaths=getTocPaths(oTopicParam);
-       if(gsTP)
-               gaBTPs=aPaths;
-       else{
-               var sPath=getClosestTocPath(aPaths);
-               if(sPath!=null)
-               {
-                       gsTP=sPath;
-                       setTimeout("syncInit()",1);
-               }
-       }
-}
-
-function window_OnLoad()
-{
-       if(gsBgImage&&gsBgImage.length>0)
-       {
-               document.body.background=gsBgImage;
-       }
-       if(gsBgColor&&gsBgColor.length>0)
-       {
-               document.body.bgColor=gsBgColor;
-       }
-       loadToc();
-       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)
-       SendMessage(oMsg);
-}
-
-function loadImages()
-{
-       if(giBookClose)
-       {
-               gaImgs[gnImages]=giBookClose;
-               gnImages++;
-       }               
-       if(giBookOpen)
-       {
-               gaImgs[gnImages]=giBookOpen;
-               gnImages++;
-       }               
-       if(giBookItem)
-       {
-               gaImgs[gnImages]=giBookItem;
-               gnImages++;
-       }               
-       if(giURLItem)
-       {
-               gaImgs[gnImages]=giURLItem;
-               gnImages++;
-       }               
-       if(giNewBookClose)
-       {
-               gaImgs[gnImages]=giNewBookClose;
-               gnImages++;
-       }               
-       if(giNewBookOpen)
-       {
-               gaImgs[gnImages]=giNewBookOpen;
-               gnImages++;
-       }               
-       if(giNewBookItem)
-       {
-               gaImgs[gnImages]=giNewBookItem;
-               gnImages++;
-       }               
-       if(giNewURLItem)
-       {
-               gaImgs[gnImages]=giNewURLItem;
-               gnImages++;
-       }
-       if(gnImages>0)
-       {
-               setTimeout("loadDataAfter();",1000);
-               loadImage(gaImgs[0]);
-       }
-       else
-               loadDataAfter();
-}
-
-function loadImage(sURL)
-{
-       var oImg=new Image();
-       oImg.onload=checkImageLoading;
-       oImg.onerror=errorImageLoading;
-       oImg.src=_getFullPath(gaProj[0].sPPath,sURL);
-}
-
-function loadDataAfter()
-{
-       if(!gbLoadData)
-       {
-               gbLoadData=true;
-               loadTData();
-       }
-}
-
-function errorImageLoading()
-{
-       gnLoadedImages++;
-       if(gnImages==gnLoadedImages)
-               loadDataAfter();
-       else
-               loadImage(gaImgs[gnLoadedImages]);      
-}
-
-function checkImageLoading()
-{
-       gnLoadedImages++;
-       if(gnImages==gnLoadedImages)
-               loadDataAfter();
-       else
-               loadImage(gaImgs[gnLoadedImages]);      
-}
-
-function window_unload()
-{
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);
-       UnRegisterListener2(this,WH_MSG_SYNCTOC);
-       UnRegisterListener2(this,WH_MSG_SHOWTOC);
-}
-
-function onSendMessage(oMsg)
-{
-       if(oMsg)
-       {
-               var nMsgId=oMsg.nMessageId;
-               if(nMsgId==WH_MSG_PROJECTREADY)
-               {
-                       loadToc();
-               }
-               else if(nMsgId==WH_MSG_SYNCTOC)
-               {
-                       if(gbReady)
-                       {
-                               syncWithPaths(oMsg.oParam);
-                       }
-               }
-               else if(nMsgId==WH_MSG_SHOWTOC)
-               {
-                       if(!gbNav6)
-                               document.body.focus();
-               }
-       }
-       return true;
-}
-
-if(window.gbWhUtil&&window.gbWhVer&&window.gbWhMsg&&window.gbWhProxy)
-{
-       RegisterListener2(this,WH_MSG_PROJECTREADY);
-       RegisterListener2(this,WH_MSG_SYNCTOC);
-       RegisterListener2(this,WH_MSG_SHOWTOC);
-       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
-       goHFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
-
-       window.onload=window_OnLoad;
-       window.onbeforeunload=window_BUnload;
-       window.onunload=window_unload;
-       gbWhTHost=true;
-}
-else
-       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whtopic.js b/doc/salome/gui/SMESH/whtopic.js
deleted file mode 100755 (executable)
index 52198a5..0000000
+++ /dev/null
@@ -1,725 +0,0 @@
-//     WebHelp 5.10.005
-var gsPPath="";
-var gaPaths=new Array();
-var gaAvenues=new Array();
-
-var goFrame=null;
-var gsStartPage="";
-var gsRelCurPagePath="";
-var gsSearchFormHref="";
-var gnTopicOnly=-1;
-var gnOutmostTopic=-1;
-
-var BTN_TEXT=1;
-var BTN_IMG=2;
-
-var goSync=null;
-
-var goShow=null;
-var goHide=null;
-
-var goPrev=null;
-var goNext=null;
-var gnForm=0;
-var goShowNav=null;
-var goHideNav=null;
-
-var goWebSearch=null;
-
-var gsBtnStyle="";
-var gaButtons=new Array();
-var gaTypes=new Array();
-var whtopic_foldUnload=null;
-var gbWhTopic=false;
-var gbCheckSync=false;
-var gbSyncEnabled=false;
-
-function setButtonFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       gsBtnStyle+=".whtbtn"+sType+"{"+getFontStyle(vFont)+"}";
-}
-
-function writeBtnStyle()
-{
-       if(gaButtons.length>0)
-       {
-               if(gsBtnStyle.length>0)
-               {
-                       var sStyle="<style type='text/css'>";
-                       sStyle+=gsBtnStyle+"</style>";
-                       document.write(sStyle);
-               }
-       }
-}
-
-function button(sText,nWidth,nHeight)
-{
-       this.sText=sText;
-       this.nWidth=nWidth;
-       this.nHeight=nHeight;
-       
-       this.aImgs=new Array();
-       var i=0;
-       while(button.arguments.length>i+3)
-       {
-               this.aImgs[i]=button.arguments[3+i];
-               i++;
-       }
-}
-
-//project info
-function setRelStartPage(sPath)
-{
-       if(gsPPath.length==0)
-       {
-               gsPPath=_getFullPath(_getPath(document.location.href),_getPath(sPath));
-               gsStartPage=_getFullPath(_getPath(document.location.href),sPath);
-               gsRelCurPagePath=_getRelativeFileName(gsStartPage,document.location.href);
-       }
-}
-
-function getImage(oImage,sType)
-{
-       var sImg="";
-       if(oImage&&oImage.aImgs&&(oImage.aImgs.length>0))
-       {
-               sImg+="<img alt=\""+sType+"\" src=\""+oImage.aImgs[0]+"\"";
-               if(oImage.nWidth>0)
-                       sImg+=" width="+oImage.nWidth;
-               if(oImage.nHeight>0)
-                       sImg+=" height="+oImage.nHeight;
-               sImg+=" border=0>";
-       }
-       return sImg;
-}
-
-function addTocInfo(sTocPath)
-{
-       gaPaths[gaPaths.length]=sTocPath;
-}
-
-function addAvenueInfo(sName,sPrev,sNext)
-{
-       gaAvenues[gaAvenues.length]=new avenueInfo(sName,sPrev,sNext);  
-}
-
-function addButton(sType,nStyle,sText,sHref,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sImg1,sImg2,sImg3)
-{
-       var sButton="";
-       var nBtn=gaButtons.length;
-       if(sType=="prev")
-       {
-               if(canGo(false))
-               {
-                       var sTitle="Previous Topic";
-                       goPrev=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnprev\" href=\"javascript:void(0);\" onclick=\"goAvenue(false);return false;\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goPrev.sText;
-                       else
-                               sButton+=getImage(goPrev,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="next")
-       {
-               if(canGo(true))
-               {
-                       var sTitle="Next Topic";
-                       goNext=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnnext\" href=\"javascript:void(0);\" onclick=\"goAvenue(true);return false;\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goNext.sText;
-                       else
-                               sButton+=getImage(goNext,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="show")
-       {
-               if(isTopicOnly()&&(!gbOpera6||gbOpera7))
-               {
-                       var sTitle="Show Navigation Component";
-                       goShow=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnshow\" href=\"javascript:void(0);\" onclick=\"show();return false;\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goShow.sText;
-                       else
-                               sButton+=getImage(goShow,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="hide")
-       {
-               if(!isTopicOnly()&&!gbOpera6)
-               {
-                       var sTitle="Hide Navigation Component";
-                       goHide=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnhide\" href=\"javascript:void(0);\" onclick=\"hide();return false;\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goHide.sText;
-                       else
-                               sButton+=getImage(goHide,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="shownav")
-       {
-               if(isShowHideEnable())
-               {
-                       var sTitle="Show Navigation Component";
-                       goShowNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnshownav\" href=\"javascript:void(0);\" onclick=\"showHidePane(true);return false;\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goShowNav.sText;
-                       else
-                               sButton+=getImage(goShowNav,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="hidenav")
-       {
-               if(isShowHideEnable())
-               {
-                       var sTitle="Hide Navigation Component";
-                       goHideNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnhidenav\" href=\"javascript:void(0);\" onclick=\"showHidePane(false);return false;\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goHideNav.sText;
-                       else
-                               sButton+=getImage(goHideNav,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="synctoc")
-       {
-               if(gaPaths.length>0)
-               {
-                       var sTitle="Sync TOC";
-                       goSync=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnsynctoc\" href=\"javascript:void(0);\" onclick=\"syncWithShow();return false;\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goSync.sText;
-                       else
-                               sButton+=getImage(goSync,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="websearch")
-       {
-               if(gsSearchFormHref.length>0)
-               {
-                       var sTitle="WebSearch";
-                       goWebSearch=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnwebsearch\" href=\""+gsSearchFormHref+"\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goWebSearch.sText;
-                       else
-                               sButton+=getImage(goWebSearch,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="searchform")
-       {
-               gaButtons[nBtn]="NeedSearchForm";
-               gaTypes[nBtn]=sType;
-       }
-       if(sButton.length!=0)
-       {
-               if(nStyle==BTN_TEXT)
-                       sButton+="&nbsp;";
-               gaButtons[nBtn]="<td>"+sButton+"</td>";
-               gaTypes[nBtn]=sType;
-       }
-}
-
-function isSyncEnabled()
-{
-       if(!gbCheckSync)
-       {
-               var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null);
-               if(SendMessage(oMsg))
-               {
-                       gbSyncEnabled=oMsg.oParam;
-               }
-               gbCheckSync=true;
-       }
-       return gbSyncEnabled;
-}
-
-function isInPopup()
-{
-       return (window.name.indexOf("BSSCPopup")!=-1);
-}
-
-function getIntopicBar(sAlign)
-{
-       var sHTML="";
-       if(gaButtons.length>0)
-       {
-               sHTML+="<div align="+sAlign+">";
-
-               sHTML+="<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\"><tr>";
-               for(var i=0;i<gaButtons.length;i++)
-               {
-                       if(gaTypes[i]!="synctoc"||isSyncEnabled())
-                       {
-                               if(gaButtons[i]=="NeedSearchForm")
-                                       sHTML+=getSearchFormHTML();
-                               else
-                                       sHTML+=gaButtons[i];
-                       }
-               }
-               sHTML+="</tr></table>";
-
-               sHTML+="</div>";
-       }
-       return sHTML;
-}
-
-
-function writeIntopicBar(nAligns)
-{
-       if(isInPopup()) return;
-       if(gaButtons.length>0)
-       {
-               var sHTML="";
-               if(nAligns!=0)
-               {
-                       sHTML+="<table width=100%><tr>"
-                       if(nAligns&1)
-                               sHTML+="<td width=33%>"+getIntopicBar("left")+"</td>";
-                       if(nAligns&2)
-                               sHTML+="<td width=34%>"+getIntopicBar("center")+"</td>";
-                       if(nAligns&4)
-                               sHTML+="<td width=33%>"+getIntopicBar("right")+"</td>";
-                       sHTML+="</tr></table>";
-                       document.write(sHTML);
-               }
-       }
-}
-
-function sendAveInfoOut()
-{
-       if(!isInPopup())
-               setTimeout("sendAveInfo();",100);
-}
-
-function sendAveInfo()
-{
-       var oMsg=new whMessage(WH_MSG_AVENUEINFO,this,1,gaAvenues);
-       SendMessage(oMsg);
-}
-
-
-function onNext()
-{
-       var oMsg=new whMessage(WH_MSG_NEXT,this,1,null);
-       SendMessage(oMsg);
-}
-
-function onPrev()
-{
-       var oMsg=new whMessage(WH_MSG_PREV,this,1,null);
-       SendMessage(oMsg);
-}
-
-function createSyncInfo()
-{
-       var oParam=new Object();
-       if(gsPPath.length==0)
-               gsPPath=_getPath(document.location.href);
-       oParam.sPPath=gsPPath;
-       oParam.sTPath=document.location.href;
-       oParam.aPaths=gaPaths;
-       return oParam;
-}
-
-function syncWithShow()
-{
-       if(isTopicOnly())
-               show();
-       else
-       {
-               sync();
-               showTocPane();
-       }
-}
-
-function showTocPane()
-{
-       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null);
-       SendMessage(oMsg);
-}
-
-function sendSyncInfo()
-{
-       if(!isInPopup())
-       {
-               var oParam=null;
-               if(gaPaths.length>0)
-               {
-                       oParam=createSyncInfo();
-               }
-               var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,oParam);
-               SendMessage(oMsg);
-       }
-}
-
-function sendInvalidSyncInfo()
-{
-       if(!isInPopup())
-       {
-               var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,null);
-               SendMessage(oMsg);
-       }
-}
-
-function enableWebSearch(bEnable)
-{
-       if(!isInPopup())
-       {
-               var oMsg=new whMessage(WH_MSG_ENABLEWEBSEARCH,this,1,bEnable);
-               SendMessage(oMsg);
-       }
-}
-
-function autoSync(nSync)
-{
-       if(nSync==0) return;
-       if(isInPopup()) return;
-       if(isOutMostTopic())
-               sync();
-}
-
-function isOutMostTopic()
-{
-       if(gnOutmostTopic==-1)
-       {
-               var oMessage=new whMessage(WH_MSG_ISINFRAMESET,this,1,null);
-               if(SendMessage(oMessage))
-                       gnOutmostTopic=0;
-               else
-                       gnOutmostTopic=1;
-       }
-       return (gnOutmostTopic==1);
-}
-
-function sync()
-{
-       if(gaPaths.length>0)
-       {
-               var oParam=createSyncInfo();
-               var oMessage=new whMessage(WH_MSG_SYNCTOC,this,1,oParam);
-               SendMessage(oMessage);
-       }
-}
-
-
-function avenueInfo(sName,sPrev,sNext)
-{
-       this.sName=sName;
-       this.sPrev=sPrev;
-       this.sNext=sNext;
-}
-
-function getCurrentAvenue()
-{
-       var oParam=new Object();
-       oParam.sAvenue=null;
-       var oMessage=new whMessage(WH_MSG_GETCURRENTAVENUE,this,1,oParam);
-       SendMessage(oMessage);
-       return oParam.sAvenue;
-}
-
-function unRegisterListener()
-{
-       sendInvalidSyncInfo();
-       enableWebSearch(false);
-       if(whtopic_foldUnload)
-               whtopic_foldUnload();
-}
-
-function onSendMessage(oMsg)
-{
-       var nMsgId=oMsg.nMessageId;
-       if(nMsgId==WH_MSG_GETAVIAVENUES)
-       {
-               oMsg.oParam.aAvenues=gaAvenues;
-               return false;
-       }
-       else if(nMsgId==WH_MSG_GETTOCPATHS)
-       {
-               if(isOutMostTopic())
-               {
-                       oMsg.oParam.oTocInfo=createSyncInfo();
-                       return false;           
-               }
-               else
-                       return true;
-       }
-       else if(nMsgId==WH_MSG_NEXT)
-       {
-               goAvenue(true);
-       }
-       else if(nMsgId==WH_MSG_PREV)
-       {
-               goAvenue(false);
-       }
-       else if(nMsgId==WH_MSG_WEBSEARCH)
-       {
-               websearch();
-       }
-       return true;
-}
-
-function goAvenue(bNext)
-{
-       var sTopic=null;
-       var sAvenue=getCurrentAvenue();
-       var nAvenue=-1;
-       if(sAvenue!=null&&sAvenue!="")
-       {
-               for(var i=0;i<gaAvenues.length;i++)
-               {
-                       if(gaAvenues[i].sName==sAvenue)
-                       {
-                               nAvenue=i;
-                               break;
-                       }
-               }
-               if(nAvenue!=-1)
-               {
-                       if(bNext)
-                               sTopic=gaAvenues[nAvenue].sNext;
-                       else
-                               sTopic=gaAvenues[nAvenue].sPrev;
-               }
-       }
-       else
-       {
-               for(var i=0;i<gaAvenues.length;i++)
-               {
-                       if(gaAvenues[i].sNext!=null&&gaAvenues[i].sNext.length>0&&bNext)
-                       {
-                               sTopic=gaAvenues[i].sNext;
-                               break;
-                       }
-                       else if(gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext)
-                       {
-                               sTopic=gaAvenues[i].sPrev;
-                               break;
-                       }
-               }
-       }
-       
-       if(sTopic!=null&&sTopic!="")
-       {
-               if(gsPPath!=null&&gsPPath!="")
-               {
-                       sFullTopicPath=_getFullPath(gsPPath,sTopic);
-                       document.location=sFullTopicPath;
-               }
-       }
-}
-
-function canGo(bNext)
-{
-       for(var i=0;i<gaAvenues.length;i++)
-       {
-               if((gaAvenues[i].sNext!=null&&gaAvenues[i].sNext.length>0&&bNext)||
-                       (gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext))
-                       return true;
-       }
-       return false;
-}
-
-function show()
-{
-       if(gsStartPage!="")
-               window.location=gsStartPage+"#"+gsRelCurPagePath;
-}
-
-function hide()
-{
-       if(goFrame!=null)
-       {
-               goFrame.location=window.location;
-       }
-}
-
-function isTopicOnly()
-{
-       if(gnTopicOnly==-1)
-       {
-               var oParam=new Object();
-               oParam.oFrame=null;
-               var oMsg=new whMessage(WH_MSG_GETSTARTFRAME,this,1,oParam);
-               if(SendMessage(oMsg))
-               {
-                       goFrame=oParam.oFrame;
-                       gnTopicOnly=0;
-               }
-               else
-                       gnTopicOnly=1;
-       }
-       if(gnTopicOnly==1)
-               return true;
-       else
-               return false;
-}
-
-function websearch()
-{
-       if(gbNav4)
-       {
-               if(document.ehelpform)
-                       document.ehelpform.submit();
-       }
-       else
-       {
-               if(window.ehelpform)
-                       window.ehelpform.submit();
-       }
-}
-
-function addSearchFormHref(sHref)
-{
-       gsSearchFormHref=sHref;
-       enableWebSearch(true);
-}
-
-function searchB(nForm)
-{
-       var sValue=eval("document.searchForm"+nForm+".searchString.value");
-       var oMsg=new whMessage(WH_MSG_SEARCHTHIS,this,1,sValue);
-       SendMessage(oMsg);
-}
-
-function getSearchFormHTML()
-{
-       var sHTML="";
-       gnForm++;
-       var sFormName="searchForm"+gnForm;
-       var sButton="<form name=\""+sFormName+"\" method=\"POST\" action=\"javascript:searchB("+gnForm+")\">"
-       sButton+="<input type=\"text\" name=\"searchString\" value=\"- Full Text search -\" size=\"20\"/>";
-       if(""=="text")
-       {
-               sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\""+sFormName+".submit();return false;\"></a>";
-       }
-       else if(""=="image")
-       {
-               sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\""+sFormName+".submit();return false;\">"
-               sButton+="<img src=\"\" border=0></a>";
-       }
-       sButton+="</form>";
-       sHTML="<td align=\"center\">"+sButton+"</td>";
-       return sHTML;
-}
-
-function showHidePane(bShow)
-{
-       var oMsg=null;
-       if(bShow)
-               oMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);
-       else
-               oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null);
-       SendMessage(oMsg);
-}
-
-function isShowHideEnable()
-{
-       if(gbIE4)
-               return true;
-       else
-               return false;
-}
-
-
-function PickupDialog_Invoke()
-{
-       if(!gbIE4||gbMac)
-       {
-               if(typeof(_PopupMenu_Invoke)=="function")
-                       return _PopupMenu_Invoke(PickupDialog_Invoke.arguments);
-       }
-       else
-       {
-               if(PickupDialog_Invoke.arguments.length>2)
-               {
-                       var sPickup="whskin_pickup.htm";
-                       var sPickupPath=gsPPath+sPickup;
-                       if(gbIE4)
-                       {
-                               var sFrame=PickupDialog_Invoke.arguments[1];
-                               var aTopics=new Array();
-                               for(var i=2;i<PickupDialog_Invoke.arguments.length;i+=2)
-                               {
-                                       var j=aTopics.length;
-                                       aTopics[j]=new Object();
-                                       aTopics[j].m_sName=PickupDialog_Invoke.arguments[i];
-                                       aTopics[j].m_sURL=PickupDialog_Invoke.arguments[i+1];
-                               }
-
-                               if(aTopics.length>1)
-                               {
-                                       var nWidth=300;
-                                       var nHeight=180;
-                                       var     nScreenWidth=screen.width;
-                                       var     nScreenHeight=screen.height;
-                                       var nLeft=(nScreenWidth-nWidth)/2;
-                                       var nTop=(nScreenHeight-nHeight)/2;
-                                       if(gbIE4)
-                                       {
-                                               var vRet=window.showModalDialog(sPickupPath,aTopics,"dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;resizable:yes;status:no;scroll:no;help:no;center:yes;");
-                                               if(vRet)
-                                               {
-                                                       var sURL=vRet.m_url;
-                                                       if(sFrame)
-                                                               window.open(sURL,sFrame);
-                                                       else
-                                                               window.open(sURL,"_self");
-                                               }
-                                       }
-                               }
-                               else if(aTopics.length==1)
-                               {
-                                       var sURL=aTopics[0].m_sURL
-                                       if(sFrame)
-                                               window.open(sURL,sFrame);
-                                       else
-                                               window.open(sURL,"_self");
-                               }
-                       }
-               }
-       }
-}
-
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
-{
-       RegisterListener("bsscright",WH_MSG_GETAVIAVENUES);
-       RegisterListener("bsscright",WH_MSG_GETTOCPATHS);
-       RegisterListener("bsscright",WH_MSG_NEXT);
-       RegisterListener("bsscright",WH_MSG_PREV);
-       RegisterListener("bsscright",WH_MSG_WEBSEARCH);
-       if(gbMac&&gbIE4)
-       {
-               if(typeof(window.onunload)!="unknown")
-                       if(window.onunload.toString!=unRegisterListener.toString)
-                               whtopic_foldUnload=window.onunload;
-       }
-       else
-       {
-               if(window.onunload)
-                       if(window.onunload.toString!=unRegisterListener.toString)
-                               whtopic_foldUnload=window.onunload;
-       }
-       window.onunload=unRegisterListener;
-       setButtonFont("show","","","","","","");
-setButtonFont("hide","","","","","","");
-
-       gbWhTopic=true;
-}
-else
-       document.location.reload();
diff --git a/doc/salome/gui/SMESH/whutils.js b/doc/salome/gui/SMESH/whutils.js
deleted file mode 100755 (executable)
index 5026b24..0000000
+++ /dev/null
@@ -1,527 +0,0 @@
-//     WebHelp 5.10.004
-var gsFileName="";
-var gsDivName="";
-var xmlDoc=null;
-var sdocPath=null;
-var gsInsertBeforeEndHTML="";
-var sReplaceStringsSrc=new Array();
-var gsDivName="dataDiv";
-var gnLoadDivNum=0;
-sReplaceStringsSrc[0]="&amp;";
-sReplaceStringsSrc[1]="&gt;";
-sReplaceStringsSrc[2]="&lt;";
-sReplaceStringsSrc[3]="&quot;";
-sReplaceStringsSrc[4]=String.fromCharCode(8364);
-sReplaceStringsSrc[5]="&nbsp;";
-
-var sReplaceStringsDst=new Array();
-sReplaceStringsDst[0]="&";
-sReplaceStringsDst[1]=">";
-sReplaceStringsDst[2]="<";
-sReplaceStringsDst[3]="\"";
-sReplaceStringsDst[4]=String.fromCharCode(128);
-sReplaceStringsDst[5]=" ";
-var goHighLighted=null;
-
-function _getRelativePath(strParentPath,strCurrentPath)
-{
-       if(_isAbsPath(strCurrentPath)) return _getPath(strCurrentPath);
-       strParentPath=_replaceSlash(strParentPath);
-       strParentPath=_getPath(strParentPath);
-       strCurrentPath=_replaceSlash(strCurrentPath);
-       strCurrentPath=_getPath(strCurrentPath);
-       for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)
-       {
-               if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))
-                       break;
-       }
-       
-       strParentPath=strParentPath.substring(i);
-       strCurrentPath=strCurrentPath.substring(i);     
-       
-       var nPathPos=0;
-       while(nPathPos!=-1)
-       {
-               nPathPos=strParentPath.indexOf("/");
-               if(nPathPos!=-1)
-               {
-                       strParentPath=strParentPath.substring(nPathPos+1);
-                       strCurrentPath="../"+strCurrentPath;
-               }
-       }
-       return strCurrentPath;
-}
-
-function _getRelativeFileName(strParentPath,strCurrentPath)
-{
-       strParentPath=_replaceSlash(strParentPath);
-       strParentPath=_getPath(strParentPath);
-       strCurrentPath=_replaceSlash(strCurrentPath);
-       for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)
-       {
-               if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))
-                       break;
-       }
-       
-       strParentPath=strParentPath.substring(i);
-       strCurrentPath=strCurrentPath.substring(i);     
-       
-       var nPathPos=0;
-       while(nPathPos!=-1)
-       {
-               nPathPos=strParentPath.indexOf("/");
-               if(nPathPos!=-1)
-               {
-                       strParentPath=strParentPath.substring(nPathPos+1);
-                       strCurrentPath="../"+strCurrentPath;
-               }
-       }
-       return strCurrentPath;
-}
-
-function _isAbsPathToHost(sPath)
-{
-       return (sPath.indexOf("/")==0);
-}
-
-function _getHost(sPath)
-{
-       var nPos=sPath.indexOf("//");
-       if(nPos>0)
-       {
-               var nPosx=sPath.indexOf("/",nPos+2);
-               if(nPosx>0)
-                       return sPath.substring(0,nPosx);
-               else
-                       return sPath;
-       }
-       return sPath;
-}
-
-function _getFullPath(sPath,sRelPath)
-{
-       if(_isAbsPath(sRelPath))
-               return sRelPath;
-       else if(_isAbsPathToHost(sRelPath))
-               return _getHost(sPath)+sRelPath;
-       else
-       {
-               var sFullPath=sPath;
-               var nPathPos=0;
-               while(nPathPos!=-1)
-               {
-                       var nPathPos=sRelPath.indexOf("../");
-                       if(nPathPos!=-1)
-                       {
-                               sRelPath=sRelPath.substring(nPathPos+3);
-                               sFullPath=sFullPath.substring(0,sFullPath.length-1);
-                               var nPos2=sFullPath.lastIndexOf("/");
-                               if(nPos2!=-1)
-                                       sFullPath=sFullPath.substring(0,nPos2+1);
-                               else
-                                       break;
-                       }
-               }
-               sFullPath+=sRelPath;
-               return sFullPath;
-       }       
-}
-
-function _isAbsPath(strPath)
-{
-       var strUpper=strPath.toUpperCase();
-       return (strUpper.indexOf(":")!=-1||strUpper.indexOf("\\\\")==0);
-}
-
-function _replaceSlash(strURL)
-{      
-       var re=new RegExp("\\\\","g");
-       var strReplacedURL=strURL.replace(re,"/");
-       return strReplacedURL;
-}
-
-function _getPath(strURL)
-{
-       pathpos=strURL.lastIndexOf("/");
-       if(pathpos>0)
-               return strURL.substring(0,pathpos+1);
-       else
-               return "";
-}
-
-function removeItemFromArray(oArray,i)
-{
-       if(oArray.length&&i>=0&&i<oArray.length)
-       {
-               var len=oArray.length;
-               for(var s=i;s<len-1;s++)
-                       oArray[s]=oArray[s+1];
-               oArray.length=len-1;
-       }
-}
-
-function insertItemIntoArray(oArray,i,obj)
-{
-       if(oArray.length&&i>=0&&i<=oArray.length)
-       {
-               var len=oArray.length;
-               for(var s=len;s>i;s--)
-                       oArray[s]=oArray[s-1];
-               oArray[i]=obj;          
-       }
-}
-
-function loadData(sFileName)
-{
-       var i=gnLoadDivNum;
-       var sName=gsDivName+gnLoadDivNum++;
-       loadData_2(sFileName,sName);
-}
-
-function loadData_2(sFileName,sDivName)
-{
-       if(!getElement(sDivName))
-       {
-               if(!insertDataDiv(sDivName))
-               {
-                       gsFileName=sFileName;
-                       gsDivName=sDivName;
-                       return;
-               }
-       }
-       var sHTML="";
-       if(gbMac)
-               sHTML+="<iframe src=\""+sFileName+"\"></iframe>";
-       else
-               sHTML+="<iframe style=\"visibility:hidden;width:0;height:0\" src=\""+sFileName+"\"></iframe>";
-       
-       var oDivCon=getElement(sDivName);
-       if(oDivCon)
-       {
-               if(gbNav6)
-               {
-                       if(oDivCon.getElementsByTagName&&oDivCon.getElementsByTagName("iFrame").length>0)
-                       {
-                               oDivCon.getElementsByTagName("iFrame")[0].src=sFileName;
-                       }
-                       else
-                               oDivCon.innerHTML=sHTML;
-               }
-               else
-                       oDivCon.innerHTML=sHTML;
-       }
-}
-
-function loadDataXML(sFileName)
-{
-       var sCurrentDocPath=_getPath(document.location.href);
-       sdocPath=_getFullPath(sCurrentDocPath,sFileName);
-       if(gbIE5)
-       {
-               xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
-               xmlDoc.async=true;
-               xmlDoc.onreadystatechange=checkState;
-               if(document.body!=null)
-                       xmlDoc.load(sdocPath);
-       }
-       else if(gbNav6)
-       {
-               xmlDoc=document.implementation.createDocument("","",null);
-               xmlDoc.addEventListener("load",initializeData,false);
-               xmlDoc.load(sdocPath,"text/xml");
-       }
-}
-
-function initializeData()
-{
-       if(xmlDoc!=null)
-               putDataXML(xmlDoc,sdocPath);
-}
-
-function checkState()
-{
-       if(xmlDoc!=null)
-       {
-               var state=xmlDoc.readyState;
-               if(state==4)
-               {
-                       var err=xmlDoc.parseError;
-                       if(err.errorCode==0)
-                               putDataXML(xmlDoc,sdocPath);
-                       else
-                               onLoadXMLError();
-               }
-       }
-}
-
-function insertDataDiv(sName)
-{
-       var sHTML="";
-       if(gbMac)
-               sHTML+="<div id="+sName+" style=\"display:none;\"></div>";
-       else
-               sHTML+="<div id="+sName+" style=\"visibility:hidden\"></div>";
-       if((gbIE5||gbNav6)&&document.body)
-               document.body.insertAdjacentHTML("beforeEnd",sHTML);
-       else
-       {
-               gsInsertBeforeEndHTML=sHTML;
-               setTimeout("insertWhenBodyReady();",100);
-               return false;
-       }
-       return true;
-}
-
-function insertWhenBodyReady()
-{
-       if(gsInsertBeforeEndHTML=="") return;
-       if(document.body)
-       {
-               document.body.insertAdjacentHTML("beforeEnd",gsInsertBeforeEndHTML);
-               gsInsertBeforeEndHTML="";
-               loadData_2(gsFileName,gsDivName);
-       }
-       else
-       {
-               setTimeout("insertWhenBodyReady();",100);
-       }
-}
-
-function window_BUnload()
-{
-       for(var i=0;i<gnLoadDivNum;i++)
-       {
-               var oDivCon=getElement(gsDivName+i);
-               if(oDivCon)
-                       oDivCon.innerHTML="";
-       }
-}
-
-function removeThis(obj)
-{
-       if(obj.parentNode)
-               obj.parentNode.removeChild(obj);
-       else
-               obj.outerHTML="";
-}
-
-function getParentNode(obj)
-{
-       if(obj.parentNode)
-               return obj.parentNode;
-       else if(obj.parentElement)
-               return obj.parentElement;
-       return null;
-}
-
-function getElement(sID)
-{
-       if(document.getElementById)
-               return document.getElementById(sID);
-       else if(document.all)
-               return document.all(sID);
-       return null;
-}
-
-function getChildrenByTag(obj,sTagName)
-{
-       if(obj.getElementsByTagName)
-       {
-               var aChildren=new Array();
-               var aElements=getElementsByTag(obj,sTagName);
-               if(aElements!=null)
-               {
-                       for(var i=0;i<aElements.length;i++)
-                       {
-                               if(aElements[i].parentNode==obj)
-                                       aChildren[aChildren.length]=aElements[i];
-                       }
-                       return aChildren;
-               }
-               else
-                       return new Array();
-       }
-       else if(obj.children)
-               return obj.children.tags(sTagName);
-}
-
-function getElementsByTag(obj,sTagName)
-{
-       if(obj.getElementsByTagName)
-               return obj.getElementsByTagName(sTagName);
-       else if(obj.all)
-               return obj.all.tags(sTagName);
-       return null;
-}
-
-function _htmlToText(sHTML)
-{
-       if(sHTML==null) return null;
-       var sText=sHTML;
-       for(var i=0;i<sReplaceStringsSrc.length;i++)
-       {
-               var re=new RegExp(sReplaceStringsSrc[i],"g");
-               sText=sText.replace(re,sReplaceStringsDst[i]);
-       }       
-       return sText;
-}
-
-function _textToHtml_nonbsp(sText)
-{
-       if(sText==null) return null;
-       var sHTML=sText;
-       for(var i=0;i<sReplaceStringsSrc.length-1;i++)
-       {
-               var re=new RegExp(sReplaceStringsDst[i],"g");
-               sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);
-       }       
-       return sHTML;
-}
-
-function _textToHtml(sText)
-{
-       if(sText==null) return null;
-       var sHTML=sText;
-       for(var i=0;i<sReplaceStringsSrc.length;i++)
-       {
-               var re=new RegExp(sReplaceStringsDst[i],"g");
-               sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);
-       }       
-       return sHTML;
-}
-
-
-function getInnerText(obj)
-{
-       var renbsp2sp=new RegExp("\xa0","g");
-       if(obj.innerText)
-       {
-               var sText=obj.innerText;
-               sText=sText.replace(renbsp2sp," ");
-               return sText;
-       }
-       else
-       {
-               if(obj.nodeValue)
-               {
-                       var sValue=obj.nodeValue;
-                       sValue=sValue.replace(renbsp2sp," ");
-                       return sValue;
-               }
-               else
-               {
-                       var sText="";
-                       var oChild=obj.firstChild;
-                       while(oChild!=null)
-                       {
-                               sText+=getInnerText(oChild);
-                               oChild=oChild.nextSibling;
-                       }
-                       return sText;
-               }
-       }
-               
-}
-
-function HighLightElement(obj,sHighLightColor,sNormalColor)
-{
-       if(obj!=null)
-       {
-               resetHighLight(sNormalColor);
-               if (obj.style)
-                       obj.style.backgroundColor=sHighLightColor;
-               goHighLighted=obj;
-       }
-}
-
-function resetHighLight(sNormalColor)
-{
-       if(goHighLighted!=null)
-       {
-               if (goHighLighted.style)
-                       goHighLighted.style.backgroundColor=sNormalColor;
-               goHighLighted=null;
-       }
-}
-
-function whFont(sName,sSize,sColor,sStyle,sWeight,sDecoration)
-{
-       this.sName=sName;
-       this.sSize=sSize;
-       this.sColor=sColor;
-       this.sStyle=sStyle;
-       this.sWeight=sWeight;
-       this.sDecoration=sDecoration;
-}
-
-function getFontStyle(oFont)
-{
-       var sStyle="";
-       if(oFont)
-       {
-               sStyle+="font-family:"+oFont.sName+";";
-               if(gbMac)
-               {
-                       var nSize=parseInt(oFont.sSize);
-                       if(gbIE5)
-                               nSize+=2;
-                       else
-                               nSize+=4;
-                       sStyle+="font-size:"+nSize+"pt;";
-               }
-               else
-                       sStyle+="font-size:"+oFont.sSize+";";
-                       
-               sStyle+="font-style:"+oFont.sStyle+";";
-               sStyle+="font-weight:"+oFont.sWeight+";";
-               sStyle+="text-decoration:"+oFont.sDecoration+";";
-               sStyle+="color:"+oFont.sColor+";";
-       }
-       return sStyle;
-}
-
-function _browserStringToText(sBStr)
-{
-       var sText="";
-       // change %xxx back to the real char.
-       var nPos=sBStr.indexOf('%');
-       while(nPos!=-1)
-       {
-               sText+=sBStr.substring(0,nPos);
-               sBStr=sBStr.substring(nPos+1);
-               var sNum="";
-               var i=0;
-               while(sBStr.charAt(i)>='0'&&sBStr.charAt(i)<='9')
-               {
-                       sNum+=sBStr.charAt(i++);        
-               }
-               if(sNum!=""){
-                       var nNum=parseInt(sNum,16);
-                       sText+=String.fromCharCode(nNum);
-                       sBStr=sBStr.substring(i);
-               }
-               nPos=sBStr.indexOf('%');
-       }
-       sText+=sBStr;
-       return sText;
-}
-
-function excapeSingleQuotandSlash(str)
-{
-       if(str==null) return null;
-       var nPos=0;
-       var sRes="";
-       var nPosNew=str.indexOf("\\",nPos);
-       while(nPosNew!=-1){
-               sRes+=str.substring(nPos,nPosNew+1)+"\\";
-               nPos=nPosNew+1;
-               nPosNew=str.indexOf("\\",nPos);
-       }
-       if(nPos<str.length)
-               sRes+=str.substring(nPos);
-       var re=new RegExp("'","g");
-       sRes=sRes.replace(re,"\\'");
-       return sRes;
-}
-
-var gbWhUtil=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whver.js b/doc/salome/gui/SMESH/whver.js
deleted file mode 100755 (executable)
index cd61895..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-//     WebHelp 5.10.006
-var gbNav=false;
-var gbNav6=false;
-var gbNav61=false;
-var gbNav7=false;
-var gbNav4=false;
-var gbIE4=false;
-var gbIE=false;
-var gbIE5=false;
-var gbIE55=false;
-var gbOpera6=false;
-var gbOpera7=false;
-var gbKonqueror3=false;
-
-var gAgent=navigator.userAgent.toLowerCase();
-var gbMac=(gAgent.indexOf("mac")!=-1);
-var gbSunOS=(gAgent.indexOf("sunos")!=-1);
-var gbOpera=(gAgent.indexOf("opera")!=-1);
-var gbKonqueror=(gAgent.indexOf("konqueror")!= -1);
-var gbSafari=(gAgent.indexOf("safari")!= -1);
-var gbWindows=((gAgent.indexOf('win')!= -1)||(gAgent.indexOf('16bit')!= -1));
-var gbMozilla=((gAgent.indexOf('gecko')!=-1) && (gAgent.indexOf('netscape')==-1));
-
-
-var gVersion=navigator.appVersion.toLowerCase();
-
-var gnVerMajor=parseInt(gVersion);
-var gnVerMinor=parseFloat(gVersion);
-
-if(!gbOpera&&!gbKonqueror&&!gbSafari) // opera can mimic IE or Netscape by settings.
-{
-       gbIE=(navigator.appName.indexOf("Microsoft")!=-1);
-       gbNav=(gAgent.indexOf('mozilla')!=-1) && ((gAgent.indexOf('spoofer')==-1) && (gAgent.indexOf('compatible')==-1));
-       if(gnVerMajor>=4)
-       {
-               if(navigator.appName=="Netscape")
-               {
-                       gbNav4=true;
-                       if(gnVerMajor>=5)
-                               gbNav6=true;
-               }
-               gbIE4=(navigator.appName.indexOf("Microsoft")!=-1);
-       }
-       if(gbNav6)
-       {
-               var nPos=gAgent.indexOf("gecko");
-               if(nPos!=-1)
-               {
-                       var nPos2=gAgent.indexOf("/", nPos);
-                       if(nPos2!=-1)
-                       {
-                               var nVersion=parseFloat(gAgent.substring(nPos2+1));
-                               if(nVersion>=20010726)
-                               {
-                                       gbNav61=true;
-                                       if (nVersion>=20020823)
-                                               gbNav7=true;
-                               }
-                       }
-               }
-       }else if(gbIE4)
-       {
-               var nPos=gAgent.indexOf("msie");
-               if(nPos!=-1)
-               {
-                       var nVersion=parseFloat(gAgent.substring(nPos+5));
-                       if(nVersion>=5)
-                       {
-                               gbIE5=true;
-                               if(nVersion>=5.5)
-                                       gbIE55=true;
-                       }
-               }
-       }
-}
-else if (gbOpera)
-{
-       var nPos = gAgent.indexOf("opera");
-       if(nPos!=-1)
-       {
-               var nVersion=parseFloat(gAgent.substring(nPos+6));
-               if(nVersion>=6)
-               {
-                       gbOpera6=true;
-                       if(nVersion>=7)
-                               gbOpera7=true;
-               }
-       }
-}
-else if (gbKonqueror)
-{
-       var nPos = gAgent.indexOf("konqueror");
-       if(nPos!=-1)
-       {
-               var nVersion = parseFloat(gAgent.substring(nPos+10));
-               if (nVersion >= 3)
-               {
-                       gbKonqueror3=true;
-               }
-       }
-}
-
-var gbWhVer=true;
\ No newline at end of file
index 8e7772c658105181f0517fa37dd1c7427df04614..7df0f1a789373d2159b16f3264fe61dcff8e2f07 100644 (file)
@@ -28,14 +28,14 @@ dev_docs:
        cp -fr $(srcdir)/SMESH ./INPUT; \
        cp -f ./SMESH/doxyfile ./INPUT; \
        cd INPUT; \
-       sed 's|../../../share/salome|$(root_srcdir)|' ./doxyfile > ./doxyfile1; \
+       sed 's|../../../share/salome|$(top_srcdir)|' ./doxyfile > ./doxyfile1; \
        sed 's|../../build/salome|$(top_builddir)|' ./doxyfile1 > ./doxyfile2; \
        mv -f doxyfile2 doxyfile1; \
        echo "DOXYGEN SUPPORT PYTHON - @DOXYGEN_WITH_PYTHON@"; \
        if( test "x@DOXYGEN_WITH_PYTHON@" = "xyes"); then \
          sed 's|python_extension_must_be_here|*.py|' ./doxyfile1 > ./doxyfile2; \
          mv -f doxyfile2 doxyfile1; \
-         $(doxygen) -u ./doxyfile1; \
+         $(DOXYGEN) -u ./doxyfile1; \
        else \
          sed 's|python_extension_must_be_here||' ./doxyfile1 > ./doxyfile2; \
          mv -f doxyfile2 doxyfile1; \
@@ -46,7 +46,7 @@ dev_docs:
        fi; \
        mv -f doxyfile1 doxyfile; \
        echo "Running doxygen in directory:"`pwd`; \
-       $(doxygen) ./doxyfile; \
+       $(DOXYGEN) ./doxyfile; \
        cd ../; \
        cp -fr $(srcdir)/SMESH/sources/ SMESH ; \
        rm -fr INPUT
index e9705fdea01790179c0ea09f7b505a84327632b7..d5f133fb0a7507e472697458f74cb257fd7bbef3 100755 (executable)
@@ -77,8 +77,7 @@ WARN_LOGFILE           = log.txt
 # configuration options related to the input files
 #---------------------------------------------------------------------------
 INPUT                  = ../../../share/salome/src \
-                        ../../../share/salome/idl \
-                        ../../../build/salome/bin
+                        ../../../share/salome/idl
 FILE_PATTERNS          = *.hxx *.cxx *.h *.c *.hh *.cc *.idl python_extension_must_be_here
 RECURSIVE              = YES
 EXCLUDE                = 
index cf2984bb31c3c7bf224d4aa030beedf19249bd1a..5978aa052120b4b9fd93a26b847912f0a1c5ff1d 100644 (file)
@@ -43,13 +43,33 @@ module StdMeshers
     /*!
      * Sets <length> parameter value
      */
-    void SetLength(in double length) 
+    void SetLength(in double length)
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Sets <precision> parameter value
+     *
+     * Precision parameter is used to allow rounding a number of segments,
+     * calculated from the edge length and average length of segment,
+     * to the lower integer, if this value outstands from it in bounds of the precision.
+     * Otherwise, the number of segments is rounded to the higher integer.
+     * Use value 0.5 to provide rounding to the nearest integer,
+     * 1.0 for the lower integer, 0.0 for the higher integer.
+     * Default value is 1e-07. In old studies, restored from file,
+     * this value will be set to zero, what corresponds to the old behaviour.
+     */
+    void SetPrecision(in double precision)
       raises (SALOME::SALOME_Exception);
 
     /*!
      * Returns <length> parameter value
      */
     double GetLength();
+
+    /*!
+     * Returns <precision> parameter value
+     */
+    double GetPrecision();
   };
 
   /*!
@@ -85,7 +105,7 @@ module StdMeshers
     /*!
      * Sets <number of segments> parameter value
      */
-    void SetNumberOfSegments(in long segmentsNumber) 
+    void SetNumberOfSegments(in long segmentsNumber)
       raises (SALOME::SALOME_Exception);
 
     /*!
@@ -603,6 +623,22 @@ module StdMeshers
   {
   };
 
+  /*!
+   * StdMeshers_UseExisting_2D: interface of "UseExisting 2D" algorithm
+   * doing nothing to allow mesh generation by mesh edition functions in TUI mode
+   */
+  interface StdMeshers_UseExisting_2D : SMESH::SMESH_2D_Algo
+  {
+  };
+
+  /*!
+   * StdMeshers_UseExisting_1D: interface of "UseExisting 1D" algorithm
+   * doing nothing to allow mesh generation by mesh edition functions in TUI mode
+   */
+  interface StdMeshers_UseExisting_1D : SMESH::SMESH_1D_Algo
+  {
+  };
+
 };
 
 #endif
index 92270813be23843781485fae1b96a35d3521ed10..96083e18958e35982a4c12e99cbba8321a3cbbe5 100644 (file)
@@ -15,7 +15,7 @@
 //  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
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -43,6 +43,35 @@ module SMESH
   interface FilterManager;
   interface SMESH_Pattern;
 
+  /*!
+   * Tags definition
+   */
+  // Top level
+  const long Tag_HypothesisRoot = 1; // hypotheses root
+  const long Tag_AlgorithmsRoot = 2; // algorithms root
+  const long Tag_FirstMeshRoot  = 3; // first mesh root
+  // Mesh/Submesh
+  const long Tag_RefOnShape             = 1; // references to shape
+  const long Tag_RefOnAppliedHypothesis = 2; // applied hypotheses root
+  const long Tag_RefOnAppliedAlgorithms = 3; // applied algorithms root
+  // Mesh only: sub-meshes roots by type
+  const long Tag_FirstSubMesh           =  4;
+  const long Tag_SubMeshOnVertex        =  4;
+  const long Tag_SubMeshOnEdge          =  5;
+  const long Tag_SubMeshOnWire          =  6;
+  const long Tag_SubMeshOnFace          =  7;
+  const long Tag_SubMeshOnShell         =  8;
+  const long Tag_SubMeshOnSolid         =  9;
+  const long Tag_SubMeshOnCompound      = 10;
+  const long Tag_LastSubMesh            = 10;
+  // Mesh only: group roots by type
+  const long Tag_FirstGroup             = 11;
+  const long Tag_NodeGroups             = 11;
+  const long Tag_EdgeGroups             = 12;
+  const long Tag_FaceGroups             = 13;
+  const long Tag_VolumeGroups           = 14;
+  const long Tag_LastGroup              = 14;
+
   /*!
    * Hypothesis definintion error
    */
@@ -82,6 +111,8 @@ module SMESH
 
   interface SMESH_Gen : Engines::Component, SALOMEDS::Driver
   {
+    //GEOM::GEOM_Gen SetGeomEngine( in string containerLoc );
+    void SetGeomEngine( in GEOM::GEOM_Gen geomcompo );
 
     FilterManager CreateFilterManager();
 
@@ -244,6 +275,12 @@ module SMESH
                           in double     theMergeTolerance)
       raises ( SALOME::SALOME_Exception );
 
+    /*!
+     * \brief Return id of object, registered in current study context
+     *
+     * Can be used to check if the object was created in the same container, as this engine.
+     */
+    long GetObjectId(in Object theObject);
   };
 
 };
index 2ef815f1bff633c2833db5cc900c66ac2dd01c29..ee6d0f3916ecda574ca3b9984818e6a5a1e417cf 100644 (file)
@@ -28,6 +28,7 @@
 
 #include "SALOME_Exception.idl"
 #include "SALOME_GenericObj.idl"
+#include "SALOMEDS_Attributes.idl"
 
 #include "SMESH_Mesh.idl"
 
@@ -85,13 +86,25 @@ module SMESH
      */
     SMESH_Mesh GetMesh();
 
+    /*!
+     * Sets group color
+     */
+    void SetColor(in SALOMEDS::Color theColor);
+
+    /*!
+     * Returns group color
+     */
+    SALOMEDS::Color GetColor();
+
     /*!
      * Sets group color number
+     * (corresponds to the "hue" parameter of the color - must be in range [0, 360])
      */
     void SetColorNumber( in long color );
 
     /*!
-     * Returns group color number
+     * Returns group color number (obsolete - use GetColor instead)
+     * (corresponds to the "hue" parameter of the color - must be in range [0, 360])
      */
     long GetColorNumber();
   }; 
index 0e9d8ceb8abc167faaafe6448e35b4de92ba3d20..b041641778cfb967434d1d1f09b43b07b1afa524 100644 (file)
@@ -93,6 +93,14 @@ module SMESH
                       double vy;
                       double vz; } ;
 
+  /*!
+   * Node location on a shape
+   */
+  struct NodePosition {
+    long             shapeID;
+    GEOM::shape_type shapeType;
+    double_array     params; // [U] on EDGE, [U,V] on FACE, [] on the rest shapes
+  };
 
   /*!
    * Enumeration for element type, like in SMDS
@@ -246,6 +254,12 @@ module SMESH
     ListOfGroups GetGroups()
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     *  Get number of groups existing in the mesh
+     */
+    long NbGroups()
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * Union of two groups
      *    New group is created. All mesh elements that are
@@ -335,6 +349,20 @@ module SMESH
     void ClearLog()
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     * Toggle auto color mode on the object.
+     * @params
+     * - theAutoColor : flag which toggles auto color mode.
+     */
+    void SetAutoColor(in boolean theAutoColor)
+      raises (SALOME::SALOME_Exception);
+
+    /*!
+     * Get flag of object's auto color mode.
+     */
+    boolean GetAutoColor()
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * Get the internal Id
      */
@@ -382,6 +410,11 @@ module SMESH
     void ExportMED( in string file, in boolean auto_groups )
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     * Return string representation of a MED file version comprising nbDigits
+     */
+    string GetVersionString(in MED_VERSION version, in short nbDigits);
+
     /*!
      * Export Mesh to DAT, UNV and STL Formats
      * (UNV supported version is I-DEAS 10)
@@ -517,6 +550,11 @@ module SMESH
      */
     long_array GetNodeInverseElements(in long id);
 
+    /*!
+     * \brief Return position of a node on shape
+     */
+    NodePosition GetNodePosition(in long NodeID);
+
     /*!
      * If given element is node returns IDs of shape from position
      * If there is not node for given ID - returns -1
index a4dfb1d321de68441afc667bfccaabf5b7a3729e..121f8a307bbcdc023e62cbd537f1a35477b35f5c 100644 (file)
@@ -106,6 +106,46 @@ module SMESH
      */
     long AddPolyhedralVolumeByFaces (in long_array IdsOfFaces);
 
+    /*!
+     * \brief Bind a node to a vertex
+      * \param NodeID - node ID
+      * \param VertexID - vertex ID available through GEOM_Object.GetSubShapeIndices()[0]
+     */
+    void SetNodeOnVertex(in long NodeID, in long VertexID)
+      raises (SALOME::SALOME_Exception);
+    /*!
+     * \brief Store node position on an edge
+      * \param NodeID - node ID
+      * \param EdgeID - edge ID available through GEOM_Object.GetSubShapeIndices()[0]
+      * \param paramOnEdge - parameter on edge where the node is located
+     */
+    void SetNodeOnEdge(in long NodeID, in long EdgeID, in double paramOnEdge)
+      raises (SALOME::SALOME_Exception);
+    /*!
+     * \brief Store node position on a face
+      * \param NodeID - node ID
+      * \param FaceID - face ID available through GEOM_Object.GetSubShapeIndices()[0]
+      * \param u - U parameter on face where the node is located
+      * \param v - V parameter on face where the node is located
+     */
+    void SetNodeOnFace(in long NodeID, in long FaceID, in double u, in double v)
+      raises (SALOME::SALOME_Exception);
+    /*!
+     * \brief Bind a node to a solid
+      * \param NodeID - node ID
+      * \param SolidID - vertex ID available through GEOM_Object.GetSubShapeIndices()[0]
+     */
+    void SetNodeInVolume(in long NodeID, in long SolidID)
+      raises (SALOME::SALOME_Exception);
+    /*!
+     * \brief Bind an element to a shape
+      * \param ElementID - element ID
+      * \param ShapeID - shape ID available through GEOM_Object.GetSubShapeIndices()[0]
+     */
+    void SetMeshElementOnShape(in long ElementID, in long ShapeID)
+      raises (SALOME::SALOME_Exception);
+
+
     boolean MoveNode(in long NodeID, in double x, in double y, in double z);
 
     boolean InverseDiag(in long NodeID1, in long NodeID2);
@@ -215,22 +255,64 @@ module SMESH
 
     void RenumberElements();
 
+    /*!
+     * \brief Genarate dim+1 elements by rotation of given elements around axis
+     * \param IDsOfElements - elements to ratate
+     * \param Axix - rotation axis
+     * \param AngleInRadians - rotation angle
+     * \param NbOfSteps - number of elements to generate from one element
+     */
     void RotationSweep(in long_array       IDsOfElements,
                        in AxisStruct       Axix,
                        in double           AngleInRadians,
                        in long             NbOfSteps,
                        in double           Tolerance);
-
+    /*!
+     * \brief Same as previous but additionally create groups of elements
+     *  generated from elements belonging to preexisting groups
+     */
+    ListOfGroups RotationSweepMakeGroups(in long_array       IDsOfElements,
+                                         in AxisStruct       Axix,
+                                         in double           AngleInRadians,
+                                         in long             NbOfSteps,
+                                         in double           Tolerance);
+    /*!
+     * \brief Genarate dim+1 elements by rotation of the object around axis
+     * \param theObject - object containing elements to ratate
+     * \param Axix - rotation axis
+     * \param AngleInRadians - rotation angle
+     * \param NbOfSteps - number of elements to generate from one element
+     */
     void RotationSweepObject(in SMESH_IDSource  theObject,
                             in AxisStruct      Axix,
                             in double          AngleInRadians,
                             in long            NbOfSteps,
                             in double          Tolerance);
-
+    /*!
+     * \brief Same as previous but additionally create groups of elements
+     *  generated from elements belonging to preexisting groups
+     */
+    ListOfGroups RotationSweepObjectMakeGroups(in SMESH_IDSource  theObject,
+                                               in AxisStruct      Axix,
+                                               in double          AngleInRadians,
+                                               in long            NbOfSteps,
+                                               in double          Tolerance);
+    /*!
+     * \brief Genarate dim+1 elements by extrusion of elements along vector
+     * \param IDsOfElements - elements to sweep
+     * \param StepVector - vector giving direction and distance of an extrusion step
+     * \param NbOfSteps - number of elements to generate from one element
+     */
     void ExtrusionSweep(in long_array      IDsOfElements,
                         in DirStruct       StepVector,
                         in long            NbOfSteps);
-
+    /*!
+     * \brief Same as previous but additionally create groups of elements
+     *  generated from elements belonging to preexisting groups
+     */
+    ListOfGroups ExtrusionSweepMakeGroups(in long_array      IDsOfElements,
+                                          in DirStruct       StepVector,
+                                          in long            NbOfSteps);
    /*!
     * Generate new elements by extrusion of theElements 
     * by StepVector by NbOfSteps
@@ -243,18 +325,36 @@ module SMESH
                            in long            NbOfSteps,
                           in long            ExtrFlags,
                           in double          SewTolerance);
+    /*!
+     * \brief Same as previous but additionally create groups of elements
+     *  generated from elements belonging to preexisting groups
+     */
+    ListOfGroups AdvancedExtrusionMakeGroups(in long_array      IDsOfElements,
+                                             in DirStruct       StepVector,
+                                             in long            NbOfSteps,
+                                             in long            ExtrFlags,
+                                             in double          SewTolerance);
 
     void ExtrusionSweepObject(in SMESH_IDSource  theObject,
                              in DirStruct       StepVector,
                              in long            NbOfSteps);
+    ListOfGroups ExtrusionSweepObjectMakeGroups(in SMESH_IDSource  theObject,
+                                                in DirStruct       StepVector,
+                                                in long            NbOfSteps);
 
     void ExtrusionSweepObject1D(in SMESH_IDSource theObject,
                                in DirStruct      StepVector,
                                in long           NbOfSteps);
+    ListOfGroups ExtrusionSweepObject1DMakeGroups(in SMESH_IDSource theObject,
+                                                  in DirStruct      StepVector,
+                                                  in long           NbOfSteps);
 
     void ExtrusionSweepObject2D(in SMESH_IDSource theObject,
                                in DirStruct      StepVector,
                                in long           NbOfSteps);
+    ListOfGroups ExtrusionSweepObject2DMakeGroups(in SMESH_IDSource theObject,
+                                                  in DirStruct      StepVector,
+                                                  in long           NbOfSteps);
 
     enum Extrusion_Error {
       EXTR_OK,
@@ -274,6 +374,15 @@ module SMESH
                                       in double_array      Angles,
                                       in boolean           HasRefPoint,
                                       in PointStruct       RefPoint);
+    ListOfGroups ExtrusionAlongPathMakeGroups(in long_array        IDsOfElements,
+                                              in SMESH_Mesh        PathMesh,
+                                              in GEOM::GEOM_Object PathShape,
+                                              in long              NodeStart,
+                                              in boolean           HasAngles,
+                                              in double_array      Angles,
+                                              in boolean           HasRefPoint,
+                                              in PointStruct       RefPoint,
+                                              out Extrusion_Error  Error);
 
     Extrusion_Error ExtrusionAlongPathObject(in SMESH_IDSource    theObject,
                                             in SMESH_Mesh        PathMesh,
@@ -283,6 +392,15 @@ module SMESH
                                             in double_array      Angles,
                                             in boolean           HasRefPoint,
                                             in PointStruct       RefPoint);
+    ListOfGroups ExtrusionAlongPathObjectMakeGroups(in SMESH_IDSource    theObject,
+                                                    in SMESH_Mesh        PathMesh,
+                                                    in GEOM::GEOM_Object PathShape,
+                                                    in long              NodeStart,
+                                                    in boolean           HasAngles,
+                                                    in double_array      Angles,
+                                                    in boolean           HasRefPoint,
+                                                    in PointStruct       RefPoint,
+                                                    out Extrusion_Error  Error);
 
    /*!
     * Compute rotation angles for ExtrusionAlongPath as linear variation
@@ -298,33 +416,77 @@ module SMESH
 
     enum MirrorType { POINT, AXIS, PLANE };
 
-    void Mirror (in long_array       IDsOfElements,
-                 in AxisStruct       Mirror,
-                 in MirrorType       theMirrorType,
-                 in boolean          Copy);
-
-    void MirrorObject (in SMESH_IDSource  theObject,
-                      in AxisStruct      Mirror,
-                      in MirrorType      theMirrorType,
-                      in boolean         Copy);
-
-    void Translate (in long_array      IDsOfElements,
-                    in DirStruct       Vector,
-                    in boolean         Copy);
-
-    void TranslateObject (in SMESH_IDSource  theObject,
-                         in DirStruct       Vector,
-                         in boolean         Copy);
-
-    void Rotate (in long_array       IDsOfElements,
-                 in AxisStruct       Axis,
-                 in double           AngleInRadians,
-                 in boolean          Copy);
-
-    void RotateObject (in SMESH_IDSource  theObject,
-                      in AxisStruct      Axis,
-                      in double          AngleInRadians,
-                      in boolean         Copy);
+    void Mirror (in long_array IDsOfElements,
+                 in AxisStruct Mirror,
+                 in MirrorType Type,
+                 in boolean    Copy);
+    ListOfGroups MirrorMakeGroups (in long_array IDsOfElements,
+                                   in AxisStruct Mirror,
+                                   in MirrorType Type);
+    SMESH_Mesh MirrorMakeMesh (in long_array IDsOfElements,
+                               in AxisStruct Mirror,
+                               in MirrorType Type,
+                               in boolean    CopyGroups,
+                               in string     MeshName);
+
+    void MirrorObject (in SMESH_IDSource theObject,
+                      in AxisStruct     Mirror,
+                      in MirrorType     Type,
+                      in boolean        Copy);
+    ListOfGroups MirrorObjectMakeGroups (in SMESH_IDSource theObject,
+                                         in AxisStruct     Mirror,
+                                         in MirrorType     Type);
+    SMESH_Mesh MirrorObjectMakeMesh (in SMESH_IDSource theObject,
+                                     in AxisStruct     Mirror,
+                                     in MirrorType     Type,
+                                     in boolean        CopyGroups,
+                                     in string         MeshName);
+
+    void Translate (in long_array IDsOfElements,
+                    in DirStruct  Vector,
+                    in boolean    Copy);
+    ListOfGroups TranslateMakeGroups (in long_array IDsOfElements,
+                                      in DirStruct  Vector);
+    SMESH_Mesh TranslateMakeMesh (in long_array IDsOfElements,
+                                  in DirStruct  Vector,
+                                  in boolean    CopyGroups,
+                                  in string     MeshName);
+
+    void TranslateObject (in SMESH_IDSource theObject,
+                         in DirStruct      Vector,
+                         in boolean        Copy);
+    ListOfGroups TranslateObjectMakeGroups (in SMESH_IDSource theObject,
+                                            in DirStruct      Vector);
+    SMESH_Mesh TranslateObjectMakeMesh (in SMESH_IDSource theObject,
+                                        in DirStruct      Vector,
+                                        in boolean        CopyGroups,
+                                        in string         MeshName);
+
+    void Rotate (in long_array IDsOfElements,
+                 in AxisStruct Axis,
+                 in double     AngleInRadians,
+                 in boolean    Copy);
+    ListOfGroups RotateMakeGroups (in long_array IDsOfElements,
+                                   in AxisStruct Axis,
+                                   in double     AngleInRadians);
+    SMESH_Mesh RotateMakeMesh (in long_array IDsOfElements,
+                               in AxisStruct Axis,
+                               in double     AngleInRadians,
+                               in boolean    CopyGroups,
+                               in string     MeshName);
+
+    void RotateObject (in SMESH_IDSource theObject,
+                      in AxisStruct     Axis,
+                      in double         AngleInRadians,
+                      in boolean        Copy);
+    ListOfGroups RotateObjectMakeGroups (in SMESH_IDSource theObject,
+                                         in AxisStruct     Axis,
+                                         in double         AngleInRadians);
+    SMESH_Mesh RotateObjectMakeMesh (in SMESH_IDSource theObject,
+                                     in AxisStruct     Axis,
+                                     in double         AngleInRadians,
+                                     in boolean        CopyGroups,
+                                     in string         MeshName);
 
     void FindCoincidentNodes (in  double              Tolerance,
                               out array_of_long_array GroupsOfNodes);
index f7ea6685ba23c3622514b225de81b81ba0ae2385..6ce20153ba806cf9e1d4957059fa8ec5e97bd69c 100644 (file)
@@ -53,6 +53,7 @@ dist_salomeres_DATA = \
        mesh_info.png \
        advanced_mesh_info.png \
        standard_mesh_info.png \
+       mesh_whatis.png \
        mesh_init.png \
        mesh_length.png \
        mesh_length_2d.png \
index d5d2bb0722235d85e828bb04373d2a550c24d105..81539e614a50255efe588d2dea738813049b5ef2 100644 (file)
@@ -8,6 +8,11 @@
 <path-prefix-list>
 </path-prefix-list>
 
+<type-list>
+  <objref name="SMESH_Mesh" id="IDL:Mesh/SMESH_Mesh:1.0"/>
+  <objref name="SMESH_Hypothesis" id="IDL:SMESH/SMESH_Hypothesis:1.0"/>
+</type-list>
+
 <!-- Component list -->
 <component-list>
        <component>
index 6702d3e213e59e0f8008ae3cb298a8f408ff32f0..1deca1ab367d0fc48857de92a06a0a337eabd8f5 100644 (file)
@@ -70,6 +70,7 @@
      <separator pos-id=""/>
      <popup-item item-id="900" pos-id="" label-id="Advanced Mesh Infos" icon-id="advanced_mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
      <popup-item item-id="902" pos-id="" label-id="Standard Mesh Infos" icon-id="standard_mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
+     <popup-item item-id="903" pos-id="" label-id="Mesh Element Info" icon-id="mesh_whatis.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
 </menu-item>
 
 <!-- ************************** Control  (menubar)  ************************************ -->
    <popup-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
    <popup-item item-id="900" pos-id="" label-id="Show Advanced Info" icon-id="advanced_mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
    <popup-item item-id="902" pos-id="" label-id="Show Standard Info" icon-id="standard_mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
+   <popup-item item-id="903" pos-id="" label-id="Mesh Element Info" icon-id="mesh_whatis.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
    <separator pos-id=""/>
    <popup-item item-id="801" pos-id="" label-id="Create Group" icon-id="mesh_tree_group.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
    <separator pos-id=""/>
    <separator pos-id=""/>
    <popup-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
    <popup-item item-id="900" pos-id="" label-id="Show Info" icon-id="mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
+   <popup-item item-id="903" pos-id="" label-id="Mesh Element Info" icon-id="mesh_whatis.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
    <separator pos-id=""/>
    <popup-item item-id="802" pos-id="" label-id="Construct Group" icon-id="mesh_make_group.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
    <separator pos-id=""/>
    <separator pos-id=""/>
    <popup-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
    <popup-item item-id="900" pos-id="" label-id="Show Info" icon-id="mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
+   <popup-item item-id="903" pos-id="" label-id="Mesh Element Info" icon-id="mesh_whatis.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
    <separator pos-id=""/>
    <popup-item item-id="1101" pos-id="" label-id="Rename" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
    <separator pos-id=""/>
    <popup-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/> 
    <popup-item item-id="900" pos-id="" label-id="Show Advanced Info" icon-id="advanced_mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
    <popup-item item-id="902" pos-id="" label-id="Show Standard Info" icon-id="standard_mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
+   <popup-item item-id="903" pos-id="" label-id="Mesh Element Info" icon-id="mesh_whatis.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
    <separator pos-id=""/>   
    <submenu label-id="Numbering" item-id="114" pos-id="">
      <popup-item item-id="9010" pos-id="" label-id="Display Nodes #" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
 <popupmenu label-id="Popup for Viewer" context-id="" parent-id="Viewer" object-id="SubMesh">
    <popup-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/> 
    <popup-item item-id="900" pos-id="" label-id="Show Info" icon-id="mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
+   <popup-item item-id="903" pos-id="" label-id="Mesh Element Info" icon-id="mesh_whatis.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
    <separator pos-id=""/>   
    <submenu label-id="Numbering" item-id="114" pos-id="">
      <popup-item item-id="9010" pos-id="" label-id="Display Nodes #" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
    <separator pos-id=""/>
    <popup-item item-id="214" pos-id="" label-id="Update" icon-id="mesh_update.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/> 
    <popup-item item-id="900" pos-id="" label-id="Show Info" icon-id="mesh_info.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
+   <popup-item item-id="903" pos-id="" label-id="Mesh Element Info" icon-id="mesh_whatis.png" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>   
    <separator pos-id=""/>   
    <submenu label-id="Numbering" item-id="114" pos-id="">
      <popup-item item-id="9010" pos-id="" label-id="Display Nodes #" icon-id="" tooltip-id="" accel-id="" toggle-id="" execute-action=""/>
    <separatorTB/>
    <toolbutton-item item-id="900" pos-id="" label-id="Advanced Mesh Infos" icon-id="advanced_mesh_info.png" tooltip-id="Advanced Mesh Infos" accel-id="" toggle-id="" execute-action=""/>
    <toolbutton-item item-id="902" pos-id="" label-id="Standard Mesh Infos" icon-id="standard_mesh_info.png" tooltip-id="Standard Mesh Infos" accel-id="" toggle-id="" execute-action=""/>    
+   <toolbutton-item item-id="903" pos-id="" label-id="Mesh Element Info" icon-id="mesh_whatis.png" tooltip-id="Mesh Element Info" accel-id="" toggle-id="" execute-action=""/>    
 </toolbar>
 
 <toolbar label-id="Hypotheses Toolbar">
index 0c4b44de6c6a2d879219bfa1b3ee37e247dba673..9a8e1f22986b9b15a92e4c6da052b603d153921f 100644 (file)
@@ -16,6 +16,7 @@
     <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_precision_object"   value="0.005"/>
     <parameter name="selection_width"              value="5"/>
     <parameter name="highlight_width"              value="5"/>
     <parameter name="controls_precision"           value="0"/>
@@ -49,5 +50,7 @@
     <!-- As a result, both variants are acceptable. -->
     <parameter name="NETGENPlugin" value="${NETGENPlugin_ROOT_DIR}/share/salome/resources/netgenplugin"/>
     <parameter name="GHS3DPlugin"  value="${GHS3DPlugin_ROOT_DIR}/share/salome/resources/ghs3dplugin"/>
+    <parameter name="BLSURFPlugin" value="${BLSURFPlugin_ROOT_DIR}/share/salome/resources"/>
+    <parameter name="HexoticPLUGIN" value="${HexoticPlugin_ROOT_DIR}/share/salome/resources"/>
   </section>
 </document>
index 9b1a1dfaf18c2af0b28cc3aa2a8d174072986b13..72fc3c05d8210c7ca188eefba4b149eccbb7e397 100644 (file)
@@ -60,6 +60,7 @@
     <hypothesis type="QuadranglePreference"
                 label-id="Quadrangle Preference"
                 icon-id="mesh_algo_quad.png"
+                auxiliary="true"
                 dim="2"/>
 
     <hypothesis type="QuadraticMesh"
@@ -82,6 +83,7 @@
     <hypothesis type="MaxElementVolume"
                 label-id="Max. Element Volume"
                 icon-id="mesh_hypo_volume.png"
+               need-geom = "false"
                 dim="3"/>
 
     <hypothesis type="ProjectionSource3D"
                input="QUAD,TRIA"
                dim="3"/>
 
+    <algorithm type="UseExisting_1D"
+               label-id="Use existing edges"
+               icon-id="mesh_algo_regular.png"
+               input="VERTEX"
+               output="EDGE"
+               dim="1"/>
+
+    <algorithm type="UseExisting_2D"
+               label-id="Use existing faces"
+               icon-id="mesh_algo_quad.png"
+               input="EDGE"
+               output="QUAD,TRIA"
+               dim="2"/>
+
   </algorithms>
 </meshers-group>
 
index 2ab75b32ddd6097d1fc068cc27f320efd253cd9b..2d7f09ca991c1bb957dc03238a61f6c53f0e5b13 100755 (executable)
Binary files a/resources/mesh_tree_mesh_partial.png and b/resources/mesh_tree_mesh_partial.png differ
diff --git a/resources/mesh_whatis.png b/resources/mesh_whatis.png
new file mode 100755 (executable)
index 0000000..1b39f35
Binary files /dev/null and b/resources/mesh_whatis.png differ
index 45438ee6d203f461bff50895b53455bf9f8b8b71..16363f8e63ee46d80c9c2188d80a5708758cbd0e 100644 (file)
@@ -381,13 +381,8 @@ void DriverMED_Family::Init (SMESHDS_GroupBase* theGroup)
   myGroupNames.clear();
   myGroupNames.insert(string(theGroup->GetStoreName()));
 
-  myGroupAttributVal = 0;
-  
-  if (theGroup->GetColorGroup()!=0)
-    {
-      myGroupAttributVal = theGroup->GetColorGroup();
-    }
-
+  Quantity_Color aColor = theGroup->GetColor();
+  myGroupAttributVal = aColor.Hue();
 }
 
 //=============================================================================
index f87bd3f075bdb6ea0fd6bc2ae5d39ba2809ed5a7..e500ed3ade57f9743d8b19250ebc55a6ba48a606 100644 (file)
@@ -182,9 +182,9 @@ DriverMED_R_SMESHDS_Mesh
          for(; aGeom2SizeIter != aGeom2Size.end(); aGeom2SizeIter++){
            const EGeometrieElement& aGeom = aGeom2SizeIter->first;
 
-           switch(aGeom){
-           case ePOINT1:
-             break;
+           switch(aGeom) {
+//         case ePOINT1: ## PAL16410
+//           break;
            case ePOLYGONE: {
               PPolygoneInfo aPolygoneInfo = aMed->GetPPolygoneInfo(aMeshInfo,anEntity,aGeom);
               EBooleen anIsElemNum = takeNumbers ? aPolygoneInfo->IsElemNum() : eFAUX;
@@ -345,6 +345,7 @@ DriverMED_R_SMESHDS_Mesh
                 case ePENTA15: aNbNodes = 15; break;
                 case eHEXA8:   aNbNodes = 8;  break;
                 case eHEXA20:  aNbNodes = 20; break;
+                case ePOINT1:  aNbNodes = 1;  break;
                 default:;
                 }
                 vector<TInt> aNodeIds(aNbNodes);
@@ -378,14 +379,14 @@ DriverMED_R_SMESHDS_Mesh
                   continue;
 
                 bool isRenum = false;
-                SMDS_MeshElement* anElement = NULL;
+                const SMDS_MeshElement* anElement = NULL;
                 TInt aFamNum = aCellInfo->GetFamNum(iElem);
 #ifndef _DEXCEPT_
                 try{
 #endif
                   //MESSAGE("Try to create element # " << iElem << " with id = "
                   //        << aCellInfo->GetElemNum(iElem));
-                  switch(aGeom){
+                  switch(aGeom) {
                   case eSEG2:
                     if(anIsElemNum)
                       anElement = myMesh->AddEdgeWithID(aNodeIds[0],
@@ -671,6 +672,10 @@ DriverMED_R_SMESHDS_Mesh
                       isRenum = anIsElemNum;
                     }
                     break;
+
+                  case ePOINT1:
+                    anElement = FindNode(myMesh,aNodeIds[0]);
+                    break;
                   }
 #ifndef _DEXCEPT_
                 }catch(const std::exception& exc){
@@ -790,7 +795,7 @@ void DriverMED_R_SMESHDS_Mesh::GetGroup(SMESHDS_Group* theGroup)
        theGroup->SMDSGroup().Add(element);
       }
       if ( element )
-        theGroup->SetType( element->GetType() );
+        theGroup->SetType( theGroup->SMDSGroup().GetType() );
     }
   }
 }
index 1043e55949fb7047fc7a6860accb0b795ffc1440..f5370662b8c79d07566f61206a240e6992369f86 100644 (file)
@@ -66,6 +66,24 @@ void DriverMED_W_SMESHDS_Mesh::SetFile(const std::string& theFileName)
   return SetFile(theFileName,MED::eV2_2);
 }
 
+string DriverMED_W_SMESHDS_Mesh::GetVersionString(const MED::EVersion theVersion, int theNbDigits)
+{
+  TInt majeur, mineur, release;
+  majeur =  mineur = release = 0;
+  if ( theVersion == eV2_1 )
+    MED::GetVersionRelease<eV2_1>(majeur, mineur, release);
+  else
+    MED::GetVersionRelease<eV2_2>(majeur, mineur, release);
+  ostringstream name;
+  if ( theNbDigits > 0 )
+    name << majeur;
+  if ( theNbDigits > 1 )
+    name << "." << mineur;
+  if ( theNbDigits > 2 )
+    name << "." << release;
+  return name.str();
+}
+
 void DriverMED_W_SMESHDS_Mesh::SetMeshName(const std::string& theMeshName)
 {
   myMeshName = theMeshName;
@@ -262,6 +280,17 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
        aMeshDimension = anIsXDimension + anIsYDimension + anIsZDimension;
        if(!aMeshDimension)
          aMeshDimension = 3;
+        // PAL16857(SMESH not conform to the MED convention):
+        if ( aMeshDimension == 2 && anIsZDimension ) // 2D only if mesh is in XOY plane
+          aMeshDimension = 3;
+        // PAL18941(a saved study with a mesh belong Z is opened and the mesh is belong X)
+        if ( aMeshDimension == 1 && !anIsXDimension ) // 1D only if mesh is along OX
+          if ( anIsYDimension ) {
+            aMeshDimension = 2;
+            anIsXDimension = true;
+          } else {
+            aMeshDimension = 3;
+          }
       }
 
       SMDS_NodeIteratorPtr aNodesIter = myMesh->nodesIterator();
index 80f79229893c93003dce191abdcba74c5320ce6e..899c4375bd13644293b859d0034718421873a88a 100644 (file)
@@ -48,6 +48,7 @@ class MESHDRIVERMED_EXPORT DriverMED_W_SMESHDS_Mesh: public Driver_SMESHDS_Mesh
 
   virtual void SetFile(const std::string& theFileName);
   void SetFile(const std::string& theFileName, MED::EVersion theId);
+  static std::string GetVersionString(const MED::EVersion theVersion, int theNbDigits=2);
 
   /*! sets file name; only for usage with Add(), not Write()
    */
index 4fed7d82cf4d2817f43b7d3878c819878ba8bd15..68bd05cf76f03242ec80ac7b9369d479a4dd428a 100644 (file)
@@ -63,6 +63,8 @@ UNV_Test_SOURCES = \
 libMeshDriverUNV_la_CPPFLAGS = \
        $(KERNEL_CXXFLAGS) \
        $(CAS_CPPFLAGS) \
+       $(CORBA_CXXFLAGS) \
+        $(CORBA_INCLUDES) \
        $(BOOST_CPPFLAGS) \
        -I$(srcdir)/../Driver \
        -I$(srcdir)/../SMDS \
index 67d2cbe25d52a80c130d292d517300fad625a684..a9da97d62fc8c3328de6e857772632694960d5b0 100644 (file)
@@ -34,8 +34,9 @@ static int MYDEBUG = 0;
 #endif
 
 
-static string _group_labels[] = {"2417", "2429", "2430", "2432", "2435", "2452", "2467"};
-#define NBGROUP 7
+static string _group_labels[] = {"2417", "2429", "2430", "2432",
+                                "2435", "2452", "2467", "2477"};
+#define NBGROUP 8
 
 static string _label_dataset = "2467";
 
@@ -98,7 +99,10 @@ void UNV2417::ReadGroup(const std::string& myGroupLabel, std::ifstream& in_strea
     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)) {
+      if ((myGroupLabel.compare("2435") == 0) ||
+         (myGroupLabel.compare("2452") == 0) ||
+         (myGroupLabel.compare("2467") == 0) ||
+         (myGroupLabel.compare("2477") == 0)) {
        in_stream>>aTmp;
        in_stream>>aTmp;
       }
index 26691946aed16d40e404a605b652252f5e17ea2a..8768bd1cce2ef601281a25b3f1fe5007e9a5c85c 100755 (executable)
@@ -475,7 +475,7 @@ void  aptrte( Z   nutysu, R      aretmx,
   if( ierr != 0 ) goto ERREUR;
 
   //qualites de la triangulation actuelle
-  qualitetrte_( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
+  qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
                nbt, quamoy, quamin );
 
   // boucle sur les aretes internes (non sur une ligne de la frontiere)
@@ -494,7 +494,7 @@ void  aptrte( Z   nutysu, R      aretmx,
        << d << " secondes");
 
   //qualites de la triangulation actuelle
-  qualitetrte_( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
+  qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
                nbt, quamoy, quamin );
 
   // detection des aretes frontalieres initiales perdues
@@ -529,7 +529,7 @@ void  aptrte( Z   nutysu, R      aretmx,
   if( ierr != 0 ) goto ERREUR;
 
   //qualites de la triangulation actuelle
-  qualitetrte_( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
+  qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
                nbt, quamoy, quamin );
 
   // fin de la triangulation avec respect des aretes initiales frontalieres
@@ -570,7 +570,7 @@ void  aptrte( Z   nutysu, R      aretmx,
   if( ierr != 0 ) goto ERREUR;
 
   //qualites de la triangulation actuelle
-  qualitetrte_( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
+  qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
                nbt, quamoy, quamin );
 
   // amelioration de la qualite de la triangulation par
@@ -585,7 +585,7 @@ void  aptrte( Z   nutysu, R      aretmx,
     cout << "aptrte: MC saturee mnarcf3=" << mnarcf3 << endl;
     goto ERREUR;
   }
-  teamqt_( nutysu,  aretmx,  airemx,
+  teamqt( nutysu,  aretmx,  airemx,
           mnarst,  mosoar,  mxsoar, n1soar, mnsoar,
           moartr,  mxartr,  n1artr, mnartr,
           mxarcf,  mnarcf2, mnarcf3,
@@ -605,7 +605,7 @@ void  aptrte( Z   nutysu, R      aretmx,
   if( ierr !=   0 ) goto ERREUR;
 
   //qualites de la triangulation finale
-  qualitetrte_( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
+  qualitetrte( mnpxyd, mosoar, mxsoar, mnsoar, moartr, mxartr, mnartr,
                nbt, quamoy, quamin );
 
   // renumerotation des sommets internes: mnarst(i)=numero final du sommet
@@ -734,9 +734,11 @@ void  aptrte( Z   nutysu, R      aretmx,
     goto NETTOYAGE;
   }
 }
-
-
-void qualitetrte_( R3 *mnpxyd,
+void
+#ifdef WIN32
+              __stdcall
+#endif
+ qualitetrte( R3 *mnpxyd,
                   Z & mosoar, Z & mxsoar, Z *mnsoar,
                   Z & moartr, Z & mxartr, Z *mnartr,
                   Z & nbtria, R & quamoy, R & quamin )
@@ -831,7 +833,7 @@ void qualitetrte_( R3 *mnpxyd,
   if( quamin<0.3 )
   {
     //le numero des 3 sommets du triangle ntqmin de qualite minimale
-    nusotr_( ntqmin, mosoar, mnsoar, moartr, mnartr,  nosotr );
+    nusotr(ntqmin, mosoar, mnsoar, moartr, mnartr,  nosotr );
     MESSAGE("Triangle de qualite minimale "<<quamin<<" de sommets:"
             <<nosotr[0]<<" "<<nosotr[1]<<" "<<nosotr[2]<<" ");
     for (int i=0;i<3;i++)
index 6c5f3f9d612b34e61f49e2f51a1bd1a6213a07ac..ab407ec89a46b03b1992eb3d2666ab4c4b074837 100755 (executable)
  #define MEFISTO2D_EXPORT
 #endif
 
-extern "C" {
-void qualitetrte_( R3 *mnpxyd,
-                  Z & mosoar, Z & mxsoar, Z *mnsoar,
-                  Z & moartr, Z & mxartr, Z *mnartr,
-                  Z & nbtria, R & quamoy, R & quamin ); }
-// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-// but :    calculer la qualite moyenne et minimale de la triangulation
-// -----    actuelle definie par les tableaux nosoar et noartr
-// entrees:
-// --------
-// mnpxyd : tableau des coordonnees 2d des points
-//          par point : x  y  distance_souhaitee
-// mosoar : nombre maximal d'entiers par arete et
-//          indice dans nosoar de l'arete suivante dans le hachage
-// mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
-//          attention: mxsoar>3*mxsomm obligatoire!
-// nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
-//          chainage des aretes frontalieres, chainage du hachage des aretes
-//          hachage des aretes = nosoar(1)+nosoar(2)*2
-//          avec mxsoar>=3*mxsomm
-//          une arete i de nosoar est vide <=> nosoar(1,i)=0 et
-//          nosoar(2,arete vide)=l'arete vide qui precede
-//          nosoar(3,arete vide)=l'arete vide qui suit
-// moartr : nombre maximal d'entiers par arete du tableau noartr
-// mxartr : nombre maximal de triangles declarables
-// noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
-//          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
-// sorties:
-// --------
-// nbtria : nombre de triangles internes au domaine
-// quamoy : qualite moyenne  des triangles actuels
-// quamin : qualite minimale des triangles actuels
-// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
 
 MEFISTO2D_EXPORT
   void  aptrte( Z nutysu, R aretmx,
@@ -160,6 +126,7 @@ MEFISTO2D_EXPORT
   #define nusotr   NUSOTR
   #define qutr2d   QUTR2D
   #define surtd2   SURTD2
+  #define qualitetrte  QUALITETRTE
   
   #define areteideale ARETEIDEALE
   
@@ -180,12 +147,50 @@ MEFISTO2D_EXPORT
   #define nusotr   nusotr_
   #define qutr2d   qutr2d_
   #define surtd2   surtd2_
+  #define qualitetrte   qualitetrte_
 
   #define areteideale areteideale_
 
 #endif
 
 
+extern "C" { void
+#ifdef WIN32
+              __stdcall
+#endif
+   qualitetrte( R3 *mnpxyd,
+                  Z & mosoar, Z & mxsoar, Z *mnsoar,
+                  Z & moartr, Z & mxartr, Z *mnartr,
+                  Z & nbtria, R & quamoy, R & quamin ); }
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// but :    calculer la qualite moyenne et minimale de la triangulation
+// -----    actuelle definie par les tableaux nosoar et noartr
+// entrees:
+// --------
+// mnpxyd : tableau des coordonnees 2d des points
+//          par point : x  y  distance_souhaitee
+// mosoar : nombre maximal d'entiers par arete et
+//          indice dans nosoar de l'arete suivante dans le hachage
+// mxsoar : nombre maximal d'aretes stockables dans le tableau nosoar
+//          attention: mxsoar>3*mxsomm obligatoire!
+// nosoar : numero des 2 sommets , no ligne, 2 triangles de l'arete,
+//          chainage des aretes frontalieres, chainage du hachage des aretes
+//          hachage des aretes = nosoar(1)+nosoar(2)*2
+//          avec mxsoar>=3*mxsomm
+//          une arete i de nosoar est vide <=> nosoar(1,i)=0 et
+//          nosoar(2,arete vide)=l'arete vide qui precede
+//          nosoar(3,arete vide)=l'arete vide qui suit
+// moartr : nombre maximal d'entiers par arete du tableau noartr
+// mxartr : nombre maximal de triangles declarables
+// noartr : les 3 aretes des triangles +-arete1, +-arete2, +-arete3
+//          arete1 = 0 si triangle vide => arete2 = triangle vide suivant
+// sorties:
+// --------
+// nbtria : nombre de triangles internes au domaine
+// quamoy : qualite moyenne  des triangles actuels
+// quamin : qualite minimale des triangles actuels
+// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
 extern "C" {  void
 #ifdef WIN32
               __stdcall
index 350144b07b4ba83574004d1a20f80202597b94ad..941a7222796428c486cb86b48c1dd46e7a60e4c1 100644 (file)
@@ -39,11 +39,16 @@ SUBDIRS = \
        SMESH \
        SMESH_I \
        SMESHClient \
-       OBJECT \
-       SMESHFiltersSelection \
-       SMESHGUI \
        SMESH_SWIG \
        MEFISTO2 \
        StdMeshers \
-       StdMeshers_I \
+       StdMeshers_I
+
+if SMESH_ENABLE_GUI
+  SUBDIRS += \
+       OBJECT \
+       SMESHFiltersSelection \
+       SMESHGUI \
+       SMESH_SWIG_WITHIHM \
        StdMeshersGUI
+endif
index db2265289497425b66487001cb8b8177ee1ab638..06a9d822bbd6ba4db0e0086c89de157eaeebff6d 100644 (file)
@@ -988,7 +988,7 @@ void SMESH_ActorDef::SetVisibility(int theMode, bool theIsUpdateRepersentation){
     if(myIsCellsLabeled) 
       myCellsLabels->VisibilityOn();
   }
-
+  UpdateHighlight();
   Modified();
 }
 
@@ -1190,9 +1190,9 @@ void SMESH_ActorDef::UpdateHighlight(){
       myHighlitableActor->SetRepresentation(SMESH_DeviceActor::eWireframe);
     }else if(myRepresentation == ePoint || GetPointRepresentation()){
       myHighlitableActor->SetHighlited(anIsVisible);
-      myHighlitableActor->SetVisibility(anIsVisible);
       myHighlitableActor->GetExtractUnstructuredGrid()->
        SetModeOfExtraction(VTKViewer_ExtractUnstructuredGrid::ePoints);
+      myHighlitableActor->SetVisibility(anIsVisible);
       myHighlitableActor->SetRepresentation(SMESH_DeviceActor::ePoint);
     }
   }
index aa06545eed0c0b943e384c4f38c2402f8ebdac5a..9bdc652a09b9c260bf07555077489f601875a9c5 100644 (file)
@@ -199,7 +199,7 @@ void SMESH_VisualObjDef::createPoints( vtkPoints* thePoints )
 //=================================================================================
 void SMESH_VisualObjDef::buildPrs()
 {
-  try
+  try 
   {
     mySMDS2VTKNodes.clear();
     myVTK2SMDSNodes.clear();
@@ -211,13 +211,16 @@ void SMESH_VisualObjDef::buildPrs()
     else
       buildElemPrs();
   }
-  catch( const std::exception& exc )
-  {
-    INFOS("Follow exception was cought:\n\t"<<exc.what());
-  }
   catch(...)
   {
-    INFOS("Unknown exception was cought !!!");
+    mySMDS2VTKNodes.clear();
+    myVTK2SMDSNodes.clear();
+    mySMDS2VTKElems.clear();
+    myVTK2SMDSElems.clear();
+
+    myGrid->SetPoints( 0 );
+    myGrid->SetCells( 0, 0, 0 );
+    throw;
   }
   
   if( MYDEBUG ) MESSAGE( "Update - myGrid->GetNumberOfCells() = "<<myGrid->GetNumberOfCells() );
@@ -230,8 +233,12 @@ void SMESH_VisualObjDef::buildPrs()
 //=================================================================================
 void SMESH_VisualObjDef::buildNodePrs()
 {
+  // PAL16631: without swap, bad_alloc is not thrown but hung up and crash instead,
+  // so check remaining memory size for safety
+  SMDS_Mesh::CheckMemory(); // PAL16631
   vtkPoints* aPoints = vtkPoints::New();
   createPoints( aPoints );
+  SMDS_Mesh::CheckMemory();
   myGrid->SetPoints( aPoints );
   aPoints->Delete();
 
@@ -291,6 +298,10 @@ void SMESH_VisualObjDef::buildElemPrs()
   for ( int i = 0; i <= 2; i++ )
     nbEnts[ aTypes[ i ] ] = GetEntities( aTypes[ i ], anEnts[ aTypes[ i ] ] );
 
+  // PAL16631: without swap, bad_alloc is not thrown but hung up and crash instead,
+  // so check remaining memory size for safety
+  SMDS_Mesh::CheckMemory(); // PAL16631
+
   vtkIdType aCellsSize =  3 * nbEnts[ SMDSAbs_Edge ];
 
   for ( int i = 1; i <= 2; i++ ) // iterate through faces and volumes
@@ -314,16 +325,22 @@ void SMESH_VisualObjDef::buildElemPrs()
   vtkCellArray* aConnectivity = vtkCellArray::New();
   aConnectivity->Allocate( aCellsSize, 0 );
   
+  SMDS_Mesh::CheckMemory(); // PAL16631
+
   vtkUnsignedCharArray* aCellTypesArray = vtkUnsignedCharArray::New();
   aCellTypesArray->SetNumberOfComponents( 1 );
   aCellTypesArray->Allocate( aNbCells * aCellTypesArray->GetNumberOfComponents() );
   
+  SMDS_Mesh::CheckMemory(); // PAL16631
+
   vtkIdList *anIdList = vtkIdList::New();
   vtkIdType iElem = 0;
 
   TConnect aConnect;
   aConnect.reserve(VTK_CELL_SIZE);
 
+  SMDS_Mesh::CheckMemory(); // PAL16631
+
   for ( int i = 0; i <= 2; i++ ) // iterate through edges, faces and volumes
   {
     if( nbEnts[ aTypes[ i ] ] > 0 )
@@ -424,6 +441,7 @@ void SMESH_VisualObjDef::buildElemPrs()
         iElem++;
       }
     }
+    SMDS_Mesh::CheckMemory(); // PAL16631
   }
 
   // Insert cells in grid
@@ -432,6 +450,8 @@ void SMESH_VisualObjDef::buildElemPrs()
   aCellLocationsArray->SetNumberOfComponents( 1 );
   aCellLocationsArray->SetNumberOfTuples( aNbCells );
   
+  SMDS_Mesh::CheckMemory(); // PAL16631
+
   aConnectivity->InitTraversal();
   for( vtkIdType idType = 0, *pts, npts; aConnectivity->GetNextCell( npts, pts ); idType++ )
     aCellLocationsArray->SetValue( idType, aConnectivity->GetTraversalLocation( npts ) );
@@ -442,6 +462,8 @@ void SMESH_VisualObjDef::buildElemPrs()
   aCellTypesArray->Delete();
   aConnectivity->Delete();
   anIdList->Delete();
+
+  SMDS_Mesh::CheckMemory(); // PAL16631
 }
 
 //=================================================================================
@@ -516,11 +538,14 @@ SMESH_MeshObj::~SMESH_MeshObj()
 // function : Update
 // purpose  : Update mesh and fill grid with new values if necessary 
 //=================================================================================
-void SMESH_MeshObj::Update( int theIsClear )
+bool SMESH_MeshObj::Update( int theIsClear )
 {
   // Update SMDS_Mesh on client part
-  if ( myClient.Update(theIsClear) )
+  if ( myClient.Update(theIsClear) || GetUnstructuredGrid()->GetNumberOfPoints()==0) {
     buildPrs();  // Fill unstructured grid
+    return true;
+  }
+  return false;
 }
 
 //=================================================================================
@@ -675,10 +700,11 @@ void SMESH_SubMeshObj::UpdateFunctor( const SMESH::Controls::FunctorPtr& theFunc
 // function : Update
 // purpose  : Update mesh object and fill grid with new values 
 //=================================================================================
-void SMESH_SubMeshObj::Update( int theIsClear )
+bool SMESH_SubMeshObj::Update( int theIsClear )
 {
-  myMeshObj->Update( theIsClear );
+  bool changed = myMeshObj->Update( theIsClear );
   buildPrs();
+  return changed;
 }
 
 
index 9e2f49dcf6b9971793e781decf2492d129fc2491..0366866b54fd670e8efec52a67a6a1658974236c 100644 (file)
@@ -55,7 +55,7 @@ class vtkUnstructuredGrid;
 class SMESHOBJECT_EXPORT SMESH_VisualObj
 {
 public:
-  virtual void Update( int theIsClear = true ) = 0;
+  virtual bool Update( int theIsClear = true ) = 0;
   virtual void UpdateFunctor( const SMESH::Controls::FunctorPtr& theFunctor ) = 0;
   virtual int GetElemDimension( const int theObjId ) = 0;
 
index 327664867ac33ef01ec31c06cff08f7fd10ffbe3..7c8ba5480cc66de3e84f1b82c43033909f8a0c8f 100644 (file)
@@ -61,7 +61,7 @@ public:
                             SMESH_VisualObjDef();
   virtual                   ~SMESH_VisualObjDef();
   
-  virtual void              Update( int theIsClear = true ) = 0;
+  virtual bool              Update( int theIsClear = true ) = 0;
   virtual void              UpdateFunctor( const SMESH::Controls::FunctorPtr& theFunctor ) = 0;
   virtual int               GetElemDimension( const int theObjId ) = 0;
 
@@ -112,7 +112,7 @@ public:
                             SMESH_MeshObj( SMESH::SMESH_Mesh_ptr );
   virtual                   ~SMESH_MeshObj();
   
-  virtual void              Update( int theIsClear = true );
+  virtual bool              Update( int theIsClear = true );
   
   virtual int               GetNbEntities( const SMDSAbs_ElementType) const;
   virtual int               GetEntities( const SMDSAbs_ElementType, TEntityList& ) const;
@@ -142,7 +142,7 @@ public:
                             SMESH_SubMeshObj(SMESH_MeshObj* theMeshObj);
   virtual                   ~SMESH_SubMeshObj();
 
-  virtual void              Update( int theIsClear = true );
+  virtual bool              Update( int theIsClear = true );
   
   virtual void              UpdateFunctor( const SMESH::Controls::FunctorPtr& theFunctor );
   virtual int               GetElemDimension( const int theObjId );
index 7e172f8346cfe109b1209fe3c6656c150630433b..c3ba3e75303c45e465c0ec18560456903da1ee06 100644 (file)
@@ -61,7 +61,8 @@ salomeinclude_HEADERS = \
        SMDS_QuadraticFaceOfNodes.hxx \
        SMDS_QuadraticVolumeOfNodes.hxx \
        SMDS_SetIterator.hxx \
-       SMESH_SMDS.hxx
+       SMESH_SMDS.hxx \
+       SMDS_MeshInfo.hxx
 
 
 # Libraries targets
@@ -104,3 +105,11 @@ libSMDS_la_CPPFLAGS = \
 libSMDS_la_LDFLAGS  = \
        $(KERNEL_LDFLAGS) -lSALOMELocalTrace \
        $(CAS_KERNEL)
+
+# Executables targets
+bin_PROGRAMS = SMDS_MemoryLimit
+dist_SMDS_MemoryLimit_SOURCES = \
+       SMDS_MemoryLimit.cxx
+
+SMDS_MemoryLimit_LDADD = \
+       $(KERNEL_LDFLAGS) -lSALOMELocalTrace
index fed89972f798f7448b7689e3913580c9ffa80761..0ce02cd9a49137deac3727e2c512817a134e0798 100644 (file)
@@ -35,7 +35,14 @@ enum SMDSAbs_ElementType
        SMDSAbs_Node,
        SMDSAbs_Edge,
        SMDSAbs_Face,
-       SMDSAbs_Volume
+       SMDSAbs_Volume,
+        SMDSAbs_NbElementTypes
+};
+
+enum SMDSAbs_ElementOrder {
+  ORDER_ANY,          /*! entities of any order */
+  ORDER_LINEAR,       /*! entities of 1st order */
+  ORDER_QUADRATIC     /*! entities of 2nd order */
 };
 
 #endif
index 5d17b6fa2cb5fca2af784b078f27e67f05b065c0..5685541b63540948e557c3b1a186bb3fa492718b 100644 (file)
 ///Abstract class for iterators
 ///@author Jerome Robert
 ///////////////////////////////////////////////////////////////////////////////
-template<typename VALUE> class SMDS_EXPORT SMDS_Iterator
+template<typename VALUE> class SMDS_Iterator
 {
   public:
        /// Return true if and only if there are other object in this iterator
-       virtual bool more()=0;
+         virtual bool more()=0;
        
        /// Return the current object and step to the next one
-       virtual VALUE next()=0;
+         virtual VALUE next()=0;
        
        /// Delete the current element and step to the next one
        virtual void remove(){}
diff --git a/src/SMDS/SMDS_MemoryLimit.cxx b/src/SMDS/SMDS_MemoryLimit.cxx
new file mode 100644 (file)
index 0000000..e31a9a4
--- /dev/null
@@ -0,0 +1,47 @@
+// File      : SMDS_MemoryLimit.cxx
+// Created   : Fri Sep 21 17:16:42 2007
+// Author    : Edward AGAPOV (eap)
+
+// Executable to find out a lower RAM limit (MB), i.e. at what size of freeRAM
+// reported by sysinfo, no more memory can be allocated.
+// This is not done inside a function of SALOME because allocated memory is not returned
+// to the system
+
+#ifndef WIN32
+#include <sys/sysinfo.h>
+#endif
+
+#ifdef _DEBUG_
+#include <iostream>
+#endif
+
+int main (int argc, char ** argv) {
+#ifndef WIN32
+  struct sysinfo si;
+  int err = sysinfo( &si );
+  if ( err )
+    return -1;
+  unsigned long freeRamKb = ( si.freeram  * si.mem_unit ) / 1024;
+
+  const unsigned long stepKb = 8; // less nb leads to hung up on Mandriva2006 without swap
+  // (other platforms not tested w/o swap) 
+
+  unsigned long nbSteps = freeRamKb / stepKb * 2;
+  try {
+    while ( nbSteps-- ) {
+      new char[stepKb*1024];
+      err = sysinfo( &si );
+      if ( !err )
+        freeRamKb = ( si.freeram  * si.mem_unit ) / 1024;
+    }
+  } catch (...) {}
+
+// #ifdef _DEBUG_
+//   std::cout << freeRamKb / 1024 << std::endl;
+// #endif
+  return freeRamKb / 1024;
+
+#endif
+
+  return -1;
+}
index bf40922dd0fc76ef91285861799738bfe32e81e5..44d4259b219dde3ba1266b1496f394ff18d4c8c2 100644 (file)
 #include <map>
 using namespace std;
 
+#ifndef WIN32
+#include <sys/sysinfo.h>
+#endif
+
+//================================================================================
+/*!
+ * \brief Raise an exception if free memory (ram+swap) too low
+ * \param doNotRaise - if true, suppres exception, just return free memory size
+ * \retval int - amount of available memory in MB or negative number in failure case
+ */
+//================================================================================
+
+int SMDS_Mesh::CheckMemory(const bool doNotRaise) throw (std::bad_alloc)
+{
+#ifndef WIN32
+  struct sysinfo si;
+  int err = sysinfo( &si );
+  if ( err )
+    return -1;
+
+  static int limit = -1;
+  if ( limit < 0 ) {
+    int status = system("SMDS_MemoryLimit"); // it returns lower limit of free RAM
+    if (status >= 0 ) {
+      limit = WEXITSTATUS(status);
+    }
+    if ( limit < 20 )
+      limit = 20;
+    else
+      limit = int( limit * 1.5 );
+#ifdef _DEBUG_
+    cout << "SMDS_Mesh::CheckMemory() memory limit = " << limit << " MB" << endl;
+#endif
+  }
+
+  const unsigned long Mbyte = 1024 * 1024;
+  // compute separately to avoid overflow
+  int freeMb =
+    ( si.freeram  * si.mem_unit ) / Mbyte +
+    ( si.freeswap * si.mem_unit ) / Mbyte;
+
+  if ( freeMb > limit )
+    return freeMb - limit;
+
+  if ( doNotRaise )
+    return 0;
+#ifdef _DEBUG_
+  cout<<"SMDS_Mesh::CheckMemory() throws as free memory too low: " << freeMb <<" MB" << endl;
+#endif
+  throw std::bad_alloc();
+#else
+  return -1;
+#endif
+}
+
 ///////////////////////////////////////////////////////////////////////////////
 /// Create a new mesh object
 ///////////////////////////////////////////////////////////////////////////////
@@ -96,9 +151,11 @@ SMDS_MeshNode * SMDS_Mesh::AddNodeWithID(double x, double y, double z, int ID)
   // find the MeshNode corresponding to ID
   const SMDS_MeshElement *node = myNodeIDFactory->MeshElement(ID);
   if(!node){
+    CheckMemory();
     SMDS_MeshNode * node=new SMDS_MeshNode(x, y, z);
     myNodes.Add(node);
     myNodeIDFactory->BindID(ID,node);
+    myInfo.myNbNodes++;
     return node;
   }else
     return NULL;
@@ -143,6 +200,7 @@ SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
 {
   if ( !n1 || !n2 ) return 0;
 
+  CheckMemory();
   SMDS_MeshEdge * edge=new SMDS_MeshEdge(n1,n2);
   if(myElementIDFactory->BindID(ID, edge)) {
     SMDS_MeshNode *node1,*node2;
@@ -151,6 +209,7 @@ SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
     node1->AddInverseElement(edge);
     node2->AddInverseElement(edge);            
     myEdges.Add(edge);
+    myInfo.myNbEdges++;
     return edge;
   } 
   else {
@@ -280,8 +339,10 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshEdge * e1,
     return NULL;
   if ( !e1 || !e2 || !e3 ) return 0;
 
+  CheckMemory();
   SMDS_MeshFace * face = new SMDS_FaceOfEdges(e1,e2,e3);
   myFaces.Add(face);
+  myInfo.myNbTriangles++;
 
   if (!registerElement(ID, face)) {
     RemoveElement(face, false);
@@ -318,8 +379,10 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshEdge * e1,
   if (!hasConstructionEdges())
     return NULL;
   if ( !e1 || !e2 || !e3 || !e4 ) return 0;
+  CheckMemory();
   SMDS_MeshFace * face = new SMDS_FaceOfEdges(e1,e2,e3,e4);
   myFaces.Add(face);
+  myInfo.myNbQuadrangles++;
 
   if (!registerElement(ID, face))
   {
@@ -381,6 +444,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
 {
   SMDS_MeshVolume* volume = 0;
   if ( !n1 || !n2 || !n3 || !n4) return volume;
+  CheckMemory();
   if(hasConstructionFaces()) {
     SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3);
     SMDS_MeshFace * f2=FindFaceOrCreate(n1,n2,n4);
@@ -388,6 +452,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
     SMDS_MeshFace * f4=FindFaceOrCreate(n2,n3,n4);
     volume=new SMDS_VolumeOfFaces(f1,f2,f3,f4);
     myVolumes.Add(volume);
+    myInfo.myNbTetras++;
   }
   else if(hasConstructionEdges()) {
     MESSAGE("Error : Not implemented");
@@ -396,6 +461,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
   else {
     volume=new SMDS_VolumeOfNodes(n1,n2,n3,n4);
     myVolumes.Add(volume);
+    myInfo.myNbTetras++;
   }
 
   if (!registerElement(ID, volume)) {
@@ -464,6 +530,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
 {
   SMDS_MeshVolume* volume = 0;
   if ( !n1 || !n2 || !n3 || !n4 || !n5) return volume;
+  CheckMemory();
   if(hasConstructionFaces()) {
     SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3,n4);
     SMDS_MeshFace * f2=FindFaceOrCreate(n1,n2,n5);
@@ -471,6 +538,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
     SMDS_MeshFace * f4=FindFaceOrCreate(n3,n4,n5);
     volume=new SMDS_VolumeOfFaces(f1,f2,f3,f4);
     myVolumes.Add(volume);
+    myInfo.myNbPyramids++;
   }
   else if(hasConstructionEdges()) {
     MESSAGE("Error : Not implemented");
@@ -479,6 +547,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
   else {
     volume=new SMDS_VolumeOfNodes(n1,n2,n3,n4,n5);
     myVolumes.Add(volume);
+    myInfo.myNbPyramids++;
   }
 
   if (!registerElement(ID, volume)) {
@@ -551,6 +620,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
 {
   SMDS_MeshVolume* volume = 0;
   if ( !n1 || !n2 || !n3 || !n4 || !n5 || !n6) return volume;
+  CheckMemory();
   if(hasConstructionFaces()) {
     SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3);
     SMDS_MeshFace * f2=FindFaceOrCreate(n4,n5,n6);
@@ -559,6 +629,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
     SMDS_MeshFace * f5=FindFaceOrCreate(n3,n6,n4,n1);
     volume=new SMDS_VolumeOfFaces(f1,f2,f3,f4,f5);
     myVolumes.Add(volume);
+    myInfo.myNbPrisms++;
   }
   else if(hasConstructionEdges()) {
     MESSAGE("Error : Not implemented");
@@ -567,6 +638,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
   else {
     volume=new SMDS_VolumeOfNodes(n1,n2,n3,n4,n5,n6);
     myVolumes.Add(volume);
+    myInfo.myNbPrisms++;
   }
 
   if (!registerElement(ID, volume)) {
@@ -650,6 +722,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
 {
   SMDS_MeshVolume* volume = 0;
   if ( !n1 || !n2 || !n3 || !n4 || !n5 || !n6 || !n7 || !n8) return volume;
+  CheckMemory();
   if(hasConstructionFaces()) {
     SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3,n4);
     SMDS_MeshFace * f2=FindFaceOrCreate(n5,n6,n7,n8);
@@ -659,6 +732,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
     SMDS_MeshFace * f6=FindFaceOrCreate(n3,n4,n8,n7);
     volume=new SMDS_VolumeOfFaces(f1,f2,f3,f4,f5,f6);
     myVolumes.Add(volume);
+    myInfo.myNbHexas++;
   }
   else if(hasConstructionEdges()) {
     MESSAGE("Error : Not implemented");
@@ -668,6 +742,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
 //    volume=new SMDS_HexahedronOfNodes(n1,n2,n3,n4,n5,n6,n7,n8);
     volume=new SMDS_VolumeOfNodes(n1,n2,n3,n4,n5,n6,n7,n8);
     myVolumes.Add(volume);
+    myInfo.myNbHexas++;
   }
 
   if (!registerElement(ID, volume)) {
@@ -707,8 +782,10 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshFace * f1,
   if (!hasConstructionFaces())
     return NULL;
   if ( !f1 || !f2 || !f3 || !f4) return 0;
+  CheckMemory();
   SMDS_MeshVolume * volume = new SMDS_VolumeOfFaces(f1,f2,f3,f4);
   myVolumes.Add(volume);
+  myInfo.myNbTetras++;
 
   if (!registerElement(ID, volume)) {
     RemoveElement(volume, false);
@@ -749,8 +826,10 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshFace * f1,
   if (!hasConstructionFaces())
     return NULL;
   if ( !f1 || !f2 || !f3 || !f4 || !f5) return 0;
+  CheckMemory();
   SMDS_MeshVolume * volume = new SMDS_VolumeOfFaces(f1,f2,f3,f4,f5);
   myVolumes.Add(volume);
+  myInfo.myNbPyramids++;
 
   if (!registerElement(ID, volume)) {
     RemoveElement(volume, false);
@@ -793,8 +872,10 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshFace * f1,
   if (!hasConstructionFaces())
     return NULL;
   if ( !f1 || !f2 || !f3 || !f4 || !f5 || !f6) return 0;
+  CheckMemory();
   SMDS_MeshVolume * volume = new SMDS_VolumeOfFaces(f1,f2,f3,f4,f5,f6);
   myVolumes.Add(volume);
+  myInfo.myNbPrisms++;
 
   if (!registerElement(ID, volume)) {
     RemoveElement(volume, false);
@@ -829,6 +910,7 @@ SMDS_MeshFace* SMDS_Mesh::AddPolygonalFaceWithID
 {
   SMDS_MeshFace * face;
 
+  CheckMemory();
   if (hasConstructionEdges())
   {
     MESSAGE("Error : Not implemented");
@@ -840,6 +922,7 @@ SMDS_MeshFace* SMDS_Mesh::AddPolygonalFaceWithID
       if ( !nodes[ i ] ) return 0;
     face = new SMDS_PolygonalFaceOfNodes(nodes);
     myFaces.Add(face);
+    myInfo.myNbPolygons++;
   }
 
   if (!registerElement(ID, face)) {
@@ -892,6 +975,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddPolyhedralVolumeWithID
                              const int                         ID)
 {
   SMDS_MeshVolume* volume;
+  CheckMemory();
   if (hasConstructionFaces()) {
     MESSAGE("Error : Not implemented");
     return NULL;
@@ -903,6 +987,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddPolyhedralVolumeWithID
       if ( !nodes[ i ] ) return 0;
     volume = new SMDS_PolyhedralVolumeOfNodes(nodes, quantities);
     myVolumes.Add(volume);
+    myInfo.myNbPolyhedrons++;
   }
 
   if (!registerElement(ID, volume)) {
@@ -961,23 +1046,26 @@ SMDS_MeshFace * SMDS_Mesh::createTriangle(const SMDS_MeshNode * node1,
                                           const SMDS_MeshNode * node3)
 {
   if ( !node1 || !node2 || !node3) return 0;
-       if(hasConstructionEdges())
-       {
-               SMDS_MeshEdge *edge1, *edge2, *edge3;
-               edge1=FindEdgeOrCreate(node1,node2);
-               edge2=FindEdgeOrCreate(node2,node3);
-               edge3=FindEdgeOrCreate(node3,node1);
-
-               SMDS_MeshFace * face = new SMDS_FaceOfEdges(edge1,edge2,edge3);
-               myFaces.Add(face);
-               return face;
-       }
-       else
-       {
-               SMDS_MeshFace * face = new SMDS_FaceOfNodes(node1,node2,node3);
-               myFaces.Add(face);
-               return face;
-       }
+  CheckMemory();
+  if(hasConstructionEdges())
+  {
+    SMDS_MeshEdge *edge1, *edge2, *edge3;
+    edge1=FindEdgeOrCreate(node1,node2);
+    edge2=FindEdgeOrCreate(node2,node3);
+    edge3=FindEdgeOrCreate(node3,node1);
+
+    SMDS_MeshFace * face = new SMDS_FaceOfEdges(edge1,edge2,edge3);
+    myFaces.Add(face);
+    myInfo.myNbTriangles++;
+    return face;
+  }
+  else
+  {
+    SMDS_MeshFace * face = new SMDS_FaceOfNodes(node1,node2,node3);
+    myFaces.Add(face);
+    myInfo.myNbTriangles++;
+    return face;
+  }
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -990,24 +1078,27 @@ SMDS_MeshFace * SMDS_Mesh::createQuadrangle(const SMDS_MeshNode * node1,
                                            const SMDS_MeshNode * node4)
 {
   if ( !node1 || !node2 || !node3 || !node4 ) return 0;
-       if(hasConstructionEdges())
-       {
-               SMDS_MeshEdge *edge1, *edge2, *edge3, *edge4;
-               edge1=FindEdgeOrCreate(node1,node2);
-               edge2=FindEdgeOrCreate(node2,node3);
-               edge3=FindEdgeOrCreate(node3,node4);
-               edge4=FindEdgeOrCreate(node4,node1);
-
-               SMDS_MeshFace * face = new SMDS_FaceOfEdges(edge1,edge2,edge3,edge4);
-               myFaces.Add(face);
-               return face;
-       }
-       else
-       {
-               SMDS_MeshFace * face = new SMDS_FaceOfNodes(node1,node2,node3,node4);
-               myFaces.Add(face);
-               return face;
-       }
+  CheckMemory();
+  if(hasConstructionEdges())
+  {
+    SMDS_MeshEdge *edge1, *edge2, *edge3, *edge4;
+    edge1=FindEdgeOrCreate(node1,node2);
+    edge2=FindEdgeOrCreate(node2,node3);
+    edge3=FindEdgeOrCreate(node3,node4);
+    edge4=FindEdgeOrCreate(node4,node1);
+
+    SMDS_MeshFace * face = new SMDS_FaceOfEdges(edge1,edge2,edge3,edge4);
+    myFaces.Add(face);
+    myInfo.myNbQuadrangles++;
+    return face;
+  }
+  else
+  {
+    SMDS_MeshFace * face = new SMDS_FaceOfNodes(node1,node2,node3,node4);
+    myFaces.Add(face);
+    myInfo.myNbQuadrangles++;
+    return face;
+  }
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -1085,73 +1176,52 @@ bool SMDS_Mesh::RemoveSubMesh(const SMDS_Mesh * aMesh)
 //purpose  : 
 //=======================================================================
 
-bool SMDS_Mesh::ChangeElementNodes(const SMDS_MeshElement * elem,
+bool SMDS_Mesh::ChangeElementNodes(const SMDS_MeshElement * element,
                                    const SMDS_MeshNode    * nodes[],
                                    const int                nbnodes)
 {
   // keep current nodes of elem
   set<const SMDS_MeshElement*> oldNodes;
-  SMDS_ElemIteratorPtr itn = elem->nodesIterator();
+  SMDS_ElemIteratorPtr itn = element->nodesIterator();
   while(itn->more())
     oldNodes.insert(  itn->next() );
 
+  if ( !element->IsPoly() )
+    myInfo.remove( element ); // element may change type
+
   // change nodes
   bool Ok = false;
+  SMDS_MeshElement* elem = const_cast<SMDS_MeshElement*>(element);
   switch ( elem->GetType() )
   {
   case SMDSAbs_Edge: {
     if ( nbnodes == 2 ) {
-      const SMDS_MeshEdge* edge = dynamic_cast<const SMDS_MeshEdge*>( elem );
-      if ( edge )
-        Ok = const_cast<SMDS_MeshEdge*>( edge )->ChangeNodes( nodes[0], nodes[1] );
+      if ( SMDS_MeshEdge* edge = dynamic_cast<SMDS_MeshEdge*>( elem ))
+        Ok = edge->ChangeNodes( nodes[0], nodes[1] );
     }
     else if ( nbnodes == 3 ) {
-      const SMDS_QuadraticEdge* edge = dynamic_cast<const SMDS_QuadraticEdge*>( elem );
-      if ( edge )
-        Ok = const_cast<SMDS_QuadraticEdge*>( edge )->ChangeNodes( nodes[0], nodes[1], nodes[2] );
+      if ( SMDS_QuadraticEdge* edge = dynamic_cast<SMDS_QuadraticEdge*>( elem ))
+        Ok = edge->ChangeNodes( nodes[0], nodes[1], nodes[2] );
     }
     break;
   }
   case SMDSAbs_Face: {
-    const SMDS_FaceOfNodes* face = dynamic_cast<const SMDS_FaceOfNodes*>( elem );
-    if ( face ) {
-      Ok = const_cast<SMDS_FaceOfNodes*>( face )->ChangeNodes( nodes, nbnodes );
-    }
-    else {
-      const SMDS_QuadraticFaceOfNodes* QF =
-        dynamic_cast<const SMDS_QuadraticFaceOfNodes*>( elem );
-      if ( QF ) {
-        Ok = const_cast<SMDS_QuadraticFaceOfNodes*>( QF )->ChangeNodes( nodes, nbnodes );
-      }
-      else {
-        /// ??? begin
-        const SMDS_PolygonalFaceOfNodes* face = dynamic_cast<const SMDS_PolygonalFaceOfNodes*>(elem);
-        if (face) {
-          Ok = const_cast<SMDS_PolygonalFaceOfNodes*>(face)->ChangeNodes(nodes, nbnodes);
-        }
-        /// ??? end
-      }
-    }
+    if ( SMDS_FaceOfNodes* face = dynamic_cast<SMDS_FaceOfNodes*>( elem ))
+      Ok = face->ChangeNodes( nodes, nbnodes );
+    else
+      if ( SMDS_QuadraticFaceOfNodes* QF = dynamic_cast<SMDS_QuadraticFaceOfNodes*>( elem ))
+        Ok = QF->ChangeNodes( nodes, nbnodes );
+      else
+        if (SMDS_PolygonalFaceOfNodes* face = dynamic_cast<SMDS_PolygonalFaceOfNodes*>(elem))
+          Ok = face->ChangeNodes(nodes, nbnodes);
     break;
   }
-  //case SMDSAbs_PolygonalFace: {
-  //  const SMDS_PolygonalFaceOfNodes* face = dynamic_cast<const SMDS_PolygonalFaceOfNodes*>(elem);
-  //  if (face) {
-  //    Ok = const_cast<SMDS_PolygonalFaceOfNodes*>(face)->ChangeNodes(nodes, nbnodes);
-  //  }
-  //  break;
-  //}
   case SMDSAbs_Volume: {
-    const SMDS_VolumeOfNodes* vol = dynamic_cast<const SMDS_VolumeOfNodes*>( elem );
-    if ( vol ) {
-      Ok = const_cast<SMDS_VolumeOfNodes*>( vol )->ChangeNodes( nodes, nbnodes );
-    }
-    else {
-      const SMDS_QuadraticVolumeOfNodes* QV = dynamic_cast<const SMDS_QuadraticVolumeOfNodes*>( elem );
-      if ( QV ) {
-        Ok = const_cast<SMDS_QuadraticVolumeOfNodes*>( QV )->ChangeNodes( nodes, nbnodes );
-      }
-    }
+    if ( SMDS_VolumeOfNodes* vol = dynamic_cast<SMDS_VolumeOfNodes*>( elem ))
+      Ok = vol->ChangeNodes( nodes, nbnodes );
+    else 
+      if ( SMDS_QuadraticVolumeOfNodes* QV = dynamic_cast<SMDS_QuadraticVolumeOfNodes*>( elem ))
+        Ok = QV->ChangeNodes( nodes, nbnodes );
     break;
   }
   default:
@@ -1160,18 +1230,19 @@ bool SMDS_Mesh::ChangeElementNodes(const SMDS_MeshElement * elem,
 
   if ( Ok ) { // update InverseElements
 
+    set<const SMDS_MeshElement*>::iterator it;
+
     // AddInverseElement to new nodes
-    for ( int i = 0; i < nbnodes; i++ )
-      if ( oldNodes.find( nodes[i] ) == oldNodes.end() )
+    for ( int i = 0; i < nbnodes; i++ ) {
+      it = oldNodes.find( nodes[i] );
+      if ( it == oldNodes.end() )
         // new node
         const_cast<SMDS_MeshNode*>( nodes[i] )->AddInverseElement( elem );
       else
         // remove from oldNodes a node that remains in elem
-        oldNodes.erase( nodes[i] );
-
-
+        oldNodes.erase( it );
+    }
     // RemoveInverseElement from the nodes removed from elem
-    set<const SMDS_MeshElement*>::iterator it;
     for ( it = oldNodes.begin(); it != oldNodes.end(); it++ )
     {
       SMDS_MeshNode * n = static_cast<SMDS_MeshNode *>
@@ -1180,7 +1251,8 @@ bool SMDS_Mesh::ChangeElementNodes(const SMDS_MeshElement * elem,
     }
   }
 
-  //MESSAGE ( "::ChangeNodes() Ok = " << Ok);
+  if ( !element->IsPoly() )
+    myInfo.add( element ); // element may change type
 
   return Ok;
 }
@@ -1189,9 +1261,9 @@ bool SMDS_Mesh::ChangeElementNodes(const SMDS_MeshElement * elem,
 //function : ChangePolyhedronNodes
 //purpose  : to change nodes of polyhedral volume
 //=======================================================================
-bool SMDS_Mesh::ChangePolyhedronNodes (const SMDS_MeshElement * elem,
-                                       std::vector<const SMDS_MeshNode*> nodes,
-                                       std::vector<int>                  quantities)
+bool SMDS_Mesh::ChangePolyhedronNodes (const SMDS_MeshElement *            elem,
+                                       const vector<const SMDS_MeshNode*>& nodes,
+                                       const vector<int>                 & quantities)
 {
   if (elem->GetType() != SMDSAbs_Volume) {
     MESSAGE("WRONG ELEM TYPE");
@@ -1220,18 +1292,19 @@ bool SMDS_Mesh::ChangePolyhedronNodes (const SMDS_MeshElement * elem,
 
   // AddInverseElement to new nodes
   int nbnodes = nodes.size();
+  set<const SMDS_MeshElement*>::iterator it;
   for (int i = 0; i < nbnodes; i++) {
-    if (oldNodes.find(nodes[i]) == oldNodes.end()) {
+    it = oldNodes.find(nodes[i]);
+    if (it == oldNodes.end()) {
       // new node
       const_cast<SMDS_MeshNode*>(nodes[i])->AddInverseElement(elem);
     } else {
       // remove from oldNodes a node that remains in elem
-      oldNodes.erase(nodes[i]);
+      oldNodes.erase(it);
     }
   }
 
   // RemoveInverseElement from the nodes removed from elem
-  set<const SMDS_MeshElement*>::iterator it;
   for (it = oldNodes.begin(); it != oldNodes.end(); it++) {
     SMDS_MeshNode * n = static_cast<SMDS_MeshNode *>
       (const_cast<SMDS_MeshElement *>( *it ));
@@ -1290,9 +1363,11 @@ SMDS_MeshEdge* SMDS_Mesh::FindEdgeOrCreate(const SMDS_MeshNode * node1,
   SMDS_MeshEdge * toReturn=NULL;
   toReturn=const_cast<SMDS_MeshEdge*>(FindEdge(node1,node2));
   if(toReturn==NULL) {
+    CheckMemory();
     toReturn=new SMDS_MeshEdge(node1,node2);
     myEdges.Add(toReturn);
-  } 
+    myInfo.myNbEdges++;
+  }
   return toReturn;
 }
 
@@ -2214,14 +2289,17 @@ void SMDS_Mesh::RemoveElement(const SMDS_MeshElement *        elem,
     case SMDSAbs_Edge:
       myEdges.Remove(static_cast<SMDS_MeshEdge*>
                     (const_cast<SMDS_MeshElement*>(*it)));
+      myInfo.RemoveEdge(*it);
       break;
     case SMDSAbs_Face:
       myFaces.Remove(static_cast<SMDS_MeshFace*>
                     (const_cast<SMDS_MeshElement*>(*it)));
+      myInfo.RemoveFace(*it);
       break;
     case SMDSAbs_Volume:
       myVolumes.Remove(static_cast<SMDS_MeshVolume*>
                       (const_cast<SMDS_MeshElement*>(*it)));
+      myInfo.RemoveVolume(*it);
       break;
     }
     //MESSAGE( "SMDS: RM elem " << (*it)->GetID() );
@@ -2240,6 +2318,7 @@ void SMDS_Mesh::RemoveElement(const SMDS_MeshElement *        elem,
       //MESSAGE( "SMDS: RM node " << (*it)->GetID() );
       myNodes.Remove(static_cast<SMDS_MeshNode*>
                     (const_cast<SMDS_MeshElement*>(*it)));
+      myInfo.myNbNodes--;
       myNodeIDFactory->ReleaseID((*it)->GetID());
       removedNodes.push_back( (*it) );
       delete *it;
@@ -2264,6 +2343,7 @@ void SMDS_Mesh::RemoveFreeElement(const SMDS_MeshElement * elem)
     SMDS_ElemIteratorPtr itFe = n->GetInverseElementIterator();
     if (!itFe->more()) { // free node
       myNodes.Remove(const_cast<SMDS_MeshNode*>(n));
+      myInfo.myNbNodes--;
       myNodeIDFactory->ReleaseID(elem->GetID());
       delete elem;
     }
@@ -2285,14 +2365,17 @@ void SMDS_Mesh::RemoveFreeElement(const SMDS_MeshElement * elem)
     case SMDSAbs_Edge:
       myEdges.Remove(static_cast<SMDS_MeshEdge*>
                      (const_cast<SMDS_MeshElement*>(elem)));
+      myInfo.RemoveEdge(elem);
       break;
     case SMDSAbs_Face:
       myFaces.Remove(static_cast<SMDS_MeshFace*>
                      (const_cast<SMDS_MeshElement*>(elem)));
+      myInfo.RemoveFace(elem);
       break;
     case SMDSAbs_Volume:
       myVolumes.Remove(static_cast<SMDS_MeshVolume*>
                        (const_cast<SMDS_MeshElement*>(elem)));
+      myInfo.RemoveVolume(elem);
       break;
     default:
       break;
@@ -2483,6 +2566,7 @@ SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
     node2->AddInverseElement(edge);
     node12->AddInverseElement(edge);
     myEdges.Add(edge);
+    myInfo.myNbQuadEdges++;
     return edge;
   } 
   else {
@@ -2544,6 +2628,7 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
   SMDS_QuadraticFaceOfNodes* face =
     new SMDS_QuadraticFaceOfNodes(n1,n2,n3,n12,n23,n31);
   myFaces.Add(face);
+  myInfo.myNbQuadTriangles++;
 
   if (!registerElement(ID, face)) {
     RemoveElement(face, false);
@@ -2610,6 +2695,7 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
   SMDS_QuadraticFaceOfNodes* face =
     new SMDS_QuadraticFaceOfNodes(n1,n2,n3,n4,n12,n23,n34,n41);
   myFaces.Add(face);
+  myInfo.myNbQuadQuadrangles++;
 
   if (!registerElement(ID, face)) {
     RemoveElement(face, false);
@@ -2688,6 +2774,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
   SMDS_QuadraticVolumeOfNodes * volume =
     new SMDS_QuadraticVolumeOfNodes(n1,n2,n3,n4,n12,n23,n31,n14,n24,n34);
   myVolumes.Add(volume);
+  myInfo.myNbQuadTetras++;
 
   if (!registerElement(ID, volume)) {
     RemoveElement(volume, false);
@@ -2778,6 +2865,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
     new SMDS_QuadraticVolumeOfNodes(n1,n2,n3,n4,n5,n12,n23,
                                     n34,n41,n15,n25,n35,n45);
   myVolumes.Add(volume);
+  myInfo.myNbQuadPyramids++;
 
   if (!registerElement(ID, volume)) {
     RemoveElement(volume, false);
@@ -2876,6 +2964,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
     new SMDS_QuadraticVolumeOfNodes(n1,n2,n3,n4,n5,n6,n12,n23,n31,
                                     n45,n56,n64,n14,n25,n36);
   myVolumes.Add(volume);
+  myInfo.myNbQuadPrisms++;
 
   if (!registerElement(ID, volume)) {
     RemoveElement(volume, false);
@@ -2989,6 +3078,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
     new SMDS_QuadraticVolumeOfNodes(n1,n2,n3,n4,n5,n6,n7,n8,n12,n23,n34,n41,
                                     n56,n67,n78,n85,n15,n26,n37,n48);
   myVolumes.Add(volume);
+  myInfo.myNbQuadHexas++;
 
   if (!registerElement(ID, volume)) {
     RemoveElement(volume, false);
@@ -2996,4 +3086,3 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
   }
   return volume;
 }
-
index 2cdf3749b9f46c8ec8b0cd08c993f7e4990ce695..c4c0098c2bf8bce9c6953bb51638fe779335e479 100644 (file)
@@ -34,6 +34,7 @@
 #include "SMDS_MeshFace.hxx"
 #include "SMDS_MeshVolume.hxx"
 #include "SMDS_MeshElementIDFactory.hxx"
+#include "SMDS_MeshInfo.hxx"
 #include "SMDS_ElemIterator.hxx"
 #include <NCollection_Map.hxx>
 
@@ -432,12 +433,12 @@ public:
   virtual bool RemoveFromParent();
   virtual bool RemoveSubMesh(const SMDS_Mesh * aMesh);
 
-  static bool ChangeElementNodes(const SMDS_MeshElement * elem,
-                                 const SMDS_MeshNode    * nodes[],
-                                 const int                nbnodes);
-  static bool ChangePolyhedronNodes(const SMDS_MeshElement * elem,
-                                    std::vector<const SMDS_MeshNode*> nodes,
-                                    std::vector<int>                  quantities);
+  bool ChangeElementNodes(const SMDS_MeshElement * elem,
+                          const SMDS_MeshNode    * nodes[],
+                          const int                nbnodes);
+  bool ChangePolyhedronNodes(const SMDS_MeshElement *                 elem,
+                             const std::vector<const SMDS_MeshNode*>& nodes,
+                             const std::vector<int> &                 quantities);
 
   virtual void Renumber (const bool isNodes, const int startID = 1, const int deltaID = 1);
   // Renumber all nodes or elements.
@@ -482,11 +483,19 @@ public:
   const SMDS_MeshFace *FindFace(std::vector<int> nodes_ids) const;
   static const SMDS_MeshFace* FindFace(std::vector<const SMDS_MeshNode *> nodes);
 
+  /*!
+   * \brief Raise an exception if free memory (ram+swap) too low
+    * \param doNotRaise - if true, suppres exception, just return free memory size
+    * \retval int - amount of available memory in MB or negative number in failure case
+   */
+  static int CheckMemory(const bool doNotRaise=false) throw (std::bad_alloc);
+
   int MaxNodeID() const;
   int MinNodeID() const;
   int MaxElementID() const;
   int MinElementID() const;
 
+  const SMDS_MeshInfo& GetMeshInfo() const { return myInfo; }
 
   int NbNodes() const;
   int NbEdges() const;
@@ -549,15 +558,16 @@ private:
 
   // Fields PRIVATE
   
-  SetOfNodes myNodes;
-  SetOfEdges myEdges;
-  SetOfFaces myFaces;
-  SetOfVolumes myVolumes;
-  SMDS_Mesh *myParent;
+  SetOfNodes             myNodes;
+  SetOfEdges             myEdges;
+  SetOfFaces             myFaces;
+  SetOfVolumes           myVolumes;
+  SMDS_Mesh *            myParent;
   std::list<SMDS_Mesh *> myChildren;
   SMDS_MeshElementIDFactory *myNodeIDFactory;
   SMDS_MeshElementIDFactory *myElementIDFactory;
-  
+  SMDS_MeshInfo          myInfo;
+
   bool myHasConstructionEdges;
   bool myHasConstructionFaces;
   bool myHasInverseElements;
index adbde5081d5613c7b2afe9fadfcd529120272b9a..e003c9219d25d559edd4428937abfaaaa8785eb7 100644 (file)
@@ -124,8 +124,10 @@ void SMDS_MeshGroup::Add(const SMDS_MeshElement * theElem)
 {
        // the type of the group is determined by the first element added
        if (myElements.empty()) myType = theElem->GetType();
-       else if (theElem->GetType() != myType)
+       else if (theElem->GetType() != myType) {
          MESSAGE("SMDS_MeshGroup::Add : Type Mismatch "<<theElem->GetType()<<"!="<<myType);
+         return;
+       }
        
        myElements.insert(theElem);
 }
diff --git a/src/SMDS/SMDS_MeshInfo.hxx b/src/SMDS/SMDS_MeshInfo.hxx
new file mode 100644 (file)
index 0000000..d980de9
--- /dev/null
@@ -0,0 +1,188 @@
+// File      : SMDS_MeshInfo.hxx
+// Created   : Mon Sep 24 18:32:41 2007
+// Author    : Edward AGAPOV (eap)
+
+
+#ifndef SMDS_MeshInfo_HeaderFile
+#define SMDS_MeshInfo_HeaderFile
+
+#include "SMESH_SMDS.hxx"
+
+#include "SMDS_MeshElement.hxx"
+
+class SMDS_EXPORT SMDS_MeshInfo
+{
+public:
+
+  inline SMDS_MeshInfo();
+
+  int NbNodes() const { return myNbNodes; }
+
+  inline int NbEdges      (SMDSAbs_ElementOrder order = ORDER_ANY) const;
+  inline int NbFaces      (SMDSAbs_ElementOrder order = ORDER_ANY) const;
+  inline int NbTriangles  (SMDSAbs_ElementOrder order = ORDER_ANY) const;
+  inline int NbQuadrangles(SMDSAbs_ElementOrder order = ORDER_ANY) const;
+  int NbPolygons() const { return myNbPolygons; }
+
+  inline int NbVolumes (SMDSAbs_ElementOrder order = ORDER_ANY) const;
+  inline int NbTetras  (SMDSAbs_ElementOrder order = ORDER_ANY) const;
+  inline int NbHexas   (SMDSAbs_ElementOrder order = ORDER_ANY) const;
+  inline int NbPyramids(SMDSAbs_ElementOrder order = ORDER_ANY) const;
+  inline int NbPrisms  (SMDSAbs_ElementOrder order = ORDER_ANY) const;
+  int NbPolyhedrons() const { return myNbPolyhedrons; }
+
+private:
+  friend class SMDS_Mesh;
+
+  // methods to count NOT POLY elements
+  inline void remove(const SMDS_MeshElement* el);
+  inline void add   (const SMDS_MeshElement* el);
+  inline int  index(SMDSAbs_ElementType type, int nbNodes);
+  // methods to remove elements of ANY kind
+  inline void RemoveEdge(const SMDS_MeshElement* el);
+  inline void RemoveFace(const SMDS_MeshElement* el);
+  inline void RemoveVolume(const SMDS_MeshElement* el);
+
+  int myNbNodes;
+
+  int myNbEdges      , myNbQuadEdges      ;
+  int myNbTriangles  , myNbQuadTriangles  ;
+  int myNbQuadrangles, myNbQuadQuadrangles;
+  int myNbPolygons;
+
+  int myNbTetras  , myNbQuadTetras  ;
+  int myNbHexas   , myNbQuadHexas   ;
+  int myNbPyramids, myNbQuadPyramids;
+  int myNbPrisms  , myNbQuadPrisms  ;
+  int myNbPolyhedrons;
+
+  vector<int*> myNb; // pointers to myNb... fields
+  vector<int>  myShift; // shift to get an index in myNb by elem->NbNodes()
+};
+
+inline SMDS_MeshInfo::SMDS_MeshInfo():
+  myNbNodes(0),
+  myNbEdges      (0), myNbQuadEdges      (0),
+  myNbTriangles  (0), myNbQuadTriangles  (0),
+  myNbQuadrangles(0), myNbQuadQuadrangles(0),
+  myNbPolygons(0),
+  myNbTetras  (0), myNbQuadTetras  (0),
+  myNbHexas   (0), myNbQuadHexas   (0),
+  myNbPyramids(0), myNbQuadPyramids(0),
+  myNbPrisms  (0), myNbQuadPrisms  (0),
+  myNbPolyhedrons(0)
+{
+  // Number of nodes in standard element types
+  // n   v  f  e
+  // o   o  a  d
+  // d   l  c  g
+  // e      e  e
+  // -----------
+  // 1      
+  // 2         *
+  // 3      *
+  // 4   *  *  *
+  // 5   *  
+  // 6   *  *
+  // 7      
+  // 8   *  *
+  // 9      
+  // 10  *  
+  // 11     
+  // 12     
+  // 13  *  
+  // 14     
+  // 15  *  
+  // 16     
+  // 17     
+  // 18     
+  // 19     
+  // 20  *
+  //
+  // So to have a unique index for each type basing on nb of nodes, we use a shift:
+  myShift.resize(SMDSAbs_Volume + 1, 0);
+  myShift[ SMDSAbs_Face ] = +8; // 3->11, 4->12, 6->14, 8->16
+  myShift[ SMDSAbs_Edge ] = -2; // 2->0, 4->2
+
+  myNb.resize( index( SMDSAbs_Volume,20 ) + 1, NULL);
+  myNb[ index( SMDSAbs_Node,1 )] = & myNbNodes;
+
+  myNb[ index( SMDSAbs_Edge,2 )] = & myNbEdges;
+  myNb[ index( SMDSAbs_Edge,4 )] = & myNbQuadEdges;
+
+  myNb[ index( SMDSAbs_Face,3 )] = & myNbTriangles;
+  myNb[ index( SMDSAbs_Face,4 )] = & myNbQuadrangles;
+  myNb[ index( SMDSAbs_Face,6 )] = & myNbQuadTriangles;
+  myNb[ index( SMDSAbs_Face,8 )] = & myNbQuadQuadrangles;
+
+  myNb[ index( SMDSAbs_Volume, 4)]  = & myNbTetras;
+  myNb[ index( SMDSAbs_Volume, 5)]  = & myNbPyramids;
+  myNb[ index( SMDSAbs_Volume, 6)]  = & myNbPrisms;
+  myNb[ index( SMDSAbs_Volume, 8)]  = & myNbHexas;
+  myNb[ index( SMDSAbs_Volume, 10)] = & myNbQuadTetras;  
+  myNb[ index( SMDSAbs_Volume, 13)] = & myNbQuadPyramids;
+  myNb[ index( SMDSAbs_Volume, 15)] = & myNbQuadPrisms;  
+  myNb[ index( SMDSAbs_Volume, 20)] = & myNbQuadHexas;   
+}
+
+inline int // index
+SMDS_MeshInfo::index(SMDSAbs_ElementType type, int nbNodes)
+{ return nbNodes + myShift[ type ]; }
+
+inline void // remove
+SMDS_MeshInfo::remove(const SMDS_MeshElement* el)
+{ --(*myNb[ index(el->GetType(), el->NbNodes()) ]); }
+
+inline void // add
+SMDS_MeshInfo::add(const SMDS_MeshElement* el)
+{ ++(*myNb[ index(el->GetType(), el->NbNodes()) ]); }
+
+inline void // RemoveEdge
+SMDS_MeshInfo::RemoveEdge(const SMDS_MeshElement* el)
+{ if ( el->IsQuadratic() ) --myNbQuadEdges; else --myNbEdges; }
+
+inline void // RemoveFace
+SMDS_MeshInfo::RemoveFace(const SMDS_MeshElement* el)
+{ if ( el->IsPoly() ) --myNbPolygons; else remove( el ); }
+
+inline void // RemoveVolume
+SMDS_MeshInfo::RemoveVolume(const SMDS_MeshElement* el)
+{ if ( el->IsPoly() ) --myNbPolyhedrons; else remove( el ); }
+
+inline int // NbEdges
+SMDS_MeshInfo::NbEdges      (SMDSAbs_ElementOrder order) const
+{ return order == ORDER_ANY ? myNbEdges+myNbQuadEdges : order == ORDER_LINEAR ? myNbEdges : myNbQuadEdges; }
+
+inline int // NbFaces
+SMDS_MeshInfo::NbFaces      (SMDSAbs_ElementOrder order) const
+{ return NbTriangles(order)+NbQuadrangles(order)+(order == ORDER_QUADRATIC ? 0 : myNbPolygons); }
+
+inline int // NbTriangles
+SMDS_MeshInfo::NbTriangles  (SMDSAbs_ElementOrder order) const
+{ return order == ORDER_ANY ? myNbTriangles+myNbQuadTriangles : order == ORDER_LINEAR ? myNbTriangles : myNbQuadTriangles; }
+
+inline int // NbQuadrangles
+SMDS_MeshInfo::NbQuadrangles(SMDSAbs_ElementOrder order) const
+{ return order == ORDER_ANY ? myNbQuadrangles+myNbQuadQuadrangles : order == ORDER_LINEAR ? myNbQuadrangles : myNbQuadQuadrangles; }
+
+inline int // NbVolumes
+SMDS_MeshInfo::NbVolumes (SMDSAbs_ElementOrder order) const
+{ return NbTetras(order) + NbHexas(order) + NbPyramids(order) + NbPrisms(order) + (order == ORDER_QUADRATIC ? 0 : myNbPolyhedrons); }
+
+inline int // NbTetras
+SMDS_MeshInfo::NbTetras  (SMDSAbs_ElementOrder order) const
+{ return order == ORDER_ANY ? myNbTetras+myNbQuadTetras : order == ORDER_LINEAR ? myNbTetras : myNbQuadTetras; }
+
+inline int // NbHexas
+SMDS_MeshInfo::NbHexas   (SMDSAbs_ElementOrder order) const
+{ return order == ORDER_ANY ? myNbHexas+myNbQuadHexas : order == ORDER_LINEAR ? myNbHexas : myNbQuadHexas; }
+
+inline int // NbPyramids
+SMDS_MeshInfo::NbPyramids(SMDSAbs_ElementOrder order) const
+{ return order == ORDER_ANY ? myNbPyramids+myNbQuadPyramids : order == ORDER_LINEAR ? myNbPyramids : myNbQuadPyramids; }
+
+inline int // NbPrisms
+SMDS_MeshInfo::NbPrisms  (SMDSAbs_ElementOrder order) const
+{ return order == ORDER_ANY ? myNbPrisms+myNbQuadPrisms : order == ORDER_LINEAR ? myNbPrisms : myNbQuadPrisms; }
+
+#endif
index 142da59cb16134b0c3b1ec5d717d92dfc6e06164..3094a761f0cff2aa5f60af6c802450b42ec4b6a0 100644 (file)
@@ -1326,7 +1326,7 @@ bool SMDS_VolumeTool::IsFreeFace( int faceIndex )
   if ( IsFaceExternal( faceIndex ))
     intNormal = XYZ( -intNormal.x, -intNormal.y, -intNormal.z );
   XYZ p0 ( nodes[0] ), baryCenter;
-  for ( vNbIt = volNbShared.begin(); vNbIt != volNbShared.end();vNbIt++ ) {
+  for ( vNbIt = volNbShared.begin(); vNbIt != volNbShared.end(); vNbIt++ ) {
     int nbShared = (*vNbIt).second;
     if ( nbShared >= 3 ) {
       SMDS_VolumeTool volume( (*vNbIt).first );
@@ -1651,3 +1651,22 @@ int SMDS_VolumeTool::NbFaceNodes(VolumeType type,
   return 0;
 }
 
+//=======================================================================
+//function : Get
+//purpose  : return element
+//=======================================================================
+
+const SMDS_MeshVolume* SMDS_VolumeTool::Get() const
+{
+  return static_cast<const SMDS_MeshVolume*>( myVolume );
+}
+
+//=======================================================================
+//function : ID
+//purpose  : return element ID
+//=======================================================================
+
+int SMDS_VolumeTool::ID() const
+{
+  return myVolume ? myVolume->GetID() : 0;
+}
index 8a1c77d43f6218496077dd748d247a6f300b09d8..5eb5a0755a5012460bffbb485b7ef60e380b5495 100644 (file)
@@ -35,6 +35,7 @@
 class SMDS_MeshElement;
 class SMDS_MeshNode;
 class SMDS_PolyhedralVolumeOfNodes;
+class SMDS_MeshVolume;
 
 #include <vector>
 #include <set>
@@ -62,6 +63,12 @@ class SMDS_EXPORT SMDS_VolumeTool
   // Set volume.
   // Return false if theVolume is not of type SMDSAbs_Volume
 
+  const SMDS_MeshVolume* Get() const;
+  // return element
+
+  int ID() const;
+  // return element ID
+
   // -----------------------
   // general info
   // -----------------------
index 207cf7210799f6dfe54261801d75cee92f89b2ce..d354e130ebcd83364737ba7389dd011dc14e84e1 100755 (executable)
@@ -36,4 +36,4 @@
  #define SMDS_EXPORT
 #endif
 
-#endif
\ No newline at end of file
+#endif
index 9064e717ddc550f4b56cd270c181987b428fddbc..66d0e47f6b602fc265aa213a09e714bc277514d7 100644 (file)
 #ifndef _SMESH_0D_ALGO_HXX_
 #define _SMESH_0D_ALGO_HXX_
 
+#include "SMESH_SMESH.hxx"
+
 #include "SMESH_Algo.hxx"
 
-class SMESH_0D_Algo: public SMESH_Algo
+class SMESH_EXPORT SMESH_0D_Algo: public SMESH_Algo
 {
 public:
   SMESH_0D_Algo(int hypId, int studyId,  SMESH_Gen* gen);
index 84d0db4919d13a02a0ed2e0576807231b00a1166..ade8abfb75c971858dbed3a3c8a29fe75e3c6e9c 100644 (file)
 //  Module : SMESH
 //  $Header$
 
+using namespace std;
 #include "SMESH_2D_Algo.hxx"
 #include "SMESH_Gen.hxx"
-#include <TopExp.hxx>
 
 #include "utilities.h"
 
-using namespace std;
+#include <TopExp_Explorer.hxx>
+#include <TopExp.hxx>
+#include <TopoDS.hxx>
 
 //=============================================================================
 /*!
index db07a004f118ad0ad2bccb360eb92fa612b9e17e..47346f2da3471a0d5ec93874461d9c3ae926a1ef 100644 (file)
@@ -71,8 +71,8 @@ using namespace std;
  */
 //=============================================================================
 
-SMESH_Algo::SMESH_Algo(int hypId, int studyId,
-       SMESH_Gen * gen):SMESH_Hypothesis(hypId, studyId, gen)
+SMESH_Algo::SMESH_Algo (int hypId, int studyId, SMESH_Gen * gen)
+  SMESH_Hypothesis(hypId, studyId, gen)
 {
   gen->_mapAlgo[hypId] = this;
 
@@ -108,7 +108,7 @@ istream & SMESH_Algo::LoadFrom(istream & load) { return load; }
 
 const vector < string > &SMESH_Algo::GetCompatibleHypothesis()
 {
-       return _compatibleHypothesis;
+  return _compatibleHypothesis;
 }
 
 //=============================================================================
@@ -132,7 +132,7 @@ SMESH_Algo::GetUsedHypothesis(SMESH_Mesh &         aMesh,
   {
     aMesh.GetHypotheses( aShape, filter, _usedHypList, true );
     if ( ignoreAuxiliary && _usedHypList.size() > 1 )
-      _usedHypList.clear();    //only one compatible hypothesis allowed
+      _usedHypList.clear(); //only one compatible hypothesis allowed
   }
   return _usedHypList;
 }
index b27055c3145e97ac1012181dde43f656de74660f..f08fd85e74432d4640b402d3f6469e9d938109c8 100644 (file)
@@ -260,8 +260,14 @@ public:
     * \param E2 - the 2nd edge
     * \retval GeomAbs_Shape - regularity at the junction between E1 and E2
    */
-  static GeomAbs_Shape Continuity(const TopoDS_Edge & E1,
-                                  const TopoDS_Edge & E2);
+  static GeomAbs_Shape Continuity(const TopoDS_Edge & E1, const TopoDS_Edge & E2);
+
+  /*!
+   * \brief Return true if an edge can be considered as a continuation of another
+   */
+  static bool IsContinuous(const TopoDS_Edge & E1, const TopoDS_Edge & E2) {
+    return ( Continuity( E1, E2 ) >= GeomAbs_G1 );
+  }
 
   /*!
    * \brief Return the node built on a vertex
@@ -279,9 +285,10 @@ protected:
    */
   bool error(int error, const SMESH_Comment& comment = "");
   /*!
-   * \brief To be used as error in previous method
+   * \brief store COMPERR_ALGO_FAILED error and comment and then return false
    */
-  SMESH_ComputeErrorName dfltErr() const { return COMPERR_ALGO_FAILED; }
+  bool error(const SMESH_Comment& comment = "")
+  { return error(COMPERR_ALGO_FAILED, comment); }
   /*!
    * \brief store error and return error->IsOK()
    */
index fa7fc282fdfb8710d4d1db3c546ea5141274c93c..6a50ff019aec097c8d8ed8dd7219f64d4b85b733 100644 (file)
@@ -30,6 +30,7 @@
 #include <BRepTools_WireExplorer.hxx>
 #include <BRep_Builder.hxx>
 #include <BRep_Tool.hxx>
+#include <Bnd_Box.hxx>
 #include <Extrema_ExtPC.hxx>
 #include <Extrema_POnCurv.hxx>
 #include <Geom2d_Curve.hxx>
@@ -45,6 +46,8 @@
 #include <gp_Trsf.hxx>
 #include <gp_Vec.hxx>
 #include <math_FunctionSetRoot.hxx>
+#include <math_Matrix.hxx>
+#include <math_Vector.hxx>
 
 #include "SMDS_MeshNode.hxx"
 #include "SMDS_MeshVolume.hxx"
@@ -55,7 +58,7 @@
 
 using namespace std;
 
-#define SQRT_FUNC 0
+//#define DEBUG_PARAM_COMPUTE
 
 //================================================================================
 /*!
@@ -381,24 +384,37 @@ bool SMESH_Block::ShellPoint(const gp_XYZ&         theParams,
   const vector<gp_XYZ>& p = thePointOnShape;
 
   thePoint = 
-    x1 * p[ID_F0yz] + x * p[ID_F1yz]
-      + y1 * p[ID_Fx0z] + y * p[ID_Fx1z]
-        + z1 * p[ID_Fxy0] + z * p[ID_Fxy1]
-          + x1 * (y1 * (z1 * p[ID_V000] + z * p[ID_V001])
-                  + y * (z1 * p[ID_V010] + z * p[ID_V011]))
-            + x * (y1 * (z1 * p[ID_V100] + z * p[ID_V101])
-                   + y * (z1 * p[ID_V110] + z * p[ID_V111]));
+    x1 * p[ID_F0yz] + x * p[ID_F1yz] +
+    y1 * p[ID_Fx0z] + y * p[ID_Fx1z] +
+    z1 * p[ID_Fxy0] + z * p[ID_Fxy1] +
+    x1 * (y1 * (z1 * p[ID_V000] + z * p[ID_V001])  +
+          y  * (z1 * p[ID_V010] + z * p[ID_V011])) +
+    x  * (y1 * (z1 * p[ID_V100] + z * p[ID_V101])  +
+           * (z1 * p[ID_V110] + z * p[ID_V111]));
   thePoint -=
-    x1 * (y1 * p[ID_E00z] + y * p[ID_E01z])
-      + x * (y1 * p[ID_E10z] + y * p[ID_E11z])
-        + y1 * (z1 * p[ID_Ex00] + z * p[ID_Ex01])
-          + y * (z1 * p[ID_Ex10] + z * p[ID_Ex11])
-            + z1 * (x1 * p[ID_E0y0] + x * p[ID_E1y0])
-              + z * (x1 * p[ID_E0y1] + x * p[ID_E1y1]);
+    x1 * (y1 * p[ID_E00z] + y * p[ID_E01z]) + 
+    x  * (y1 * p[ID_E10z] + y * p[ID_E11z]) + 
+    y1 * (z1 * p[ID_Ex00] + z * p[ID_Ex01]) + 
+    y  * (z1 * p[ID_Ex10] + z * p[ID_Ex11]) + 
+    z1 * (x1 * p[ID_E0y0] + x * p[ID_E1y0]) + 
+     * (x1 * p[ID_E0y1] + x * p[ID_E1y1]);
 
   return true;
 }
 
+//=======================================================================
+//function : Constructor
+//purpose  : 
+//=======================================================================
+
+SMESH_Block::SMESH_Block():
+  myNbIterations(0),
+  mySumDist(0.),
+  myTolerance(-1.) // to be re-initialized
+{
+}
+
+
 //=======================================================================
 //function : NbVariables
 //purpose  : 
@@ -428,12 +444,12 @@ Standard_Boolean SMESH_Block::Value(const math_Vector& theXYZ, math_Vector& theF
 {
   gp_XYZ P, params( theXYZ(1), theXYZ(2), theXYZ(3) );
   if ( params.IsEqual( myParam, DBL_MIN )) { // same param
-    theFxyz( 1 ) = myValues[ 0 ];
+    theFxyz( 1 ) = funcValue( myValues[ SQUARE_DIST ]);
   }
   else {
     ShellPoint( params, P );
     gp_Vec dP( P - myPoint );
-    theFxyz(1) = SQRT_FUNC ? dP.SquareMagnitude() : dP.Magnitude();
+    theFxyz(1) = funcValue( dP.SquareMagnitude() );
   }
   return true;
 }
@@ -445,55 +461,60 @@ Standard_Boolean SMESH_Block::Value(const math_Vector& theXYZ, math_Vector& theF
 
 Standard_Boolean SMESH_Block::Derivatives(const math_Vector& XYZ,math_Matrix& Df) 
 {
-  MESSAGE( "SMESH_Block::Derivatives()");
   math_Vector F(1,3);
   return Values(XYZ,F,Df);
 }
 
 //=======================================================================
-//function : Values
+//function : GetStateNumber
 //purpose  : 
 //=======================================================================
 
-//#define DEBUG_PARAM_COMPUTE
+Standard_Integer SMESH_Block::GetStateNumber ()
+{
+  return 0; //myValues[0] < 1e-1;
+}
+
+//=======================================================================
+//function : Values
+//purpose  : 
+//=======================================================================
 
 Standard_Boolean SMESH_Block::Values(const math_Vector& theXYZ,
                                      math_Vector&       theFxyz,
                                      math_Matrix&       theDf) 
 {
-//  MESSAGE( endl<<"SMESH_Block::Values( "<<theXYZ(1)<<", "<<theXYZ(2)<<", "<<theXYZ(3)<<")");
-
   gp_XYZ P, params( theXYZ(1), theXYZ(2), theXYZ(3) );
   if ( params.IsEqual( myParam, DBL_MIN )) { // same param
-    theFxyz( 1 ) = myValues[ 0 ];
-    theDf( 1,1 ) = myValues[ 1 ];
-    theDf( 1,2 ) = myValues[ 2 ];
-    theDf( 1,3 ) = myValues[ 3 ];
+    theFxyz( 1 )      = funcValue( myValues[ SQUARE_DIST ] );
+    theDf( 1, DRV_1 ) = myValues[ DRV_1 ];
+    theDf( 1, DRV_2 ) = myValues[ DRV_2 ];
+    theDf( 1, DRV_3 ) = myValues[ DRV_3 ];
     return true;
   }
 #ifdef DEBUG_PARAM_COMPUTE
   cout << "PARAM GUESS: " << params.X() << " "<< params.Y() << " "<< params.X() << endl;
+  myNbIterations++; // how many times call ShellPoint()
 #endif
   ShellPoint( params, P );
-  //myNbIterations++; // how many time call ShellPoint()
 
   gp_Vec dP( myPoint, P );
-  theFxyz(1) = SQRT_FUNC ? dP.SquareMagnitude() : dP.Magnitude();
-  if ( theFxyz(1) < 1e-6 ) {
-    myParam      = params;
-    myValues[ 0 ]= 0;
-    theDf( 1,1 ) = 0;
-    theDf( 1,2 ) = 0;
-    theDf( 1,3 ) = 0;
+  double sqDist = dP.SquareMagnitude();
+  theFxyz(1) = funcValue( sqDist );
+
+  if ( sqDist < myTolerance * myTolerance ) { // a solution found
+    myParam = params;
+    myValues[ SQUARE_DIST ] = sqDist;
+    theFxyz(1)  = theDf( 1,1 ) = theDf( 1,2 ) = theDf( 1,3 ) = 0;
     return true;
   }
 
-  if ( theFxyz(1) < myValues[0] ) // a better guess
+  if ( sqDist < myValues[ SQUARE_DIST ] ) // a better guess
   {
     // 3 partial derivatives
     gp_Vec drv[ 3 ]; // where we move with a small step in each direction
     for ( int iP = 1; iP <= 3; iP++ ) {
-      if ( iP - 1 == myFaceIndex ) {
+      if ( iP == myFaceIndex ) {
         drv[ iP - 1 ] = gp_Vec(0,0,0);
         continue;
       }
@@ -513,44 +534,96 @@ Standard_Boolean SMESH_Block::Values(const math_Vector& theXYZ,
       drv[ iP - 1 ] = dPi;
     }
     for ( int iP = 0; iP < 3; iP++ ) {
+#if 1
       theDf( 1, iP + 1 ) = dP * drv[iP];
-        // Distance from P to plane passing through myPoint and defined
-        // by the 2 other derivative directions:
-        // like IntAna_IntConicQuad::Perform (const gp_Lin& L, const gp_Pln& P)
-        // where L is (P -> myPoint), P is defined by the 2 other derivative direction
-//         int iPrev = ( iP ? iP - 1 : 2 );
-//         int iNext = ( iP == 2 ? 0 : iP + 1 );
-//         gp_Vec plnNorm = drv[ iPrev ].Crossed( drv [ iNext ] );
-//         double Direc = plnNorm * drv[ iP ];
-//         if ( Abs(Direc) <= DBL_MIN )
-//           theDf( 1, iP + 1 ) = dP * drv[ iP ];
-//         else {
-//           double Dis = plnNorm * P - plnNorm * myPoint;
-//           theDf( 1, iP + 1 ) = Dis/Direc;
-//         }
+#else
+      // Distance from P to plane passing through myPoint and defined
+      // by the 2 other derivative directions:
+      // like IntAna_IntConicQuad::Perform (const gp_Lin& L, const gp_Pln& P)
+      // where L is (P -> myPoint), P is defined by the 2 other derivative direction
+      int iPrev = ( iP ? iP - 1 : 2 );
+      int iNext = ( iP == 2 ? 0 : iP + 1 );
+      gp_Vec plnNorm = drv[ iPrev ].Crossed( drv [ iNext ] );
+      double Direc = plnNorm * drv[ iP ];
+      if ( Abs(Direc) <= DBL_MIN )
+        theDf( 1, iP + 1 ) = dP * drv[ iP ];
+      else {
+        double Dis = plnNorm * P - plnNorm * myPoint;
+        theDf( 1, iP + 1 ) = Dis/Direc;
+      }
+#endif
     }
 #ifdef DEBUG_PARAM_COMPUTE
     cout << "F = " << theFxyz(1) <<
       " DRV: " << theDf(1,1) << " " << theDf(1,2) << " " << theDf(1,3)  << endl;
+    myNbIterations +=3; // how many times call ShellPoint()
 #endif
-    //myNbIterations +=3; // how many time call ShellPoint()
 
     // store better values
-    myParam    = params;
-    myValues[0]= theFxyz(1);
-    myValues[1]= theDf(1,1);
-    myValues[2]= theDf(1,2);
-    myValues[3]= theDf(1,3);
-
-//     SCRUTE( theFxyz(1)  );
-//     SCRUTE( theDf( 1,1 ));
-//     SCRUTE( theDf( 1,2 ));
-//     SCRUTE( theDf( 1,3 ));
+    myParam              = params;
+    myValues[SQUARE_DIST]= sqDist;
+    myValues[DRV_1]      = theDf(1,DRV_1);
+    myValues[DRV_2]      = theDf(1,DRV_2);
+    myValues[DRV_3]      = theDf(1,DRV_3);
   }
 
   return true;
 }
 
+//============================================================================
+//function : computeParameters
+//purpose  : compute point parameters in the block using math_FunctionSetRoot
+//============================================================================
+
+bool SMESH_Block::computeParameters(const gp_Pnt& thePoint,
+                                    gp_XYZ&       theParams,
+                                    const gp_XYZ& theParamsHint)
+{
+  myPoint = thePoint.XYZ();
+
+  myParam.SetCoord( -1,-1,-1 );
+  myValues[ SQUARE_DIST ] = 1e100;
+
+  math_Vector low  ( 1, 3, 0.0 );
+  math_Vector up   ( 1, 3, 1.0 );
+  math_Vector tol  ( 1, 3, 1e-4 );
+  math_Vector start( 1, 3, 0.0 );
+  start( 1 ) = theParamsHint.X();
+  start( 2 ) = theParamsHint.Y();
+  start( 3 ) = theParamsHint.Z();
+
+  math_FunctionSetRoot paramSearch( *this, tol );
+
+  mySquareFunc = 0; // large approaching steps
+  //if ( hasHint ) mySquareFunc = 1; // small approaching steps
+
+  double loopTol = 10 * myTolerance;
+  int nbLoops = 0;
+  while ( distance() > loopTol && nbLoops <= 3 )
+  {
+    paramSearch.Perform ( *static_cast<math_FunctionSetWithDerivatives*>(this),
+                          start, low, up );
+    start( 1 ) = myParam.X();
+    start( 2 ) = myParam.Y();
+    start( 3 ) = myParam.Z();
+    mySquareFunc = !mySquareFunc;
+    nbLoops++;
+  }
+#ifdef DEBUG_PARAM_COMPUTE
+  mySumDist += distance();
+  cout << " ------ SOLUTION: ( "<< myParam.X() <<" "<< myParam.Y() <<" "<< myParam.Z() <<" )"<<endl
+       << " ------ DIST : " << distance() << "\t Tol=" << myTolerance << "\t Nb LOOPS=" << nbLoops << endl
+       << " ------ NB IT: " << myNbIterations << ",  SUM DIST: " << mySumDist << endl;
+#endif
+
+  theParams = myParam;
+
+  if ( myFaceIndex > 0 )
+    theParams.SetCoord( myFaceIndex, myFaceParam );
+
+  return true;
+}
+
 //=======================================================================
 //function : ComputeParameters
 //purpose  : compute point parameters in the block
@@ -558,7 +631,8 @@ Standard_Boolean SMESH_Block::Values(const math_Vector& theXYZ,
 
 bool SMESH_Block::ComputeParameters(const gp_Pnt& thePoint,
                                     gp_XYZ&       theParams,
-                                    const int     theShapeID)
+                                    const int     theShapeID,
+                                    const gp_XYZ& theParamsHint)
 {
   if ( VertexParameters( theShapeID, theParams ))
     return true;
@@ -575,19 +649,17 @@ bool SMESH_Block::ComputeParameters(const gp_Pnt& thePoint,
     return false;
   }
 
-//   MESSAGE( endl<<"SMESH_Block::ComputeParameters( "
-//           <<thePoint.X()<<", "<<thePoint.Y()<<", "<<thePoint.Z()<<")");
-  myPoint = thePoint.XYZ();
-
-  myParam.SetCoord( -1,-1,-1 );
-  myValues[0] = 1e100;
-
   const bool isOnFace = IsFaceID( theShapeID );
   double * coef = GetShapeCoef( theShapeID );
 
-  // the first guess
-  math_Vector start( 1, 3, 0.0 );
-  if ( !myGridComputed )
+  // Find the first guess paremeters
+
+  gp_XYZ start(0, 0, 0);
+
+  bool hasHint = ( 0 <= theParamsHint.X() && theParamsHint.X() <= 1 &&
+                   0 <= theParamsHint.Y() && theParamsHint.Y() <= 1 &&
+                   0 <= theParamsHint.Y() && theParamsHint.Y() <= 1 );
+  if ( !hasHint && !myGridComputed )
   {
     // define the first guess by thePoint projection on lines
     // connecting vertices
@@ -600,6 +672,7 @@ bool SMESH_Block::ComputeParameters(const gp_Pnt& thePoint,
         iEdge += 4;
         continue;
       }
+      double sumParam = 0;
       for ( int iE = 0; iE < 4; iE++, iEdge++ ) { // loop on 4 parallel edges
         gp_Pnt p0 = myEdge[ iEdge ].Point( par000 );
         gp_Pnt p1 = myEdge[ iEdge ].Point( par111 );
@@ -613,24 +686,33 @@ bool SMESH_Block::ComputeParameters(const gp_Pnt& thePoint,
             break;
           }
         }
-        start( iParam ) += par;
+        sumParam += par;
       }
-      start( iParam ) /= 4.;
+      start.SetCoord( iParam, sumParam / 4.);
     }
     if ( needGrid ) {
       // compute nodes of 3 x 3 x 3 grid
       int iNode = 0;
+      Bnd_Box box;
       for ( double x = 0.25; x < 0.9; x += 0.25 )
         for ( double y = 0.25; y < 0.9; y += 0.25 )
           for ( double z = 0.25; z < 0.9; z += 0.25 ) {
             TxyzPair & prmPtn = my3x3x3GridNodes[ iNode++ ];
             prmPtn.first.SetCoord( x, y, z );
             ShellPoint( prmPtn.first, prmPtn.second );
+            box.Add( gp_Pnt( prmPtn.second ));
           }
       myGridComputed = true;
+      myTolerance = sqrt( box.SquareExtent() ) * 1e-5;
     }
   }
-  if ( myGridComputed ) {
+
+  if ( hasHint )
+  {
+    start = theParamsHint;
+  }
+  else if ( myGridComputed )
+  {
     double minDist = DBL_MAX;
     gp_XYZ* bestParam = 0;
     for ( int iNode = 0; iNode < 27; iNode++ ) {
@@ -641,59 +723,103 @@ bool SMESH_Block::ComputeParameters(const gp_Pnt& thePoint,
         bestParam = & prmPtn.first;
       }
     }
-    start( 1 ) = bestParam->X();
-    start( 2 ) = bestParam->Y();
-    start( 3 ) = bestParam->Z();
+    start = *bestParam;
   }
 
   myFaceIndex = -1;
+  myFaceParam = 0.;
   if ( isOnFace ) {
     // put a point on the face
     for ( int iCoord = 0; iCoord < 3; iCoord++ )
       if ( coef[ iCoord ] ) {
-        myFaceIndex = iCoord;
-        myFaceParam = ( coef[ myFaceIndex ] < 0.5 ) ? 0.0 : 1.0;
-        start( iCoord + 1 ) = myFaceParam;
+        myFaceIndex = iCoord + 1;
+        myFaceParam = ( coef[ iCoord ] < 0.5 ) ? 0.0 : 1.0;
+        start.SetCoord( myFaceIndex, myFaceParam );
       }
   }
-  math_Vector low  ( 1, 3, 0.0 );
-  math_Vector up   ( 1, 3, 1.0 );
-  math_Vector tol  ( 1, 3, 1e-4 );
-  math_FunctionSetRoot paramSearch( *this, tol );
 
 #ifdef DEBUG_PARAM_COMPUTE
   cout << " #### POINT " <<thePoint.X()<<" "<<thePoint.Y()<<" "<<thePoint.Z()<<" ####"<< endl;
-  cout << " ** START ** " << start(1) << " " << start(2) << " " << start(3) << " " << endl;
 #endif
-  int nbLoops = 0;
-  while ( myValues[0] > 1e-1 && nbLoops++ < 10 ) {
-    paramSearch.Perform ( *static_cast<math_FunctionSetWithDerivatives*>(this),
-                          start, low, up );
-    if ( !paramSearch.IsDone() ) {
-      //MESSAGE( " !paramSearch.IsDone() " );
+
+  if ( myTolerance < 0 ) myTolerance = 1e-6;
+
+  const double parDelta = 1e-4;
+  const double sqTolerance = myTolerance * myTolerance;
+
+  gp_XYZ solution = start, params = start;
+  double sqDistance = 1e100; 
+  int nbLoops = 0, nbGetWorst = 0;
+
+  while ( nbLoops <= 100 )
+  {
+    gp_XYZ P, Pi;
+    ShellPoint( params, P );
+
+    gp_Vec dP( thePoint, P );
+    double sqDist = dP.SquareMagnitude();
+
+    if ( sqDist > sqDistance ) { // solution get worse
+      if ( ++nbGetWorst > 2 )
+        return computeParameters( thePoint, theParams, solution );
     }
-    else {
-      //MESSAGE( " NB ITERATIONS: " << paramSearch.NbIterations() );
+#ifdef DEBUG_PARAM_COMPUTE
+    cout << "PARAMS: ( " << params.X() <<" "<< params.Y() <<" "<< params.Z() <<" )"<< endl;
+    cout << "DIST: " << sqrt( sqDist ) << endl;
+#endif
+
+    if ( sqDist < sqDistance ) { // get better
+      sqDistance = sqDist;
+      solution   = params;
+      nbGetWorst = 0;
+      if ( sqDistance < sqTolerance ) // a solution found
+        break;
     }
-    start( 1 ) = myParam.X();
-    start( 2 ) = myParam.Y();
-    start( 3 ) = myParam.Z();
-    //MESSAGE( "Distance: " << ( SQRT_FUNC ? sqrt(myValues[0]) : myValues[0] ));
+
+        // look for a next better solution
+    for ( int iP = 1; iP <= 3; iP++ ) {
+      if ( iP == myFaceIndex )
+        continue;
+      // see where we move with a small (=parDelta) step in this direction
+      gp_XYZ nearParams = params;
+      bool onEdge = ( params.Coord( iP ) + parDelta > 1. );
+      if ( onEdge )
+        nearParams.SetCoord( iP, params.Coord( iP ) - parDelta );
+      else
+        nearParams.SetCoord( iP, params.Coord( iP ) + parDelta );
+      ShellPoint( nearParams, Pi );
+      gp_Vec dPi ( P, Pi );
+      if ( onEdge ) dPi *= -1.;
+      // modify a parameter
+      double mag = dPi.Magnitude();
+      if ( mag < DBL_MIN )
+        continue;
+      gp_Vec dir = dPi / mag; // dir we move modifying the parameter
+      double dist = dir * dP; // where we should get to
+      double dPar = dist / mag * parDelta; // predict parameter change
+      double curPar = params.Coord( iP );
+      double par = curPar - dPar; // new parameter value
+      while ( par > 1 || par < 0 ) {
+        dPar /= 2.;
+        par = curPar - dPar;
+      }
+      params.SetCoord( iP, par );
+    }
+
+    nbLoops++;
   }
 #ifdef DEBUG_PARAM_COMPUTE
-  cout << "-------SOLUTION-------: " << endl
-       << myParam.X() << " " << myParam.Y() << " " << myParam.Z() << endl
-       << " ------ DIST :" << myValues[0] << endl;
+  myNbIterations += nbLoops*4; // how many times ShellPoint called
+  mySumDist += sqrt( sqDistance );
+  cout << " ------ SOLUTION: ( "<<solution.X()<<" "<<solution.Y()<<" "<<solution.Z()<<" )"<<endl
+       << " ------ DIST : " << sqrt( sqDistance ) << "\t Tol=" << myTolerance << "\t Nb LOOPS=" << nbLoops << endl
+       << " ------ NB IT: " << myNbIterations << ",  SUM DIST: " << mySumDist << endl;
 #endif
-//   MESSAGE( endl << myParam.X() << " " << myParam.Y() << " " << myParam.Z() << endl);
-//   mySumDist += myValues[0];
-//   MESSAGE( " TOTAL NB ITERATIONS: " << myNbIterations <<
-//             " DIST: " << ( SQRT_FUNC ? sqrt(mySumDist) : mySumDist ));
 
-  if ( myFaceIndex >= 0 )
-    myParam.SetCoord( myFaceIndex + 1, myFaceParam );
+  theParams = solution;
 
-  theParams = myParam;
+  if ( myFaceIndex > 0 )
+    theParams.SetCoord( myFaceIndex, myFaceParam );
 
   return true;
 }
@@ -734,18 +860,6 @@ bool SMESH_Block::EdgeParameters(const int theEdgeID, const double theU, gp_XYZ&
   return false;
 }
 
-//=======================================================================
-//function : GetStateNumber
-//purpose  : 
-//=======================================================================
-
-Standard_Integer SMESH_Block::GetStateNumber ()
-{
-//   MESSAGE( endl<<"SMESH_Block::GetStateNumber( "<<myParam.X()<<", "<<
-//           myParam.Y()<<", "<<myParam.Z()<<") DISTANCE: " << myValues[0]);
-  return myValues[0] < 1e-1;
-}
-
 //=======================================================================
 //function : DumpShapeID
 //purpose  : debug an id of a block sub-shape
@@ -1067,7 +1181,7 @@ bool SMESH_Block::LoadMeshBlock(const SMDS_MeshVolume*        theVolume,
     TFace& tFace = myFace[ iF - ID_FirstF ];
     vector< int > edgeIdVec(4, -1);
     GetFaceEdgesIDs( iF, edgeIdVec );
-    tFace.Set( iF, myEdge[ edgeIdVec [ 0 ]], myEdge[ edgeIdVec [ 1 ]]);
+    tFace.Set( iF, myEdge[ edgeIdVec [ 0 ] - ID_Ex00], myEdge[ edgeIdVec [ 1 ] - ID_Ex00]);
   }
 
   return true;
@@ -1593,4 +1707,3 @@ void SMESH_Block::GetEdgeVertexIDs (const int edgeID, vector< int >& vertexVec )
     MESSAGE(" GetEdgeVertexIDs(), wrong edge ID: " << edgeID );
   }
 }
-
index 392160279d415fd71c5be80062cc48d9816b69ee..c5bbc1e2f6561a448fec1b44dd433e362c18a609 100644 (file)
 
 #include "SMESH_SMESH.hxx"
 
-#include <Geom2d_Curve.hxx>
-#include <Geom_Curve.hxx>
-#include <Geom_Surface.hxx>
+//#include <Geom2d_Curve.hxx>
+//#include <Geom_Curve.hxx>
+//#include <Geom_Surface.hxx>
+
 #include <TopExp.hxx>
 #include <TopTools_IndexedMapOfOrientedShape.hxx>
 #include <TopoDS_Edge.hxx>
 #include <TopoDS_Face.hxx>
 #include <TopoDS_Shell.hxx>
 #include <TopoDS_Vertex.hxx>
-#include <gp_Pnt.hxx>
-#include <gp_Trsf.hxx>
 #include <gp_XY.hxx>
 #include <gp_XYZ.hxx>
 #include <math_FunctionSetWithDerivatives.hxx>
-#include <math_Matrix.hxx>
-#include <math_Vector.hxx>
 
 #include <ostream>
 #include <vector>
@@ -53,6 +50,7 @@ class SMDS_MeshNode;
 class Adaptor3d_Surface;
 class Adaptor2d_Curve2d;
 class Adaptor3d_Curve;
+class gp_Pnt;
 
 // =========================================================
 // class calculating coordinates of 3D points by normalized
@@ -147,7 +145,7 @@ class SMESH_EXPORT SMESH_Block: public math_FunctionSetWithDerivatives
   // Initialization
   // ---------------
 
-  SMESH_Block (): myNbIterations(0), mySumDist(0.) {}
+  SMESH_Block();
 
   bool LoadBlockShapes(const TopoDS_Shell&         theShell,
                        const TopoDS_Vertex&        theVertex000,
@@ -242,7 +240,8 @@ public:
 
   bool ComputeParameters (const gp_Pnt& thePoint,
                           gp_XYZ&       theParams,
-                          const int     theShapeID = ID_Shell);
+                          const int     theShapeID    = ID_Shell,
+                          const gp_XYZ& theParamsHint = gp_XYZ(-1,-1,-1));
   // compute point parameters in the block.
   // Note: for edges, it is better to use EdgeParameters()
 
@@ -362,14 +361,21 @@ public:
 
   // for param computation
 
+  enum { SQUARE_DIST = 0, DRV_1, DRV_2, DRV_3 };
+  double distance () const { return sqrt( myValues[ SQUARE_DIST ]); }
+  double funcValue(double sqDist) const { return mySquareFunc ? sqDist : sqrt(sqDist); }
+  bool computeParameters(const gp_Pnt& thePoint, gp_XYZ& theParams, const gp_XYZ& theParamsHint);
+
   int      myFaceIndex;
   double   myFaceParam;
   int      myNbIterations;
   double   mySumDist;
+  double   myTolerance;
+  bool     mySquareFunc;
 
   gp_XYZ   myPoint; // the given point
   gp_XYZ   myParam; // the best parameters guess
-  double   myValues[ 4 ]; // values computed at myParam: function value and 3 derivatives
+  double   myValues[ 4 ]; // values computed at myParam: square distance and 3 derivatives
 
   typedef pair<gp_XYZ,gp_XYZ> TxyzPair;
   TxyzPair my3x3x3GridNodes[ 27 ]; // to compute the first param guess
index 3c34f2e63ef77685268dade7d3f02e6b4c8c672a..29f896bf8286b943690b9ac94ee731b5db3a0abc 100644 (file)
@@ -29,6 +29,7 @@
 #include "SMESH_Gen.hxx"
 #include "SMESH_subMesh.hxx"
 #include "SMESH_HypoFilter.hxx"
+#include "SMESHDS_Document.hxx"
 #include "SMDS_MeshElement.hxx"
 #include "SMDS_MeshNode.hxx"
 
@@ -162,6 +163,14 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
       if (smToCompute->GetComputeState() == SMESH_subMesh::FAILED_TO_COMPUTE)
         ret = false;;
     }
+    if ((algo && !aMesh.HasShapeToMesh()))
+    {
+      if (smToCompute->GetComputeState() == SMESH_subMesh::READY_TO_COMPUTE)
+        smToCompute->ComputeStateEngine( SMESH_subMesh::COMPUTE );
+      
+      if (smToCompute->GetComputeState() == SMESH_subMesh::FAILED_TO_COMPUTE)
+        ret = false;;
+    }
   }
 
   // -----------------------------------------------
@@ -301,7 +310,7 @@ static bool checkMissing(SMESH_Gen*                aGen,
       int shapeDim = SMESH_Gen::GetShapeDim( aSubMesh->GetSubShape() );
       if (aTopAlgoDim > shapeDim)
       {
-        INFOS( "ERROR: " << shapeDim << "D algorithm is missing" );
+        MESSAGE( "ERROR: " << shapeDim << "D algorithm is missing" );
         ret = false;
         theErrors.push_back( SMESH_Gen::TAlgoStateError() );
         theErrors.back().Set( SMESH_Hypothesis::HYP_MISSING, shapeDim, true );
@@ -320,12 +329,16 @@ static bool checkMissing(SMESH_Gen*                aGen,
       SMESH_Hypothesis::Hypothesis_Status status;
       algo->CheckHypothesis( aMesh, aSubMesh->GetSubShape(), status );
       if ( status == SMESH_Hypothesis::HYP_BAD_PARAMETER ) {
-        INFOS( "ERROR: hypothesis of " << (IsGlobalHypothesis ? "Global " : "Local ")
-               << "<" << algo->GetName() << "> has a bad parameter value");
-        errName = SMESH_Hypothesis::HYP_BAD_PARAMETER;
+        MESSAGE( "ERROR: hypothesis of " << (IsGlobalHypothesis ? "Global " : "Local ")
+                 << "<" << algo->GetName() << "> has a bad parameter value");
+        errName = status;
+      } else if ( status == SMESH_Hypothesis::HYP_BAD_GEOMETRY ) {
+        MESSAGE( "ERROR: " << (IsGlobalHypothesis ? "Global " : "Local ")
+                 << "<" << algo->GetName() << "> assigned to mismatching geometry");
+        errName = status;
       } else {
-        INFOS( "ERROR: " << (IsGlobalHypothesis ? "Global " : "Local ")
-               << "<" << algo->GetName() << "> misses some hypothesis");
+        MESSAGE( "ERROR: " << (IsGlobalHypothesis ? "Global " : "Local ")
+                 << "<" << algo->GetName() << "> misses some hypothesis");
       }
       if (IsGlobalHypothesis)
         globalChecked[ algo->GetDim() ] = true;
index 1aa8e9684f39ef46063047121d279e289e412d4b..f642500ec52a2d20d215b20ba85f227bc0349a17 100644 (file)
 #include "SMESH_3D_Algo.hxx"
 #include "SMESH_Mesh.hxx"
 
-#include "SMESHDS_Document.hxx"
-
 #include <TopoDS_Shape.hxx>
 
 #include <map>
 
+class SMESHDS_Document;
+
 typedef SMESH_Hypothesis::Hypothesis_Status TAlgoStateErrorName;
 
 typedef struct studyContextStruct
index 1b13bc57859985b2efbf44f4820e7f935b151b3d..76f9cc0798159ef7301dd8bb072e7c65358d33ae 100644 (file)
 
 #include "SMESH_SMESH.hxx"
 
-#include <SMDSAbs_ElementType.hxx>
+#include "SMDSAbs_ElementType.hxx"
+
 #include <string>
 #include <TopoDS_Shape.hxx>
 
-
 class SMESHDS_GroupBase;
 class SMESH_Mesh;
 
@@ -55,9 +55,6 @@ class SMESH_EXPORT  SMESH_Group
 
   SMESHDS_GroupBase * GetGroupDS () { return myGroupDS; }
 
-  void SetColorNumber (int theColorNumber) { myColorNumber = theColorNumber; }
-  int GetColorNumber() const { return myColorNumber; }
-
  private:
   SMESH_Group (const SMESH_Group& theOther);
   // prohibited copy constructor
@@ -66,7 +63,6 @@ class SMESH_EXPORT  SMESH_Group
 
   SMESHDS_GroupBase * myGroupDS;
   std::string         myName;
-  int                 myColorNumber;
 };
 
 #endif
index ca883167ef71e953dcb919e0f22f89de0c86f0ee..041166d41c0be369754f6ce706026b0c7cedaa4a 100644 (file)
@@ -78,9 +78,15 @@ class SMESH_EXPORT SMESH_HypoFilter: public SMESH_HypoPredicate
   static SMESH_HypoPredicate* HasDim(const int theDim);
   static SMESH_HypoPredicate* HasType(const int theHypType);
 
+  /*!
+   * \brief check aHyp or/and aShape it is assigned to
+   */
   bool IsOk (const SMESH_Hypothesis* aHyp,
              const TopoDS_Shape&     aShape) const;
-  // check aHyp or/and aShape it is assigned to
+  /*!
+   * \brief return true if contains no predicates
+   */
+  bool IsAny() const { return myPredicates.empty(); }
 
   ~SMESH_HypoFilter();
 
index 0f464bf0f9adad71a6c407f4f92c7c70d5ec53db..0b361a52ba302c4eb2285dee267a39119f3fe326 100644 (file)
@@ -35,7 +35,9 @@
 #include "SMESHDS_Group.hxx"
 #include "SMESHDS_Script.hxx"
 #include "SMESHDS_GroupOnGeom.hxx"
+#include "SMESHDS_Document.hxx"
 #include "SMDS_MeshVolume.hxx"
+#include "SMDS_SetIterator.hxx"
 
 #include "utilities.h"
 
 #include "DriverUNV_R_SMDS_Mesh.h"
 #include "DriverSTL_R_SMDS_Mesh.h"
 
-#include <BRepTools_WireExplorer.hxx>
 #include <BRepPrimAPI_MakeBox.hxx>
-#include <BRep_Builder.hxx>
-#include <gp_Pnt.hxx>
-
-#include <TCollection_AsciiString.hxx>
 #include <TopExp.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <TopTools_Array1OfShape.hxx>
+#include <TopExp_Explorer.hxx>
 #include <TopTools_ListIteratorOfListOfShape.hxx>
+#include <TopTools_ListOfShape.hxx>
 #include <TopTools_MapOfShape.hxx>
-
-#include <memory>
+#include <TopoDS_Iterator.hxx>
 
 #include "Utils_ExceptHandlers.hxx"
 
@@ -98,6 +94,7 @@ SMESH_Mesh::SMESH_Mesh(int               theLocalId,
   _idDoc         = theDocument->NewMesh(theIsEmbeddedMode);
   _myMeshDS      = theDocument->GetMesh(_idDoc);
   _isShapeToMesh = false;
+  _isAutoColor   = false;
   _myMeshDS->ShapeToMesh( PseudoShape() );
 }
 
@@ -153,7 +150,6 @@ void SMESH_Mesh::ShapeToMesh(const TopoDS_Shape & aShape)
         i_gr++;
     }
     _mapAncestors.Clear();
-    _mapPropagationChains.Clear();
 
     // clear SMESHDS
     TopoDS_Shape aNullShape;
@@ -215,7 +211,7 @@ int SMESH_Mesh::UNVToMesh(const char* theFileName)
   if(MYDEBUG) MESSAGE("UNVToMesh - theFileName = "<<theFileName);
   if(_isShapeToMesh)
     throw SALOME_Exception(LOCALIZED("a shape to mesh has already been defined"));
-  _isShapeToMesh = true;
+  _isShapeToMesh = false;
   DriverUNV_R_SMDS_Mesh myReader;
   myReader.SetMesh(_myMeshDS);
   myReader.SetFile(theFileName);
@@ -270,7 +266,7 @@ int SMESH_Mesh::MEDToMesh(const char* theFileName, const char* theMeshName)
   if(MYDEBUG) MESSAGE("MEDToMesh - theFileName = "<<theFileName<<", mesh name = "<<theMeshName);
   if(_isShapeToMesh)
     throw SALOME_Exception(LOCALIZED("a shape to mesh has already been defined"));
-  _isShapeToMesh = true;
+  _isShapeToMesh = false;
   DriverMED_R_SMESHDS_Mesh myReader;
   myReader.SetMesh(_myMeshDS);
   myReader.SetMeshId(-1);
@@ -313,7 +309,7 @@ int SMESH_Mesh::STLToMesh(const char* theFileName)
   if(MYDEBUG) MESSAGE("STLToMesh - theFileName = "<<theFileName);
   if(_isShapeToMesh)
     throw SALOME_Exception(LOCALIZED("a shape to mesh has already been defined"));
-  _isShapeToMesh = true;
+  _isShapeToMesh = false;
   DriverSTL_R_SMDS_Mesh myReader;
   myReader.SetMesh(_myMeshDS);
   myReader.SetFile(theFileName);
@@ -363,6 +359,10 @@ SMESH_Hypothesis::Hypothesis_Status
       if ( ret < aBestRet )
         aBestRet = ret;
     }
+    // bind hypotheses to a group just to know
+    SMESH_Hypothesis *anHyp = _gen->GetStudyContext(_studyId)->mapHypothesis[anHypId];
+    GetMeshDS()->AddHypothesis( aSubShape, anHyp );
+
     if ( SMESH_Hypothesis::IsStatusFatal( aBestRet ))
       return aBestRet;
     return aWorstNotFatal;
@@ -466,6 +466,9 @@ SMESH_Hypothesis::Hypothesis_Status
       if ( ret < aBestRet )
         aBestRet = ret;
     }
+    SMESH_Hypothesis *anHyp = _gen->GetStudyContext(_studyId)->mapHypothesis[anHypId];
+    GetMeshDS()->RemoveHypothesis( aSubShape, anHyp );
+
     if ( SMESH_Hypothesis::IsStatusFatal( aBestRet ))
       return aBestRet;
     return aWorstNotFatal;
@@ -717,7 +720,7 @@ SMESH_subMesh *SMESH_Mesh::GetSubMesh(const TopoDS_Shape & aSubShape)
  */
 //=============================================================================
 
-SMESH_subMesh *SMESH_Mesh::GetSubMeshContaining(const TopoDS_Shape & aSubShape)
+SMESH_subMesh *SMESH_Mesh::GetSubMeshContaining(const TopoDS_Shape & aSubShape) const
   throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
@@ -725,13 +728,12 @@ SMESH_subMesh *SMESH_Mesh::GetSubMeshContaining(const TopoDS_Shape & aSubShape)
   
   int index = _myMeshDS->ShapeToIndex(aSubShape);
 
-  map <int, SMESH_subMesh *>::iterator i_sm = _mapSubMesh.find(index);
+  map <int, SMESH_subMesh *>::const_iterator i_sm = _mapSubMesh.find(index);
   if ( i_sm != _mapSubMesh.end())
     aSubMesh = i_sm->second;
 
   return aSubMesh;
 }
-
 //=============================================================================
 /*!
  * Get the SMESH_subMesh object implementation. Dont create it, return null
@@ -739,17 +741,51 @@ SMESH_subMesh *SMESH_Mesh::GetSubMeshContaining(const TopoDS_Shape & aSubShape)
  */
 //=============================================================================
 
-SMESH_subMesh *SMESH_Mesh::GetSubMeshContaining(const int aShapeID)
+SMESH_subMesh *SMESH_Mesh::GetSubMeshContaining(const int aShapeID) const
 throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
   
-  map <int, SMESH_subMesh *>::iterator i_sm = _mapSubMesh.find(aShapeID);
+  map <int, SMESH_subMesh *>::const_iterator i_sm = _mapSubMesh.find(aShapeID);
   if (i_sm == _mapSubMesh.end())
     return NULL;
   return i_sm->second;
 }
+//================================================================================
+/*!
+ * \brief Return submeshes of groups containing the given subshape
+ */
+//================================================================================
 
+list<SMESH_subMesh*>
+SMESH_Mesh::GetGroupSubMeshesContaining(const TopoDS_Shape & aSubShape) const
+  throw(SALOME_Exception)
+{
+  Unexpect aCatch(SalomeException);
+  list<SMESH_subMesh*> found;
+
+  SMESH_subMesh * subMesh = GetSubMeshContaining(aSubShape);
+  if ( !subMesh )
+    return found;
+
+  // submeshes of groups have max IDs, so search from the map end
+  map<int, SMESH_subMesh *>::const_reverse_iterator i_sm;
+  for ( i_sm = _mapSubMesh.rbegin(); i_sm != _mapSubMesh.rend(); ++i_sm) {
+    SMESHDS_SubMesh * ds = i_sm->second->GetSubMeshDS();
+    if ( ds && ds->IsComplexSubmesh() ) {
+      TopExp_Explorer exp( i_sm->second->GetSubShape(), aSubShape.ShapeType() );
+      for ( ; exp.More(); exp.Next() ) {
+        if ( aSubShape.IsSame( exp.Current() )) {
+          found.push_back( i_sm->second );
+          break;
+        }
+      }
+    } else {
+      break;
+    }
+  }
+  return found;
+}
 //=======================================================================
 //function : IsUsedHypothesis
 //purpose  : Return True if anHyp is used to mesh aSubShape
@@ -859,15 +895,29 @@ void SMESH_Mesh::NotifySubMeshesHypothesisModification(const SMESH_Hypothesis* h
         {
           aSubMesh->AlgoStateEngine(SMESH_subMesh::MODIF_HYP,
                                     const_cast< SMESH_Hypothesis*>( hyp ));
-
-          if ( algo->GetDim() == 1 && IsPropagationHypothesis( aSubShape ))
-            CleanMeshOnPropagationChain( aSubShape );
         }
       }
     }
   }
 }
 
+//=============================================================================
+/*!
+ *  Auto color functionality
+ */
+//=============================================================================
+void SMESH_Mesh::SetAutoColor(bool theAutoColor) throw(SALOME_Exception)
+{
+  Unexpect aCatch(SalomeException);
+  _isAutoColor = theAutoColor;
+}
+
+bool SMESH_Mesh::GetAutoColor() throw(SALOME_Exception)
+{
+  Unexpect aCatch(SalomeException);
+  return _isAutoColor;
+}
+
 //=============================================================================
 /*! Export* methods.
  *  To store mesh contents on disk in different formats.
@@ -980,221 +1030,156 @@ void SMESH_Mesh::ExportSTL(const char *file, const bool isascii) throw(SALOME_Ex
   myWriter.Perform();
 }
 
-//=============================================================================
+//================================================================================
 /*!
- *  
+ * \brief Return number of nodes in the mesh
  */
-//=============================================================================
+//================================================================================
+
 int SMESH_Mesh::NbNodes() throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
   return _myMeshDS->NbNodes();
 }
 
-//=============================================================================
+//================================================================================
 /*!
- *  
+ * \brief  Return number of edges of given order in the mesh
  */
-//=============================================================================
-int SMESH_Mesh::NbEdges(ElementOrder order) throw(SALOME_Exception)
+//================================================================================
+
+int SMESH_Mesh::NbEdges(SMDSAbs_ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  if (order == ORDER_ANY)
-    return _myMeshDS->NbEdges();
-
-  int Nb = 0;
-  SMDS_EdgeIteratorPtr it = _myMeshDS->edgesIterator();
-  while (it->more()) {
-    const SMDS_MeshEdge* cur = it->next();
-    if ( order == ORDER_LINEAR && !cur->IsQuadratic() ||
-         order == ORDER_QUADRATIC && cur->IsQuadratic() )
-      Nb++;
-  }
-  return Nb;
+  return _myMeshDS->GetMeshInfo().NbEdges(order);
 }
 
-//=============================================================================
+//================================================================================
 /*!
- *  
+ * \brief Return number of faces of given order in the mesh
  */
-//=============================================================================
-int SMESH_Mesh::NbFaces(ElementOrder order) throw(SALOME_Exception)
+//================================================================================
+
+int SMESH_Mesh::NbFaces(SMDSAbs_ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  if (order == ORDER_ANY)
-    return _myMeshDS->NbFaces();
-
-  int Nb = 0;
-  SMDS_FaceIteratorPtr it = _myMeshDS->facesIterator();
-  while (it->more()) {
-    const SMDS_MeshFace* cur = it->next();
-    if ( order == ORDER_LINEAR && !cur->IsQuadratic() ||
-         order == ORDER_QUADRATIC && cur->IsQuadratic() )
-      Nb++;
-  }
-  return Nb;
+  return _myMeshDS->GetMeshInfo().NbFaces(order);
 }
 
-///////////////////////////////////////////////////////////////////////////////
-/// Return the number of 3 nodes faces in the mesh. This method run in O(n)
-///////////////////////////////////////////////////////////////////////////////
-int SMESH_Mesh::NbTriangles(ElementOrder order) throw(SALOME_Exception)
+//================================================================================
+/*!
+ * \brief Return the number of faces in the mesh
+ */
+//================================================================================
+
+int SMESH_Mesh::NbTriangles(SMDSAbs_ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  
-  SMDS_FaceIteratorPtr itFaces=_myMeshDS->facesIterator();
-  while (itFaces->more()) {
-    const SMDS_MeshFace* curFace = itFaces->next();
-    int nbnod = curFace->NbNodes();
-    if ( !curFace->IsPoly() && 
-        ( order == ORDER_ANY && (nbnod==3 || nbnod==6) ||
-           order == ORDER_LINEAR && nbnod==3 ||
-           order == ORDER_QUADRATIC && nbnod==6 ) )
-      Nb++;
-  }
-  return Nb;
+  return _myMeshDS->GetMeshInfo().NbTriangles(order);
 }
 
-///////////////////////////////////////////////////////////////////////////////
-/// Return the number of 4 nodes faces in the mesh. This method run in O(n)
-///////////////////////////////////////////////////////////////////////////////
-int SMESH_Mesh::NbQuadrangles(ElementOrder order) throw(SALOME_Exception)
+//================================================================================
+/*!
+ * \brief Return the number nodes faces in the mesh
+ */
+//================================================================================
+
+int SMESH_Mesh::NbQuadrangles(SMDSAbs_ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  
-  SMDS_FaceIteratorPtr itFaces=_myMeshDS->facesIterator();
-  while (itFaces->more()) {
-    const SMDS_MeshFace* curFace = itFaces->next();
-    int nbnod = curFace->NbNodes();
-    if ( !curFace->IsPoly() && 
-        ( order == ORDER_ANY && (nbnod==4 || nbnod==8) ||
-           order == ORDER_LINEAR && nbnod==4 ||
-           order == ORDER_QUADRATIC && nbnod==8 ) )
-      Nb++;
-  }
-  return Nb;
+  return _myMeshDS->GetMeshInfo().NbQuadrangles(order);
 }
 
-///////////////////////////////////////////////////////////////////////////////
-/// Return the number of polygonal faces in the mesh. This method run in O(n)
-///////////////////////////////////////////////////////////////////////////////
+//================================================================================
+/*!
+ * \brief Return the number of polygonal faces in the mesh
+ */
+//================================================================================
+
 int SMESH_Mesh::NbPolygons() throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  SMDS_FaceIteratorPtr itFaces = _myMeshDS->facesIterator();
-  while (itFaces->more())
-    if (itFaces->next()->IsPoly()) Nb++;
-  return Nb;
+  return _myMeshDS->GetMeshInfo().NbPolygons();
 }
 
-//=============================================================================
+//================================================================================
 /*!
- *  
+ * \brief Return number of volumes of given order in the mesh
  */
-//=============================================================================
-int SMESH_Mesh::NbVolumes(ElementOrder order) throw(SALOME_Exception)
+//================================================================================
+
+int SMESH_Mesh::NbVolumes(SMDSAbs_ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  if (order == ORDER_ANY)
-    return _myMeshDS->NbVolumes();
-
-  int Nb = 0;
-  SMDS_VolumeIteratorPtr it = _myMeshDS->volumesIterator();
-  while (it->more()) {
-    const SMDS_MeshVolume* cur = it->next();
-    if ( order == ORDER_LINEAR && !cur->IsQuadratic() ||
-         order == ORDER_QUADRATIC && cur->IsQuadratic() )
-      Nb++;
-  }
-  return Nb;
+  return _myMeshDS->GetMeshInfo().NbVolumes(order);
 }
 
-int SMESH_Mesh::NbTetras(ElementOrder order) throw(SALOME_Exception)
+//================================================================================
+/*!
+ * \brief  Return number of tetrahedrons of given order in the mesh
+ */
+//================================================================================
+
+int SMESH_Mesh::NbTetras(SMDSAbs_ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
-  while (itVolumes->more()) {
-    const SMDS_MeshVolume* curVolume = itVolumes->next();
-    int nbnod = curVolume->NbNodes();
-    if ( !curVolume->IsPoly() && 
-        ( order == ORDER_ANY && (nbnod==4 || nbnod==10) ||
-           order == ORDER_LINEAR && nbnod==4 ||
-           order == ORDER_QUADRATIC && nbnod==10 ) )
-      Nb++;
-  }
-  return Nb;
+  return _myMeshDS->GetMeshInfo().NbTetras(order);
 }
 
-int SMESH_Mesh::NbHexas(ElementOrder order) throw(SALOME_Exception)
+//================================================================================
+/*!
+ * \brief  Return number of hexahedrons of given order in the mesh
+ */
+//================================================================================
+
+int SMESH_Mesh::NbHexas(SMDSAbs_ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
-  while (itVolumes->more()) {
-    const SMDS_MeshVolume* curVolume = itVolumes->next();
-    int nbnod = curVolume->NbNodes();
-    if ( !curVolume->IsPoly() && 
-        ( order == ORDER_ANY && (nbnod==8 || nbnod==20) ||
-           order == ORDER_LINEAR && nbnod==8 ||
-           order == ORDER_QUADRATIC && nbnod==20 ) )
-      Nb++;
-  }
-  return Nb;
+  return _myMeshDS->GetMeshInfo().NbHexas(order);
 }
 
-int SMESH_Mesh::NbPyramids(ElementOrder order) throw(SALOME_Exception)
+//================================================================================
+/*!
+ * \brief  Return number of pyramids of given order in the mesh
+ */
+//================================================================================
+
+int SMESH_Mesh::NbPyramids(SMDSAbs_ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
-  while (itVolumes->more()) {
-    const SMDS_MeshVolume* curVolume = itVolumes->next();
-    int nbnod = curVolume->NbNodes();
-    if ( !curVolume->IsPoly() && 
-        ( order == ORDER_ANY && (nbnod==5 || nbnod==13) ||
-           order == ORDER_LINEAR && nbnod==5 ||
-           order == ORDER_QUADRATIC && nbnod==13 ) )
-      Nb++;
-  }
-  return Nb;
+  return _myMeshDS->GetMeshInfo().NbPyramids(order);
 }
 
-int SMESH_Mesh::NbPrisms(ElementOrder order) throw(SALOME_Exception)
+//================================================================================
+/*!
+ * \brief  Return number of prisms (penthahedrons) of given order in the mesh
+ */
+//================================================================================
+
+int SMESH_Mesh::NbPrisms(SMDSAbs_ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
-  while (itVolumes->more()) {
-    const SMDS_MeshVolume* curVolume = itVolumes->next();
-    int nbnod = curVolume->NbNodes();
-    if ( !curVolume->IsPoly() && 
-        ( order == ORDER_ANY && (nbnod==6 || nbnod==15) ||
-           order == ORDER_LINEAR && nbnod==6 ||
-           order == ORDER_QUADRATIC && nbnod==15 ) )
-      Nb++;
-  }
-  return Nb;
+  return _myMeshDS->GetMeshInfo().NbPrisms(order);
 }
 
+//================================================================================
+/*!
+ * \brief  Return number of polyhedrons in the mesh
+ */
+//================================================================================
+
 int SMESH_Mesh::NbPolyhedrons() throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  int Nb = 0;
-  SMDS_VolumeIteratorPtr itVolumes = _myMeshDS->volumesIterator();
-  while (itVolumes->more())
-    if (itVolumes->next()->IsPoly()) Nb++;
-  return Nb;
+  return _myMeshDS->GetMeshInfo().NbPolyhedrons();
 }
 
-//=============================================================================
+//================================================================================
 /*!
- *  
+ * \brief  Return number of submeshes in the mesh
  */
-//=============================================================================
+//================================================================================
+
 int SMESH_Mesh::NbSubMesh() throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
@@ -1210,7 +1195,7 @@ bool SMESH_Mesh::IsNotConformAllowed() const
 {
   if(MYDEBUG) MESSAGE("SMESH_Mesh::IsNotConformAllowed");
 
-  SMESH_HypoFilter filter( SMESH_HypoFilter::HasName( "NotConformAllowed" ));
+  static SMESH_HypoFilter filter( SMESH_HypoFilter::HasName( "NotConformAllowed" ));
   return GetHypothesis( _myMeshDS->ShapeToMesh(), filter, false );
 }
 
@@ -1244,9 +1229,21 @@ SMESH_Group* SMESH_Mesh::AddGroup (const SMDSAbs_ElementType theType,
   return aGroup;
 }
 
+//================================================================================
+/*!
+ * \brief Return iterator on all existing groups
+ */
+//================================================================================
+
+SMESH_Mesh::GroupIteratorPtr SMESH_Mesh::GetGroups() const
+{
+  typedef map <int, SMESH_Group *> TMap;
+  return GroupIteratorPtr( new SMDS_mapIterator<TMap>( _mapGroup ));
+}
+
 //=============================================================================
 /*!
- *  
+ * \brief Return a group by ID
  */
 //=============================================================================
 
@@ -1260,11 +1257,11 @@ SMESH_Group* SMESH_Mesh::GetGroup (const int theGroupID)
 
 //=============================================================================
 /*!
- *  
+ * \brief Return IDs of all groups
  */
 //=============================================================================
 
-list<int> SMESH_Mesh::GetGroupIds()
+list<int> SMESH_Mesh::GetGroupIds() const
 {
   list<int> anIds;
   for ( map<int, SMESH_Group*>::const_iterator it = _mapGroup.begin(); it != _mapGroup.end(); it++ )
@@ -1289,279 +1286,6 @@ void SMESH_Mesh::RemoveGroup (const int theGroupID)
   _mapGroup.erase (theGroupID);
 }
 
-//=============================================================================
-/*!
- *  IsLocal1DHypothesis
- *  Returns a local 1D hypothesis used for theEdge
- */
-//=============================================================================
-const SMESH_Hypothesis* SMESH_Mesh::IsLocal1DHypothesis (const TopoDS_Shape& theEdge)
-{
-  SMESH_HypoFilter hypo ( SMESH_HypoFilter::HasDim( 1 ));
-  hypo.AndNot( hypo.IsAlgo() ).AndNot( hypo.IsAssignedTo( GetMeshDS()->ShapeToMesh() ));
-
-  return GetHypothesis( theEdge, hypo, true );
-}
-
-//=============================================================================
-/*!
- *  IsPropagationHypothesis
- */
-//=============================================================================
-bool SMESH_Mesh::IsPropagationHypothesis (const TopoDS_Shape& theEdge)
-{
-  return _mapPropagationChains.Contains(theEdge);
-}
-
-//=============================================================================
-/*!
- *  IsPropagatedHypothesis
- */
-//=============================================================================
-bool SMESH_Mesh::IsPropagatedHypothesis (const TopoDS_Shape& theEdge,
-                                         TopoDS_Shape&       theMainEdge)
-{
-  int nbChains = _mapPropagationChains.Extent();
-  for (int i = 1; i <= nbChains; i++) {
-    //const TopTools_IndexedMapOfShape& aChain = _mapPropagationChains.FindFromIndex(i);
-    const SMESH_IndexedMapOfShape& aChain = _mapPropagationChains.FindFromIndex(i);
-    if (aChain.Contains(theEdge)) {
-      theMainEdge = _mapPropagationChains.FindKey(i);
-      return true;
-    }
-  }
-
-  return false;
-}
-//=============================================================================
-/*!
- *  IsReversedInChain
- */
-//=============================================================================
-
-bool SMESH_Mesh::IsReversedInChain (const TopoDS_Shape& theEdge,
-                                    const TopoDS_Shape& theMainEdge)
-{
-  if ( !theMainEdge.IsNull() && !theEdge.IsNull() &&
-      _mapPropagationChains.Contains( theMainEdge ))
-  {
-    const SMESH_IndexedMapOfShape& aChain =
-      _mapPropagationChains.FindFromKey( theMainEdge );
-    int index = aChain.FindIndex( theEdge );
-    if ( index )
-      return aChain(index).Orientation() == TopAbs_REVERSED;
-  }
-  return false;
-}
-
-//=============================================================================
-/*!
- *  CleanMeshOnPropagationChain
- */
-//=============================================================================
-void SMESH_Mesh::CleanMeshOnPropagationChain (const TopoDS_Shape& theMainEdge)
-{
-  const SMESH_IndexedMapOfShape& aChain = _mapPropagationChains.FindFromKey(theMainEdge);
-  int i, nbEdges = aChain.Extent();
-  for (i = 1; i <= nbEdges; i++) {
-    TopoDS_Shape anEdge = aChain.FindKey(i);
-    SMESH_subMesh *subMesh = GetSubMesh(anEdge);
-    SMESHDS_SubMesh *subMeshDS = subMesh->GetSubMeshDS();
-    if (subMeshDS && subMeshDS->NbElements() > 0) {
-      subMesh->ComputeStateEngine(SMESH_subMesh::CLEAN);
-    }
-  }
-}
-
-//=============================================================================
-/*!
- *  RebuildPropagationChains
- *  Rebuild all existing propagation chains.
- *  Have to be used, if 1D hypothesis have been assigned/removed to/from any edge
- */
-//=============================================================================
-bool SMESH_Mesh::RebuildPropagationChains()
-{
-  bool ret = true;
-
-  // Clean all chains, because they can be not up-to-date
-  int i, nbChains = _mapPropagationChains.Extent();
-  for (i = 1; i <= nbChains; i++) {
-    TopoDS_Shape aMainEdge = _mapPropagationChains.FindKey(i);
-    CleanMeshOnPropagationChain(aMainEdge);
-    _mapPropagationChains.ChangeFromIndex(i).Clear();
-  }
-
-  // Build all chains
-  for (i = 1; i <= nbChains; i++) {
-    TopoDS_Shape aMainEdge = _mapPropagationChains.FindKey(i);
-    if (!BuildPropagationChain(aMainEdge))
-      ret = false;
-    CleanMeshOnPropagationChain(aMainEdge);
-  }
-
-  return ret;
-}
-
-//=============================================================================
-/*!
- *  RemovePropagationChain
- *  Have to be used, if Propagation hypothesis is removed from <theMainEdge>
- */
-//=============================================================================
-bool SMESH_Mesh::RemovePropagationChain (const TopoDS_Shape& theMainEdge)
-{
-  if (!_mapPropagationChains.Contains(theMainEdge))
-    return false;
-
-  // Clean mesh elements and nodes, built on the chain
-  CleanMeshOnPropagationChain(theMainEdge);
-
-  // Clean the chain
-  _mapPropagationChains.ChangeFromKey(theMainEdge).Clear();
-
-  // Remove the chain from the map
-  int i = _mapPropagationChains.FindIndex(theMainEdge);
-  if ( i == _mapPropagationChains.Extent() )
-    _mapPropagationChains.RemoveLast();
-  else {
-    TopoDS_Vertex anEmptyShape;
-    BRep_Builder BB;
-    BB.MakeVertex(anEmptyShape, gp_Pnt(0,0,0), 0.1);
-    SMESH_IndexedMapOfShape anEmptyMap;
-    _mapPropagationChains.Substitute(i, anEmptyShape, anEmptyMap);
-  }
-
-  return true;
-}
-
-//=============================================================================
-/*!
- *  BuildPropagationChain
- */
-//=============================================================================
-bool SMESH_Mesh::BuildPropagationChain (const TopoDS_Shape& theMainEdge)
-{
-  if (theMainEdge.ShapeType() != TopAbs_EDGE) return true;
-
-  // Add new chain, if there is no
-  if (!_mapPropagationChains.Contains(theMainEdge)) {
-    SMESH_IndexedMapOfShape aNewChain;
-    _mapPropagationChains.Add(theMainEdge, aNewChain);
-  }
-
-  // Check presence of 1D hypothesis to be propagated
-  const SMESH_Hypothesis* aMainHyp = IsLocal1DHypothesis(theMainEdge);
-  if (!aMainHyp) {
-    MESSAGE("Warning: There is no 1D hypothesis to propagate. Please, assign.");
-    return true;
-  }
-
-  // Edges, on which the 1D hypothesis will be propagated from <theMainEdge>
-  SMESH_IndexedMapOfShape& aChain = _mapPropagationChains.ChangeFromKey(theMainEdge);
-  if (aChain.Extent() > 0) {
-    CleanMeshOnPropagationChain(theMainEdge);
-    aChain.Clear();
-  }
-
-  // At first put <theMainEdge> in the chain
-  aChain.Add(theMainEdge);
-
-  // List of edges, added to chain on the previous cycle pass
-  TopTools_ListOfShape listPrevEdges;
-  listPrevEdges.Append(theMainEdge.Oriented( TopAbs_FORWARD ));
-
-//   5____4____3____4____5____6
-//   |    |    |    |    |    |
-//   |    |    |    |    |    |
-//   4____3____2____3____4____5
-//   |    |    |    |    |    |      Number in the each knot of
-//   |    |    |    |    |    |      grid indicates cycle pass,
-//   3____2____1____2____3____4      on which corresponding edge
-//   |    |    |    |    |    |      (perpendicular to the plane
-//   |    |    |    |    |    |      of view) will be found.
-//   2____1____0____1____2____3
-//   |    |    |    |    |    |
-//   |    |    |    |    |    |
-//   3____2____1____2____3____4
-
-  // Collect all edges pass by pass
-  while (listPrevEdges.Extent() > 0) {
-    // List of edges, added to chain on this cycle pass
-    TopTools_ListOfShape listCurEdges;
-
-    // Find the next portion of edges
-    TopTools_ListIteratorOfListOfShape itE (listPrevEdges);
-    for (; itE.More(); itE.Next()) {
-      TopoDS_Shape anE = itE.Value();
-
-      // Iterate on faces, having edge <anE>
-      TopTools_ListIteratorOfListOfShape itA (GetAncestors(anE));
-      for (; itA.More(); itA.Next()) {
-        TopoDS_Shape aW = itA.Value();
-
-        // There are objects of different type among the ancestors of edge
-        if (aW.ShapeType() == TopAbs_WIRE) {
-          TopoDS_Shape anOppE;
-
-          BRepTools_WireExplorer aWE (TopoDS::Wire(aW));
-          Standard_Integer nb = 1, found = 0;
-          TopTools_Array1OfShape anEdges (1,4);
-          for (; aWE.More(); aWE.Next(), nb++) {
-            if (nb > 4) {
-              found = 0;
-              break;
-            }
-            anEdges(nb) = aWE.Current();
-            if (!_mapAncestors.Contains(anEdges(nb))) {
-              MESSAGE("WIRE EXPLORER HAVE GIVEN AN INVALID EDGE !!!");
-              break;
-            }
-            if (anEdges(nb).IsSame(anE)) found = nb;
-          }
-
-          if (nb == 5 && found > 0) {
-            // Quadrangle face found, get an opposite edge
-            Standard_Integer opp = found + 2;
-            if (opp > 4) opp -= 4;
-            anOppE = anEdges(opp);
-
-            // add anOppE to aChain if ...
-            if (!aChain.Contains(anOppE)) { // ... anOppE is not in aChain
-              if (!IsLocal1DHypothesis(anOppE)) { // ... no other 1d hyp on anOppE
-                TopoDS_Shape aMainEdgeForOppEdge; // ... no other hyp is propagated to anOppE
-                if (!IsPropagatedHypothesis(anOppE, aMainEdgeForOppEdge))
-                {
-                  // Add found edge to the chain oriented so that to
-                  // have it co-directed with a forward MainEdge
-                  TopAbs_Orientation ori = anE.Orientation();
-                  if ( anEdges(opp).Orientation() == anEdges(found).Orientation() )
-                    ori = TopAbs::Reverse( ori );
-                  anOppE.Orientation( ori );
-                  aChain.Add(anOppE);
-                  listCurEdges.Append(anOppE);
-                }
-                else {
-                  // Collision!
-                  MESSAGE("Error: Collision between propagated hypotheses");
-                  CleanMeshOnPropagationChain(theMainEdge);
-                  aChain.Clear();
-                  return ( aMainHyp == IsLocal1DHypothesis(aMainEdgeForOppEdge) );
-                }
-              }
-            }
-          } // if (nb == 5 && found > 0)
-        } // if (aF.ShapeType() == TopAbs_WIRE)
-      } // for (; itF.More(); itF.Next())
-    } // for (; itE.More(); itE.Next())
-
-    listPrevEdges = listCurEdges;
-  } // while (listPrevEdges.Extent() > 0)
-
-  CleanMeshOnPropagationChain(theMainEdge);
-  return true;
-}
-
 //=======================================================================
 //function : GetAncestors
 //purpose  : return list of ancestors of theSubShape in the order
@@ -1581,6 +1305,7 @@ const TopTools_ListOfShape& SMESH_Mesh::GetAncestors(const TopoDS_Shape& theS) c
 //function : Dump
 //purpose  : dumps contents of mesh to stream [ debug purposes ]
 //=======================================================================
+
 ostream& SMESH_Mesh::Dump(ostream& save)
 {
   int clause = 0;
@@ -1594,7 +1319,7 @@ ostream& SMESH_Mesh::Dump(ostream& save)
   for ( int isQuadratic = 0; isQuadratic < 2; ++isQuadratic )
   {
     string orderStr = isQuadratic ? "quadratic" : "linear";
-    ElementOrder order  = isQuadratic ? ORDER_QUADRATIC : ORDER_LINEAR;
+    SMDSAbs_ElementOrder order  = isQuadratic ? ORDER_QUADRATIC : ORDER_LINEAR;
 
     save << ++clause << ") Total number of " << orderStr << " edges:\t" << NbEdges(order) << endl;
     save << ++clause << ") Total number of " << orderStr << " faces:\t" << NbFaces(order) << endl;
@@ -1653,6 +1378,7 @@ ostream& SMESH_Mesh::Dump(ostream& save)
 //function : GetElementType
 //purpose  : Returns type of mesh element with certain id
 //=======================================================================
+
 SMDSAbs_ElementType SMESH_Mesh::GetElementType( const int id, const bool iselem )
 {
   return _myMeshDS->GetElementType( id, iselem );
index d9538fe86d4ee26719b3e2fbcd0b9916c560dd31..3005f678e0b77f28527105a6905d2a5d9093f69c 100644 (file)
 #include "SMESH_SMESH.hxx"
 
 #include "SMESH_Hypothesis.hxx"
-//#include "SMESH_subMesh.hxx"
 
-#include "SMESHDS_Document.hxx"
 #include "SMESHDS_Mesh.hxx"
 #include "SMESHDS_Command.hxx"
 #include "SMDSAbs_ElementType.hxx"
 
-//#include "NMTTools_IndexedDataMapOfShapeIndexedMapOfShape.hxx"
-#include "SMESH_IndexedDataMapOfShapeIndexedMapOfShape.hxx"
-
 #include "Utils_SALOME_Exception.hxx"
 
-#include <TopExp.hxx>
-#include <TopExp_Explorer.hxx>
-#include <TopoDS.hxx>
-#include <TopoDS_Iterator.hxx>
-#include <TopoDS_Compound.hxx>
-#include <TopoDS_CompSolid.hxx>
-#include <TopoDS_Solid.hxx>
-#include <TopoDS_Shell.hxx>
-#include <TopoDS_Face.hxx>
-#include <TopoDS_Wire.hxx>
-#include <TopoDS_Edge.hxx>
-#include <TopoDS_Vertex.hxx>
 #include <TopoDS_Shape.hxx>
-#include <TopTools_IndexedMapOfShape.hxx>
 #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
 
-#include <vector>
 #include <list>
 #include <map>
 
-#include <string>
-#include <iostream>
-
 class SMESH_Gen;
+class SMESHDS_Document;
 class SMESH_Group;
 class TopTools_ListOfShape;
 class SMESH_subMesh;
 class SMESH_HypoFilter;
 class TopoDS_Solid;
 
-typedef SMESH_IndexedDataMapOfShapeIndexedMapOfShape IndexedMapOfChain;
-
 class SMESH_EXPORT SMESH_Mesh
 {
 public:
@@ -122,7 +99,7 @@ public:
   RemoveHypothesis(const TopoDS_Shape & aSubShape, int anHypId)
     throw(SALOME_Exception);
   
-  const list <const SMESHDS_Hypothesis * >&
+  const std::list <const SMESHDS_Hypothesis * >&
   GetHypothesisList(const TopoDS_Shape & aSubShape) const
     throw(SALOME_Exception);
 
@@ -130,12 +107,12 @@ public:
                                          const SMESH_HypoFilter& aFilter,
                                          const bool              andAncestors) const;
   
-  int GetHypotheses(const TopoDS_Shape &                aSubShape,
-                    const SMESH_HypoFilter&             aFilter,
-                    list <const SMESHDS_Hypothesis * >& aHypList,
-                    const bool                          andAncestors) const;
+  int GetHypotheses(const TopoDS_Shape &                     aSubShape,
+                    const SMESH_HypoFilter&                  aFilter,
+                    std::list <const SMESHDS_Hypothesis * >& aHypList,
+                    const bool                               andAncestors) const;
 
-  const list<SMESHDS_Command*> & GetLog() throw(SALOME_Exception);
+  const std::list<SMESHDS_Command*> & GetLog() throw(SALOME_Exception);
   
   void ClearLog() throw(SALOME_Exception);
   
@@ -148,34 +125,52 @@ public:
   SMESH_subMesh *GetSubMesh(const TopoDS_Shape & aSubShape)
     throw(SALOME_Exception);
   
-  SMESH_subMesh *GetSubMeshContaining(const TopoDS_Shape & aSubShape)
+  SMESH_subMesh *GetSubMeshContaining(const TopoDS_Shape & aSubShape) const
     throw(SALOME_Exception);
   
-  SMESH_subMesh *GetSubMeshContaining(const int aShapeID)
+  SMESH_subMesh *GetSubMeshContaining(const int aShapeID) const
     throw(SALOME_Exception);
-  
+  /*!
+   * \brief Return submeshes of groups containing the given subshape
+   */
+  std::list<SMESH_subMesh*> GetGroupSubMeshesContaining(const TopoDS_Shape & shape) const
+    throw(SALOME_Exception);
+  /*!
+   * \brief Say all submeshes that theChangedHyp has been modified
+   */
   void NotifySubMeshesHypothesisModification(const SMESH_Hypothesis* theChangedHyp);
-  // Say all submeshes that theChangedHyp has been modified
 
-  const list < SMESH_subMesh * >&
-  GetSubMeshUsingHypothesis(SMESHDS_Hypothesis * anHyp)
-    throw(SALOME_Exception);
-  
+  const std::list < SMESH_subMesh * >&
+  GetSubMeshUsingHypothesis(SMESHDS_Hypothesis * anHyp) throw(SALOME_Exception);
+  /*!
+   * \brief Return True if anHyp is used to mesh aSubShape
+   */
   bool IsUsedHypothesis(SMESHDS_Hypothesis *  anHyp,
                        const SMESH_subMesh * aSubMesh);
-  // Return True if anHyp is used to mesh aSubShape
-  
+  /*!
+   * \brief check if a hypothesis alowing notconform mesh is present
+   */
   bool IsNotConformAllowed() const;
-  // check if a hypothesis alowing notconform mesh is present
   
   bool IsMainShape(const TopoDS_Shape& theShape) const;
-
+  /*!
+   * \brief Return list of ancestors of theSubShape in the order
+   *        that lower dimention shapes come first
+   */
   const TopTools_ListOfShape& GetAncestors(const TopoDS_Shape& theSubShape) const;
-  // return list of ancestors of theSubShape in the order
-  // that lower dimention shapes come first.
 
-  /*! Check group names for duplications.
-   *  Consider maximum group name length stored in MED file.
+  void SetAutoColor(bool theAutoColor) throw(SALOME_Exception);
+
+  bool GetAutoColor() throw(SALOME_Exception);
+
+  /*!
+   * \brief Return data map of descendant to ancestor shapes
+   */
+  typedef TopTools_IndexedDataMapOfShapeListOfShape TAncestorMap;
+  const TAncestorMap& GetAncestorMap() const { return _mapAncestors; }
+  /*!
+   * \brief Check group names for duplications.
+   *  Consider maximum group name length stored in MED file
    */
   bool HasDuplicatedGroupNamesMED();
 
@@ -191,34 +186,25 @@ public:
   
   int NbNodes() throw(SALOME_Exception);
   
-  /*!
-   * ElementOrder points out entities of what order are requested
-   */
-  enum ElementOrder {
-    ORDER_ANY,          /*! entities of any order */
-    ORDER_LINEAR,       /*! entities of 1st order */
-    ORDER_QUADRATIC     /*! entities of 2nd order */
-  };
-
-  int NbEdges(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+  int NbEdges(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
   
-  int NbFaces(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+  int NbFaces(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
   
-  int NbTriangles(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+  int NbTriangles(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
   
-  int NbQuadrangles(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+  int NbQuadrangles(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
 
   int NbPolygons() throw(SALOME_Exception);
   
-  int NbVolumes(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+  int NbVolumes(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
   
-  int NbTetras(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+  int NbTetras(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
   
-  int NbHexas(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+  int NbHexas(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
   
-  int NbPyramids(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+  int NbPyramids(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
 
-  int NbPrisms(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+  int NbPrisms(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
   
   int NbPolyhedrons() throw(SALOME_Exception);
   
@@ -231,36 +217,16 @@ public:
                         int&                      theId,
                          const TopoDS_Shape&       theShape=TopoDS_Shape());
   
-  SMESH_Group* GetGroup (const int theGroupID);
+  typedef boost::shared_ptr< SMDS_Iterator<SMESH_Group*> > GroupIteratorPtr;
+  GroupIteratorPtr GetGroups() const;
   
-  list<int> GetGroupIds();
+  std::list<int> GetGroupIds() const;
   
-  void RemoveGroup (const int theGroupID);
-
-  // Propagation hypothesis management
-
-  const SMESH_Hypothesis* IsLocal1DHypothesis (const TopoDS_Shape& theEdge);
-  // Returns a local 1D hypothesis used for theEdge.
-
-  bool IsPropagationHypothesis (const TopoDS_Shape& theEdge);
-  // Returns true, if a local Propagation hypothesis is set directly on <theEdge>
+  SMESH_Group* GetGroup (const int theGroupID);
 
-  bool IsPropagatedHypothesis (const TopoDS_Shape& theEdge,
-                               TopoDS_Shape&       theMainEdge);
-  // Returns true, if a local 1D hypothesis is
-  // propagated on <theEdge> from some other edge.
-  // Returns through <theMainEdge> the edge, from
-  // which the 1D hypothesis is propagated on <theEdge>
+  void RemoveGroup (const int theGroupID);
 
-  bool IsReversedInChain (const TopoDS_Shape& theEdge,
-                          const TopoDS_Shape& theMainEdge);
-  // Returns true if theEdge should be reversed to be
-  // co-directed with theMainEdge
 
-  bool RebuildPropagationChains();
-  bool RemovePropagationChain (const TopoDS_Shape& theMainEdge);
-  bool BuildPropagationChain (const TopoDS_Shape& theMainEdge);
-  
   SMDSAbs_ElementType GetElementType( const int id, const bool iselem );
 
   //
@@ -268,9 +234,6 @@ public:
   ostream& Dump(ostream & save);
   
 private:
-  // Propagation hypothesis management
-  void CleanMeshOnPropagationChain(const TopoDS_Shape& theMainEdge);
-  //
   
 protected:
   int                        _id;           // id given by creator (unique within the creator instance)
@@ -278,17 +241,17 @@ protected:
   int                        _idDoc;        // id given by SMESHDS_Document
   int                        _groupId;      // id generator for group objects
   bool                       _isShapeToMesh;// set to true when a shape is given (only once)
-  list <SMESH_subMesh *>     _subMeshesUsingHypothesisList;
+  std::list <SMESH_subMesh*> _subMeshesUsingHypothesisList;
   SMESHDS_Document *         _myDocument;
   SMESHDS_Mesh *             _myMeshDS;
   map <int, SMESH_subMesh *> _mapSubMesh;
   map <int, SMESH_Group *>   _mapGroup;
   SMESH_Gen *                _gen;
+
+  bool                       _isAutoColor;
   
   TopTools_IndexedDataMapOfShapeListOfShape _mapAncestors;
 
-  IndexedMapOfChain _mapPropagationChains; // Propagation hypothesis management
-
 protected:
   SMESH_Mesh() {};
   SMESH_Mesh(const SMESH_Mesh&) {};
index 5ff5f6d17e89d721ad74302206086a462020963a..b858c372f1249ad88d97ff39fb0c5659a2cc07d2 100644 (file)
@@ -35,6 +35,7 @@
 #include "SMDS_FacePosition.hxx"
 #include "SMDS_SpacePosition.hxx"
 #include "SMDS_QuadraticFaceOfNodes.hxx"
+#include "SMDS_MeshGroup.hxx"
 
 #include "SMESHDS_Group.hxx"
 #include "SMESHDS_Mesh.hxx"
 #include "SMESH_ControlsDef.hxx"
 #include "SMESH_MesherHelper.hxx"
 #include "SMESH_OctreeNode.hxx"
+#include "SMESH_Group.hxx"
 
 #include "utilities.h"
 
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <math.h>
-#include <gp_Dir.hxx>
-#include <gp_Vec.hxx>
-#include <gp_Ax1.hxx>
-#include <gp_Trsf.hxx>
-#include <gp_Lin.hxx>
-#include <gp_XYZ.hxx>
-#include <gp_XY.hxx>
-#include <gp.hxx>
-#include <gp_Pln.hxx>
 #include <BRep_Tool.hxx>
-#include <Geom_Curve.hxx>
-#include <Geom_Surface.hxx>
-#include <Geom2d_Curve.hxx>
+#include <ElCLib.hxx>
 #include <Extrema_GenExtPS.hxx>
 #include <Extrema_POnSurf.hxx>
+#include <Geom2d_Curve.hxx>
 #include <GeomAdaptor_Surface.hxx>
-#include <ElCLib.hxx>
+#include <Geom_Curve.hxx>
+#include <Geom_Surface.hxx>
 #include <TColStd_ListOfInteger.hxx>
+#include <TopExp.hxx>
+#include <TopExp_Explorer.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
+#include <TopTools_ListOfShape.hxx>
+#include <TopoDS.hxx>
 #include <TopoDS_Face.hxx>
+#include <gp.hxx>
+#include <gp_Ax1.hxx>
+#include <gp_Dir.hxx>
+#include <gp_Lin.hxx>
+#include <gp_Pln.hxx>
+#include <gp_Trsf.hxx>
+#include <gp_Vec.hxx>
+#include <gp_XY.hxx>
+#include <gp_XYZ.hxx>
+#include <math.h>
 
 #include <map>
 #include <set>
@@ -79,11 +84,8 @@ using namespace SMESH::Controls;
 
 typedef map<const SMDS_MeshElement*, list<const SMDS_MeshNode*> >    TElemOfNodeListMap;
 typedef map<const SMDS_MeshElement*, list<const SMDS_MeshElement*> > TElemOfElemListMap;
-typedef map<const SMDS_MeshNode*, list<const SMDS_MeshNode*> >       TNodeOfNodeListMap;
-typedef TNodeOfNodeListMap::iterator                                 TNodeOfNodeListMapItr;
 //typedef map<const SMDS_MeshNode*, vector<const SMDS_MeshNode*> >     TNodeOfNodeVecMap;
 //typedef TNodeOfNodeVecMap::iterator                                  TNodeOfNodeVecMapItr;
-typedef map<const SMDS_MeshElement*, vector<TNodeOfNodeListMapItr> > TElemOfVecOfNnlmiMap;
 //typedef map<const SMDS_MeshElement*, vector<TNodeOfNodeVecMapItr> >  TElemOfVecOfMapNodesMap;
 
 struct TNodeXYZ : public gp_XYZ {
@@ -92,9 +94,12 @@ struct TNodeXYZ : public gp_XYZ {
 
 typedef pair< const SMDS_MeshNode*, const SMDS_MeshNode* > NLink;
 
+//=======================================================================
 /*!
  * \brief A sorted pair of nodes
  */
+//=======================================================================
+
 struct TLink: public NLink
 {
   TLink(const SMDS_MeshNode* n1, const SMDS_MeshNode* n2 ):NLink( n1, n2 )
@@ -108,8 +113,8 @@ struct TLink: public NLink
 //purpose  :
 //=======================================================================
 
-SMESH_MeshEditor::SMESH_MeshEditor( SMESH_Mesh* theMesh ):
-myMesh( theMesh )
+SMESH_MeshEditor::SMESH_MeshEditor( SMESH_Mesh* theMesh )
+  :myMesh( theMesh ) // theMesh may be NULL
 {
 }
 
@@ -269,18 +274,26 @@ bool SMESH_MeshEditor::Remove (const list< int >& theIDs,
     if ( !elem )
       continue;
 
-    // Find sub-meshes to notify about modification
-    SMDS_ElemIteratorPtr nodeIt = elem->nodesIterator();
-    while ( nodeIt->more() ) {
-      const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-      const SMDS_PositionPtr& aPosition = node->GetPosition();
-      if ( aPosition.get() ) {
-        if ( int aShapeID = aPosition->GetShapeId() ) {
+    // Notify VERTEX sub-meshes about modification
+    if ( isNodes ) {
+      const SMDS_MeshNode* node = cast2Node( elem );
+      if ( node->GetPosition()->GetTypeOfPosition() == SMDS_TOP_VERTEX )
+        if ( int aShapeID = node->GetPosition()->GetShapeId() )
           if ( SMESH_subMesh * sm = GetMesh()->GetSubMeshContaining( aShapeID ) )
             smmap.insert( sm );
-        }
-      }
     }
+    // Find sub-meshes to notify about modification
+//     SMDS_ElemIteratorPtr nodeIt = elem->nodesIterator();
+//     while ( nodeIt->more() ) {
+//       const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
+//       const SMDS_PositionPtr& aPosition = node->GetPosition();
+//       if ( aPosition.get() ) {
+//         if ( int aShapeID = aPosition->GetShapeId() ) {
+//           if ( SMESH_subMesh * sm = GetMesh()->GetSubMeshContaining( aShapeID ) )
+//             smmap.insert( sm );
+//         }
+//       }
+//     }
 
     // Do remove
     if ( isNodes )
@@ -296,9 +309,9 @@ bool SMESH_MeshEditor::Remove (const list< int >& theIDs,
       (*smIt)->ComputeStateEngine( SMESH_subMesh::MESH_ENTITY_REMOVED );
   }
 
-  // Check if the whole mesh becomes empty
-  if ( SMESH_subMesh * sm = GetMesh()->GetSubMeshContaining( 1 ) )
-    sm->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
+//   // Check if the whole mesh becomes empty
+//   if ( SMESH_subMesh * sm = GetMesh()->GetSubMeshContaining( 1 ) )
+//     sm->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
 
   return true;
 }
@@ -1161,7 +1174,7 @@ void SMESH_MeshEditor::AddToSameGroups (const SMDS_MeshElement* elemToAdd,
   set<SMESHDS_GroupBase*>::const_iterator grIt = groups.begin();
   for ( ; grIt != groups.end(); grIt++ ) {
     SMESHDS_Group* group = dynamic_cast<SMESHDS_Group*>( *grIt );
-    if ( group && group->SMDSGroup().Contains( elemInGroups ))
+    if ( group && group->Contains( elemInGroups ))
       group->SMDSGroup().Add( elemToAdd );
   }
 }
@@ -2731,26 +2744,28 @@ static bool isReverse(vector<const SMDS_MeshNode*> prevNodes,
 }
 
 //=======================================================================
-//function : sweepElement
-//purpose  :
+/*!
+ * \brief Create elements by sweeping an element
+ * \param elem - element to sweep
+ * \param newNodesItVec - nodes generated from each node of the element
+ * \param newElems - generated elements
+ * \param nbSteps - number of sweeping steps
+ * \param srcElements - to append elem for each generated element
+ */
 //=======================================================================
 
-static void sweepElement(SMESHDS_Mesh*                         aMesh,
-                         const SMDS_MeshElement*               elem,
-                         const vector<TNodeOfNodeListMapItr> & newNodesItVec,
-                         list<const SMDS_MeshElement*>&        newElems,
-                         const int nbSteps,
-                         SMESH_SequenceOfElemPtr& myLastCreatedElems)
+void SMESH_MeshEditor::sweepElement(const SMDS_MeshElement*               elem,
+                                    const vector<TNodeOfNodeListMapItr> & newNodesItVec,
+                                    list<const SMDS_MeshElement*>&        newElems,
+                                    const int                             nbSteps,
+                                    SMESH_SequenceOfElemPtr&              srcElements)
 {
+  SMESHDS_Mesh* aMesh = GetMeshDS();
+
   // Loop on elem nodes:
   // find new nodes and detect same nodes indices
   int nbNodes = elem->NbNodes();
-  //---PR
-  //list<const SMDS_MeshNode*>::const_iterator itNN[ nbNodes ];
-  vector<list<const SMDS_MeshNode*>::const_iterator> itNN( nbNodes );
-  itNN.reserve(nbNodes);
-  //---PR
-  //const SMDS_MeshNode* prevNod[ nbNodes ], *nextNod[ nbNodes ];
+  vector < list< const SMDS_MeshNode* >::const_iterator > itNN( nbNodes );
   vector<const SMDS_MeshNode*> prevNod( nbNodes );
   vector<const SMDS_MeshNode*> nextNod( nbNodes );
   vector<const SMDS_MeshNode*> midlNod( nbNodes );
@@ -2826,8 +2841,7 @@ static void sweepElement(SMESHDS_Mesh*                         aMesh,
   }
 
   // make new elements
-  int iStep;//, nbSteps = newNodesItVec[ 0 ]->second.size();
-  for (iStep = 0; iStep < nbSteps; iStep++ ) {
+  for (int iStep = 0; iStep < nbSteps; iStep++ ) {
     // get next nodes
     for ( iNode = 0; iNode < nbNodes; iNode++ ) {
       if(issimple[iNode]) {
@@ -3043,6 +3057,7 @@ static void sweepElement(SMESHDS_Mesh*                         aMesh,
     if ( aNewElem ) {
       newElems.push_back( aNewElem );
       myLastCreatedElems.Append(aNewElem);
+      srcElements.Append( elem );
     }
 
     // set new prev nodes
@@ -3053,19 +3068,26 @@ static void sweepElement(SMESHDS_Mesh*                         aMesh,
 }
 
 //=======================================================================
-//function : makeWalls
-//purpose  : create 1D and 2D elements around swept elements
+/*!
+ * \brief Create 1D and 2D elements around swept elements
+ * \param mapNewNodes - source nodes and ones generated from them
+ * \param newElemsMap - source elements and ones generated from them
+ * \param elemNewNodesMap - nodes generated from each node of each element
+ * \param elemSet - all swept elements
+ * \param nbSteps - number of sweeping steps
+ * \param srcElements - to append elem for each generated element
+ */
 //=======================================================================
 
-static void makeWalls (SMESHDS_Mesh*            aMesh,
-                       TNodeOfNodeListMap &     mapNewNodes,
-                       TElemOfElemListMap &     newElemsMap,
-                       TElemOfVecOfNnlmiMap &   elemNewNodesMap,
-                       TIDSortedElemSet&        elemSet,
-                       const int                nbSteps,
-                       SMESH_SequenceOfElemPtr& myLastCreatedElems)
+void SMESH_MeshEditor::makeWalls (TNodeOfNodeListMap &     mapNewNodes,
+                                  TElemOfElemListMap &     newElemsMap,
+                                  TElemOfVecOfNnlmiMap &   elemNewNodesMap,
+                                  TIDSortedElemSet&        elemSet,
+                                  const int                nbSteps,
+                                  SMESH_SequenceOfElemPtr& srcElements)
 {
   ASSERT( newElemsMap.size() == elemNewNodesMap.size() );
+  SMESHDS_Mesh* aMesh = GetMeshDS();
 
   // Find nodes belonging to only one initial element - sweep them to get edges.
 
@@ -3093,7 +3115,7 @@ static void makeWalls (SMESHDS_Mesh*            aMesh,
       if(!NotCreateEdge) {
         vector<TNodeOfNodeListMapItr> newNodesItVec( 1, nList );
         list<const SMDS_MeshElement*> newEdges;
-        sweepElement( aMesh, node, newNodesItVec, newEdges, nbSteps, myLastCreatedElems );
+        sweepElement( node, newNodesItVec, newEdges, nbSteps, srcElements );
       }
     }
   }
@@ -3111,17 +3133,21 @@ static void makeWalls (SMESHDS_Mesh*            aMesh,
       // create a ceiling edge
       if (!elem->IsQuadratic()) {
         if ( !aMesh->FindEdge( vecNewNodes[ 0 ]->second.back(),
-                               vecNewNodes[ 1 ]->second.back()))
+                               vecNewNodes[ 1 ]->second.back())) {
           myLastCreatedElems.Append(aMesh->AddEdge(vecNewNodes[ 0 ]->second.back(),
                                                    vecNewNodes[ 1 ]->second.back()));
+          srcElements.Append( myLastCreatedElems.Last() );
+        }
       }
       else {
         if ( !aMesh->FindEdge( vecNewNodes[ 0 ]->second.back(),
                                vecNewNodes[ 1 ]->second.back(),
-                               vecNewNodes[ 2 ]->second.back()))
+                               vecNewNodes[ 2 ]->second.back())) {
           myLastCreatedElems.Append(aMesh->AddEdge(vecNewNodes[ 0 ]->second.back(),
                                                    vecNewNodes[ 1 ]->second.back(),
                                                    vecNewNodes[ 2 ]->second.back()));
+          srcElements.Append( myLastCreatedElems.Last() );
+        }
       }
     }
     if ( elem->GetType() != SMDSAbs_Face )
@@ -3149,12 +3175,14 @@ static void makeWalls (SMESHDS_Mesh*            aMesh,
           hasFreeLinks = true;
           // make an edge and a ceiling for a new edge
           if ( !aMesh->FindEdge( n1, n2 )) {
-            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2 ));
+            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2 )); // free link edge
+            srcElements.Append( myLastCreatedElems.Last() );
           }
           n1 = vecNewNodes[ iNode ]->second.back();
           n2 = vecNewNodes[ iNext ]->second.back();
           if ( !aMesh->FindEdge( n1, n2 )) {
-            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2 ));
+            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2 )); // ceiling edge
+            srcElements.Append( myLastCreatedElems.Last() );
           }
         }
       }
@@ -3173,13 +3201,15 @@ static void makeWalls (SMESHDS_Mesh*            aMesh,
           // find medium node
           const SMDS_MeshNode* n3 = vecNewNodes[ iNode+nbn ]->first;
           if ( !aMesh->FindEdge( n1, n2, n3 )) {
-            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2, n3 ));
+            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2, n3 )); // free link edge
+            srcElements.Append( myLastCreatedElems.Last() );
           }
           n1 = vecNewNodes[ iNode ]->second.back();
           n2 = vecNewNodes[ iNext ]->second.back();
           n3 = vecNewNodes[ iNode+nbn ]->second.back();
           if ( !aMesh->FindEdge( n1, n2, n3 )) {
-            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2, n3 ));
+            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2, n3 )); // ceiling edge
+            srcElements.Append( myLastCreatedElems.Last() );
           }
         }
       }
@@ -3192,37 +3222,62 @@ static void makeWalls (SMESHDS_Mesh*            aMesh,
 
     if ( hasFreeLinks )  {
       list<const SMDS_MeshElement*> & newVolumes = itElem->second;
-      int iStep; //, nbSteps = vecNewNodes[0]->second.size();
       int iVol, volNb, nbVolumesByStep = newVolumes.size() / nbSteps;
 
-      set<const SMDS_MeshNode*> initNodeSet, faceNodeSet;
-      for ( iNode = 0; iNode < nbNodes; iNode++ )
+      set<const SMDS_MeshNode*> initNodeSet, topNodeSet, faceNodeSet;
+      for ( iNode = 0; iNode < nbNodes; iNode++ ) {
         initNodeSet.insert( vecNewNodes[ iNode ]->first );
-
+        topNodeSet .insert( vecNewNodes[ iNode ]->second.back() );
+      }
       for ( volNb = 0; volNb < nbVolumesByStep; volNb++ ) {
         list<const SMDS_MeshElement*>::iterator v = newVolumes.begin();
         iVol = 0;
         while ( iVol++ < volNb ) v++;
-        // find indices of free faces of a volume
-        list< int > fInd;
+        // find indices of free faces of a volume and their source edges
+        list< int > freeInd;
+        list< const SMDS_MeshElement* > srcEdges; // source edges of free faces
         SMDS_VolumeTool vTool( *v );
         int iF, nbF = vTool.NbFaces();
         for ( iF = 0; iF < nbF; iF ++ ) {
           if (vTool.IsFreeFace( iF ) &&
               vTool.GetFaceNodes( iF, faceNodeSet ) &&
               initNodeSet != faceNodeSet) // except an initial face
-            fInd.push_back( iF );
+          {
+            if ( nbSteps == 1 && faceNodeSet == topNodeSet )
+              continue;
+            freeInd.push_back( iF );
+            // find source edge of a free face iF
+            vector<const SMDS_MeshNode*> commonNodes; // shared by the initial and free faces
+            commonNodes.resize( initNodeSet.size(), NULL ); // avoid spoiling memory
+            std::set_intersection( faceNodeSet.begin(), faceNodeSet.end(),
+                                   initNodeSet.begin(), initNodeSet.end(),
+                                   commonNodes.begin());
+            if ( (*v)->IsQuadratic() )
+              srcEdges.push_back(aMesh->FindEdge (commonNodes[0],commonNodes[1],commonNodes[2]));
+            else
+              srcEdges.push_back(aMesh->FindEdge (commonNodes[0],commonNodes[1]));
+#ifdef _DEBUG_
+            if ( !srcEdges.back() )
+            {
+              cout << "SMESH_MeshEditor::makeWalls(), no source edge found for a free face #"
+                   << iF << " of volume #" << vTool.ID() << endl;
+            }
+#endif
+          }
         }
-        if ( fInd.empty() )
+        if ( freeInd.empty() )
           continue;
 
-        // create faces for all steps
-        // if such a face has been already created by sweep of edge, assure that its orientation is OK
-        for ( iStep = 0; iStep < nbSteps; iStep++ )  {
+        // create faces for all steps;
+        // if such a face has been already created by sweep of edge,
+        // assure that its orientation is OK
+        for ( int iStep = 0; iStep < nbSteps; iStep++ )  {
           vTool.Set( *v );
           vTool.SetExternalNormal();
-          list< int >::iterator ind = fInd.begin();
-          for ( ; ind != fInd.end(); ind++ ) {
+          list< int >::iterator ind = freeInd.begin();
+          list< const SMDS_MeshElement* >::iterator srcEdge = srcEdges.begin();
+          for ( ; ind != freeInd.end(); ++ind, ++srcEdge ) // loop on free faces
+          {
             const SMDS_MeshNode** nodes = vTool.GetFaceNodes( *ind );
             int nbn = vTool.NbFaceNodes( *ind );
             switch ( nbn ) {
@@ -3272,7 +3327,11 @@ static void makeWalls (SMESHDS_Mesh*            aMesh,
                   aMesh->ChangeElementNodes( f, nodes, nbn );
               }
             }
-          }
+            while ( srcElements.Length() < myLastCreatedElems.Length() )
+              srcElements.Append( *srcEdge );
+
+          }  // loop on free faces
+
           // go to the next volume
           iVol = 0;
           while ( iVol++ < nbVolumesByStep ) v++;
@@ -3280,7 +3339,7 @@ static void makeWalls (SMESHDS_Mesh*            aMesh,
       }
     } // sweep free links into faces
 
-    // make a ceiling face with a normal external to a volume
+    // Make a ceiling face with a normal external to a volume
 
     SMDS_VolumeTool lastVol( itElem->second.back() );
 
@@ -3324,6 +3383,9 @@ static void makeWalls (SMESHDS_Mesh*            aMesh,
             myLastCreatedElems.Append(aMesh->AddPolygonalFace(polygon_nodes));
         }
       } // switch
+
+      while ( srcElements.Length() < myLastCreatedElems.Length() )
+        srcElements.Append( myLastCreatedElems.Last() );
     }
   } // loop on swept elements
 }
@@ -3333,16 +3395,21 @@ static void makeWalls (SMESHDS_Mesh*            aMesh,
 //purpose  :
 //=======================================================================
 
-void SMESH_MeshEditor::RotationSweep(TIDSortedElemSet & theElems,
-                                     const gp_Ax1&      theAxis,
-                                     const double       theAngle,
-                                     const int          theNbSteps,
-                                     const double       theTol,
-                                     const bool         theMakeWalls)
+SMESH_MeshEditor::PGroupIDs
+SMESH_MeshEditor::RotationSweep(TIDSortedElemSet & theElems,
+                                const gp_Ax1&      theAxis,
+                                const double       theAngle,
+                                const int          theNbSteps,
+                                const double       theTol,
+                                const bool         theMakeGroups,
+                                const bool         theMakeWalls)
 {
   myLastCreatedElems.Clear();
   myLastCreatedNodes.Clear();
 
+  // source elements for each generated one
+  SMESH_SequenceOfElemPtr srcElems, srcNodes;
+
   MESSAGE( "RotationSweep()");
   gp_Trsf aTrsf;
   aTrsf.SetRotation( theAxis, theAngle );
@@ -3369,11 +3436,10 @@ void SMESH_MeshEditor::RotationSweep(TIDSortedElemSet & theElems,
 
     // loop on elem nodes
     SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() ) {
-
+    while ( itN->more() )
+    {
       // check if a node has been already sweeped
-      const SMDS_MeshNode* node =
-        static_cast<const SMDS_MeshNode*>( itN->next() );
+      const SMDS_MeshNode* node = cast2Node( itN->next() );
       TNodeOfNodeListMapItr nIt = mapNewNodes.find( node );
       if ( nIt == mapNewNodes.end() ) {
         nIt = mapNewNodes.insert( make_pair( node, list<const SMDS_MeshNode*>() )).first;
@@ -3393,6 +3459,7 @@ void SMESH_MeshEditor::RotationSweep(TIDSortedElemSet & theElems,
               //aTrsf.Transforms( coord[0], coord[1], coord[2] );
               newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
               myLastCreatedNodes.Append(newNode);
+              srcNodes.Append( node );
               listNewNodes.push_back( newNode );
               aTrsf2.Transforms( coord[0], coord[1], coord[2] );
               //aTrsf.Transforms( coord[0], coord[1], coord[2] );
@@ -3402,6 +3469,7 @@ void SMESH_MeshEditor::RotationSweep(TIDSortedElemSet & theElems,
             }
             newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
             myLastCreatedNodes.Append(newNode);
+            srcNodes.Append( node );
           }
           listNewNodes.push_back( newNode );
         }
@@ -3423,9 +3491,11 @@ void SMESH_MeshEditor::RotationSweep(TIDSortedElemSet & theElems,
               newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
               myLastCreatedNodes.Append(newNode);
               listNewNodes.push_back( newNode );
+              srcNodes.Append( node );
               aTrsf2.Transforms( coord[0], coord[1], coord[2] );
               newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
               myLastCreatedNodes.Append(newNode);
+              srcNodes.Append( node );
               listNewNodes.push_back( newNode );
             }
           }
@@ -3434,12 +3504,17 @@ void SMESH_MeshEditor::RotationSweep(TIDSortedElemSet & theElems,
       newNodesItVec.push_back( nIt );
     }
     // make new elements
-    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem], theNbSteps, myLastCreatedElems );
+    sweepElement( elem, newNodesItVec, newElemsMap[elem], theNbSteps, srcElems );
   }
 
   if ( theMakeWalls )
-    makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes,
-               theElems, theNbSteps, myLastCreatedElems );
+    makeWalls( mapNewNodes, newElemsMap, mapElemNewNodes, theElems, theNbSteps, srcElems );
+  
+  PGroupIDs newGroupIDs;
+  if ( theMakeGroups )
+    newGroupIDs = generateGroups( srcNodes, srcElems, "rotated");
+
+  return newGroupIDs;
 }
 
 
@@ -3492,12 +3567,14 @@ const SMDS_MeshNode* SMESH_MeshEditor::CreateNode(const double x,
 //purpose  :
 //=======================================================================
 
-void SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet &  theElems,
-                                       const gp_Vec&       theStep,
-                                       const int           theNbSteps,
-                                       TElemOfElemListMap& newElemsMap,
-                                       const int           theFlags,
-                                       const double        theTolerance)
+SMESH_MeshEditor::PGroupIDs
+SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet &  theElems,
+                                  const gp_Vec&       theStep,
+                                  const int           theNbSteps,
+                                  TElemOfElemListMap& newElemsMap,
+                                  const bool          theMakeGroups,
+                                  const int           theFlags,
+                                  const double        theTolerance)
 {
   ExtrusParam aParams;
   aParams.myDir = gp_Dir(theStep);
@@ -3507,8 +3584,8 @@ void SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet &  theElems,
   for(i=1; i<=theNbSteps; i++)
     aParams.mySteps->Append(theStep.Magnitude());
 
-  ExtrusionSweep(theElems,aParams,newElemsMap,theFlags,theTolerance);
-
+  return
+    ExtrusionSweep(theElems,aParams,newElemsMap,theMakeGroups,theFlags,theTolerance);
 }
 
 
@@ -3517,15 +3594,20 @@ void SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet &  theElems,
 //purpose  :
 //=======================================================================
 
-void SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet &  theElems,
-                                       ExtrusParam&        theParams,
-                                       TElemOfElemListMap& newElemsMap,
-                                       const int           theFlags,
-                                       const double        theTolerance)
+SMESH_MeshEditor::PGroupIDs
+SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet &  theElems,
+                                  ExtrusParam&        theParams,
+                                  TElemOfElemListMap& newElemsMap,
+                                  const bool          theMakeGroups,
+                                  const int           theFlags,
+                                  const double        theTolerance)
 {
   myLastCreatedElems.Clear();
   myLastCreatedNodes.Clear();
 
+  // source elements for each generated one
+  SMESH_SequenceOfElemPtr srcElems, srcNodes;
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
   int nbsteps = theParams.mySteps->Length();
@@ -3549,11 +3631,10 @@ void SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet &  theElems,
 
     // loop on elem nodes
     SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() ) {
-
+    while ( itN->more() )
+    {
       // check if a node has been already sweeped
-      const SMDS_MeshNode* node =
-        static_cast<const SMDS_MeshNode*>( itN->next() );
+      const SMDS_MeshNode* node = cast2Node( itN->next() );
       TNodeOfNodeListMap::iterator nIt = mapNewNodes.find( node );
       //TNodeOfNodeVecMap::iterator nIt = mapNewNodes.find( node );
       if ( nIt == mapNewNodes.end() ) {
@@ -3580,6 +3661,7 @@ void SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet &  theElems,
             else {
               const SMDS_MeshNode * newNode = aMesh->AddNode(x, y, z);
               myLastCreatedNodes.Append(newNode);
+              srcNodes.Append( node );
               listNewNodes.push_back( newNode );
             }
           }
@@ -3596,6 +3678,7 @@ void SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet &  theElems,
           else {
             const SMDS_MeshNode * newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
             myLastCreatedNodes.Append(newNode);
+            srcNodes.Append( node );
             listNewNodes.push_back( newNode );
             //vecNewNodes[i]=newNode;
           }
@@ -3621,6 +3704,7 @@ void SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet &  theElems,
               else {
                 const SMDS_MeshNode * newNode = aMesh->AddNode(x, y, z);
                 myLastCreatedNodes.Append(newNode);
+                srcNodes.Append( node );
                 listNewNodes.push_back( newNode );
               }
               coord[0] = coord[0] + theParams.myDir.X()*theParams.mySteps->Value(i+1);
@@ -3634,6 +3718,7 @@ void SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet &  theElems,
               else {
                 const SMDS_MeshNode * newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
                 myLastCreatedNodes.Append(newNode);
+                srcNodes.Append( node );
                 listNewNodes.push_back( newNode );
               }
             }
@@ -3643,12 +3728,17 @@ void SMESH_MeshEditor::ExtrusionSweep (TIDSortedElemSet &  theElems,
       newNodesItVec.push_back( nIt );
     }
     // make new elements
-    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem], nbsteps, myLastCreatedElems );
+    sweepElement( elem, newNodesItVec, newElemsMap[elem], nbsteps, srcElems );
   }
 
   if( theFlags & EXTRUSION_FLAG_BOUNDARY ) {
-    makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems, nbsteps, myLastCreatedElems );
+    makeWalls( mapNewNodes, newElemsMap, mapElemNewNodes, theElems, nbsteps, srcElems );
   }
+  PGroupIDs newGroupIDs;
+  if ( theMakeGroups )
+    newGroupIDs = generateGroups( srcNodes, srcElems, "extruded");
+
+  return newGroupIDs;
 }
 
 
@@ -3707,12 +3797,15 @@ SMESH_MeshEditor::Extrusion_Error
                                         const bool           theHasAngles,
                                         list<double>&        theAngles,
                                         const bool           theHasRefPoint,
-                                        const gp_Pnt&        theRefPoint)
+                                        const gp_Pnt&        theRefPoint,
+                                         const bool           theMakeGroups)
 {
   myLastCreatedElems.Clear();
   myLastCreatedNodes.Clear();
 
-  MESSAGE("SMESH_MeshEditor::ExtrusionAlongTrack")
+  // source elements for each generated one
+  SMESH_SequenceOfElemPtr srcElems, srcNodes;
+
   int j, aNbTP, aNbE, aNb;
   double aT1, aT2, aT, aAngle, aX, aY, aZ;
   std::list<double> aPrms;
@@ -3895,9 +3988,11 @@ SMESH_MeshEditor::Extrusion_Error
     newNodesItVec.reserve( elem->NbNodes() );
 
     // loop on elem nodes
+    int nodeIndex = -1;
     SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() ) {
-
+    while ( itN->more() )
+    {
+      ++nodeIndex;
       // check if a node has been already processed
       const SMDS_MeshNode* node =
        static_cast<const SMDS_MeshNode*>( itN->next() );
@@ -3966,6 +4061,7 @@ SMESH_MeshEditor::Extrusion_Error
             double z = ( aPN1.Z() + aPN0.Z() )/2.;
             const SMDS_MeshNode* newNode = aMesh->AddNode(x,y,z);
             myLastCreatedNodes.Append(newNode);
+            srcNodes.Append( node );
             listNewNodes.push_back( newNode );
           }
          aX = aPN1.X();
@@ -3973,6 +4069,7 @@ SMESH_MeshEditor::Extrusion_Error
          aZ = aPN1.Z();
          const SMDS_MeshNode* newNode = aMesh->AddNode( aX, aY, aZ );
           myLastCreatedNodes.Append(newNode);
+          srcNodes.Append( node );
          listNewNodes.push_back( newNode );
 
          aPN0 = aPN1;
@@ -3998,6 +4095,7 @@ SMESH_MeshEditor::Extrusion_Error
               double y = ( N->Y() + P.Y() )/2.;
               double z = ( N->Z() + P.Z() )/2.;
               const SMDS_MeshNode* newN = aMesh->AddNode(x,y,z);
+              srcNodes.Append( node );
               myLastCreatedNodes.Append(newN);
               aNodes[2*i] = newN;
               aNodes[2*i+1] = N;
@@ -4016,12 +4114,13 @@ SMESH_MeshEditor::Extrusion_Error
     // make new elements
     //sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem],
     //              newNodesItVec[0]->second.size(), myLastCreatedElems );
-    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem],
-                  aNbTP-1, myLastCreatedElems );
+    sweepElement( elem, newNodesItVec, newElemsMap[elem], aNbTP-1, srcElems );
   }
 
-  makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElements,
-             aNbTP-1, myLastCreatedElems );
+  makeWalls( mapNewNodes, newElemsMap, mapElemNewNodes, theElements, aNbTP-1, srcElems );
+
+  if ( theMakeGroups )
+    generateGroups( srcNodes, srcElems, "extruded");
 
   return EXTR_OK;
 }
@@ -4031,24 +4130,43 @@ SMESH_MeshEditor::Extrusion_Error
 //purpose  :
 //=======================================================================
 
-void SMESH_MeshEditor::Transform (TIDSortedElemSet & theElems,
-                                  const gp_Trsf&     theTrsf,
-                                  const bool         theCopy)
+SMESH_MeshEditor::PGroupIDs
+SMESH_MeshEditor::Transform (TIDSortedElemSet & theElems,
+                             const gp_Trsf&     theTrsf,
+                             const bool         theCopy,
+                             const bool         theMakeGroups,
+                             SMESH_Mesh*        theTargetMesh)
 {
   myLastCreatedElems.Clear();
   myLastCreatedNodes.Clear();
 
-  bool needReverse;
+  bool needReverse = false;
+  string groupPostfix;
   switch ( theTrsf.Form() ) {
   case gp_PntMirror:
+  case gp_Ax1Mirror:
   case gp_Ax2Mirror:
     needReverse = true;
+    groupPostfix = "mirrored";
+    break;
+  case gp_Rotation:
+    groupPostfix = "rotated";
+    break;
+  case gp_Translation:
+    groupPostfix = "translated";
+    break;
+  case gp_Scale:
+    groupPostfix = "scaled";
     break;
   default:
     needReverse = false;
+    groupPostfix = "transformed";
   }
 
-  SMESHDS_Mesh* aMesh = GetMeshDS();
+  SMESH_MeshEditor targetMeshEditor( theTargetMesh );
+  SMESHDS_Mesh* aTgtMesh = theTargetMesh ? theTargetMesh->GetMeshDS() : 0;
+  SMESHDS_Mesh* aMesh    = GetMeshDS();
+  
 
   // map old node to new one
   TNodeNodeMap nodeMap;
@@ -4057,6 +4175,9 @@ void SMESH_MeshEditor::Transform (TIDSortedElemSet & theElems,
   // nodes mirrored but are not in theElems are to be reversed
   TIDSortedElemSet inverseElemSet;
 
+  // source elements for each generated one
+  SMESH_SequenceOfElemPtr srcElems, srcNodes;
+
   // loop on theElems
   TIDSortedElemSet::iterator itElem;
   for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
@@ -4069,9 +4190,10 @@ void SMESH_MeshEditor::Transform (TIDSortedElemSet & theElems,
     while ( itN->more() ) {
 
       // check if a node has been already transformed
-      const SMDS_MeshNode* node =
-        static_cast<const SMDS_MeshNode*>( itN->next() );
-      if (nodeMap.find( node ) != nodeMap.end() )
+      const SMDS_MeshNode* node = cast2Node( itN->next() );
+      pair<TNodeNodeMap::iterator,bool> n2n_isnew =
+        nodeMap.insert( make_pair ( node, node ));
+      if ( !n2n_isnew.second )
         continue;
 
       double coord[3];
@@ -4079,10 +4201,17 @@ void SMESH_MeshEditor::Transform (TIDSortedElemSet & theElems,
       coord[1] = node->Y();
       coord[2] = node->Z();
       theTrsf.Transforms( coord[0], coord[1], coord[2] );
-      const SMDS_MeshNode * newNode = node;
-      if ( theCopy ) {
-        newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+      if ( theTargetMesh ) {
+        const SMDS_MeshNode * newNode = aTgtMesh->AddNode( coord[0], coord[1], coord[2] );
+        n2n_isnew.first->second = newNode;
         myLastCreatedNodes.Append(newNode);
+        srcNodes.Append( node );
+      }
+      else if ( theCopy ) {
+        const SMDS_MeshNode * newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+        n2n_isnew.first->second = newNode;
+        myLastCreatedNodes.Append(newNode);
+        srcNodes.Append( node );
       }
       else {
         aMesh->MoveNode( node, coord[0], coord[1], coord[2] );
@@ -4090,10 +4219,9 @@ void SMESH_MeshEditor::Transform (TIDSortedElemSet & theElems,
         const_cast< SMDS_MeshNode* > ( node )->SetPosition
           ( SMDS_SpacePosition::originSpacePosition() );
       }
-      nodeMap.insert( TNodeNodeMap::value_type( node, newNode ));
 
       // keep inverse elements
-      if ( !theCopy && needReverse ) {
+      if ( !theCopy && !theTargetMesh && needReverse ) {
         SMDS_ElemIteratorPtr invElemIt = node->GetInverseElementIterator();
         while ( invElemIt->more() ) {
           const SMDS_MeshElement* iel = invElemIt->next();
@@ -4103,16 +4231,13 @@ void SMESH_MeshEditor::Transform (TIDSortedElemSet & theElems,
     }
   }
 
-  // either new elements are to be created
-  // or a mirrored element are to be reversed
-  if ( !theCopy && !needReverse)
-    return;
+  // either create new elements or reverse mirrored ones
+  if ( !theCopy && !needReverse && !theTargetMesh )
+    return PGroupIDs();
 
-  if ( !inverseElemSet.empty()) {
-    TIDSortedElemSet::iterator invElemIt = inverseElemSet.begin();
-    for ( ; invElemIt != inverseElemSet.end(); invElemIt++ )
-      theElems.insert( *invElemIt );
-  }
+  TIDSortedElemSet::iterator invElemIt = inverseElemSet.begin();
+  for ( ; invElemIt != inverseElemSet.end(); invElemIt++ )
+    theElems.insert( *invElemIt );
 
   // replicate or reverse elements
 
@@ -4133,7 +4258,8 @@ void SMESH_MeshEditor::Transform (TIDSortedElemSet & theElems,
     { 0, 1, 2, 3, 4, 5, 6, 7 }   // FORWARD
   };
 
-  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
+  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
+  {
     const SMDS_MeshElement* elem = *itElem;
     if ( !elem || elem->GetType() == SMDSAbs_Node )
       continue;
@@ -4166,8 +4292,13 @@ void SMESH_MeshEditor::Transform (TIDSortedElemSet & theElems,
           if ( iNode != nbNodes )
             continue; // not all nodes transformed
 
-          if ( theCopy ) {
+          if ( theTargetMesh ) {
+            myLastCreatedElems.Append(aTgtMesh->AddPolygonalFace(poly_nodes));
+            srcElems.Append( elem );
+          }
+          else if ( theCopy ) {
             myLastCreatedElems.Append(aMesh->AddPolygonalFace(poly_nodes));
+            srcElems.Append( elem );
           }
           else {
             aMesh->ChangePolygonNodes(elem, poly_nodes);
@@ -4178,7 +4309,7 @@ void SMESH_MeshEditor::Transform (TIDSortedElemSet & theElems,
         {
           // ATTENTION: Reversing is not yet done!!!
           const SMDS_PolyhedralVolumeOfNodes* aPolyedre =
-            (const SMDS_PolyhedralVolumeOfNodes*) elem;
+            dynamic_cast<const SMDS_PolyhedralVolumeOfNodes*>( elem );
           if (!aPolyedre) {
             MESSAGE("Warning: bad volumic element");
             continue;
@@ -4205,26 +4336,31 @@ void SMESH_MeshEditor::Transform (TIDSortedElemSet & theElems,
           if ( !allTransformed )
             continue; // not all nodes transformed
 
-          if ( theCopy ) {
+          if ( theTargetMesh ) {
+            myLastCreatedElems.Append(aTgtMesh->AddPolyhedralVolume(poly_nodes, quantities));
+            srcElems.Append( elem );
+          }
+          else if ( theCopy ) {
             myLastCreatedElems.Append(aMesh->AddPolyhedralVolume(poly_nodes, quantities));
+            srcElems.Append( elem );
           }
           else {
             aMesh->ChangePolyhedronNodes(elem, poly_nodes, quantities);
           }
         }
         break;
-      default:;
-      }
-      continue;
+    default:;
     }
+    continue;
+  }
 
-    // Regular elements
-    int* i = index[ FORWARD ];
-    if ( needReverse && nbNodes > 2) // reverse mirrored faces and volumes
-      if ( elemType == SMDSAbs_Face )
-        i = index[ REV_FACE ];
-      else
-        i = index[ nbNodes - 4 ];
+  // Regular elements
+  int* i = index[ FORWARD ];
+  if ( needReverse && nbNodes > 2) // reverse mirrored faces and volumes
+    if ( elemType == SMDSAbs_Face )
+      i = index[ REV_FACE ];
+    else
+      i = index[ nbNodes - 4 ];
 
     if(elem->IsQuadratic()) {
       static int anIds[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
@@ -4276,17 +4412,159 @@ void SMESH_MeshEditor::Transform (TIDSortedElemSet & theElems,
     if ( iNode != nbNodes )
       continue; // not all nodes transformed
 
-    if ( theCopy ) {
-      if ( SMDS_MeshElement* copy = AddElement( nodes, elem->GetType(), elem->IsPoly() ))
+    if ( theTargetMesh ) {
+      if ( SMDS_MeshElement* copy =
+           targetMeshEditor.AddElement( nodes, elem->GetType(), elem->IsPoly() )) {
         myLastCreatedElems.Append( copy );
+        srcElems.Append( elem );
+      }
     }
-    else
-    {
+    else if ( theCopy ) {
+      if ( SMDS_MeshElement* copy = AddElement( nodes, elem->GetType(), elem->IsPoly() )) {
+        myLastCreatedElems.Append( copy );
+        srcElems.Append( elem );
+      }
+    }
+    else {
       // reverse element as it was reversed by transformation
       if ( nbNodes > 2 )
         aMesh->ChangeElementNodes( elem, &nodes[0], nbNodes );
     }
   }
+
+  PGroupIDs newGroupIDs;
+
+  if ( theMakeGroups && theCopy ||
+       theMakeGroups && theTargetMesh )
+    newGroupIDs = generateGroups( srcNodes, srcElems, groupPostfix, theTargetMesh );
+
+  return newGroupIDs;
+}
+
+//=======================================================================
+/*!
+ * \brief Create groups of elements made during transformation
+ * \param nodeGens - nodes making corresponding myLastCreatedNodes
+ * \param elemGens - elements making corresponding myLastCreatedElems
+ * \param postfix - to append to names of new groups
+ */
+//=======================================================================
+
+SMESH_MeshEditor::PGroupIDs
+SMESH_MeshEditor::generateGroups(const SMESH_SequenceOfElemPtr& nodeGens,
+                                 const SMESH_SequenceOfElemPtr& elemGens,
+                                 const std::string&             postfix,
+                                 SMESH_Mesh*                    targetMesh)
+{
+  PGroupIDs newGroupIDs( new list<int> );
+  SMESH_Mesh* mesh = targetMesh ? targetMesh : GetMesh();
+
+  // Sort existing groups by types and collect their names
+
+  // to store an old group and a generated new one
+  typedef pair< SMESHDS_GroupBase*, SMDS_MeshGroup* > TOldNewGroup;
+  vector< list< TOldNewGroup > > groupsByType( SMDSAbs_NbElementTypes );
+  // group names
+  set< string > groupNames;
+  //
+  SMDS_MeshGroup* nullNewGroup = (SMDS_MeshGroup*) 0;
+  SMESH_Mesh::GroupIteratorPtr groupIt = GetMesh()->GetGroups();
+  while ( groupIt->more() ) {
+    SMESH_Group * group = groupIt->next();
+    if ( !group ) continue;
+    SMESHDS_GroupBase* groupDS = group->GetGroupDS();
+    if ( !groupDS || groupDS->IsEmpty() ) continue;
+    groupNames.insert( group->GetName() );
+    groupDS->SetStoreName( group->GetName() );
+    groupsByType[ groupDS->GetType() ].push_back( make_pair( groupDS, nullNewGroup ));
+  }
+
+  // Groups creation
+
+  // loop on nodes and elements
+  for ( int isNodes = 0; isNodes < 2; ++isNodes )
+  {
+    const SMESH_SequenceOfElemPtr& gens  = isNodes ? nodeGens : elemGens;
+    const SMESH_SequenceOfElemPtr& elems = isNodes ? myLastCreatedNodes : myLastCreatedElems;
+    if ( gens.Length() != elems.Length() )
+      throw SALOME_Exception(LOCALIZED("invalid args"));
+
+    // loop on created elements
+    for (int iElem = 1; iElem <= elems.Length(); ++iElem )
+    {
+      const SMDS_MeshElement* sourceElem = gens( iElem );
+      if ( !sourceElem ) {
+        MESSAGE("generateGroups(): NULL source element");
+        continue;
+      }
+      list< TOldNewGroup > & groupsOldNew = groupsByType[ sourceElem->GetType() ];
+      if ( groupsOldNew.empty() ) {
+        while ( iElem < gens.Length() && gens( iElem+1 ) == sourceElem )
+          ++iElem; // skip all elements made by sourceElem
+        continue;
+      }
+      // collect all elements made by sourceElem
+      list< const SMDS_MeshElement* > resultElems;
+      if ( const SMDS_MeshElement* resElem = elems( iElem ))
+        if ( resElem != sourceElem )
+          resultElems.push_back( resElem );
+      while ( iElem < gens.Length() && gens( iElem+1 ) == sourceElem )
+        if ( const SMDS_MeshElement* resElem = elems( ++iElem ))
+          if ( resElem != sourceElem )
+            resultElems.push_back( resElem );
+      // do not generate element groups from node ones
+      if ( sourceElem->GetType() == SMDSAbs_Node &&
+           elems( iElem )->GetType() != SMDSAbs_Node )
+        continue;
+
+      // add resultElems to groups made by ones the sourceElem belongs to
+      list< TOldNewGroup >::iterator gOldNew, gLast = groupsOldNew.end();
+      for ( gOldNew = groupsOldNew.begin(); gOldNew != gLast; ++gOldNew )
+      {
+        SMESHDS_GroupBase* oldGroup = gOldNew->first;
+        if ( oldGroup->Contains( sourceElem )) // sourceElem in oldGroup
+        {
+          SMDS_MeshGroup* & newGroup = gOldNew->second;
+          if ( !newGroup )// create a new group
+          {
+            // make a name
+            string name = oldGroup->GetStoreName();
+            if ( !targetMesh ) {
+              name += "_";
+              name += postfix;
+              int nb = 0;
+              while ( !groupNames.insert( name ).second ) // name exists
+              {
+                if ( nb == 0 ) {
+                  name += "_1";
+                }
+                else {
+                  TCollection_AsciiString nbStr(nb+1);
+                  name.resize( name.rfind('_')+1 );
+                  name += nbStr.ToCString();
+                }
+                ++nb;
+              }
+            }
+            // make a group
+            int id;
+            SMESH_Group* group = mesh->AddGroup( resultElems.back()->GetType(),
+                                                 name.c_str(), id );
+            SMESHDS_Group* groupDS = static_cast<SMESHDS_Group*>(group->GetGroupDS());
+            newGroup = & groupDS->SMDSGroup();
+            newGroupIDs->push_back( id );
+          }
+
+          // fill in a new group
+          list< const SMDS_MeshElement* >::iterator resLast = resultElems.end(), resElemIt;
+          for ( resElemIt = resultElems.begin(); resElemIt != resLast; ++resElemIt )
+            newGroup->Add( *resElemIt );
+        }
+      }
+    } // loop on created elements
+  }// loop on nodes and elements
+
+  return newGroupIDs;
 }
 
 //=======================================================================
@@ -4553,10 +4831,7 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
     int aShapeId = FindShape( elem );
 
     set<const SMDS_MeshNode*> nodeSet;
-    //const SMDS_MeshNode* curNodes[ nbNodes ], *uniqueNodes[ nbNodes ];
-    const SMDS_MeshNode** curNodes = new const SMDS_MeshNode*[ nbNodes ];
-    const SMDS_MeshNode** uniqueNodes = new const SMDS_MeshNode*[ nbNodes ];
-    
+    vector< const SMDS_MeshNode*> curNodes( nbNodes ), uniqueNodes( nbNodes );
     int iUnique = 0, iCur = 0, nbRepl = 0;
     vector<int> iRepl( nbNodes );
 
@@ -5034,7 +5309,7 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
       }
       else {
         // Change regular element or polygon
-        aMesh->ChangeElementNodes( elem, uniqueNodes, nbUniqueNodes );
+        aMesh->ChangeElementNodes( elem, & uniqueNodes[0], nbUniqueNodes );
       }
     }
     else {
@@ -5042,14 +5317,13 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
       rmElemIds.push_back( elem->GetID() );
     }
 
-    delete curNodes;
-    delete uniqueNodes;
   } // loop on elements
 
   // Remove equal nodes and bad elements
 
   Remove( rmNodeIds, true );
   Remove( rmElemIds, false );
+
 }
 
 
@@ -5601,13 +5875,11 @@ SMESH_MeshEditor::Sew_Error
         const SMDS_MeshElement* elem = invElemIt->next();
         // prepare data for a loop on links coming to prevSideNode, of a face or a volume
         int iPrevNode, iNode = 0, nbNodes = elem->NbNodes();
-        //const SMDS_MeshNode* faceNodes[ nbNodes ];
-        const SMDS_MeshNode** faceNodes = new const SMDS_MeshNode*[ nbNodes ];
+        vector< const SMDS_MeshNode* > faceNodes( nbNodes, (const SMDS_MeshNode*)0 );
         bool isVolume = volume.Set( elem );
-        const SMDS_MeshNode** nodes = isVolume ? volume.GetNodes() : faceNodes;
+        const SMDS_MeshNode** nodes = isVolume ? volume.GetNodes() : & faceNodes[0];
         if ( isVolume ) // --volume
           hasVolumes = true;
-        //else if ( nbNodes > 2 ) { // --face
         else if ( elem->GetType()==SMDSAbs_Face ) { // --face
           // retrieve all face nodes and find iPrevNode - an index of the prevSideNode
           if(elem->IsQuadratic()) {
@@ -5624,7 +5896,7 @@ SMESH_MeshEditor::Sew_Error
           else {
             SMDS_ElemIteratorPtr nIt = elem->nodesIterator();
             while ( nIt->more() ) {
-              nodes[ iNode ] = static_cast<const SMDS_MeshNode*>( nIt->next() );
+              nodes[ iNode ] = cast2Node( nIt->next() );
               if ( nodes[ iNode++ ] == prevSideNode )
                 iPrevNode = iNode - 1;
             }
@@ -5674,7 +5946,6 @@ SMESH_MeshEditor::Sew_Error
             }
           }
         }
-        delete faceNodes;
       } // loop on inverse elements of prevSideNode
 
       if ( !sideNode ) {
@@ -5729,7 +6000,7 @@ SMESH_MeshEditor::Sew_Error
     {
       nodeGroupsToMerge.push_back( list<const SMDS_MeshNode*>() );
       nodeGroupsToMerge.back().push_back( *nIt[1] ); // to keep
-      nodeGroupsToMerge.back().push_back( *nIt[0] ); // tp remove
+      nodeGroupsToMerge.back().push_back( *nIt[0] ); // to remove
     }
   }
   else {
@@ -6338,7 +6609,7 @@ void SMESH_MeshEditor::UpdateVolumes (const SMDS_MeshNode*        theBetweenNode
  */
 //=======================================================================
 
-int SMESH_MeshEditor::ConvertElemToQuadratic(SMESHDS_SubMesh *   theSm,
+int SMESH_MeshEditor::convertElemToQuadratic(SMESHDS_SubMesh *   theSm,
                                               SMESH_MesherHelper& theHelper,
                                              const bool          theForce3d)
 {
@@ -6442,7 +6713,7 @@ void SMESH_MeshEditor::ConvertToQuadratic(const bool theForce3d)
         SMESH_subMesh* sm = smIt->next();
         if ( SMESHDS_SubMesh *smDS = sm->GetSubMeshDS() ) {
           aHelper.SetSubShape( sm->GetSubShape() );
-          nbCheckedElems += ConvertElemToQuadratic(smDS, aHelper, theForce3d);
+          nbCheckedElems += convertElemToQuadratic(smDS, aHelper, theForce3d);
         }
       }
     }
@@ -6553,7 +6824,7 @@ void SMESH_MeshEditor::ConvertToQuadratic(const bool theForce3d)
  */
 //=======================================================================
 
-int SMESH_MeshEditor::RemoveQuadElem(SMESHDS_SubMesh *    theSm,
+int SMESH_MeshEditor::removeQuadElem(SMESHDS_SubMesh *    theSm,
                                      SMDS_ElemIteratorPtr theItr,
                                      const int            theShapeID)
 {
@@ -6628,7 +6899,7 @@ bool  SMESH_MeshEditor::ConvertFromQuadratic()
       while ( smIt->more() ) {
         SMESH_subMesh* sm = smIt->next();
         if ( SMESHDS_SubMesh *smDS = sm->GetSubMeshDS() )
-          nbCheckedElems += RemoveQuadElem( smDS, smDS->GetElements(), sm->GetId() );
+          nbCheckedElems += removeQuadElem( smDS, smDS->GetElements(), sm->GetId() );
       }
     }
   }
@@ -6638,7 +6909,7 @@ bool  SMESH_MeshEditor::ConvertFromQuadratic()
   if ( nbCheckedElems < totalNbElems ) // not all elements in submeshes
   {
     SMESHDS_SubMesh *aSM = 0;
-    RemoveQuadElem( aSM, GetMeshDS()->elementsIterator(), 0 );
+    removeQuadElem( aSM, GetMeshDS()->elementsIterator(), 0 );
   }
 
   return true;
@@ -7249,7 +7520,9 @@ SMESH_MeshEditor::Sew_Error
    */
 //================================================================================
 
+#ifdef _DEBUG_
 //#define DEBUG_MATCHING_NODES
+#endif
 
 SMESH_MeshEditor::Sew_Error
 SMESH_MeshEditor::FindMatchingNodes(set<const SMDS_MeshElement*>& theSide1,
index 9b56a1f6c3de6f2c31d83e0dab22ab7a58b533d5..fd5facec2e6ad444d12fdf27b580aacc74318918 100644 (file)
@@ -190,13 +190,15 @@ public:
   // If the2D, smoothing is performed using UV parameters of nodes
   // on geometrical faces
 
-
-  void RotationSweep (TIDSortedElemSet & theElements,
-                      const gp_Ax1&      theAxis,
-                      const double       theAngle,
-                      const int          theNbSteps,
-                      const double       theToler,
-                      const bool         theMakeWalls=true);
+  typedef std::auto_ptr< std::list<int> > PGroupIDs;
+
+  PGroupIDs RotationSweep (TIDSortedElemSet & theElements,
+                           const gp_Ax1&      theAxis,
+                           const double       theAngle,
+                           const int          theNbSteps,
+                           const double       theToler,
+                           const bool         theMakeGroups,
+                           const bool         theMakeWalls=true);
   // Generate new elements by rotation of theElements around theAxis
   // by theAngle by theNbSteps
 
@@ -241,13 +243,13 @@ public:
    * param theTolerance - uses for comparing locations of nodes if flag
    *   EXTRUSION_FLAG_SEW is set
    */
-  void ExtrusionSweep
-           (TIDSortedElemSet &  theElems,
-            const gp_Vec&       theStep,
-            const int           theNbSteps,
-            TElemOfElemListMap& newElemsMap,
-            const int           theFlags = EXTRUSION_FLAG_BOUNDARY,
-            const double        theTolerance = 1.e-6);
+  PGroupIDs ExtrusionSweep (TIDSortedElemSet &  theElems,
+                            const gp_Vec&       theStep,
+                            const int           theNbSteps,
+                            TElemOfElemListMap& newElemsMap,
+                            const bool          theMakeGroups,
+                            const int           theFlags = EXTRUSION_FLAG_BOUNDARY,
+                            const double        theTolerance = 1.e-6);
   
   /*!
    * Generate new elements by extrusion of theElements
@@ -259,11 +261,12 @@ public:
    *   EXTRUSION_FLAG_SEW is set
    * param theParams - special structure for manage of extrusion
    */
-  void ExtrusionSweep (TIDSortedElemSet &  theElems,
-                       ExtrusParam&        theParams,
-                       TElemOfElemListMap& newElemsMap,
-                       const int           theFlags,
-                       const double        theTolerance);
+  PGroupIDs ExtrusionSweep (TIDSortedElemSet &  theElems,
+                            ExtrusParam&        theParams,
+                            TElemOfElemListMap& newElemsMap,
+                            const bool          theMakeGroups,
+                            const int           theFlags,
+                            const double        theTolerance);
 
 
   // Generate new elements by extrusion of theElements 
@@ -285,13 +288,16 @@ public:
                                        const bool           theHasAngles,
                                        std::list<double>&   theAngles,
                                        const bool           theHasRefPoint,
-                                       const gp_Pnt&        theRefPoint);
+                                       const gp_Pnt&        theRefPoint,
+                                       const bool           theMakeGroups);
   // Generate new elements by extrusion of theElements along path given by theTrackPattern,
   // theHasAngles are the rotation angles, base point can be given by theRefPoint
 
-  void Transform (TIDSortedElemSet & theElements,
-                  const gp_Trsf&     theTrsf,
-                  const bool         theCopy);
+  PGroupIDs Transform (TIDSortedElemSet & theElements,
+                       const gp_Trsf&     theTrsf,
+                       const bool         theCopy,
+                       const bool         theMakeGroups,
+                       SMESH_Mesh*        theTargetMesh=0);
   // Move or copy theElements applying theTrsf to their nodes
 
   typedef std::list< std::list< const SMDS_MeshNode* > > TListOfListOfNodes;
@@ -507,7 +513,7 @@ private:
    * \brief Convert elements contained in a submesh to quadratic
     * \retval int - nb of checked elements
    */
-  int ConvertElemToQuadratic(SMESHDS_SubMesh *   theSm,
+  int convertElemToQuadratic(SMESHDS_SubMesh *   theSm,
                              SMESH_MesherHelper& theHelper,
                              const bool          theForce3d);
 
@@ -515,11 +521,55 @@ private:
    * \brief Convert quadratic elements to linear ones and remove quadratic nodes
     * \retval int - nb of checked elements
    */
-  int RemoveQuadElem( SMESHDS_SubMesh *    theSm,
+  int removeQuadElem( SMESHDS_SubMesh *    theSm,
                       SMDS_ElemIteratorPtr theItr,
                       const int            theShapeID);
-  //Auxiliary function for "ConvertFromQuadratic" is intended to 
+  /*!
+   * \brief Create groups of elements made during transformation
+   * \param nodeGens - nodes making corresponding myLastCreatedNodes
+   * \param elemGens - elements making corresponding myLastCreatedElems
+   * \param postfix - to append to names of new groups
+   */
+  PGroupIDs generateGroups(const SMESH_SequenceOfElemPtr& nodeGens,
+                           const SMESH_SequenceOfElemPtr& elemGens,
+                           const std::string&             postfix,
+                           SMESH_Mesh*                    targetMesh=0);
+
+
+  typedef std::map<const SMDS_MeshNode*, std::list<const SMDS_MeshNode*> > TNodeOfNodeListMap;
+  typedef TNodeOfNodeListMap::iterator                                     TNodeOfNodeListMapItr;
+  typedef std::vector<TNodeOfNodeListMapItr>                               TVecOfNnlmiMap;
+  typedef std::map<const SMDS_MeshElement*, TVecOfNnlmiMap >               TElemOfVecOfNnlmiMap;
 
+  /*!
+   * \brief Create elements by sweeping an element
+    * \param elem - element to sweep
+    * \param newNodesItVec - nodes generated from each node of the element
+    * \param newElems - generated elements
+    * \param nbSteps - number of sweeping steps
+    * \param srcElements - to append elem for each generated element
+   */
+  void sweepElement(const SMDS_MeshElement*                    elem,
+                    const std::vector<TNodeOfNodeListMapItr> & newNodesItVec,
+                    std::list<const SMDS_MeshElement*>&        newElems,
+                    const int                                  nbSteps,
+                    SMESH_SequenceOfElemPtr&                   srcElements);
+
+  /*!
+   * \brief Create 1D and 2D elements around swept elements
+    * \param mapNewNodes - source nodes and ones generated from them
+    * \param newElemsMap - source elements and ones generated from them
+    * \param elemNewNodesMap - nodes generated from each node of each element
+    * \param elemSet - all swept elements
+    * \param nbSteps - number of sweeping steps
+    * \param srcElements - to append elem for each generated element
+   */
+  void makeWalls (TNodeOfNodeListMap &     mapNewNodes,
+                  TElemOfElemListMap &     newElemsMap,
+                  TElemOfVecOfNnlmiMap &   elemNewNodesMap,
+                  TIDSortedElemSet&        elemSet,
+                  const int                nbSteps,
+                  SMESH_SequenceOfElemPtr& srcElements);
 private:
 
   SMESH_Mesh * myMesh;
index 6afe18300eeaf0505a3d6c92cef1a36a0f3d11b1..5b74f1ded20bf67d23e99681a8ab8e66731bcfa8 100644 (file)
 #include <Geom2d_Curve.hxx>
 #include <Geom_Curve.hxx>
 #include <Geom_Surface.hxx>
+#include <ShapeAnalysis.hxx>
+#include <TopExp.hxx>
 #include <TopExp_Explorer.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
 #include <TopTools_MapOfShape.hxx>
+#include <TopoDS.hxx>
 #include <gp_Pnt2d.hxx>
-#include <ShapeAnalysis.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
 
 #include <Standard_Failure.hxx>
 #include <Standard_ErrorHandler.hxx>
@@ -73,6 +75,7 @@ bool SMESH_MesherHelper::IsQuadraticSubMesh(const TopoDS_Shape& aSh)
   // also we have to fill myNLinkNodeMap
   myCreateQuadratic = true;
   mySeamShapeIds.clear();
+  myDegenShapeIds.clear();
   TopAbs_ShapeEnum subType( aSh.ShapeType()==TopAbs_FACE ? TopAbs_EDGE : TopAbs_FACE );
   SMDSAbs_ElementType elemType( subType==TopAbs_FACE ? SMDSAbs_Face : SMDSAbs_Edge );
 
@@ -150,6 +153,7 @@ void SMESH_MesherHelper::SetSubShape(const TopoDS_Shape& aSh)
 
   myShape = aSh;
   mySeamShapeIds.clear();
+  myDegenShapeIds.clear();
 
   if ( myShape.IsNull() ) {
     myShapeID  = -1;
@@ -165,8 +169,9 @@ void SMESH_MesherHelper::SetSubShape(const TopoDS_Shape& 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()) {
+      for ( TopExp_Explorer exp( face, TopAbs_EDGE ); exp.More(); exp.Next())
+      {
+        // look for a seam edge
         const TopoDS_Edge& edge = TopoDS::Edge( exp.Current() );
         if ( BRep_Tool::IsClosed( edge, face )) {
           // initialize myPar1, myPar2 and myParIndex
@@ -186,10 +191,17 @@ void SMESH_MesherHelper::SetSubShape(const TopoDS_Shape& aSh)
             }
           }
           // 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( edge ));
+          for ( TopExp_Explorer v( edge, TopAbs_VERTEX ); v.More(); v.Next() )
             mySeamShapeIds.insert( meshDS->ShapeToIndex( v.Current() ));
         }
+
+        // look for a degenerated edge
+        if ( BRep_Tool::Degenerated( edge )) {
+          myDegenShapeIds.insert( meshDS->ShapeToIndex( edge ));
+          for ( TopExp_Explorer v( edge, TopAbs_VERTEX ); v.More(); v.Next() )
+            myDegenShapeIds.insert( meshDS->ShapeToIndex( v.Current() ));
+        }
       }
     }
   }
@@ -1128,3 +1140,36 @@ bool SMESH_MesherHelper::LoadNodeColumns(TParam2ColumnMap & theParam2ColumnMap,
 
   return true;
 }
+
+/**
+ * Check mesh without geometry for: if all elements on this shape are quadratic,
+ * quadratic elements will be created.
+ * Used then generated 3D mesh without geometry.
+   */
+SMESH_MesherHelper:: MType SMESH_MesherHelper::IsQuadraticMesh()
+{
+  int NbAllEdgsAndFaces=0;
+  int NbQuadFacesAndEdgs=0;
+  int NbFacesAndEdges=0;
+  //All faces and edges
+  NbAllEdgsAndFaces = myMesh->NbEdges() + myMesh->NbFaces();
+  
+  //Quadratic faces and edges
+  NbQuadFacesAndEdgs = myMesh->NbEdges(ORDER_QUADRATIC) + myMesh->NbFaces(ORDER_QUADRATIC);
+
+  //Linear faces and edges
+  NbFacesAndEdges = myMesh->NbEdges(ORDER_LINEAR) + myMesh->NbFaces(ORDER_LINEAR);
+  
+  if (NbAllEdgsAndFaces == NbQuadFacesAndEdgs) {
+    //Quadratic mesh
+    return SMESH_MesherHelper::QUADRATIC;
+  }
+  else if (NbAllEdgsAndFaces == NbFacesAndEdges) {
+    //Linear mesh
+    return SMESH_MesherHelper::LINEAR;
+  }
+  else
+    //Mesh with both type of elements
+    return SMESH_MesherHelper::COMP;
+}
+
index 7798a0e122a61243f4ddd81a8fa63015ed0e7af8..41544a3f48304abe137fba028bdcb420a3cd7abd 100644 (file)
@@ -244,6 +244,15 @@ public:
    */
   bool GetNodeUVneedInFaceNode(const TopoDS_Face& F = TopoDS_Face()) const;
 
+  /*!
+   * \brief Check if shape is a degenerated edge or it's vertex
+    * \param subShape - edge or vertex index in SMESHDS
+    * \retval bool - true if subShape is a degenerated shape
+    *
+    * It works only if IsQuadraticSubMesh() or SetSubShape() has been called
+   */
+  bool IsDegenShape(const int subShape) const
+  { return myDegenShapeIds.find( subShape ) != myDegenShapeIds.end(); }
   /*!
    * \brief Check if shape is a seam edge or it's vertex
     * \param subShape - edge or vertex index in SMESHDS
@@ -297,6 +306,14 @@ public:
    */
   const NLinkNodeMap& GetNLinkNodeMap() const { return myNLinkNodeMap; }
 
+  /**
+   * Check mesh without geometry for: if all elements on this shape are quadratic,
+   * quadratic elements will be created.
+   * Used then generated 3D mesh without geometry.
+   */
+  enum MType{ LINEAR, QUADRATIC, COMP };
+  MType IsQuadraticMesh();
+  
 protected:
 
   /*!
@@ -312,9 +329,10 @@ protected:
   // Forbiden copy constructor
   SMESH_MesherHelper (const SMESH_MesherHelper& theOther) {};
 
-  // special map for using during creation quadratic faces
+  // special map for using during creation of quadratic elements
   NLinkNodeMap    myNLinkNodeMap;
 
+  std::set< int > myDegenShapeIds;
   std::set< int > mySeamShapeIds;
   double          myPar1, myPar2; // bounds of a closed periodic surface
   int             myParIndex;     // bounds' index (1-U, 2-V)
index 44396d2afbd43cc0d247785edf3431f7148ea1a8..4d3fe36f66134b9c85272dfa79b695d1b099c94c 100644 (file)
 #include <GeomAdaptor_Surface.hxx>
 #include <Geom_Curve.hxx>
 #include <Geom_Surface.hxx>
-#include <IntAna2d_AnaIntersection.hxx>
+//#include <IntAna2d_AnaIntersection.hxx>
 #include <TopAbs_ShapeEnum.hxx>
 #include <TopExp.hxx>
+#include <TopExp_Explorer.hxx>
 #include <TopLoc_Location.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Edge.hxx>
 #include <TopoDS_Face.hxx>
@@ -47,7 +49,6 @@
 #include <TopoDS_Shell.hxx>
 #include <TopoDS_Vertex.hxx>
 #include <TopoDS_Wire.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
 #include <gp_Ax2.hxx>
 #include <gp_Lin2d.hxx>
 #include <gp_Pnt2d.hxx>
@@ -962,7 +963,14 @@ static bool intersectIsolines(const gp_XY& uv11, const gp_XY& uv12, const double
   gp_XY loc1 = uv11 * ( 1 - r1 ) + uv12 * r1;
   gp_XY loc2 = uv21 * ( 1 - r2 ) + uv22 * r2;
   resUV = 0.5 * ( loc1 + loc2 );
-  isDeformed = ( loc1 - loc2 ).SquareModulus() > 1e-8;
+  //isDeformed = ( loc1 - loc2 ).SquareModulus() > 1e-8;
+  // SKL 26.07.2007 for NPAL16567
+  double d1 = (uv11-uv12).Modulus();
+  double d2 = (uv21-uv22).Modulus();
+  // double delta = d1*d2*1e-6; PAL17233
+  double delta = min( d1, d2 ) / 10.;
+  isDeformed = ( loc1 - loc2 ).SquareModulus() > delta * delta;
+
 //   double len1 = ( uv11 - uv12 ).Modulus();
 //   double len2 = ( uv21 - uv22 ).Modulus();
 //   resUV = loc1 * len2 / ( len1 + len2 ) + loc2 * len1 / ( len1 + len2 );
@@ -985,6 +993,10 @@ static bool intersectIsolines(const gp_XY& uv11, const gp_XY& uv12, const double
   
 //   resUV /= 2.;
 //     }
+  if ( isDeformed ) {
+    MESSAGE("intersectIsolines(), d1 = " << d1 << ", d2 = " << d2 << ", delta = " << delta <<
+            ", " << (loc1 - loc2).SquareModulus() << " > " << delta * delta);
+  }
   return true;
 }
 
@@ -1384,7 +1396,7 @@ bool SMESH_Pattern::
   compUVByElasticIsolines(const list< list< TPoint* > >& theBndPoints,
                           const list< TPoint* >&         thePntToCompute)
 {
-  //return false;
+  return false; // PAL17233
 //cout << "============================== KEY POINTS =============================="<<endl;
 //   list< int >::iterator kpIt = myKeyPointIDs.begin();
 //   for ( ; kpIt != myKeyPointIDs.end(); kpIt++ ) {
@@ -2659,6 +2671,162 @@ bool SMESH_Pattern::Apply (const SMDS_MeshFace* theFace,
   return setErrorCode( ERR_OK );
 }
 
+//=======================================================================
+//function : Apply
+//purpose  : Compute nodes coordinates applying
+//           the loaded pattern to <theFace>. The first key-point
+//           will be mapped into <theNodeIndexOnKeyPoint1>-th node
+//=======================================================================
+
+bool SMESH_Pattern::Apply (SMESH_Mesh*          theMesh,
+                           const SMDS_MeshFace* theFace,
+                           const TopoDS_Shape&  theSurface,
+                           const int            theNodeIndexOnKeyPoint1,
+                           const bool           theReverse)
+{
+//  MESSAGE(" ::Apply(MeshFace) " );
+  if ( theSurface.IsNull() || theSurface.ShapeType() != TopAbs_FACE ) {
+    return Apply( theFace, theNodeIndexOnKeyPoint1, theReverse);
+  }
+  const TopoDS_Face& face = TopoDS::Face( theSurface );
+  TopLoc_Location loc;
+  Handle(Geom_Surface) surface = BRep_Tool::Surface( face, loc );
+  const gp_Trsf & aTrsf = loc.Transformation();
+
+  if ( !IsLoaded() ) {
+    MESSAGE( "Pattern not loaded" );
+    return setErrorCode( ERR_APPL_NOT_LOADED );
+  }
+
+  // check nb of nodes
+  if (theFace->NbNodes() != myNbKeyPntInBoundary.front() ) {
+    MESSAGE( myKeyPointIDs.size() << " != " << theFace->NbNodes() );
+    return setErrorCode( ERR_APPL_BAD_NB_VERTICES );
+  }
+
+  // find points on edges, it fills myNbKeyPntInBoundary
+  if ( !findBoundaryPoints() )
+    return false;
+
+  // check that there are no holes in a pattern
+  if (myNbKeyPntInBoundary.size() > 1 ) {
+    return setErrorCode( ERR_APPL_BAD_NB_VERTICES );
+  }
+
+  // Define the nodes order
+
+  list< const SMDS_MeshNode* > nodes;
+  list< const SMDS_MeshNode* >::iterator n = nodes.end();
+  SMDS_ElemIteratorPtr noIt = theFace->nodesIterator();
+  int iSub = 0;
+  while ( noIt->more() ) {
+    const SMDS_MeshNode* node = smdsNode( noIt->next() );
+    nodes.push_back( node );
+    if ( iSub++ == theNodeIndexOnKeyPoint1 )
+      n = --nodes.end();
+  }
+  if ( n != nodes.end() ) {
+    if ( theReverse ) {
+      if ( n != --nodes.end() )
+        nodes.splice( nodes.begin(), nodes, ++n, nodes.end() );
+      nodes.reverse();
+    }
+    else if ( n != nodes.begin() )
+      nodes.splice( nodes.end(), nodes, nodes.begin(), n );
+  }
+
+  // find a node not on a seam edge, if necessary
+  SMESH_MesherHelper helper( *theMesh );
+  helper.SetSubShape( theSurface );
+  const SMDS_MeshNode* inFaceNode = 0;
+  if ( helper.GetNodeUVneedInFaceNode() )
+  {
+    SMESH_MeshEditor editor( theMesh );
+    for ( n = nodes.begin(); ( !inFaceNode && n != nodes.end()); ++n ) {
+      int shapeID = editor.FindShape( *n );
+      if ( !shapeID )
+        return Apply( theFace, theNodeIndexOnKeyPoint1, theReverse);
+      if ( !helper.IsSeamShape( shapeID ))
+        inFaceNode = *n;
+    }
+  }
+
+  // Set UV of key-points (i.e. of nodes of theFace )
+  vector< gp_XY > keyUV( theFace->NbNodes() );
+  myOrderedNodes.resize( theFace->NbNodes() );
+  for ( iSub = 1, n = nodes.begin(); n != nodes.end(); ++n, ++iSub )
+  {
+    TPoint* p = getShapePoints( iSub ).front();
+    p->myUV  = helper.GetNodeUV( face, *n, inFaceNode );
+    p->myXYZ = gp_XYZ( (*n)->X(), (*n)->Y(), (*n)->Z() );
+
+    keyUV[ iSub-1 ] = p->myUV;
+    myOrderedNodes[ iSub-1 ] = *n;
+  }
+
+  // points on edges to be used for UV computation of in-face points
+  list< list< TPoint* > > edgesPointsList;
+  edgesPointsList.push_back( list< TPoint* >() );
+  list< TPoint* > * edgesPoints = & edgesPointsList.back();
+  list< TPoint* >::iterator pIt;
+
+  // compute UV and XYZ of points on edges
+
+  for ( int i = 0; i < myOrderedNodes.size(); ++i, ++iSub )
+  {
+    gp_XY& uv1 = keyUV[ i ];
+    gp_XY& uv2 = ( i+1 < keyUV.size() ) ? keyUV[ i+1 ] : keyUV[ 0 ];
+
+    list< TPoint* > & ePoints = getShapePoints( iSub );
+    ePoints.back()->myInitU = 1.0;
+    list< TPoint* >::const_iterator pIt = ++ePoints.begin();
+    while ( *pIt != ePoints.back() )
+    {
+      TPoint* p = *pIt++;
+      p->myUV = uv1 * ( 1 - p->myInitU ) + uv2 * p->myInitU;
+      p->myXYZ = surface->Value( p->myUV.X(), p->myUV.Y() );
+      if ( !loc.IsIdentity() )
+        aTrsf.Transforms( p->myXYZ.ChangeCoord() );
+    }
+    // collect on-edge points (excluding the last one)
+    edgesPoints->insert( edgesPoints->end(), ePoints.begin(), --ePoints.end());
+  }
+
+  // Compute UV and XYZ of in-face points
+
+  // try to use a simple algo to compute UV
+  list< TPoint* > & fPoints = getShapePoints( iSub );
+  bool isDeformed = false;
+  for ( pIt = fPoints.begin(); !isDeformed && pIt != fPoints.end(); pIt++ )
+    if ( !compUVByIsoIntersection( edgesPointsList, (*pIt)->myInitUV,
+                                  (*pIt)->myUV, isDeformed )) {
+      MESSAGE("cant Apply(face)");
+      return false;
+    }
+  // try to use a complex algo if it is a difficult case
+  if ( isDeformed && !compUVByElasticIsolines( edgesPointsList, fPoints ))
+  {
+    for ( ; pIt != fPoints.end(); pIt++ ) // continue with the simple algo
+      if ( !compUVByIsoIntersection( edgesPointsList, (*pIt)->myInitUV,
+                                    (*pIt)->myUV, isDeformed )) {
+        MESSAGE("cant Apply(face)");
+        return false;
+      }
+  }
+
+  for ( pIt = fPoints.begin(); pIt != fPoints.end(); pIt++ )
+  {
+    TPoint * point = *pIt;
+    point->myXYZ = surface->Value( point->myUV.X(), point->myUV.Y() );
+    if ( !loc.IsIdentity() )
+      aTrsf.Transforms( point->myXYZ.ChangeCoord() );
+  }
+
+  myIsComputed = true;
+
+  return setErrorCode( ERR_OK );
+}
+
 //=======================================================================
 //function : undefinedXYZ
 //purpose  : 
@@ -2687,7 +2855,8 @@ inline static bool isDefined(const gp_XYZ& theXYZ)
 //           will be mapped into <theNodeIndexOnKeyPoint1>-th node
 //=======================================================================
 
-bool SMESH_Pattern::Apply (std::set<const SMDS_MeshFace*>& theFaces,
+bool SMESH_Pattern::Apply (SMESH_Mesh*                     theMesh,
+                           std::set<const SMDS_MeshFace*>& theFaces,
                            const int                       theNodeIndexOnKeyPoint1,
                            const bool                      theReverse)
 {
@@ -2725,11 +2894,29 @@ bool SMESH_Pattern::Apply (std::set<const SMDS_MeshFace*>& theFaces,
 
   int ind1 = 0; // lowest point index for a face
 
+  // meshed geometry
+  TopoDS_Shape shape;
+//   int          shapeID = 0;
+//   SMESH_MeshEditor editor( theMesh ); 
+
   // apply to each face in theFaces set
   set<const SMDS_MeshFace*>::iterator face = theFaces.begin();
   for ( ; face != theFaces.end(); ++face )
   {
-    if ( !Apply( *face, theNodeIndexOnKeyPoint1, theReverse )) {
+//     int curShapeId = editor.FindShape( *face );
+//     if ( curShapeId != shapeID ) {
+//       if ( curShapeId )
+//         shape = theMesh->GetMeshDS()->IndexToShape( curShapeId );
+//       else
+//         shape.Nullify();
+//       shapeID = curShapeId;
+//     }
+    bool ok;
+    if ( shape.IsNull() )
+      ok = Apply( *face, theNodeIndexOnKeyPoint1, theReverse );
+    else
+      ok = Apply( theMesh, *face, shape, theNodeIndexOnKeyPoint1, theReverse );
+    if ( !ok ) {
       MESSAGE( "Failed on " << *face );
       continue;
     }
@@ -3905,7 +4092,7 @@ void SMESH_Pattern::createElements(SMESH_Mesh*                            theMes
 
   SMESH_subMesh * subMesh;
   if ( !myShape.IsNull() ) {
-    subMesh = theMesh->GetSubMeshContaining( myShape );
+    subMesh = theMesh->GetSubMesh( myShape );
     if ( subMesh )
       subMesh->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
   }
index 9699064ad5567b4cd7419a7af28fcf36d06d9530..df1ccd0eb38e130aab7e0b004e0e5aff12400b3c 100644 (file)
@@ -103,7 +103,17 @@ class SMESH_EXPORT SMESH_Pattern {
   // the loaded pattern to <theFace>. The first key-point
   // will be mapped into <theNodeIndexOnKeyPoint1>-th node
 
-  bool Apply (std::set<const SMDS_MeshFace*>& theFaces,
+  bool Apply (SMESH_Mesh*          theMesh,
+              const SMDS_MeshFace* theFace,
+              const TopoDS_Shape&  theSurface,
+              const int            theNodeIndexOnKeyPoint1,
+              const bool           theReverse);
+  // Compute nodes coordinates applying
+  // the loaded pattern to <theFace>. The first key-point
+  // will be mapped into <theNodeIndexOnKeyPoint1>-th node
+
+  bool Apply (SMESH_Mesh*                     theMesh,
+              std::set<const SMDS_MeshFace*>& theFaces,
               const int                       theNodeIndexOnKeyPoint1,
               const bool                      theReverse);
   // Compute nodes coordinates applying
index 3af8072816c5befef88feff24429a594018483dc..bbb5fa96a45e3c7f8c7e2da6dcaf1b826d6c1252 100644 (file)
 #include <BRep_Builder.hxx>
 #include <BRep_Tool.hxx>
 #include <TopExp.hxx>
-#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
 #include <TopTools_IndexedMapOfShape.hxx>
 #include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <TopTools_MapOfShape.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Compound.hxx>
 #include <gp_Pnt.hxx>
+#include <TopExp_Explorer.hxx>
+#include <TopoDS_Iterator.hxx>
 
-#include <Standard_Failure.hxx>
+#include <Standard_OutOfMemory.hxx>
 #include <Standard_ErrorHandler.hxx>
 
 using namespace std;
 
+//=============================================================================
+/*!
+ * \brief Allocate some memory at construction and release it at destruction.
+ * Is used to be able to continue working after mesh generation breaks due to
+ * lack of memory
+ */
+//=============================================================================
+
+struct MemoryReserve
+{
+  char* myBuf;
+  MemoryReserve(): myBuf( new char[1024*1024*2] ){}
+  ~MemoryReserve() { delete [] myBuf; }
+};
+
 //=============================================================================
 /*!
  *  default constructor:
@@ -397,10 +411,12 @@ const map < int, SMESH_subMesh * >& SMESH_subMesh::DependsOn()
   case TopAbs_SOLID:
     {
       //MESSAGE("solid");
-      for (TopExp_Explorer exp(_subShape, TopAbs_FACE); exp.More();
-           exp.Next())
-      {
-        InsertDependence(exp.Current());
+      if(_father->HasShapeToMesh()) {
+        for (TopExp_Explorer exp(_subShape, TopAbs_FACE); exp.More();
+             exp.Next())
+        {
+          InsertDependence(exp.Current());
+        }
       }
       break;
     }
@@ -481,9 +497,14 @@ const TopoDS_Shape & SMESH_subMesh::GetSubShape() const
 bool SMESH_subMesh::CanAddHypothesis(const SMESH_Hypothesis* theHypothesis) const
 {
   int aHypDim   = theHypothesis->GetDim();
-  int aShapeDim = SMESH_Gen::GetShapeDim(_subShape);
-  if ( aHypDim <= aShapeDim )
-    return true;
+  if(_father->HasShapeToMesh()) {
+    int aShapeDim = SMESH_Gen::GetShapeDim(_subShape);
+    if ( aHypDim <= aShapeDim )
+      return true;
+  }
+  else
+    //Only 3D hypothesis may be assigned to the mesh w/o geometry
+    return aHypDim == 3;
 //   if ( aHypDim < aShapeDim )
 //     return ( _father->IsMainShape( _subShape ));
 
@@ -586,8 +607,9 @@ SMESH_Hypothesis::Hypothesis_Status
     // check if a shape needed by algo is present
     // -------------------------------------------
     algo = static_cast< SMESH_Algo* >( anHyp );
-    if ( !_father->HasShapeToMesh() && algo->NeedShape() )
-      return SMESH_Hypothesis::HYP_BAD_GEOMETRY;
+    if(_father->GetShapeToMesh() != SMESH_Mesh::PseudoShape())
+      if ( !_father->HasShapeToMesh() && algo->NeedShape() )
+        return SMESH_Hypothesis::HYP_BAD_GEOMETRY;
     // ----------------------
     // check mesh conformity
     // ----------------------
@@ -603,54 +625,22 @@ SMESH_Hypothesis::Hypothesis_Status
     if ( ! CanAddHypothesis( anHyp )) // check dimension
       return SMESH_Hypothesis::HYP_BAD_DIM;
 
+    if(anHyp->GetDim() == 3 && !_father->HasShapeToMesh()
+       && event == ADD_ALGO) {
+      //Only NETGEN_3D and GHS3D_3D can be assigned to the Mesh w/o geometryy
+      bool isNetgen3D = (strcmp( "NETGEN_3D", anHyp->GetName()) == 0);
+      bool  isGhs3d = (strcmp( "GHS3D_3D", anHyp->GetName()) == 0);
+      if( !isNetgen3D && !isGhs3d)
+        return SMESH_Hypothesis::HYP_BAD_DIM;
+    }
+      
+
+    
     if ( /*!anHyp->IsAuxiliary() &&*/ GetSimilarAttached( _subShape, anHyp ) )
       return SMESH_Hypothesis::HYP_ALREADY_EXIST;
 
     if ( !meshDS->AddHypothesis(_subShape, anHyp))
       return SMESH_Hypothesis::HYP_ALREADY_EXIST;
-
-    // Serve Propagation of 1D hypothesis
-    // NOTE: it is possible to re-implement Propagation using EventListener
-    if (event == ADD_HYP) {
-      bool isPropagationOk = true;
-      bool isPropagationHyp = ( strcmp( "Propagation", anHyp->GetName() ) == 0 );
-
-      if ( isPropagationHyp ) {
-        TopExp_Explorer exp (_subShape, TopAbs_EDGE);
-        TopTools_MapOfShape aMap;
-        for (; exp.More(); exp.Next()) {
-          if (aMap.Add(exp.Current())) {
-            if (!_father->BuildPropagationChain(exp.Current())) {
-              isPropagationOk = false;
-            }
-          }
-        }
-      }
-      else if (anHyp->GetDim() == 1) { // Only 1D hypothesis can be propagated
-        TopExp_Explorer exp (_subShape, TopAbs_EDGE);
-        TopTools_MapOfShape aMap;
-        for (; exp.More(); exp.Next()) {
-          if (aMap.Add(exp.Current())) {
-            TopoDS_Shape aMainEdge;
-            if (_father->IsPropagatedHypothesis(exp.Current(), aMainEdge)) {
-              isPropagationOk = _father->RebuildPropagationChains();
-            } else if (_father->IsPropagationHypothesis(exp.Current())) {
-              isPropagationOk = _father->BuildPropagationChain(exp.Current());
-            } else {
-            }
-          }
-        }
-      } else {
-      }
-
-      if ( isPropagationOk ) {
-        if ( isPropagationHyp )
-          return ret; // nothing more to do for "Propagation" hypothesis
-      }
-      else if ( ret < SMESH_Hypothesis::HYP_CONCURENT) {
-        ret = SMESH_Hypothesis::HYP_CONCURENT;
-      }
-    } // Serve Propagation of 1D hypothesis
   }
 
   // --------------------------
@@ -661,45 +651,7 @@ SMESH_Hypothesis::Hypothesis_Status
     if (!meshDS->RemoveHypothesis(_subShape, anHyp))
       return SMESH_Hypothesis::HYP_OK; // nothing changes
 
-    // Serve Propagation of 1D hypothesis
-    // NOTE: it is possible to re-implement Propagation using EventListener
-    if (event == REMOVE_HYP)
-    {
-      bool isPropagationOk = true;
-      SMESH_HypoFilter propagFilter( SMESH_HypoFilter::HasName( "Propagation" ));
-      bool isPropagationHyp = propagFilter.IsOk( anHyp, _subShape );
-
-      if ( isPropagationHyp )
-      {
-        TopExp_Explorer exp (_subShape, TopAbs_EDGE);
-        TopTools_MapOfShape aMap;
-        for (; exp.More(); exp.Next()) {
-          if (aMap.Add(exp.Current()) &&
-              !_father->GetHypothesis( exp.Current(), propagFilter, true )) {
-            // no more Propagation on the current edge
-            if (!_father->RemovePropagationChain(exp.Current())) {
-              return SMESH_Hypothesis::HYP_UNKNOWN_FATAL;
-            }
-          }
-        }
-        // rebuild propagation chains, because removing one
-        // chain can resolve concurention, existing before
-        isPropagationOk = _father->RebuildPropagationChains();
-      }
-      else if (anHyp->GetDim() == 1) // Only 1D hypothesis can be propagated
-      {
-        isPropagationOk = _father->RebuildPropagationChains();
-      }
-
-      if ( isPropagationOk ) {
-        if ( isPropagationHyp )
-          return ret; // nothing more to do for "Propagation" hypothesis
-      }
-      else if ( ret < SMESH_Hypothesis::HYP_CONCURENT) {
-        ret = SMESH_Hypothesis::HYP_CONCURENT;
-      }
-    } // Serve Propagation of 1D hypothesis
-    else // event == REMOVE_ALGO
+    if (event == REMOVE_ALGO)
     {
       algo = dynamic_cast<SMESH_Algo*> (anHyp);
       if (!algo->NeedDescretBoundary())
@@ -1051,6 +1003,7 @@ SMESH_Hypothesis::Hypothesis_Status
 
   if ( stateChange && oldAlgoState == HYP_OK ) { // hyp becomes KO
     DeleteOwnListeners();
+    SetIsAlwaysComputed( false );
     if (_subShape.ShapeType() == TopAbs_VERTEX ) {
       // restore default states
       _algoState = HYP_OK;
@@ -1365,58 +1318,74 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
             _computeState = FAILED_TO_COMPUTE;
             if ( !algo->NeedDescretBoundary() )
               _computeError =
-                SMESH_ComputeError::New(COMPERR_BAD_INPUT_MESH,"Unexpected submesh",algo);
+                SMESH_ComputeError::New(COMPERR_BAD_INPUT_MESH,
+                                        "Unexpected computed submesh",algo);
             break;
           }
         }
         // compute
-        CleanDependants();
-        RemoveSubMeshElementsAndNodes();
+//         CleanDependants(); for "UseExisting_*D" algos
+//         RemoveSubMeshElementsAndNodes();
         ret = false;
         _computeState = FAILED_TO_COMPUTE;
         _computeError = SMESH_ComputeError::New(COMPERR_OK,"",algo);
+        TopoDS_Shape shape = _subShape;
         try {
 #if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
           OCC_CATCH_SIGNALS;
 #endif
           algo->InitComputeError();
+          MemoryReserve aMemoryReserve;
+          SMDS_Mesh::CheckMemory();
           if ( !_father->HasShapeToMesh() ) // no shape
           {
             SMESH_MesherHelper helper( *_father );
-            helper.SetSubShape( _subShape );
+            helper.SetSubShape( shape );
             helper.SetElementsOnShape( true );
             ret = algo->Compute(*_father, &helper );
           }
           else
           {
-            if (!algo->NeedDescretBoundary() && !algo->OnlyUnaryInput()) {
-              ret = ApplyToCollection( algo, GetCollection( gen, algo ) );
-              break;
-            }
-            else {
-              ret = algo->Compute((*_father), _subShape);
+            if (!algo->OnlyUnaryInput()) {
+              shape = GetCollection( gen, algo );
             }
+            ret = algo->Compute((*_father), shape);
           }
           if ( !ret )
             _computeError = algo->GetComputeError();
         }
-        catch (Standard_Failure& exc) {
+        catch ( std::bad_alloc& exc ) {
+          printf("std::bad_alloc thrown inside algo->Compute()\n");
+          if ( _computeError ) {
+            _computeError->myName = COMPERR_MEMORY_PB;
+            //_computeError->myComment = exc.what();
+          }
+          cleanSubMesh( this );
+          throw exc;
+        }
+        catch ( Standard_OutOfMemory& exc ) {
+          printf("Standard_OutOfMemory thrown inside algo->Compute()\n");
+          if ( _computeError ) {
+            _computeError->myName = COMPERR_MEMORY_PB;
+            //_computeError->myComment = exc.what();
+          }
+          cleanSubMesh( this );
+          throw std::bad_alloc();
+        }
+        catch (Standard_Failure& ex) {
           if ( !_computeError ) _computeError = SMESH_ComputeError::New();
           _computeError->myName    = COMPERR_OCC_EXCEPTION;
-          _computeError->myComment = exc.GetMessageString();
+          _computeError->myComment += ex.DynamicType()->Name();
+          if ( ex.GetMessageString() && strlen( ex.GetMessageString() )) {
+            _computeError->myComment += ": ";
+            _computeError->myComment += ex.GetMessageString();
+          }
         }
         catch ( SALOME_Exception& S_ex ) {
           if ( !_computeError ) _computeError = SMESH_ComputeError::New();
           _computeError->myName    = COMPERR_SLM_EXCEPTION;
           _computeError->myComment = S_ex.what();
         }
-        catch ( std::bad_alloc& exc ) {
-          if ( _computeError ) {
-            _computeError->myName    = COMPERR_MEMORY_PB;
-            _computeError->myComment = exc.what();
-          }
-          throw exc;
-        }
         catch ( std::exception& exc ) {
           if ( !_computeError ) _computeError = SMESH_ComputeError::New();
           _computeError->myName    = COMPERR_STD_EXCEPTION;
@@ -1428,28 +1397,24 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
           else
             ret = false;
         }
-        if ( ret && _computeError && !_computeError->IsOK() ) {
-          ret = false;
-        }
         if (ret && !_alwaysComputed) { // check if anything was built
           ret = ( GetSubMeshDS() && ( GetSubMeshDS()->NbElements() || GetSubMeshDS()->NbNodes() ));
         }
-        if (!ret)
+        bool isComputeErrorSet = !CheckComputeError( algo, shape );
+        if (!ret && !isComputeErrorSet)
         {
           // Set _computeError
           if ( !_computeError )
             _computeError = SMESH_ComputeError::New();
           if ( _computeError->IsOK() )
             _computeError->myName = COMPERR_ALGO_FAILED;
+          _computeState = FAILED_TO_COMPUTE;
         }
-        else
+        if (ret)
         {
           _computeError.reset();
-          UpdateDependantsState( SUBMESH_COMPUTED ); // send event SUBMESH_COMPUTED
         }
-        if ( !algo->NeedDescretBoundary() )
-          UpdateSubMeshState( ret ? COMPUTE_OK : FAILED_TO_COMPUTE );
-        CheckComputeError( algo );
+        UpdateDependantsState( SUBMESH_COMPUTED ); // send event SUBMESH_COMPUTED
       }
       break;
     case CLEAN:
@@ -1590,53 +1555,80 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
 
 //=======================================================================
 /*!
- * \brief Update compute_state by _computeError
+ * \brief Update compute_state by _computeError and send proper events to
+ * dependent submeshes
+  * \retval bool - true if _computeError is NOT set
  */
 //=======================================================================
 
-bool SMESH_subMesh::CheckComputeError(SMESH_Algo* theAlgo)
+bool SMESH_subMesh::CheckComputeError(SMESH_Algo* theAlgo, const TopoDS_Shape& theShape)
 {
-  bool noErrors = ( !_computeError || _computeError->IsOK() );
-  if ( !noErrors )
+  bool noErrors = true;
+
+  if ( !theShape.IsNull() )
+  {
+    // Check state of submeshes
+    if ( !theAlgo->NeedDescretBoundary())
+    {
+      SMESH_subMeshIteratorPtr smIt = getDependsOnIterator(false,false);
+      while ( smIt->more() )
+        if ( !smIt->next()->CheckComputeError( theAlgo ))
+          noErrors = false;
+    }
+
+    // Check state of neighbours
+    if ( !theAlgo->OnlyUnaryInput() &&
+         theShape.ShapeType() == TopAbs_COMPOUND &&
+         !theShape.IsSame( _subShape ))
+    {
+      for (TopoDS_Iterator subIt( theShape ); subIt.More(); subIt.Next()) {
+        SMESH_subMesh* sm = _father->GetSubMesh( subIt.Value() );
+        if ( sm != this ) {
+          if ( !sm->CheckComputeError( theAlgo ))
+            noErrors = false;
+          UpdateDependantsState( SUBMESH_COMPUTED ); // send event SUBMESH_COMPUTED
+        }
+      }
+    }
+  }
   {
-    if ( !_computeError->myAlgo )
-      _computeError->myAlgo = theAlgo;
-
-    // Show error
-    SMESH_Comment text;
-    text << theAlgo->GetName() << " failed on subshape " << _Id << " with error ";
-    if (_computeError->IsCommon() )
-      text << _computeError->CommonName();
+    // Check my state
+    if ( !_computeError || _computeError->IsOK() )
+    {
+      _computeState = COMPUTE_OK;
+    }
     else
-      text << _computeError->myName;
-    if ( _computeError->myComment.size() > 0 )
-      text << " \"" << _computeError->myComment << "\"";
+    {
+      if ( !_computeError->myAlgo )
+        _computeError->myAlgo = theAlgo;
+
+      // Show error
+      SMESH_Comment text;
+      text << theAlgo->GetName() << " failed on subshape #" << _Id << " with error ";
+      if (_computeError->IsCommon() )
+        text << _computeError->CommonName();
+      else
+        text << _computeError->myName;
+      if ( _computeError->myComment.size() > 0 )
+        text << " \"" << _computeError->myComment << "\"";
 
 #ifdef _DEBUG_
-    cout << text << endl;
-    // Show vertices location of a failed shape
-    cout << "Subshape vertices (first 10):" << endl;
-    TopTools_IndexedMapOfShape vMap;
-    TopExp::MapShapes( _subShape, TopAbs_VERTEX, vMap );
-    for ( int iv = 1; iv <= vMap.Extent() && iv < 11; ++iv ) {
-      gp_Pnt P( BRep_Tool::Pnt( TopoDS::Vertex( vMap( iv ) )));
-      cout << P.X() << " " << P.Y() << " " << P.Z() << " " << endl;
-    }
+      cout << text << endl;
+      // Show vertices location of a failed shape
+      TopTools_IndexedMapOfShape vMap;
+      TopExp::MapShapes( _subShape, TopAbs_VERTEX, vMap );
+      cout << "Subshape vertices " << ( vMap.Extent()>10 ? "(first 10):" : ":") << endl;
+      for ( int iv = 1; iv <= vMap.Extent() && iv < 11; ++iv ) {
+        gp_Pnt P( BRep_Tool::Pnt( TopoDS::Vertex( vMap( iv ) )));
+        cout << "#" << _father->GetMeshDS()->ShapeToIndex( vMap( iv )) << " ";
+        cout << P.X() << " " << P.Y() << " " << P.Z() << " " << endl;
+      }
 #else
-    INFOS( text );
+      INFOS( text );
 #endif
-    _computeState = FAILED_TO_COMPUTE;
-  }
-  else
-  {
-    _computeState = COMPUTE_OK;
-  }
-  // Check state of submeshes
-  if ( !theAlgo->NeedDescretBoundary() /*&& theAlgo->OnlyUnaryInput()*/ ) {
-    SMESH_subMeshIteratorPtr smIt = getDependsOnIterator(false,false);
-    while ( smIt->more() )
-      if ( !smIt->next()->CheckComputeError( theAlgo ))
-        noErrors = false;
+      _computeState = FAILED_TO_COMPUTE;
+      noErrors = false;
+    }
   }
   return noErrors;
 }
@@ -1788,7 +1780,6 @@ void SMESH_subMesh::RemoveSubMeshElementsAndNodes()
 TopoDS_Shape SMESH_subMesh::GetCollection(SMESH_Gen * theGen, SMESH_Algo* theAlgo)
 {
   MESSAGE("SMESH_subMesh::GetCollection");
-  ASSERT (!theAlgo->NeedDescretBoundary());
 
   TopoDS_Shape mainShape = _father->GetMeshDS()->ShapeToMesh();
 
@@ -1935,8 +1926,9 @@ void SMESH_subMesh::SetEventListener(EventListener* listener, EventListenerData*
   map< EventListener*, EventListenerData* >::iterator l_d =
     myEventListeners.find( listener );
   if ( l_d != myEventListeners.end() ) {
-    if ( l_d->second && l_d->second->IsDeletable() )
-      delete l_d->second;
+    EventListenerData* curData = l_d->second;
+    if ( curData && curData != data && curData->IsDeletable() )
+      delete curData;
     l_d->second = data;
   }
   else 
@@ -2037,13 +2029,17 @@ void SMESH_subMeshEventListener::ProcessEvent(const int          event,
        eventType == SMESH_subMesh::COMPUTE_EVENT)
   {
     ASSERT( data->mySubMeshes.front() != subMesh );
+    list<SMESH_subMesh*>::iterator smIt = data->mySubMeshes.begin();
+    list<SMESH_subMesh*>::iterator smEnd = data->mySubMeshes.end();
     switch ( event ) {
     case SMESH_subMesh::CLEAN:
-      data->mySubMeshes.front()->ComputeStateEngine( event );
+      for ( ; smIt != smEnd; ++ smIt)
+        (*smIt)->ComputeStateEngine( event );
       break;
     case SMESH_subMesh::COMPUTE:
       if ( subMesh->GetComputeState() == SMESH_subMesh::COMPUTE_OK )
-        data->mySubMeshes.front()->ComputeStateEngine( SMESH_subMesh::SUBMESH_COMPUTED );
+        for ( ; smIt != smEnd; ++ smIt)
+          (*smIt)->ComputeStateEngine( SMESH_subMesh::SUBMESH_COMPUTED );
       break;
     default:;
     }
index 001c40203b276d7970b239b00829bd416f232239..9770d6da0a0c7200e52febbb24516c8ea804b612 100644 (file)
@@ -253,7 +253,7 @@ protected:
    * \brief Update compute_state by _computeError
     * \retval bool - false if there are errors
    */
-  bool CheckComputeError(SMESH_Algo* theAlgo);
+  bool CheckComputeError(SMESH_Algo* theAlgo, const TopoDS_Shape& theShape=TopoDS_Shape());
 
   /*!
    * \brief Return a hypothesis attached to theShape.
index 9660c5a37d32bd1b2b7e9c652bae848d8b5ac64e..6b854e740bdc837becd808f74eb3e3b4fbc25e7d 100644 (file)
@@ -71,6 +71,8 @@ libSMESHClient_la_LDFLAGS  = \
        ../SMESHDS/libSMESHDS.la \
        ../Controls/libSMESHControls.la \
        $(KERNEL_LDFLAGS) -lSalomeLifeCycleCORBA \
+       $(GEOM_LDFLAGS) -lNMTDS \
+       $(MED_LDFLAGS) -lMEDWrapper_V2_2 -lMEDWrapper_V2_1 \
        $(CAS_KERNEL)
 
 SMESHClientBin_CPPFLAGS = \
index 87fb9a0d43a28402c8848af156bd6fc086befb9a..815474d55a8331d67b4823b2327042ac805e2cc5 100644 (file)
@@ -39,6 +39,18 @@ SMESHDS_Document::SMESHDS_Document(int UserID):myUserID(UserID)
 {
 }
 
+//=======================================================================
+//function : Destructor
+//purpose  : 
+//=======================================================================
+
+SMESHDS_Document::~SMESHDS_Document()
+{
+  InitMeshesIterator();
+  while ( MoreMesh() )
+    delete NextMesh();
+}
+
 //=======================================================================
 //function : NewMesh
 //purpose  : 
index 1955f56bfd2e3f5935ee6d47bbd83a4547d813dc..e6b0759c102fc6bd28e12444294d17d7e23b7023 100644 (file)
@@ -77,6 +77,18 @@ bool SMESHDS_Group::Contains (const int theID)
   return false;
 }
 
+//=======================================================================
+//function : Contains
+//purpose  : 
+//=======================================================================
+
+bool SMESHDS_Group::Contains (const SMDS_MeshElement* elem)
+{
+  if (elem)
+    return myGroup.Contains(elem);
+  return false;
+}
+
 //=============================================================================
 /*!
  *  
index 2d41756a53788cffcde24c0eebb86ee0628c57bd..7f5c98c9ca4e80e180de0365f4a8a8566c94f3c4 100644 (file)
@@ -51,6 +51,8 @@ class SMESHDS_EXPORT SMESHDS_Group : public SMESHDS_GroupBase
 
   virtual bool Contains (const int theID);
 
+  virtual bool Contains (const SMDS_MeshElement* elem);
+
   virtual SMDS_ElemIteratorPtr GetElements();
 
   bool Add (const int theID);
index e374b723bdb5024fb167b22c2618da8877ae3309..1fc450002d7551063469835050a91c7bd45c1495 100644 (file)
@@ -41,8 +41,9 @@ SMESHDS_GroupBase::SMESHDS_GroupBase (const int                 theID,
                                       const SMESHDS_Mesh*       theMesh,
                                       const SMDSAbs_ElementType theType):
        myID(theID), myMesh(theMesh), myType(theType), myStoreName(""),
-       myCurIndex(0), myCurID(-1), myColorGroup(0)
+       myCurIndex(0), myCurID(-1)
 {
+  myColor = Quantity_Color( 0.0, 0.0, 0.0, Quantity_TOC_RGB );
 }
 
 //=============================================================================
@@ -131,12 +132,24 @@ bool SMESHDS_GroupBase::IsEmpty()
 
 bool SMESHDS_GroupBase::Contains (const int theID)
 {
-  SMDS_ElemIteratorPtr it = GetElements();
-  bool contains = false;
-  if ( it )
-    while ( !contains && it->more() )
-      contains = ( it->next()->GetID() == theID );
-  return contains;
+  if ( SMDS_ElemIteratorPtr it = GetElements() ) {
+    while ( it->more() )
+      if ( it->next()->GetID() == theID )
+        return true;
+  }
+  return false;
+}
+
+//=======================================================================
+//function : Contains
+//purpose  : 
+//=======================================================================
+
+bool SMESHDS_GroupBase::Contains (const SMDS_MeshElement* elem)
+{
+  if ( elem )
+    return Contains( elem->GetID() );
+  return false;
 }
 
 //=======================================================================
@@ -148,3 +161,35 @@ void SMESHDS_GroupBase::SetType(SMDSAbs_ElementType theType)
 {
   myType = theType;
 }
+
+//=======================================================================
+//function : SetType
+//purpose  : 
+//=======================================================================
+
+void SMESHDS_GroupBase::SetColorGroup(int theColorGroup)
+{
+  if( theColorGroup < 0 || theColorGroup > 360 )
+  {
+    MESSAGE("SMESHDS_GroupBase::SetColorGroup : Value must be in range [0,360]");
+    return;
+  }
+
+  Quantity_Color aColor( (double)theColorGroup, 1.0, 1.0, Quantity_TOC_HLS );
+  SetColor( aColor );
+}
+  
+//=======================================================================
+//function : SetType
+//purpose  : 
+//=======================================================================
+
+int SMESHDS_GroupBase::GetColorGroup() const
+{
+  Quantity_Color aColor = GetColor();
+  double aHue = aColor.Hue();
+  if( aHue < 0 )
+    return 0;
+  return (int)( aHue );
+}
+  
index 2bba90532d447926f044ce75910fbef630212b26..dc4714e8af1d3f03ee23b796ab89242f008ed67d 100644 (file)
@@ -32,6 +32,8 @@
 #include <string>
 #include "SMDSAbs_ElementType.hxx"
 #include "SMDS_MeshElement.hxx"
+
+#include <Quantity_Color.hxx>
   
 class SMESHDS_Mesh;
 
@@ -61,6 +63,8 @@ class SMESHDS_EXPORT SMESHDS_GroupBase
 
   virtual bool Contains (const int theID);
 
+  virtual bool Contains (const SMDS_MeshElement* elem);
+
   virtual SMDS_ElemIteratorPtr GetElements() = 0;
 
   int GetID (const int theIndex);
@@ -68,11 +72,15 @@ class SMESHDS_EXPORT SMESHDS_GroupBase
 
   virtual ~SMESHDS_GroupBase() {}
 
-  void SetColorGroup (int theColorGroup)
-  { myColorGroup = theColorGroup;}
+  void SetColor (const Quantity_Color& theColor)
+  { myColor = theColor;}
   
-  int GetColorGroup() const
-  { return myColorGroup;}
+  Quantity_Color GetColor() const
+  { return myColor;}
+
+  void SetColorGroup (int theColorGroup);
+
+  int GetColorGroup() const;
   
  protected:
   const SMDS_MeshElement* findInMesh (const int theID) const;
@@ -92,7 +100,7 @@ class SMESHDS_EXPORT SMESHDS_GroupBase
   int                  myCurIndex;
   int                  myCurID;
   SMDS_ElemIteratorPtr myIterator;
-  int                  myColorGroup;
+  Quantity_Color       myColor;
 };
 
 #endif
index ede4f05665ab127ce2c6051d0126127911a73804..f7cb20d39d5767583e7f0ebcf0bcb4d054730beb 100644 (file)
@@ -110,3 +110,14 @@ bool SMESHDS_GroupOnGeom::Contains (const int theID)
 {
   return mySubMesh->Contains( findInMesh( theID ));
 }
+
+//=======================================================================
+//function : Contains
+//purpose  : 
+//=======================================================================
+
+bool SMESHDS_GroupOnGeom::Contains (const SMDS_MeshElement* elem)
+{
+  return mySubMesh->Contains( elem );
+}
+
index eaee815f8be7c5c87b1f04a0bc71419b6b9a1ef8..d2c3a1dc46ea60753dc22374d8bf9e3975591a3f 100644 (file)
@@ -47,6 +47,8 @@ class SMESHDS_EXPORT SMESHDS_GroupOnGeom: public SMESHDS_GroupBase
 
   virtual bool Contains (const int theID);
 
+  virtual bool Contains (const SMDS_MeshElement* elem);
+
   virtual SMDS_ElemIteratorPtr GetElements();
 
  private:
index 9f48b7b15b588585f9f0e66f6e016f1105d7b208..18b13fc5d4ccc2f4b1bf57e70f1c1c598e8c3371 100644 (file)
@@ -32,7 +32,9 @@
 #include "SMDS_VertexPosition.hxx"
 #include "SMDS_EdgePosition.hxx"
 #include "SMDS_FacePosition.hxx"
+#include "SMDS_SpacePosition.hxx"
 #include "SMESHDS_GroupOnGeom.hxx"
+
 #include <TopExp_Explorer.hxx>
 #include <TopExp.hxx>
 #include <TopoDS_Iterator.hxx>
@@ -850,6 +852,22 @@ bool SMESHDS_Mesh::add(const SMDS_MeshElement* elem, SMESHDS_SubMesh* subMesh )
   return false;
 }
 
+namespace {
+
+  //================================================================================
+  /*!
+   * \brief Creates a node position in volume
+   */
+  //================================================================================
+
+  inline SMDS_PositionPtr volumePosition(int volId)
+  {
+    SMDS_SpacePosition* pos = new SMDS_SpacePosition();
+    pos->SetShapeId( volId );
+    return SMDS_PositionPtr(pos);
+  }
+}
+
 //=======================================================================
 //function : SetNodeOnVolume
 //purpose  : 
@@ -858,7 +876,7 @@ void SMESHDS_Mesh::SetNodeInVolume(SMDS_MeshNode *      aNode,
                                    const TopoDS_Shell & S)
 {
   if ( add( aNode, getSubmesh(S) ))
-    const_cast<SMDS_Position*>( aNode->GetPosition().get() )->SetShapeId( myCurSubID );
+    aNode->SetPosition ( volumePosition( myCurSubID ));
 }
 //=======================================================================
 //function : SetNodeOnVolume
@@ -868,7 +886,7 @@ void SMESHDS_Mesh::SetNodeInVolume(SMDS_MeshNode *      aNode,
                                    const TopoDS_Solid & S)
 {
   if ( add( aNode, getSubmesh(S) ))
-    const_cast<SMDS_Position*>( aNode->GetPosition().get() )->SetShapeId( myCurSubID );
+    aNode->SetPosition ( volumePosition( myCurSubID ));
 }
 
 //=======================================================================
@@ -1154,7 +1172,7 @@ int SMESHDS_Mesh::ShapeToIndex(const TopoDS_Shape & S) const
 void SMESHDS_Mesh::SetNodeInVolume(const SMDS_MeshNode* aNode, int Index)
 {
   if ( add( aNode, getSubmesh( Index )))
-    const_cast<SMDS_Position*>( aNode->GetPosition().get() )->SetShapeId( Index );
+    ((SMDS_MeshNode*) aNode)->SetPosition( volumePosition( Index ));
 }
 
 //=======================================================================
@@ -1202,13 +1220,21 @@ void SMESHDS_Mesh::SetMeshElementOnShape(const SMDS_MeshElement* anElement,
   add( anElement, getSubmesh( Index ));
 }
 
+//=======================================================================
+//function : ~SMESHDS_Mesh
+//purpose  : 
+//=======================================================================
 SMESHDS_Mesh::~SMESHDS_Mesh()
 {
+  // myScript
   delete myScript;
+  // submeshes
+  TShapeIndexToSubMesh::iterator i_sm = myShapeIndexToSubMesh.begin();
+  for ( ; i_sm != myShapeIndexToSubMesh.end(); ++i_sm )
+    delete i_sm->second;
 }
 
 
-
 //********************************************************************
 //********************************************************************
 //********                                                   *********
index 262649e86c6d6bc459f9d5efe316b065bf13c6ac..7cc19700d64fc320431415a1b4a7a7097be241c9 100644 (file)
@@ -29,6 +29,7 @@
 #include "SMESHDS_SubMesh.hxx"
 
 #include "utilities.h"
+#include "SMDS_SetIterator.hxx"
 
 using namespace std;
 
@@ -297,3 +298,16 @@ bool SMESHDS_SubMesh::ContainsSubMesh( const SMESHDS_SubMesh* theSubMesh ) const
 {
   return mySubMeshes.find( theSubMesh ) != mySubMeshes.end();
 }
+
+//=======================================================================
+//function : GetSubMeshIterator
+//purpose  : 
+//=======================================================================
+
+SMESHDS_SubMeshIteratorPtr SMESHDS_SubMesh::GetSubMeshIterator() const
+{
+  typedef set<const SMESHDS_SubMesh*>::const_iterator TIterator;
+  return SMESHDS_SubMeshIteratorPtr
+    ( new SMDS_SetIterator< const SMESHDS_SubMesh*, TIterator >( mySubMeshes.begin(),
+                                                                 mySubMeshes.end()));
+}
index 1231c490c03ca963b013da4596ba87b07b3d9f22..bc0ccce2a92ddce1f28bbfe2a991e6dd1d9a69dc 100644 (file)
 #include "SMDS_Mesh.hxx"
 #include <set>
 
+class SMESHDS_SubMesh;
+typedef SMDS_Iterator<const SMESHDS_SubMesh*> SMESHDS_SubMeshIterator;
+typedef boost::shared_ptr< SMESHDS_SubMeshIterator > SMESHDS_SubMeshIteratorPtr;
+
 class SMESHDS_EXPORT SMESHDS_SubMesh
 {
  public:
@@ -48,6 +52,8 @@ class SMESHDS_EXPORT SMESHDS_SubMesh
   void AddSubMesh( const SMESHDS_SubMesh* theSubMesh );
   bool RemoveSubMesh( const SMESHDS_SubMesh* theSubMesh );
   bool ContainsSubMesh( const SMESHDS_SubMesh* theSubMesh ) const;
+  int  NbSubMeshes() const { return mySubMeshes.size(); }
+  SMESHDS_SubMeshIteratorPtr GetSubMeshIterator() const;
 
   // for both types
   int NbElements() const;
index fdef18da93699ea83b634ee1798817838bc81e8f..6747798efb951bf1a8aab55d3c8d9bc736997f95 100755 (executable)
@@ -36,4 +36,4 @@
  #define SMESHDS_EXPORT
 #endif
 
-#endif
\ No newline at end of file
+#endif
index 9d5d0ba93215423c227261446952ecd517c2a28d..c2131e8f808c3703497b0037fb64fe2f245119c7 100644 (file)
@@ -17,7 +17,7 @@
 #  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
+#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -48,14 +48,15 @@ dist_libSMESHFiltersSelection_la_SOURCES = \
 
 # additionnal information to compil and link file
 libSMESHFiltersSelection_la_CPPFLAGS = \
-       $(KERNEL_CXXFLAGS) \
-       $(GUI_CXXFLAGS) \
-       $(GEOM_CXXFLAGS) \
        $(CAS_CPPFLAGS) \
        $(QT_INCLUDES) \
        $(PYTHON_INCLUDES) \
        $(VTK_INCLUDES) \
-       ${BOOST_CPPFLAGS} \
+       $(KERNEL_CXXFLAGS) \
+       $(GUI_CXXFLAGS) \
+       $(GEOM_CXXFLAGS) \
+       $(MED_CXXFLAGS) \
+       $(BOOST_CPPFLAGS) \
        $(CORBA_CXXFLAGS) \
        $(CORBA_INCLUDES) \
        -I$(top_builddir)/idl \
index 61162a581681c69ff04e618e2371d289cfe132d0..36a091c72fed8ed09115a8e9446bc71047085a49 100644 (file)
@@ -35,8 +35,9 @@
 #include "SALOMEDSClient_SObject.hxx"
 #include "SALOMEDS_SObject.hxx"
 
-#include <TopTools_MapOfShape.hxx>
 #include <TopExp_Explorer.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+#include <TopExp.hxx>
 
 /*!
  *  Class       : SMESH_NumberFilter
@@ -135,12 +136,13 @@ bool SMESH_NumberFilter::isOk (const SUIT_DataOwner* theDataOwner) const
   if (mySubShapeType == TopAbs_SHAPE);
     return true;
 
-  TopExp_Explorer anExp2 (aShape, mySubShapeType);
-  TopTools_MapOfShape aMap;
-  for (; anExp2.More(); anExp2.Next())
-    aMap.Add(anExp2.Current());
+  TopTools_IndexedMapOfShape aMap;
+  TopExp::MapShapes(aShape, mySubShapeType, aMap);
 
-  return myNumber == aMap.Extent();
+  if ( myNumber )
+    return myNumber == aMap.Extent(); // given number
+
+  return aMap.Extent(); // at least one?
 }
 
 //=======================================================================
index badf440063d35c36a3059183baa6fc92f438ed3b..479525bc4e63c596fc857628e318b0b97fc401a3 100644 (file)
@@ -43,8 +43,9 @@ class SUIT_DataOwner;
  *                Filter geom objects by number of subshapes of the given type
  *                Parameters of constructor:
  *                * theSubShapeType - Type of subshape
- *                * theNumber       - Number of subshapes. Object is selected if it contains theNumber of
- *                                    theSubShapeType sub-shapes
+ *                * theNumber       - Number of subshapes. Object is selected if it contains
+ *                                    theNumber of theSubShapeType sub-shapes, or at least
+ *                                    one theSubShapeType, provided that theNumber==0
  *                * theShapeType    - This map specifies types of object to be selected
  *                * theMainObject   - Sub-shapes of this object is selected only
  *                * theIsClosedOnly - Closed shapes is selected if this parameter is true
index 1b2d9ee29e018a0d8a135f75c881519d28cc08ca..3770b4a850869264c122cd7c3d6a011c75a65618 100644 (file)
 // 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 
+// 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 "SMESH_TypeFilter.hxx"
 
 #include <SUIT_Session.h>
 #include <SalomeApp_Study.h>
 #include <LightApp_DataOwner.h>
 
-SMESH_TypeFilter::SMESH_TypeFilter (MeshObjectType theType) 
+#include <SALOMEconfig.h>
+#include CORBA_CLIENT_HEADER(SMESH_Gen)
+
+SMESH_TypeFilter::SMESH_TypeFilter (MeshObjectType theType)
 {
   myType = theType;
 }
 
-SMESH_TypeFilter::~SMESH_TypeFilter() 
+SMESH_TypeFilter::~SMESH_TypeFilter()
 {
 }
 
@@ -80,90 +84,98 @@ bool SMESH_TypeFilter::isOk (const SUIT_DataOwner* theDataOwner) const
       return false;
 
     switch (myType)
-      {
+    {
       case HYPOTHESIS:
        {
-         if ( aLevel == 2 && ( objFather->Tag() == 1 )) // hypo definition
+         if      (aLevel == 2 && (objFather->Tag() == SMESH::Tag_HypothesisRoot))
+            // hypo definition
            Ok = true;
-         else if ( aLevel == 3 && ( objFather->Tag() == 2 )) // applied global hypo
+         else if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_RefOnAppliedHypothesis))
+            // applied global hypo
            Ok = true;
-         else if ( aLevel == 5 && ( objFather->Tag() == 2 )) // applied local hypo
+         else if (aLevel == 5 && (objFather->Tag() == SMESH::Tag_RefOnAppliedHypothesis))
+            // applied local hypo
            Ok = true;
          break;
        }
       case ALGORITHM:
        {
-         if ( aLevel == 2 && ( objFather->Tag() == 2 )) // algo definition
+         if      (aLevel == 2 && (objFather->Tag() == SMESH::Tag_AlgorithmsRoot))
+            // algo definition
            Ok = true;
-         else if ( aLevel == 3 && ( objFather->Tag() == 3 )) // applied global algo
+         else if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_RefOnAppliedAlgorithms))
+            // applied global algo
            Ok = true;
-         else if ( aLevel == 5 && ( objFather->Tag() == 3 )) // applied local algo
+         else if (aLevel == 5 && (objFather->Tag() == SMESH::Tag_RefOnAppliedAlgorithms))
+            // applied local algo
            Ok = true;
          break;
        }
       case MESH:
        {
-         if ( aLevel == 1 && ( obj->Tag() >= 3 ))
+         if (aLevel == 1 && (obj->Tag() >= SMESH::Tag_FirstMeshRoot))
            Ok = true;
          break;
        }
       case SUBMESH:
        {
          // see SMESH_Gen_i.cxx for tag numbers
-         if ( aLevel == 3 && ( objFather->Tag() >= 4 && objFather->Tag() <= 10 ))
+         if (aLevel == 3 && (objFather->Tag() >= SMESH::Tag_FirstSubMesh &&
+                              objFather->Tag() <= SMESH::Tag_LastSubMesh))
            Ok = true;
          break;
        }
       case MESHorSUBMESH:
        {
-         if ( aLevel == 1 && ( obj->Tag() >= 3 ))
+         if (aLevel == 1 && (obj->Tag() >= SMESH::Tag_FirstMeshRoot))
            Ok = true; // mesh
-          else if ( aLevel == 3 && ( objFather->Tag() >= 4 && objFather->Tag() <= 10 ))
+          else if (aLevel == 3 && (objFather->Tag() >= SMESH::Tag_FirstSubMesh &&
+                                   objFather->Tag() <= SMESH::Tag_LastSubMesh))
            Ok = true;
          break;
        }
-      case SUBMESH_VERTEX:  // Label "SubMeshes on vertexes"
+      case SUBMESH_VERTEX: // Label "SubMeshes on vertexes"
        {
-         if ( aLevel == 3 && ( objFather->Tag() == 4 ))
+         if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnVertex))
            Ok = true;
          break;
        }
       case SUBMESH_EDGE:
        {
-         if ( aLevel == 3 && ( objFather->Tag() == 5 ))
+         if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnEdge))
            Ok = true;
          break;
        }
       case SUBMESH_FACE:
        {
-         if ( aLevel == 3 && ( objFather->Tag() == 7 ))
+         if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnFace))
            Ok = true;
          break;
        }
       case SUBMESH_SOLID:
        {
-         if ( aLevel == 3 && ( objFather->Tag() == 9 ))
+         if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnSolid))
            Ok = true;
          break;
        }
       case SUBMESH_COMPOUND:
        {
-         if ( aLevel == 3 && ( objFather->Tag() == 10 ))
+         if (aLevel == 3 && (objFather->Tag() == SMESH::Tag_SubMeshOnCompound))
            Ok = true;
          break;
        }
       case GROUP:
        {
-         if ( aLevel == 3 && ( objFather->Tag() > 10 ))
+         if (aLevel == 3 && (objFather->Tag() >= SMESH::Tag_FirstGroup))
            Ok = true;
          break;
        }
-      }
+    }
   }
   return Ok;
 }
 
-MeshObjectType SMESH_TypeFilter::type() const 
+MeshObjectType SMESH_TypeFilter::type() const
 {
   return myType;
 }
index 7bb9d1e0eef7be63a466cb18d9b0daf47f338a6a..e56d1e567fdb0126767f2eaa25f128bc480d276e 100644 (file)
@@ -58,6 +58,7 @@ dist_libSMESH_la_SOURCES = \
        SMESHGUI_RemoveElementsDlg.cxx \
        SMESHGUI_MeshInfosDlg.cxx \
        SMESHGUI_StandardMeshInfosDlg.cxx \
+       SMESHGUI_WhatIsDlg.cxx \
        SMESHGUI_Preferences_ColorDlg.cxx \
        SMESHGUI_Preferences_ScalarBarDlg.cxx \
        SMESHGUI_Preferences_SelectionDlg.cxx \
@@ -123,6 +124,7 @@ MOC_FILES = \
        SMESHGUI_RemoveElementsDlg_moc.cxx \
        SMESHGUI_MeshInfosDlg_moc.cxx \
        SMESHGUI_StandardMeshInfosDlg_moc.cxx \
+       SMESHGUI_WhatIsDlg_moc.cxx \
        SMESHGUI_Preferences_ColorDlg_moc.cxx \
        SMESHGUI_Preferences_ScalarBarDlg_moc.cxx \
        SMESHGUI_Preferences_SelectionDlg_moc.cxx \
index 89ce6fe7a9880b49a2f379d8650046e5c2b9fae2..63ad64e378f4a8521affa26caa599a0ca42de93e 100644 (file)
@@ -35,6 +35,7 @@
 #include "SMESHGUI_RemoveElementsDlg.h"
 #include "SMESHGUI_MeshInfosDlg.h"
 #include "SMESHGUI_StandardMeshInfosDlg.h"
+#include "SMESHGUI_WhatIsDlg.h"
 #include "SMESHGUI_Preferences_ColorDlg.h"
 #include "SMESHGUI_Preferences_ScalarBarDlg.h"
 #include "SMESHGUI_Preferences_SelectionDlg.h"
 #include "SALOMEDSClient_StudyBuilder.hxx"
 #include "SALOMEDSClient_SComponent.hxx"
 
+#include <Standard_ErrorHandler.hxx>
+
 using namespace std;
 
 //namespace{
@@ -275,9 +278,11 @@ using namespace std;
               if (aRet)
                 return;
             }
-
-            aFilterMap.insert( QObject::tr("MED 2.1 (*.med)"), SMESH::MED_V2_1 );
-            aFilterMap.insert( QObject::tr("MED 2.2 (*.med)"), SMESH::MED_V2_2 );
+            // PAL18696
+            QString v21( aMesh->GetVersionString( SMESH::MED_V2_1, 2));
+            QString v22( aMesh->GetVersionString( SMESH::MED_V2_2, 2));
+            aFilterMap.insert( QString("MED ") +  v21 + " (*.med)", SMESH::MED_V2_1 );
+            aFilterMap.insert( QString("MED ") +  v22 + " (*.med)", SMESH::MED_V2_2 );
           }
          break;
        case 124:
@@ -308,7 +313,7 @@ using namespace std;
              there must be check on others mesh elements not equal triangles
            */
            if (aMesh->NbTriangles() < 1) {
-              int aRet = SUIT_MessageBox::warn1
+              SUIT_MessageBox::warn1
                 (SMESHGUI::desktop(),
                  QObject::tr("SMESH_WRN_WARNING"),
                  QObject::tr("SMESH_EXPORT_STL1").arg(anIObject->getName()),
@@ -500,12 +505,88 @@ using namespace std;
     }
   }
 
-  void SetDisplayMode(int theCommandID){
+  void AutoColor(){
+    SALOME_ListIO selected;
+    SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
+    if( !app )
+      return;
+
+    LightApp_SelectionMgr* aSel = app->selectionMgr();
+    SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
+    if( !aSel || !appStudy )
+      return;
+
+    aSel->selectedObjects( selected );
+    if( selected.IsEmpty() )
+      return;
+
+    Handle(SALOME_InteractiveObject) anIObject = selected.First();
+
+    _PTR(Study) aStudy = appStudy->studyDS();
+    _PTR(SObject) aMainSObject( aStudy->FindObjectID( anIObject->getEntry() ) );
+    SMESH::SMESH_Mesh_var aMainObject = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(anIObject);
+    if( aMainObject->_is_nil() )
+      return;
+
+    aMainObject->SetAutoColor( true );
+
+    QValueList<SALOMEDS::Color> aReservedColors;
+
+    SMESH::ListOfGroups aListOfGroups = *aMainObject->GetGroups();
+    for( int i = 0, n = aListOfGroups.length(); i < n; i++ )
+    {
+      SMESH::SMESH_GroupBase_var aGroupObject = aListOfGroups[i];
+      SALOMEDS::Color aCurrentColor = aGroupObject->GetColor();
+
+      SALOMEDS::Color aColor = SMESHGUI::getUniqueColor( aReservedColors );
+      aGroupObject->SetColor( aColor );
+      aReservedColors.append( aColor );
+
+      _PTR(SObject) aGroupSObject = SMESH::FindSObject(aGroupObject);
+      if(SMESH_Actor *anActor = SMESH::FindActorByEntry(aGroupSObject->GetID().c_str()))
+      {
+       if( aGroupObject->GetType() == SMESH::NODE )
+         anActor->SetNodeColor( aColor.R, aColor.G, aColor.B );
+       else if( aGroupObject->GetType() == SMESH::EDGE )
+         anActor->SetEdgeColor( aColor.R, aColor.G, aColor.B );
+       else
+         anActor->SetSufaceColor( aColor.R, aColor.G, aColor.B );
+      }
+    }
+
+    SMESH::RepaintCurrentView();
+  }
+
+  void DisableAutoColor(){
     LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
     SALOME_ListIO selected;
     if( aSel )
       aSel->selectedObjects( selected );
 
+    if(selected.Extent()){
+      Handle(SALOME_InteractiveObject) anIObject = selected.First();
+      SMESH::SMESH_Mesh_var aMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(anIObject);
+      if ( !aMesh->_is_nil() ) {
+       aMesh->SetAutoColor( false );
+      }
+    }
+  }
+
+  void SetDisplayMode(int theCommandID){
+    SALOME_ListIO selected;
+    SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
+    if( !app )
+      return;
+
+    LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
+    SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
+    if( !aSel || !appStudy )
+      return;
+
+    _PTR(Study) aStudy = appStudy->studyDS();
+
+    aSel->selectedObjects( selected );
+
     if(selected.Extent() >= 1){
       switch(theCommandID){
       case 1134:{
@@ -611,6 +692,16 @@ using namespace std;
                                      vtkFloatingPointType (nodecolor.blue()) / 255.);
                anActor->SetNodeSize(aDlg->GetIntValue(2));
 
+               SMESH::SMESH_GroupBase_var aGroupObject = SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IObject);
+               if( !aGroupObject->_is_nil() )
+               {
+                 SALOMEDS::Color aColor;
+                 aColor.R = (float)color.red() / 255.0;
+                 aColor.G = (float)color.green() / 255.0;
+                 aColor.B = (float)color.blue() / 255.0;
+                 aGroupObject->SetColor( aColor );
+               }
+
                delete aDlg;
              }
              break;
@@ -1237,6 +1328,15 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
       break;
     }
 
+    // Auto-color
+  case 1136:
+    ::AutoColor();
+  break;
+
+  case 1137:
+    ::DisableAutoColor();
+  break;
+
   case 1134: // Clipping
   case 1133: // Tranparency
   case 1132: // Colors / Size
@@ -1260,7 +1360,18 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
   case 214:                                    // UPDATE
     {
       if(checkLock(aStudy)) break;
-      SMESH::UpdateView();
+      try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+        OCC_CATCH_SIGNALS;
+#endif
+        SMESH::UpdateView();
+      }
+      catch (std::bad_alloc) { // PAL16774 (Crash after display of many groups)
+        SMESH::OnVisuException();
+      }
+      catch (...) { // PAL16774 (Crash after display of many groups)
+        SMESH::OnVisuException();
+      }
 
       SALOME_ListIO l;
       LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
@@ -1290,22 +1401,31 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
 
       extractContainers( sel_objects, to_process );
 
-      if (vtkwnd) {
-       SALOME_ListIteratorOfListIO It( to_process );
-       for (; It.More(); It.Next()) {
-         Handle(SALOME_InteractiveObject) IOS = It.Value();
-         if (IOS->hasEntry()) {
-            SMESH::UpdateView(anAction, IOS->getEntry());
-            if (anAction == SMESH::eDisplayOnly)
-              anAction = SMESH::eDisplay;
-         }
-       }
-      }
+      try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+        OCC_CATCH_SIGNALS;
+#endif
+        if (vtkwnd) {
+          SALOME_ListIteratorOfListIO It( to_process );
+          for (; It.More(); It.Next()) {
+            Handle(SALOME_InteractiveObject) IOS = It.Value();
+            if (IOS->hasEntry()) {
+              if (!SMESH::UpdateView(anAction, IOS->getEntry()))
+                break; // PAL16774 (Crash after display of many groups)
+              if (anAction == SMESH::eDisplayOnly)
+                anAction = SMESH::eDisplay;
+            }
+          }
+        }
 
-      // PAL13338 + PAL15161 -->
-      if ( ( theCommandID==301 || theCommandID==302 ) && !checkLock(aStudy) /*&& !automaticUpdate()*/ )
-       SMESH::UpdateView();
-      // PAL13338 + PAL15161 <--
+        // PAL13338 + PAL15161 -->
+        if ( ( theCommandID==301 || theCommandID==302 ) && !checkLock(aStudy))
+          SMESH::UpdateView();
+        // PAL13338 + PAL15161 <--
+      }
+      catch (...) { // PAL16774 (Crash after display of many groups)
+        SMESH::OnVisuException();
+      }
 
       if (anAction == SMESH::eErase) {
        SALOME_ListIO l1;
@@ -1364,82 +1484,6 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
       if (checkLock(aStudy)) break;
 
       startOperation( 701 );
-//       LightApp_SelectionMgr *Sel = selectionMgr();
-//       SALOME_ListIO selected; Sel->selectedObjects( selected );
-
-//       int nbSel = selected.Extent();
-//       if (nbSel != 1) {
-//         SUIT_MessageBox::warn1(desktop(),
-//                                tr("SMESH_WRN_WARNING"),
-//                                tr("SMESH_WRN_NO_AVAILABLE_DATA"),
-//                                tr("SMESH_BUT_OK"));
-//         break;
-//       }
-
-//       SMESH::SMESH_Mesh_var aMesh;
-//       SMESH::SMESH_subMesh_var aSubMesh;
-//       Handle(SALOME_InteractiveObject) IObject = selected.First();
-//       if (IObject->hasEntry()) {
-//         _PTR(SObject) aMeshSObj = aStudy->FindObjectID(IObject->getEntry());
-//         GEOM::GEOM_Object_var aShapeObject = SMESH::GetShapeOnMeshOrSubMesh( aMeshSObj );
-//         if ( aShapeObject->_is_nil() ) {
-//           // imported mesh
-//           break;
-//         }
-//         if ( aMeshSObj ) {
-//           aMesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>(aMeshSObj);
-//           aSubMesh = SMESH::SObjectToInterface<SMESH::SMESH_subMesh>(aMeshSObj);
-//           if ( !aSubMesh->_is_nil() )
-//             aMesh = aSubMesh->GetFather();
-
-//           if (!aMesh->_is_nil()) {
-//             SMESH::algo_error_array_var errors = GetSMESHGen()->GetAlgoState(aMesh,aShapeObject);
-//             if ( errors->length() > 0 ) {
-//               SUIT_MessageBox::warn1(desktop(),
-//                                      tr("SMESH_WRN_WARNING"),
-//                                      SMESH::GetMessageOnAlgoStateErrors( errors.in() ),
-//                                      tr("SMESH_BUT_OK"));
-//               break;
-//             }
-
-//             try {
-//               if (GetSMESHGen()->Compute(aMesh, aShapeObject))
-//                 SMESH::ModifiedMesh(aMeshSObj, true);
-//               else
-//                 SUIT_MessageBox::warn1(desktop(),
-//                                        tr("SMESH_WRN_WARNING"),
-//                                        tr("SMESH_WRN_COMPUTE_FAILED"),
-//                                        tr("SMESH_BUT_OK"));
-//             }
-//             catch(const SALOME::SALOME_Exception & S_ex){
-//               SalomeApp_Tools::QtCatchCorbaException(S_ex);
-//             }
-
-//             updateObjBrowser();
-
-//             if (automaticUpdate()) {
-//               SVTK_ViewWindow* aVTKView = SMESH::GetViewWindow(this, /*create*/true);
-//               if (aVTKView) {
-//                 CORBA::Long anId = aStudy->StudyId();
-//                 TVisualObjPtr aVisualObj = SMESH::GetVisualObj(anId, IObject->getEntry());
-//                 if (aVisualObj) {
-//                   aVisualObj->Update();
-//                   SMESH_Actor* anActor = SMESH::FindActorByEntry(IObject->getEntry());
-//                   if (!anActor) {
-//                     anActor = SMESH::CreateActor(aStudy, IObject->getEntry());
-//                     if (anActor) {
-//                       SMESH::DisplayActor(aVTKView, anActor); //apo
-//                       SMESH::FitAll();
-//                     }
-//                   }
-//                   SMESH::RepaintCurrentView();
-//                   Sel->setSelectedObjects( selected );
-//                 }
-//               }
-//             }
-//           }
-//         }
-//       }
     }
     break;
 
@@ -1845,6 +1889,13 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
       break;
     }
 
+  case 903:                                    // WHAT IS
+    {
+      EmitSignalDeactivateDialog();
+      new SMESHGUI_WhatIsDlg( this, "", false);
+      break;
+    }
+
   case 1100:                                   // EDIT HYPOTHESIS
     {
       if(checkLock(aStudy)) break;
@@ -1857,17 +1908,18 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
       int nbSel = selected.Extent();
 
       if (nbSel == 1) {
-       SMESH::SMESH_Hypothesis_var Hyp = SMESH::IObjectToInterface<SMESH::SMESH_Hypothesis>(selected.First());
+        Handle(SALOME_InteractiveObject) anIObject = selected.First();
+       SMESH::SMESH_Hypothesis_var aHypothesis = SMESH::IObjectToInterface<SMESH::SMESH_Hypothesis>(anIObject);
 
         /* Look for all mesh objects that have this hypothesis affected in order to flag as ModifiedMesh */
         /* At end below '...->updateObjBrowser(true)' will change icon of mesh objects                   */
         /* Warning : however by internal mechanism all subMeshes icons are changed !                     */
-        if ( !Hyp->_is_nil() )
+        if ( !aHypothesis->_is_nil() )
         {
-          char* sName = Hyp->GetName();
-          SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator(sName);
+          CORBA::String_var aHypType = aHypothesis->GetName();
+          SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator(aHypType);
           if (aCreator)
-            aCreator->edit( Hyp.in(), desktop() );
+            aCreator->edit( aHypothesis.in(), anIObject->getName(), desktop() );
           else
           {
             // report error
@@ -2409,7 +2461,7 @@ void SMESHGUI::initialize( CAM_Application* app )
   createSMESHAction(  125, "EXPORT_MED" );
   createSMESHAction(  126, "EXPORT_UNV" );
   createSMESHAction(  141, "EXPORT_STL" );
-  createSMESHAction(   33, "DELETE",          "ICON_DELETE" );
+  createSMESHAction(   33, "DELETE",          "ICON_DELETE", Key_Delete );
   createSMESHAction( 5105, "SEL_FILTER_LIB" );
   createSMESHAction(  701, "COMPUTE",         "ICON_COMPUTE" );
   createSMESHAction(  702, "CREATE_MESH",     "ICON_DLG_INIT_MESH" );
@@ -2427,6 +2479,7 @@ void SMESHGUI::initialize( CAM_Application* app )
   createSMESHAction(  813, "DEL_GROUP",       "ICON_DEL_GROUP" );
   createSMESHAction(  900, "ADV_INFO",        "ICON_ADV_INFO" );
   createSMESHAction(  902, "STD_INFO",        "ICON_STD_INFO" );
+  createSMESHAction(  903, "WHAT_IS",         "ICON_WHAT_IS" );
   createSMESHAction( 6001, "LENGTH",          "ICON_LENGTH" ,       0, true );
   createSMESHAction( 6002, "FREE_EDGE",       "ICON_FREE_EDGE" ,    0, true );
   createSMESHAction( 6003, "FREE_BORDER",     "ICON_FREE_EDGE_2D" , 0, true );
@@ -2483,7 +2536,7 @@ void SMESHGUI::initialize( CAM_Application* app )
   createSMESHAction(  219, "VOLUMES",        "ICON_DLG_TETRAS", 0, true );
   createSMESHAction(  220, "ALL" );
   createSMESHAction( 1100, "EDIT_HYPO" );
-  createSMESHAction( 1101, "RENAME" );
+  createSMESHAction( 1101, "RENAME", "", Key_F2 );
   createSMESHAction( 1102, "UNASSIGN" );
   createSMESHAction( 9010, "NUM_NODES", "", 0, true );
   createSMESHAction( 9011, "NUM_ELEMENTS", "", 0, true );
@@ -2492,6 +2545,8 @@ void SMESHGUI::initialize( CAM_Application* app )
   createSMESHAction( 1133, "TRANSP" );
   createSMESHAction( 1134, "CLIP" );
   createSMESHAction( 1135, "DISP_ENT" );
+  createSMESHAction( 1136, "AUTO_COLOR" );
+  createSMESHAction( 1137, "DISABLE_AUTO_COLOR" );
   createSMESHAction( 2000, "CTRL" );
 
   createSMESHAction( 300, "ERASE" );
@@ -2558,6 +2613,7 @@ void SMESHGUI::initialize( CAM_Application* app )
   createMenu( separator(), meshId, -1 );
   createMenu( 900, meshId, -1 );
   createMenu( 902, meshId, -1 );
+  createMenu( 903, meshId, -1 );
   createMenu( separator(), meshId, -1 );
 
   createMenu( 6003, ctrlId, -1 );
@@ -2644,6 +2700,7 @@ void SMESHGUI::initialize( CAM_Application* app )
   createTool( separator(), meshTb );
   createTool( 900, meshTb );
   createTool( 902, meshTb );
+  createTool( 903, meshTb );
   createTool( separator(), meshTb );
 
   createTool( 6001, ctrlTb );
@@ -2741,6 +2798,7 @@ void SMESHGUI::initialize( CAM_Application* app )
   createPopupItem( 214, OB, mesh_group );                  // UPDATE
   createPopupItem( 900, OB, mesh_group );                  // ADV_INFO
   createPopupItem( 902, OB, mesh );                        // STD_INFO
+  createPopupItem( 903, OB, mesh_group );                  // WHAT_IS
   popupMgr()->insert( separator(), -1, 0 );
   createPopupItem( 801, OB, mesh );                        // CREATE_GROUP
   createPopupItem( 802, OB, subMesh );                     // CONSTRUCT_GROUP
@@ -2751,10 +2809,11 @@ void SMESHGUI::initialize( CAM_Application* app )
   popupMgr()->insert( separator(), -1, 0 );
 
   QString only_one_non_empty = QString( " && %1=1 && numberOfNodes>0" ).arg( QtxPopupMgr::Selection::defSelCountParam() );
-  createPopupItem( 125, OB, mesh, only_one_non_empty );    // EXPORT_MED
-  createPopupItem( 126, OB, mesh, only_one_non_empty );    // EXPORT_UNV
-  createPopupItem( 141, OB, mesh, only_one_non_empty );    // EXPORT_STL
-  createPopupItem( 33, OB, subMesh + " " + group );        // DELETE
+  createPopupItem( 125, OB, mesh, only_one_non_empty );   // EXPORT_MED
+  createPopupItem( 126, OB, mesh, only_one_non_empty );   // EXPORT_UNV
+  createPopupItem( 141, OB, mesh, only_one_non_empty );   // EXPORT_STL
+  //createPopupItem( 33, OB, subMesh + " " + group );       // DELETE
+  createPopupItem(  33, OB, mesh_group + " " + hyp_alg ); // DELETE
   popupMgr()->insert( separator(), -1, 0 );
 
   // popup for viewer
@@ -2765,6 +2824,11 @@ void SMESHGUI::initialize( CAM_Application* app )
   createPopupItem( 214, View, mesh_group ); // UPDATE
   createPopupItem( 900, View, mesh_group ); // ADV_INFO
   createPopupItem( 902, View, mesh );       // STD_INFO
+  createPopupItem( 903, View, mesh_group ); // WHAT_IS
+  popupMgr()->insert( separator(), -1, 0 );
+
+  createPopupItem( 1136, OB + " " + View, mesh, "&& (not isAutoColor)" ); // AUTO_COLOR
+  createPopupItem( 1137, OB + " " + View, mesh, "&& isAutoColor" );       // DISABLE_AUTO_COLOR
   popupMgr()->insert( separator(), -1, 0 );
 
   int anId;
@@ -2787,6 +2851,10 @@ void SMESHGUI::initialize( CAM_Application* app )
   aType = aType.arg( mesh_group );
   QString aMeshInVTK = aClient + "&&" + aType;
 
+  aClient = "($client in {'VTKViewer' 'ObjectBrowser'})";
+  QString anActiveVTK = QString("activeView = '%1'").arg(SVTK_Viewer::Type());
+  QString aSelCount = QString( "%1 > 0" ).arg( QtxPopupMgr::Selection::defSelCountParam() );
+
   //-------------------------------------------------
   // Numbering
   //-------------------------------------------------
@@ -2954,10 +3022,6 @@ void SMESHGUI::initialize( CAM_Application* app )
   //-------------------------------------------------
   // Display / Erase
   //-------------------------------------------------
-  aClient = "($client in {'VTKViewer' 'ObjectBrowser'})";
-  QString anActiveVTK = QString("activeView = '%1'").arg(SVTK_Viewer::Type());
-  QString aSelCount = QString( "%1 > 0" ).arg( QtxPopupMgr::Selection::defSelCountParam() );
-
   QString aRule = "$component={'SMESH'} and ( type='Component' or (" + aClient + " and " +
     aType + " and " + aSelCount + " and " + anActiveVTK + " and " + isNotEmpty + " %1 ) )";
   popupMgr()->insert( action( 301 ), -1, -1 ); // DISPLAY
@@ -3005,6 +3069,12 @@ bool SMESHGUI::deactivateModule( SUIT_Study* study )
   return SalomeApp_Module::deactivateModule( study );
 }
 
+void SMESHGUI::studyClosed( SUIT_Study* s )
+{
+  SMESH::RemoveVisuData( s->id() );
+  SalomeApp_Module::studyClosed( s );
+}
+
 void SMESHGUI::OnGUIEvent()
 {
   const QObject* obj = sender();
@@ -3097,7 +3167,7 @@ void SMESHGUI::createPreferences()
 
   int exportgroup = addPreference( tr( "PREF_GROUP_EXPORT" ), genTab );
   addPreference( tr( "PREF_AUTO_GROUPS" ), exportgroup, LightApp_Preferences::Bool, "SMESH", "auto_groups" );
-  int renumber=addPreference( tr( "PREF_RENUMBER" ), exportgroup, LightApp_Preferences::Bool, "SMESH", "renumbering" );
+  addPreference( tr( "PREF_RENUMBER" ), exportgroup, LightApp_Preferences::Bool, "SMESH", "renumbering" );
 
   int meshTab = addPreference( tr( "PREF_TAB_MESH" ) );
   int nodeGroup = addPreference( tr( "PREF_GROUP_NODES" ), meshTab );
@@ -3147,6 +3217,7 @@ void SMESHGUI::createPreferences()
 
   addPreference( tr( "PREF_NODES" ), precSelGroup, LightApp_Preferences::Double, "SMESH", "selection_precision_node" );
   addPreference( tr( "PREF_ELEMENTS" ), precSelGroup, LightApp_Preferences::Double, "SMESH", "selection_precision_element" );
+  addPreference( tr( "PREF_OBJECTS" ), precSelGroup, LightApp_Preferences::Double, "SMESH", "selection_precision_object" );
 
   int sbarTab = addPreference( tr( "SMESH_SCALARBAR" ) );
   int fontGr = addPreference( tr( "SMESH_FONT_SCALARBAR" ), sbarTab );
@@ -3237,7 +3308,8 @@ void SMESHGUI::preferencesChanged( const QString& sect, const QString& name )
     SUIT_ResourceMgr* aResourceMgr = SMESH::GetResourceMgr(this);
     if( name=="selection_object_color" || name=="selection_element_color" ||
         name=="selection_width" || name=="highlight_color" || name=="highlight_width" ||
-        name=="selection_precision_node" || name=="selection_precision_element" )
+        name=="selection_precision_node" || name=="selection_precision_element" ||
+       name=="selection_precision_object")
       SMESH::UpdateSelectionProp( this );
     else if (name == QString("scalar_bar_vertical_x") || name == QString("scalar_bar_vertical_width")){
       sbX1 = aResourceMgr->doubleValue("SMESH", "scalar_bar_vertical_x", sbX1);
@@ -3403,3 +3475,60 @@ LightApp_Displayer* SMESHGUI::displayer()
   return myDisplayer;
 }
 
+SALOMEDS::Color SMESHGUI::getUniqueColor( const QValueList<SALOMEDS::Color>& theReservedColors )
+{
+  int aHue = -1;
+  int aTolerance = 64;
+  int anIterations = 0;
+  int aPeriod = 5;
+
+  while( 1 )
+  {
+    anIterations++;
+    if( anIterations % aPeriod == 0 )
+    {
+      aTolerance /= 2;
+      if( aTolerance < 1 )
+       break;
+    }
+    //cout << "Iteration N" << anIterations << " (tolerance=" << aTolerance << ")"<< endl;
+
+    aHue = (int)( 360.0 * rand() / RAND_MAX );
+    //cout << "Hue = " << aHue << endl;
+
+    //cout << "Auto colors : ";
+    bool ok = true;
+    QValueList<SALOMEDS::Color>::const_iterator it = theReservedColors.constBegin();
+    QValueList<SALOMEDS::Color>::const_iterator itEnd = theReservedColors.constEnd();
+    for( ; it != itEnd; ++it )
+    {
+      SALOMEDS::Color anAutoColor = *it;
+      QColor aQColor( (int)( anAutoColor.R * 255.0 ), (int)( anAutoColor.G * 255.0 ), (int)( anAutoColor.B * 255.0 ) );
+
+      int h, s, v;
+      aQColor.getHsv( &h, &s, &v );
+      //cout << h << " ";
+      if( abs( h - aHue ) < aTolerance )
+      {
+       ok = false;
+       //cout << "break (diff = " << abs( h - aHue ) << ")";
+       break;
+      }
+    }
+    //cout << endl;
+
+    if( ok )
+      break;
+  }
+
+  //cout << "Hue of the returned color = " << aHue << endl;
+  QColor aColor;
+  aColor.setHsv( aHue, 255, 255 );
+
+  SALOMEDS::Color aSColor;
+  aSColor.R = (double)aColor.red() / 255.0;
+  aSColor.G = (double)aColor.green() / 255.0;
+  aSColor.B = (double)aColor.blue() / 255.0;
+
+  return aSColor;
+}
index 7dbab6471692f2b7aa0d41e0c56d6b1390c4d683..33ced9a762fe2ccab76d3c066f22e43c9e0b4ef5 100644 (file)
@@ -109,9 +109,12 @@ public :
   
   virtual void                update( const int );
 
+  static SALOMEDS::Color      getUniqueColor( const QValueList<SALOMEDS::Color>& );
+
 public slots:
   virtual bool                deactivateModule( SUIT_Study* );
   virtual bool                activateModule( SUIT_Study* );
+  virtual void                studyClosed( SUIT_Study* );
 
 private slots:
   void                        OnGUIEvent();
index 854c25a94410ea0e25d97de23134ece361b4b206..3d778131956449011aabd7a93faab09bcac338e4 100644 (file)
@@ -249,32 +249,32 @@ SMESHGUI_AddMeshElementDlg::SMESHGUI_AddMeshElementDlg( SMESHGUI* theModule,
   QString elemName;
   if (myNbNodes == 2) {
     elemName = "EDGE";
-    myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_edges";
+    myHelpFileName = "adding_nodes_and_elements_page.html#adding_edges_anchor";
   }
   else if (myNbNodes == 3) {
     elemName = "TRIANGLE";
-    myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_triangles";
+    myHelpFileName = "adding_nodes_and_elements_page.html#adding_triangles_anchor";
   }
   else if (myNbNodes == 4)
     if (myElementType == SMDSAbs_Face) {
       elemName = "QUADRANGLE";
-      myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_quadrangles";
+      myHelpFileName = "adding_nodes_and_elements_page.html#adding_quadrangles_anchor";
     }
     else {
       elemName = "TETRAS";
-      myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_tetrahedrons";
+      myHelpFileName = "adding_nodes_and_elements_page.html#adding_tetrahedrons_anchor";
     }
   else if (myNbNodes == 8) {
     elemName = "HEXAS";
-    myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_hexahedrons";
+    myHelpFileName = "adding_nodes_and_elements_page.html#adding_hexahedrons_anchor";
   }
   else if (myElementType == SMDSAbs_Face) {
     elemName = "POLYGON";
     myIsPoly = true;
-    myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_polygons";
+    myHelpFileName = "adding_nodes_and_elements_page.html#adding_polygons_anchor";
   }
   else if (myElementType == SMDSAbs_Volume) {
-    myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_polyhedrons";
+    myHelpFileName = "adding_nodes_and_elements_page.html#adding_polyhedrons_anchor";
   }
   
   QString iconName      = tr(QString("ICON_DLG_%1").arg(elemName));
index 82a3728a221f6f170d31cabc8eb57cbcd9e32863..1f1e5bd1427b7f3bcea6ad5879f0f6f78e2a051c 100644 (file)
@@ -498,37 +498,37 @@ void SMESHGUI_AddQuadraticElementDlg::Init()
   case QUAD_EDGE:
     aNumRows = 1;
     myNbCorners = 2;
-    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_edges
+    myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_edges
     break;
   case QUAD_TRIANGLE:
     aNumRows = 3;
     myNbCorners = 3;
-    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_triangles
+    myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_triangles
     break;
   case QUAD_QUADRANGLE:
     aNumRows = 4;
     myNbCorners = 4;
-    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_quadrangles
+    myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_quadrangles
     break;
   case QUAD_TETRAHEDRON:
     aNumRows = 6;
     myNbCorners = 4;
-    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_tetrahedrons
+    myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_tetrahedrons
     break;
   case QUAD_PYRAMID:
     aNumRows = 8;
     myNbCorners = 5;
-    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_pyramids
+    myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_pyramids
     break;
   case QUAD_PENTAHEDRON:
     aNumRows = 9;
     myNbCorners = 6;
-    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_pentahedrons
+    myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_pentahedrons
     break; 
   case QUAD_HEXAHEDRON:
     aNumRows = 12;
     myNbCorners = 8;
-    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_hexahedrons
+    myHelpFileName = "adding_quadratic_elements_page.html#?"; //Adding_hexahedrons
     break;
   }
     
index 32160647c709ce4860cfb54602eca7d8d5a825b9..781959abbf9304a106534482aa2c13b09c0969c0 100644 (file)
@@ -196,7 +196,7 @@ SMESHGUI_BuildCompoundDlg::SMESHGUI_BuildCompoundDlg( SMESHGUI* theModule)
   GroupButtonsLayout->addWidget(buttonOk, 0, 0);
   SMESHGUI_BuildCompoundDlgLayout->addWidget(GroupButtons, 3, 0);
 
-  myHelpFileName = "building_compounds.htm";
+  myHelpFileName = "building_compounds_page.html";
 
   Init(); // Initialisations
 }
index 8a30f65e18c52cdb8763669e9dc70370c52caeb9..a35b103880960f5181bda9358c886c6543fd1e6e 100644 (file)
@@ -350,7 +350,7 @@ SMESHGUI_ClippingDlg::SMESHGUI_ClippingDlg (SMESHGUI* theModule,
   myIsSelectPlane = false;
   onSelectionChanged();
 
-  myHelpFileName = "clipping.htm";
+  myHelpFileName = "clipping_page.html";
 
   // signals and slots connections :
   connect(ComboBoxPlanes, SIGNAL(activated(int)), this, SLOT(onSelectPlane(int)));
index 5ce9868764a3ea9944b89d288f0f4c1a2e98eee2..51d62037b2b8d48617ca9718e9b1787ce568c906 100644 (file)
@@ -35,6 +35,7 @@
 #include "SMESHGUI_HypothesesUtils.h"
 
 #include "SMDS_SetIterator.hxx"
+#include <SMDS_Mesh.hxx>
 
 #include "GEOMBase.h"
 #include "GEOM_Actor.h"
@@ -67,6 +68,8 @@
 #include <BRepBndLib.hxx>
 #include <BRepMesh_IncrementalMesh.hxx>
 
+#include <Standard_ErrorHandler.hxx>
+
 // QT Includes
 #include <qframe.h>
 #include <qlayout.h>
@@ -77,6 +80,7 @@
 #include <qtable.h>
 #include <qhbox.h>
 #include <qhgroupbox.h>
+#include <qvgroupbox.h>
 
 #include <vtkProperty.h>
 
@@ -109,6 +113,21 @@ using namespace SMESH;
 
 namespace SMESH {
   
+  //=============================================================================
+  /*!
+   * \brief Allocate some memory at construction and release it at destruction.
+   * Is used to be able to continue working after mesh generation or visualization
+   * break due to lack of memory
+   */
+  //=============================================================================
+
+  struct MemoryReserve
+  {
+    char* myBuf;
+    MemoryReserve(): myBuf( new char[1024*1024*1] ){} // 1M
+    ~MemoryReserve() { delete [] myBuf; }
+  };
+
   // =========================================================================================
   /*!
    * \brief Class showing shapes without publishing
@@ -312,7 +331,7 @@ namespace SMESH {
       CASE2TEXT( COMPERR_BAD_INPUT_MESH);
       CASE2TEXT( COMPERR_STD_EXCEPTION );
       CASE2TEXT( COMPERR_OCC_EXCEPTION );
-      CASE2TEXT( COMPERR_SLM_EXCEPTION );
+    case SMESH::COMPERR_SLM_EXCEPTION: break; // avoid double "Salome exception"
       CASE2TEXT( COMPERR_EXCEPTION     );
       CASE2TEXT( COMPERR_MEMORY_PB     );
       CASE2TEXT( COMPERR_BAD_SHAPE     );
@@ -408,7 +427,7 @@ namespace SMESH {
   }
   // -----------------------------------------------------------------------
   /*!
-   * \brief Return text describing a subshape
+   * \brief Return a list of selected rows
    */
   bool getSelectedRows(QTable* table, list< int > & rows)
   {
@@ -421,6 +440,9 @@ namespace SMESH {
       for ( int row = selected.topRow(); row <= selected.bottomRow(); ++row )
         rows.push_back( row );
     }
+    if (rows.empty() && table->currentRow() > -1 )
+      rows.push_back( table->currentRow() );
+
     return !rows.empty();
   }
 
@@ -573,7 +595,7 @@ void SMESHGUI_MeshInfosBox::SetInfoByMesh(SMESH::SMESH_Mesh_var mesh)
   // faces
   nbTot = mesh->NbFaces(), nbLin = mesh->NbFacesOfOrder(lin);
   myNbFace     ->setText( QString("%1").arg( nbTot ));
-  myNbLinFace  ->setText( QString("%1").arg( nbLin ));
+  myNbLinFace  ->setText( QString("%1").arg( nbLin )); 
   myNbQuadFace ->setText( QString("%1").arg( nbTot - nbLin ));
 
   // volumes
@@ -671,12 +693,12 @@ QFrame* SMESHGUI_ComputeDlg::createMainFrame (QWidget* theParent)
   myBriefInfo = new SMESHGUI_MeshInfosBox(false, aFrame);
   myFullInfo  = new SMESHGUI_MeshInfosBox(true,  aFrame);
 
-  // errors
+  // Computation errors
 
-  myErrorGroup = new QGroupBox(tr("ERRORS"), aFrame, "errorGrBox");
-  myTable      = new QTable( 1, NB_COLUMNS, myErrorGroup, "myTable");
-  myShowBtn    = new QPushButton(tr("SHOW_SHAPE"), myErrorGroup, "myShowBtn");
-  myPublishBtn = new QPushButton(tr("PUBLISH_SHAPE"), myErrorGroup, "myPublishBtn");
+  myCompErrorGroup = new QGroupBox(tr("ERRORS"), aFrame, "myCompErrorGroup");
+  myTable      = new QTable( 1, NB_COLUMNS, myCompErrorGroup, "myTable");
+  myShowBtn    = new QPushButton(tr("SHOW_SHAPE"), myCompErrorGroup, "myShowBtn");
+  myPublishBtn = new QPushButton(tr("PUBLISH_SHAPE"), myCompErrorGroup, "myPublishBtn");
 
   myTable->setReadOnly( TRUE );
   myTable->hideColumn( COL_PUBLISHED );
@@ -693,11 +715,11 @@ QFrame* SMESHGUI_ComputeDlg::createMainFrame (QWidget* theParent)
     }
     myTable->horizontalHeader()->setLabel( col, header );
   }
-
-  myErrorGroup->setColumnLayout(0, Qt::Vertical);
-  myErrorGroup->layout()->setSpacing(0);
-  myErrorGroup->layout()->setMargin(0);
-  QGridLayout* grpLayout = new QGridLayout(myErrorGroup->layout());
+  // layouting
+  myCompErrorGroup->setColumnLayout(0, Qt::Vertical);
+  myCompErrorGroup->layout()->setSpacing(0);
+  myCompErrorGroup->layout()->setMargin(0);
+  QGridLayout* grpLayout = new QGridLayout(myCompErrorGroup->layout());
   grpLayout->setAlignment(Qt::AlignTop);
   grpLayout->setSpacing(SPACING);
   grpLayout->setMargin(MARGIN);
@@ -706,13 +728,31 @@ QFrame* SMESHGUI_ComputeDlg::createMainFrame (QWidget* theParent)
   grpLayout->addWidget         ( myPublishBtn, 1, 1 );
   grpLayout->setRowStretch( 2, 1 );
 
+  // Hypothesis definition errors
+
+  myHypErrorGroup = new QGroupBox(1,Qt::Vertical, tr("SMESH_WRN_MISSING_PARAMETERS"),aFrame);
+  myHypErrorLabel = new QLabel(myHypErrorGroup);
+
+  // Memory Lack Label
+
+  myMemoryLackGroup = new QVGroupBox(tr("ERRORS"), aFrame, "memlackGrBox");
+  QLabel* memLackLabel = new QLabel(tr("MEMORY_LACK"), myMemoryLackGroup);
+  QFont bold = memLackLabel->font(); bold.setBold(true);
+  memLackLabel->setFont( bold );
+  memLackLabel->setMinimumWidth(300);
+
+  // add all widgets to aFrame
   QVBoxLayout* aLay = new QVBoxLayout(aFrame);
   aLay->addWidget( aPixGrp );
   aLay->addWidget( nameBox );
   aLay->addWidget( myBriefInfo );
   aLay->addWidget( myFullInfo );
-  aLay->addWidget( myErrorGroup );
-  aLay->setStretchFactor( myErrorGroup, 1 );
+  aLay->addWidget( myHypErrorGroup );
+  aLay->addWidget( myCompErrorGroup );
+  aLay->addWidget( myMemoryLackGroup );
+  aLay->setStretchFactor( myCompErrorGroup, 1 );
+
+  ((QPushButton*) button( OK ))->setDefault( true );
 
   return aFrame;
 }
@@ -727,12 +767,14 @@ SMESHGUI_ComputeOp::SMESHGUI_ComputeOp()
 {
   myDlg = new SMESHGUI_ComputeDlg;
   myTShapeDisplayer = new TShapeDisplayer();
-  myHelpFileName = "/files/about_meshes.htm";
+  //myHelpFileName = "/files/about_meshes.htm"; // V3
+  myHelpFileName = "about_meshes_page.html"; // V4
 
   // connect signals and slots
   connect(myDlg->myShowBtn,    SIGNAL (clicked()), SLOT(onPreviewShape()));
   connect(myDlg->myPublishBtn, SIGNAL (clicked()), SLOT(onPublishShape()));
   connect(table(),SIGNAL(selectionChanged()), SLOT(currentCellChanged()));
+  connect(table(),SIGNAL(currentChanged(int,int)), SLOT(currentCellChanged()));
 }
 
 //=======================================================================
@@ -744,16 +786,11 @@ void SMESHGUI_ComputeOp::startOperation()
 {
   SMESHGUI_Operation::startOperation();
 
-  SMESH::SMESH_Mesh_var          aMesh;
-  SMESH::compute_error_array_var anErrors;
+  // check selection
 
+  SMESH::SMESH_Mesh_var aMesh;
   myMainShape = GEOM::GEOM_Object::_nil();
 
-  // COMPUTE MESH
-
-  bool computeFailed = true;
-  int nbNodes = 0, nbEdges = 0, nbFaces = 0, nbVolums = 0;
-
   LightApp_SelectionMgr *Sel = selectionMgr();
   SALOME_ListIO selected; Sel->selectedObjects( selected );
 
@@ -769,69 +806,7 @@ void SMESHGUI_ComputeOp::startOperation()
 
   Handle(SALOME_InteractiveObject) IObject = selected.First();
   aMesh = SMESH::GetMeshByIO(IObject);
-  if (!aMesh->_is_nil()) {
-    myMainShape = aMesh->GetShapeToMesh();
-    if ( !myMainShape->_is_nil() ) {
-      SMESH::SMESH_Gen_var gen = getSMESHGUI()->GetSMESHGen();
-      SMESH::algo_error_array_var errors = gen->GetAlgoState(aMesh,myMainShape);
-      if ( errors->length() > 0 ) {
-        SUIT_MessageBox::warn1(desktop(), tr("SMESH_WRN_WARNING"),
-                               SMESH::GetMessageOnAlgoStateErrors( errors.in() ),
-                               tr("SMESH_BUT_OK"));
-        onCancel();
-        return;
-      }
-      SUIT_OverrideCursor aWaitCursor;
-      try {
-        if (gen->Compute(aMesh, myMainShape)) {
-          computeFailed = false;
-        }
-        else {
-          anErrors = gen->GetComputeErrors( aMesh, myMainShape );
-//           if ( anErrors->length() == 0 ) {
-//             SUIT_MessageBox::warn1(desktop(),
-//                                    tr("SMESH_WRN_WARNING"),
-//                                    tr("SMESH_WRN_COMPUTE_FAILED"),
-//                                    tr("SMESH_BUT_OK"));
-//             onCancel();
-//             return;
-//           }
-        }
-      }
-      catch(const SALOME::SALOME_Exception & S_ex){
-        SalomeApp_Tools::QtCatchCorbaException(S_ex);
-      }
-      if ( _PTR(SObject) aMeshSObj = SMESH::FindSObject(aMesh)) {
-        myDlg->myMeshName->setText( aMeshSObj->GetName() );
-        SMESH::ModifiedMesh(aMeshSObj, !computeFailed, aMesh->NbNodes() == 0);
-      }
-      update( UF_ObjBrowser | UF_Model );
-
-      // SHOW MESH
-
-      if ( getSMESHGUI()->automaticUpdate() ) {
-        SVTK_ViewWindow* aVTKView = SMESH::GetViewWindow(getSMESHGUI(), true);
-        if (aVTKView) {
-          int anId = study()->id();
-          TVisualObjPtr aVisualObj = SMESH::GetVisualObj(anId, IObject->getEntry());
-          if (aVisualObj) {
-            aVisualObj->Update();
-            SMESH_Actor* anActor = SMESH::FindActorByEntry(IObject->getEntry());
-            if (!anActor) {
-              anActor = SMESH::CreateActor(studyDS(), IObject->getEntry());
-              if (anActor) {
-                SMESH::DisplayActor(aVTKView, anActor); //apo
-                SMESH::FitAll();
-              }
-            }
-            SMESH::RepaintCurrentView();
-            Sel->setSelectedObjects( selected );
-          }
-        }
-      }
-    }
-  }
-  else {
+  if (aMesh->_is_nil()) {
     SUIT_MessageBox::warn1(desktop(),
                            tr("SMESH_WRN_WARNING"),
                            tr("SMESH_WRN_NO_AVAILABLE_DATA"),
@@ -840,59 +815,164 @@ void SMESHGUI_ComputeOp::startOperation()
     return;
   }
 
+  // COMPUTE MESH
+
+  MemoryReserve aMemoryReserve;
+
+  SMESH::compute_error_array_var aCompErrors;
+  QString                        aHypErrors;
+
+  bool computeFailed = true, memoryLack = false;
+
+  _PTR(SObject) aMeshSObj = SMESH::FindSObject(aMesh);
+  myMainShape = aMesh->GetShapeToMesh();
+  bool hasShape = aMesh->HasShapeToMesh();
+  bool shapeOK = myMainShape->_is_nil() ? !hasShape : hasShape;
+  if ( shapeOK && aMeshSObj )
+  {
+    myDlg->myMeshName->setText( aMeshSObj->GetName() );
+    SMESH::SMESH_Gen_var gen = getSMESHGUI()->GetSMESHGen();
+    SMESH::algo_error_array_var errors = gen->GetAlgoState(aMesh,myMainShape);
+    if ( errors->length() > 0 ) {
+      aHypErrors = SMESH::GetMessageOnAlgoStateErrors( errors.in() );
+    }
+    SUIT_OverrideCursor aWaitCursor;
+    try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+      OCC_CATCH_SIGNALS;
+#endif
+      if (gen->Compute(aMesh, myMainShape))
+        computeFailed = false;
+    }
+    catch(const SALOME::SALOME_Exception & S_ex){
+      memoryLack = true;
+    }
+    try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+      OCC_CATCH_SIGNALS;
+#endif
+      aCompErrors = gen->GetComputeErrors( aMesh, myMainShape );
+      // check if there are memory problems
+      for ( int i = 0; (i < aCompErrors->length()) && !memoryLack; ++i )
+        memoryLack = ( aCompErrors[ i ].code == SMESH::COMPERR_MEMORY_PB );
+    }
+    catch(const SALOME::SALOME_Exception & S_ex){
+      memoryLack = true;
+    }
+
+    // NPAL16631: if ( !memoryLack )
+    {
+      SMESH::ModifiedMesh(aMeshSObj, !computeFailed, aMesh->NbNodes() == 0);
+      update( UF_ObjBrowser | UF_Model );
+
+      // SHOW MESH
+      // NPAL16631: if ( getSMESHGUI()->automaticUpdate() )
+      if ( !memoryLack && getSMESHGUI()->automaticUpdate() )
+      {
+        try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+          OCC_CATCH_SIGNALS;
+#endif
+          SMESH::Update(IObject, true);
+        }
+        catch (...) {
+#ifdef _DEBUG_
+          cout << "Exception thrown during mesh visualization" << endl;
+#endif
+          if ( SMDS_Mesh::CheckMemory(true) ) { // has memory to show warning?
+            SMESH::OnVisuException();
+          }
+          else {
+            memoryLack = true;
+          }
+        }
+      }
+      Sel->setSelectedObjects( selected );
+    }
+  }
   myDlg->setCaption(tr( computeFailed ? "SMESH_WRN_COMPUTE_FAILED" : "SMESH_COMPUTE_SUCCEED"));
+  myDlg->myMemoryLackGroup->hide();
 
   // SHOW ERRORS
 
-  bool noError = ( !anErrors.operator->() || anErrors->length() == 0 );
+  bool noCompError = ( !aCompErrors.operator->() || aCompErrors->length() == 0 );
+  bool noHypoError = ( aHypErrors.isEmpty() );
 
-  QTable* tbl = myDlg->myTable;
-
-  if ( noError )
+  if ( memoryLack )
+  {
+    myDlg->myMemoryLackGroup->show();
+    myDlg->myFullInfo->hide();
+    myDlg->myBriefInfo->hide();
+    myDlg->myHypErrorGroup->hide();
+    myDlg->myCompErrorGroup->hide();
+  }
+  else if ( noCompError && noHypoError )
   {
-    //tbl->setNumRows(0);
     myDlg->myFullInfo->SetInfoByMesh( aMesh );
     myDlg->myFullInfo->show();
     myDlg->myBriefInfo->hide();
-    myDlg->myErrorGroup->hide();
+    myDlg->myHypErrorGroup->hide();
+    myDlg->myCompErrorGroup->hide();
   }
   else
   {
+    QTable* tbl = myDlg->myTable;
     myDlg->myBriefInfo->SetInfoByMesh( aMesh );
     myDlg->myBriefInfo->show();
     myDlg->myFullInfo->hide();
-    myDlg->myErrorGroup->show();
 
-    // fill table of errors
-    tbl->setNumRows( anErrors->length() );
-    bool hasShape = aMesh->HasShapeToMesh();
-    if ( !hasShape ) tbl->hideColumn( COL_SHAPE );
-    else             tbl->showColumn( COL_SHAPE );
-    tbl->setColumnWidth( COL_ERROR, 200 );
+    if ( noHypoError ) {
+      myDlg->myHypErrorGroup->hide();
+    }
+    else {
+      myDlg->myHypErrorGroup->show();
+      myDlg->myHypErrorLabel->setText( aHypErrors );
+    }
+
+    if ( noCompError ) {
+      myDlg->myCompErrorGroup->hide();
+    }
+    else {
+      myDlg->myCompErrorGroup->show();
 
-    for ( int row = 0; row < anErrors->length(); ++row )
-    {
-      SMESH::ComputeError & err = anErrors[ row ];
-      tbl->setText( row, COL_ALGO,    err.algoName.in() );
-      tbl->setText( row, COL_ERROR,   errorText( err.code, err.comment.in() ));
-      tbl->setText( row, COL_SHAPEID, QString("%1").arg( err.subShapeID ));
+      if ( !hasShape ) {
+        myDlg->myPublishBtn->hide();
+        myDlg->myShowBtn->hide();
+      }
+      else {
+        myDlg->myPublishBtn->show();
+        myDlg->myShowBtn->show();
+      }
 
-      QString text = hasShape ? shapeText( err.subShapeID, myMainShape ) : QString("");
-      tbl->setText( row, COL_SHAPE,   text );
+      // fill table of errors
+      tbl->setNumRows( aCompErrors->length() );
+      if ( !hasShape ) tbl->hideColumn( COL_SHAPE );
+      else             tbl->showColumn( COL_SHAPE );
+      tbl->setColumnWidth( COL_ERROR, 200 );
 
-      text = ( !hasShape || getSubShapeSO( err.subShapeID, myMainShape )) ? "PUBLISHED" : "";
-      tbl->setText( row, COL_PUBLISHED, text ); // if text=="", "PUBLISH" button enabled
+      for ( int row = 0; row < aCompErrors->length(); ++row )
+      {
+        SMESH::ComputeError & err = aCompErrors[ row ];
+        tbl->setText( row, COL_ALGO,    err.algoName.in() );
+        tbl->setText( row, COL_ERROR,   errorText( err.code, err.comment.in() ));
+        tbl->setText( row, COL_SHAPEID, QString("%1").arg( err.subShapeID ));
 
-      tbl->item( row, COL_ERROR )->setWordWrap( TRUE );
-      tbl->adjustRow( row );
-    }
-    tbl->adjustColumn( COL_ALGO );
-    tbl->adjustColumn( COL_SHAPE );
+        QString text = hasShape ? shapeText( err.subShapeID, myMainShape ) : QString("");
+        tbl->setText( row, COL_SHAPE,   text );
 
-    tbl->setCurrentCell(0,0);
-    currentCellChanged(); // to update buttons
-  }
+        text = ( !hasShape || getSubShapeSO( err.subShapeID, myMainShape )) ? "PUBLISHED" : "";
+        tbl->setText( row, COL_PUBLISHED, text ); // if text=="", "PUBLISH" button enabled
+
+        tbl->item( row, COL_ERROR )->setWordWrap( TRUE );
+        tbl->adjustRow( row );
+      }
+      tbl->adjustColumn( COL_ALGO );
+      tbl->adjustColumn( COL_SHAPE );
 
+      tbl->setCurrentCell(0,0);
+      currentCellChanged(); // to update buttons
+    }
+  }
   myDlg->show();
 }
 
index bb4252475d2fce3d712a4ff6225f8024339c1614..5ea7a662b6229d9a046bb9ecc6f40e6752ed37f5 100644 (file)
@@ -130,7 +130,10 @@ private:
   QFrame*                      createMainFrame   (QWidget*);
 
   QLabel*                      myMeshName;
-  QGroupBox*                   myErrorGroup;
+  QGroupBox*                   myMemoryLackGroup;
+  QGroupBox*                   myCompErrorGroup;
+  QGroupBox*                   myHypErrorGroup;
+  QLabel*                      myHypErrorLabel;
   QTable*                      myTable;
   QPushButton*                 myShowBtn;
   QPushButton*                 myPublishBtn;
index 92853de163be7b821527699f701950165c1e4f5a..fc4711bf7d1f02f090b831418c5d430a259ef768 100644 (file)
@@ -95,7 +95,7 @@ void SMESHGUI_ConvToQuadOp::startOperation()
   }
   connect( myDlg, SIGNAL( onClicked( int ) ), SLOT( ConnectRadioButtons( int ) ) );
 
-  myHelpFileName = "/files/convert_to_from_quadratic.htm";
+  myHelpFileName = "convert_to_from_quadratic_mesh_page.html";
 
   SMESHGUI_SelectionOp::startOperation();
 
index 655415bddf41ac8211dee4ddf5c12489a63e73fc..8ea75e5306bd63dd7e55df41145d9146892b0c6e 100755 (executable)
@@ -108,7 +108,7 @@ SMESHGUI_CreatePatternDlg::SMESHGUI_CreatePatternDlg( SMESHGUI*   theModule,
   if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
     mySelector = aViewWindow->GetSelector();
 
-  myHelpFileName = "pattern_mapping.htm";
+  myHelpFileName = "pattern_mapping_page.html";
 
   Init(theType);
 }
index 5f3e42bebdcf928259d93f70d824639ab2b2cfc5..8e1e55c69a2e699073bf3791c2a34dbfa78f50f1 100644 (file)
@@ -325,7 +325,7 @@ SMESHGUI_CreatePolyhedralVolumeDlg::SMESHGUI_CreatePolyhedralVolumeDlg( SMESHGUI
  
   mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
 
-  myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_polyhedrons";
+  myHelpFileName = "adding_nodes_and_elements_page.html#adding_polyhedrons_anchor";
   
   Init();
 }
index f298ef6c29533ab6eaec9eb7f335218fbf002fa9..59ea87705cc5d07cabbdf8091de98e17b3d9f2c3 100644 (file)
@@ -93,7 +93,7 @@ SMESHGUI_DeleteGroupDlg::SMESHGUI_DeleteGroupDlg (SMESHGUI* theModule):
 
   aDlgLay->setStretchFactor(aMainFrame, 1);
 
-  myHelpFileName = "deleting_groups.htm";
+  myHelpFileName = "deleting_groups_page.html";
 
   Init();
 }
index 696305db033de0714255727581bbcf4476219463..c53ac988a5638e9836a4b463c69fe75c5b40ac6c 100644 (file)
@@ -567,7 +567,7 @@ void SMESHGUI_EditMeshDlg::Init()
     GroupCoincident->setTitle(tr("COINCIDENT_ELEMENTS"));
   }
     
-  myHelpFileName = "merge_elements.htm";
+  myHelpFileName = "merging_elements_page.html";
 }
 
 //=================================================================================
index da79f4aca580cfa286658768c00db9f18d15419c..bd1f3bb6cd7019a68a883a1d080e5d3852182521 100644 (file)
@@ -270,6 +270,10 @@ SMESHGUI_ExtrusionAlongPathDlg::SMESHGUI_ExtrusionAlongPathDlg( SMESHGUI* theMod
   AnglesGrpLayout->addWidget(         AngleSpin,  0,    2   );
   AnglesGrpLayout->setRowStretch(1, 10);
 
+  // CheckBox for groups generation
+  MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
+  MakeGroupsCheck->setChecked(true);
+
   // layouting
   GroupArgumentsLayout->addWidget(         ElementsLab,            0,    0   );
   GroupArgumentsLayout->addWidget(         SelectElementsButton,   0,    1   );
@@ -280,6 +284,7 @@ SMESHGUI_ExtrusionAlongPathDlg::SMESHGUI_ExtrusionAlongPathDlg( SMESHGUI* theMod
   GroupArgumentsLayout->addMultiCellWidget(BasePointGrp,           3, 4, 1, 2);
   GroupArgumentsLayout->addWidget(         AnglesCheck,            5,    0   );
   GroupArgumentsLayout->addMultiCellWidget(AnglesGrp,              5, 6, 1, 2);
+  GroupArgumentsLayout->addMultiCellWidget(MakeGroupsCheck,        7, 7, 0, 2);
   GroupArgumentsLayout->setRowStretch(6, 10);
 
   /***************************************************************/
@@ -341,7 +346,7 @@ SMESHGUI_ExtrusionAlongPathDlg::SMESHGUI_ExtrusionAlongPathDlg( SMESHGUI* theMod
   myElementsFilter = new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
   myPathMeshFilter = new SMESH_TypeFilter (MESH);
 
-  myHelpFileName = "extrusion_along_a_path.htm";
+  myHelpFileName = "extrusion_along_path_page.html";
 
   Init();
 
@@ -599,10 +604,18 @@ bool SMESHGUI_ExtrusionAlongPathDlg::ClickOnApply()
   try {
     SUIT_OverrideCursor wc;
     SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
-    SMESH::SMESH_MeshEditor::Extrusion_Error retVal =
-      aMeshEditor->ExtrusionAlongPath(anElementsId.inout(), myPathMesh, myPathShape, aNodeStart,
-                                      AnglesCheck->isChecked(), anAngles.inout(),
-                                      BasePointCheck->isChecked(), aBasePoint);
+    SMESH::SMESH_MeshEditor::Extrusion_Error retVal;
+    if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
+      SMESH::ListOfGroups_var groups = 
+        aMeshEditor->ExtrusionAlongPathMakeGroups(anElementsId.inout(), myPathMesh,
+                                                  myPathShape, aNodeStart,
+                                                  AnglesCheck->isChecked(), anAngles.inout(),
+                                                  BasePointCheck->isChecked(), aBasePoint, retVal);
+    else
+      retVal = aMeshEditor->ExtrusionAlongPath(anElementsId.inout(), myPathMesh,
+                                               myPathShape, aNodeStart,
+                                               AnglesCheck->isChecked(), anAngles.inout(),
+                                               BasePointCheck->isChecked(), aBasePoint);
 
     //wc.stop();
     wc.suspend();
@@ -652,6 +665,8 @@ bool SMESHGUI_ExtrusionAlongPathDlg::ClickOnApply()
 
   //mySelectionMgr->clearSelected();
   SMESH::Update( myMeshActor->getIO(), myMeshActor->GetVisibility() );
+  if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
+    mySMESHGUI->updateObjBrowser(true); // new groups may appear
   //SMESH::UpdateView();
   Init(false);
   ConstructorsClicked(GetConstructorId());
@@ -825,6 +840,14 @@ void SMESHGUI_ExtrusionAlongPathDlg::SelectionIntoArgument()
     myMesh = SMESH::GetMeshByIO(IO);
     if (myMesh->_is_nil())
       return;
+
+    // MakeGroups is available if there are groups
+    if ( myMesh->NbGroups() == 0 ) {
+      MakeGroupsCheck->setChecked(false);
+      MakeGroupsCheck->setEnabled(false);
+    } else {
+      MakeGroupsCheck->setEnabled(true);
+    }
     // find actor
     myMeshActor = SMESH::FindActorByObject(myMesh);
     if (!myMeshActor)
index 6f0ca271b868d866239b7e6f54339abfbf0cd537..c0b5b898ff6c3fcbd7ca278173f91ace0aeed92a 100644 (file)
@@ -141,6 +141,7 @@ private:
   SMESHGUI_SpinBox* YSpin;
   QLabel*           ZLab;
   SMESHGUI_SpinBox* ZSpin;
+  QCheckBox*        MakeGroupsCheck;
 
   QGroupBox*        GroupButtons;
   QPushButton*      OkButton;
index aa7779d0f248a43b9b1f90b22ae2111eb3a7f640..c41837b8c8b626914c98b53a64add1ebe74cdd5d 100644 (file)
@@ -225,6 +225,12 @@ SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg (SMESHGUI* theModule,
   SpinBox_NbSteps = new QSpinBox(GroupArguments, "SpinBox_NbSteps");
   GroupArgumentsLayout->addMultiCellWidget(SpinBox_NbSteps, 3, 3,  2, 7);
 
+  // CheckBox for groups generation
+  MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
+  MakeGroupsCheck->setChecked(true);
+  GroupArgumentsLayout->addMultiCellWidget(MakeGroupsCheck, 4, 4,  0, 7);
+
+
   SMESHGUI_ExtrusionDlgLayout->addWidget(GroupArguments, 1, 0);
 
   /* Initialisations */
@@ -254,7 +260,7 @@ SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg (SMESHGUI* theModule,
   myMeshOrSubMeshOrGroupFilter =
     new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
 
-  myHelpFileName = "extrusion.htm";
+  myHelpFileName = "extrusion_page.html";
 
   Init();
 
@@ -305,7 +311,6 @@ void SMESHGUI_ExtrusionDlg::Init (bool ResetControls)
   myBusy = false;
 
   LineEditElements->clear();
-  myElementsId = "";
   myNbOkElements = 0;
 
   myActor = 0;
@@ -391,13 +396,6 @@ bool SMESHGUI_ExtrusionDlg::ClickOnApply()
     return false;
 
   if (myNbOkElements) {
-    QStringList aListElementsId = QStringList::split(" ", myElementsId, false);
-
-    SMESH::long_array_var anElementsId = new SMESH::long_array;
-
-    anElementsId->length(aListElementsId.count());
-    for (int i = 0; i < aListElementsId.count(); i++)
-      anElementsId[i] = aListElementsId[i].toInt();
 
     SMESH::DirStruct aVector;
     aVector.PS.x = SpinBox_Dx->GetValue();
@@ -409,12 +407,20 @@ bool SMESHGUI_ExtrusionDlg::ClickOnApply()
     try {
       SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
       QApplication::setOverrideCursor(Qt::waitCursor);
-      aMeshEditor->ExtrusionSweep(anElementsId.inout(), aVector, aNbSteps);
+
+      if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
+        SMESH::ListOfGroups_var groups = 
+          aMeshEditor->ExtrusionSweepMakeGroups(myElementsId.inout(), aVector, aNbSteps);
+      else
+        aMeshEditor->ExtrusionSweep(myElementsId.inout(), aVector, aNbSteps);
+
       QApplication::restoreOverrideCursor();
     } catch (...) {
     }
 
     SMESH::UpdateView();
+    if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
+      mySMESHGUI->updateObjBrowser(true); // new groups may appear
     Init(false);
     ConstructorsClicked(GetConstructorId());
     SelectionIntoArgument();
@@ -490,26 +496,37 @@ void SMESHGUI_ExtrusionDlg::onTextChange (const QString& theNewText)
     myNbOkElements = 0;
 
   // hilight entered elements/nodes
-  SMDS_Mesh* aMesh = 0;
-  if (myActor)
-    aMesh = myActor->GetObject()->GetMesh();
 
-  if (aMesh) {
+  if (!myIO.IsNull()) {
     QStringList aListId = QStringList::split(" ", theNewText, false);
 
-    if (send == LineEditElements) {
-      const Handle(SALOME_InteractiveObject)& anIO = myActor->getIO();
+    if (send == LineEditElements)
+    {
+      SMDS_Mesh* aMesh = myActor ? myActor->GetObject()->GetMesh() : 0;
+      SMESH::ElementType SMESHType = GetConstructorId() ? SMESH::FACE : SMESH::EDGE;
+      SMDSAbs_ElementType SMDSType = GetConstructorId() ? SMDSAbs_Face: SMDSAbs_Edge;
+
+      myElementsId = new SMESH::long_array;
+      myElementsId->length( aListId.count() );
       TColStd_MapOfInteger newIndices;
       for (int i = 0; i < aListId.count(); i++) {
-       const SMDS_MeshElement * e = aMesh->FindElement(aListId[ i ].toInt());
-       if (e)
-         newIndices.Add(e->GetID());
-       myNbOkElements++;
+        int id = aListId[ i ].toInt();
+        bool validId = false;
+        if ( id > 0 ) {
+          if ( aMesh ) {
+            const SMDS_MeshElement * e = aMesh->FindElement( id );
+            validId = ( e && e->GetType() == SMDSType );
+          } else {
+            validId = ( myMesh->GetElementType( id, true ) == SMESHType );
+          }
+        }
+        if ( validId && newIndices.Add( id ))
+          myElementsId[ newIndices.Extent()-1 ] = id;
       }
-      mySelector->AddOrRemoveIndex(anIO, newIndices, false);
+      myElementsId->length( myNbOkElements = newIndices.Extent() );
+      mySelector->AddOrRemoveIndex(myIO, newIndices, false);
       if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
-       aViewWindow->highlight( anIO, true, true );
-      myElementsId = theNewText;
+       aViewWindow->highlight( myIO, true, true );
     }
   }
 
@@ -532,6 +549,7 @@ void SMESHGUI_ExtrusionDlg::SelectionIntoArgument()
 
   // clear
   myActor = 0;
+  myIO.Nullify();
   QString aString = "";
 
   // set busy flag
@@ -552,81 +570,61 @@ void SMESHGUI_ExtrusionDlg::SelectionIntoArgument()
   myMesh = SMESH::GetMeshByIO(IO);
   if (myMesh->_is_nil())
     return;
-
+  myIO = IO;
   myActor = SMESH::FindActorByObject(myMesh);
-  if (!myActor)
-    return;
 
   if (myEditCurrentArgument == LineEditElements) {
     int aNbElements = 0;
-    myElementsId = "";
+
+    // MakeGroups is available if there are groups
+    if ( myMesh->NbGroups() == 0 ) {
+      MakeGroupsCheck->setChecked(false);
+      MakeGroupsCheck->setEnabled(false);
+    } else {
+      MakeGroupsCheck->setEnabled(true);
+    }
 
     if (CheckBoxMesh->isChecked()) {
-      int aConstructorId = GetConstructorId();
+      SMESH::ElementType neededType = GetConstructorId() ? SMESH::FACE : SMESH::EDGE;
 
       SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
 
-      if (!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) { //MESH
-        // get IDs from mesh
-        SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
-        if (!aSMDSMesh)
-          return;
-
-        if (aConstructorId == 0) {
-          SMDS_EdgeIteratorPtr anIter = aSMDSMesh->edgesIterator();
-
-          while (anIter->more()) {
-            const SMDS_MeshEdge * edge = anIter->next();
-            if (edge) {
-              myElementsId += QString(" %1").arg(edge->GetID());
-              aNbElements++;
-            }
-          }
-        } else if (aConstructorId == 1) {
-          SMDS_FaceIteratorPtr anIter = aSMDSMesh->facesIterator();
-          while (anIter->more()) {
-            const SMDS_MeshFace * face = anIter->next();
-            if (face) {
-              myElementsId += QString(" %1").arg(face->GetID());
-              aNbElements++;
-            }
+      SMESH::SMESH_Mesh_var mesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO);
+
+      if (!mesh->_is_nil()) { //MESH
+        // get elements from mesh
+          myElementsId = mesh->GetElementsByType(neededType);
+          aNbElements = myElementsId->length();
+      } else {
+        SMESH::SMESH_subMesh_var aSubMesh =
+          SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO);
+        
+        if (!aSubMesh->_is_nil()) { //SUBMESH
+          // get IDs from submesh
+          myElementsId = aSubMesh->GetElementsByType(neededType);
+          aNbElements = myElementsId->length();
+        } else {
+          SMESH::SMESH_GroupBase_var aGroup = 
+            SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
+
+          if (!aGroup->_is_nil() && aGroup->GetType() == neededType) { // GROUP
+            // get IDs from smesh group
+            myElementsId = aGroup->GetListOfID();
+            aNbElements = myElementsId->length();
           }
         }
-      } else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) { //SUBMESH
-        // get submesh
-        SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO);
-
-        // get IDs from submesh
-        SMESH::long_array_var anElementsIds = new SMESH::long_array;
-        if (aConstructorId == 0)
-          anElementsIds = aSubMesh->GetElementsByType(SMESH::EDGE);
-        else if (aConstructorId == 1)
-          anElementsIds = aSubMesh->GetElementsByType(SMESH::FACE);
-
-        for (int i = 0; i < anElementsIds->length(); i++)
-          myElementsId += QString(" %1").arg(anElementsIds[i]);
-        aNbElements = anElementsIds->length();
-      } else { // GROUP
-        // get smesh group
-        SMESH::SMESH_GroupBase_var aGroup =
-          SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
-        if (aGroup->_is_nil())
-          return;
-
-        if ((aConstructorId == 0 && aGroup->GetType() != SMESH::EDGE) ||
-            (aConstructorId == 1 && aGroup->GetType()!= SMESH::FACE))
-          return;
-
-        // get IDs from smesh group
-        SMESH::long_array_var anElementsIds = new SMESH::long_array;
-        anElementsIds = aGroup->GetListOfID();
-        for (int i = 0; i < anElementsIds->length(); i++)
-          myElementsId += QString(" %1").arg(anElementsIds[i]);
-        aNbElements = anElementsIds->length();
       }
     } else {
-      aNbElements = SMESH::GetNameOfSelectedElements(mySelector, IO, aString);
-      myElementsId = aString;
+      // get indices of selcted elements
+      TColStd_IndexedMapOfInteger aMapIndex;
+      mySelector->GetIndex(IO,aMapIndex);
+      aNbElements = aMapIndex.Extent();
+
+      myElementsId = new SMESH::long_array;
+      myElementsId->length( aNbElements );
+      aString = "";
+      for ( int i = 0; i < aNbElements; ++i )
+        aString += QString(" %1").arg( myElementsId[ i ] = aMapIndex( i+1 ) );
     }
 
     if (aNbElements < 1)
index d1fe0f2b7e3c0d3a0983f635d2dabf0fe5d285ef..9a9c21e7aa4bc392ad1807d3930e41f7414d88b7 100644 (file)
@@ -33,6 +33,7 @@
 
 #include "LightApp_SelectionMgr.h"
 #include "SUIT_SelectionFilter.h"
+#include "Handle_SALOME_InteractiveObject.hxx"
 
 // QT Includes
 #include <qdialog.h>
@@ -81,13 +82,15 @@ private:
   SMESHGUI*                     mySMESHGUI;            /* Current SMESHGUI object */
   LightApp_SelectionMgr*        mySelectionMgr;        /* User shape selection */
   QLineEdit*                    myEditCurrentArgument; /* Current  LineEdit */
-  QString                       myElementsId;
+  //QString                       myElementsId;
   int                           myNbOkElements;        /* to check when elements are defined */
   SVTK_Selector*                mySelector;
 
   bool                          myBusy;
   SMESH::SMESH_Mesh_var         myMesh;
+  SMESH::long_array_var         myElementsId;
   SMESH_Actor*                  myActor;
+  Handle(SALOME_InteractiveObject) myIO;
   SUIT_SelectionFilter*         myMeshOrSubMeshOrGroupFilter;
 
   // widgets
@@ -109,6 +112,7 @@ private:
   SMESHGUI_SpinBox* SpinBox_Dz;
   QLabel*           TextLabelNbSteps;
   QSpinBox*         SpinBox_NbSteps;
+  QCheckBox*        MakeGroupsCheck;
 
   QGroupBox*        GroupButtons;
   QPushButton*      buttonOk;
index 2b75ac0c4025963d4d22d59957684bd1c5d35c79..db1157c1def671fdb90df45d46b81581c3ade246 100755 (executable)
@@ -1708,7 +1708,7 @@ void SMESHGUI_FilterDlg::construct (const QValueList<int>& theTypes)
 
   aDlgLay->setStretchFactor(myMainFrame, 1);
 
-  myHelpFileName = "selection_filter_library.htm";
+  myHelpFileName = "selection_filter_library_page.html";
 
   Init(myTypes);
 }
@@ -2540,7 +2540,8 @@ void SMESHGUI_FilterDlg::onSelectionDone()
   if (!anObj->_is_nil())
     {
       myTable->SetThreshold(aRow, GEOMBase::GetName(anObj));
-      myTable->SetID( aRow, GEOMBase::GetIORFromObject(anObj));
+      //myTable->SetID( aRow, GEOMBase::GetIORFromObject(anObj));
+      myTable->SetID(aRow, anIO->getEntry());
     }
 }
 
index f284afb394163e4f88e2939ff92c596761f7420b..6fd68f45954e2c5fe32e61705900b9fb326833a5 100644 (file)
@@ -147,7 +147,7 @@ void SMESHGUI_FilterLibraryDlg::construct (const QValueList<int>& theTypes,
 
   aDlgLay->setStretchFactor(myMainFrame, 1);
 
-  myHelpFileName = "selection_filter_library.htm";
+  myHelpFileName = "selection_filter_library_page.html";
   
   Init(myTypes, myMode);
 }
index 8968d907c014f6b78973747d980b7e6f0b09b180..c03ce4fd5ed014c26ca6726db5c7bd0ecb65b1d9 100644 (file)
@@ -40,6 +40,7 @@
 
 #include "SMESH_TypeFilter.hxx"
 #include "SMESH_Actor.h"
+#include "SMESH_ActorUtils.h"
 
 #include "GEOMBase.h"
 #include "GEOM_SelectionFilter.h"
 #include <qpixmap.h>
 #include <qmemarray.h>
 #include <qwidgetstack.h>
+#include <qcolordialog.h>
 
 #include <QtxIntSpinBox.h>
 
 // STL includes
 #include <vector>
 #include <algorithm>
+#include <set>
 
 using namespace std;
 
@@ -163,11 +166,11 @@ void SMESHGUI_GroupDlg::initDialog(bool create)
 
   if (create) {
     setCaption(tr("SMESH_CREATE_GROUP_TITLE"));
-    myHelpFileName = "/files/creating_groups.htm";
+    myHelpFileName = "creating_groups_page.html";
   }
   else {
     setCaption(tr("SMESH_EDIT_GROUP_TITLE"));
-    myHelpFileName = "/files/editing_groups.htm";
+    myHelpFileName = "editing_groups_page.html";
   }
 
   setSizeGripEnabled(TRUE);
@@ -321,16 +324,10 @@ void SMESHGUI_GroupDlg::initDialog(bool create)
   QGroupBox* aColorBox = new QGroupBox(2, Qt::Horizontal, this, "color box");
   aColorBox->setTitle(tr("SMESH_SET_COLOR"));
 
-  mySelectColorGroup = new QCheckBox(aColorBox, "color checkbox");
-  mySelectColorGroup->setText(tr("SMESH_CHECK_COLOR"));
-  
-  myColorSpinBox = new QtxIntSpinBox( aColorBox );
-  myColorSpinBox->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
-  myColorSpinBox->setMinValue( 0 );
-  myColorSpinBox->setMaxValue( 9999 );
-  
-  onSelectColorGroup(false);
-  
+  new QLabel( tr("SMESH_CHECK_COLOR"), aColorBox, "color label" );
+  myColorBtn = new QPushButton(aColorBox, "color button");
+  myColorBtn->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
+
   /***************************************************************/
   
   QFrame* aButtons = new QFrame(this, "button box");
@@ -391,8 +388,7 @@ void SMESHGUI_GroupDlg::initDialog(bool create)
   connect(mySubMeshBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
   connect(myGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
   connect(myGeomGroupBtn, SIGNAL(toggled(bool)), this, SLOT(onGeomSelectionButton(bool)));
-  connect(mySelectColorGroup, SIGNAL(toggled(bool)), this, SLOT(onSelectColorGroup(bool)));
-  connect(myColorSpinBox, SIGNAL(valueChanged(const QString&)), this, SLOT(onNbColorsChanged(const QString&)));
+  connect(myColorBtn, SIGNAL(clicked()), this, SLOT(onSelectColor()));
   
   connect(aOKBtn, SIGNAL(clicked()), this, SLOT(onOK()));
   connect(aApplyBtn, SIGNAL(clicked()), this, SLOT(onApply()));
@@ -421,6 +417,7 @@ void SMESHGUI_GroupDlg::initDialog(bool create)
     myTypeGroup->setButton(0);
 
   updateButtons();
+  //myName->setText(GetDefaultName(tr("SMESH_GROUP")));
 }
 
 //=================================================================================
@@ -437,6 +434,42 @@ SMESHGUI_GroupDlg::~SMESHGUI_GroupDlg()
   }
 }
 
+//=================================================================================
+// function : GetDefaultName()
+// purpose  : Get the Group Name if Create new Group
+//=================================================================================
+QString SMESHGUI_GroupDlg::GetDefaultName(const QString& theOperation)
+{
+    QString aName = "";
+
+    // collect all object names of SMESH component
+    SalomeApp_Study* appStudy =
+      dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
+    if ( !appStudy ) return aName;
+    _PTR(Study) aStudy = appStudy->studyDS();
+
+    std::set<std::string> aSet;
+    _PTR(SComponent) aMeshCompo (aStudy->FindComponent("SMESH"));
+    if (aMeshCompo) {
+      _PTR(ChildIterator) it (aStudy->NewChildIterator(aMeshCompo));
+      _PTR(SObject) obj;
+      for (it->InitEx(true); it->More(); it->Next()) {
+       obj = it->Value();
+       aSet.insert(obj->GetName());
+      }
+    }
+
+    // build a unique name
+    int aNumber = 0;
+    bool isUnique = false;
+    while (!isUnique) {
+      aName = theOperation + "_" + QString::number(++aNumber);
+      isUnique = (aSet.count(aName.latin1()) == 0);
+    }
+
+    return aName;
+}
+
 //=================================================================================
 // function : Init()
 // purpose  :
@@ -453,6 +486,8 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_Mesh_ptr theMesh)
   myActor = SMESH::FindActorByObject(myMesh);
   SMESH::SetPickable(myActor);
 
+  setDefaultGroupColor();
+
   SALOME_ListIO aList;
   mySelectionMgr->selectedObjects( aList );
   if( !aList.IsEmpty() )
@@ -478,8 +513,10 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_GroupBase_ptr theGroup)
   
   myName->setText(theGroup->GetName());
   myName->home(false);
+  myOldName = myName->text();
 
-  myColorSpinBox->setValue( theGroup->GetColorNumber() );
+  SALOMEDS::Color aColor = theGroup->GetColor();
+  setGroupColor( aColor );
   
   myMeshGroupLine->setText(theGroup->GetName());
 
@@ -543,6 +580,7 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_GroupBase_ptr theGroup)
              aShapeName = aGroupShapeSO->GetName().c_str();
            }
          myGeomGroupLine->setText( aShapeName );
+         myName->setText("Group On " + aShapeName);
        }
     }
 }
@@ -581,15 +619,6 @@ void SMESHGUI_GroupDlg::onNameChanged (const QString& text)
   updateButtons();
 }
 
-//=================================================================================
-// function : onNbColorsChanged()
-// purpose  :
-//=================================================================================
-void SMESHGUI_GroupDlg::onNbColorsChanged (const QString& text)
-{
-  updateButtons();
-}
-
 //=================================================================================
 // function : onTypeChanged()
 // purpose  : Group elements type radio button management
@@ -612,11 +641,26 @@ void SMESHGUI_GroupDlg::onGrpTypeChanged (int id)
 {
   if (myGrpTypeId != id) {
     myWGStack->raiseWidget( id );
+    if (id == 0)
+      myName->setText(myOldName);
     onSelectGeomGroup(id == 1);
   }
   myGrpTypeId = id;
 }
 
+//=================================================================================
+// function : onSelectColor()
+// purpose  :
+//=================================================================================
+void SMESHGUI_GroupDlg::onSelectColor()
+{
+  QColor color = getGroupQColor();
+  color = QColorDialog::getColor( color );
+  setGroupQColor( color );
+
+  updateButtons();
+}
+
 //=================================================================================
 // function : setSelectionMode()
 // purpose  : Radio button management
@@ -713,25 +757,28 @@ bool SMESHGUI_GroupDlg::onApply()
       myGroup = SMESH::AddGroup(myMesh, aType, myName->text());
       myGroup->Add(anIdList.inout());
 
-      int aColorNumber = myColorSpinBox->value();
-      myGroup->SetColorNumber(aColorNumber);
+      SALOMEDS::Color aColor = getGroupColor();
+      myGroup->SetColor(aColor);
 
       _PTR(SObject) aMeshGroupSO = SMESH::FindSObject(myGroup);
 
-      SMESH::setFileName ( aMeshGroupSO, QString::number(myColorSpinBox->value()) );
+      //SMESH::setFileName ( aMeshGroupSO, QString::number(myColorSpinBox->value()) );
       SMESH::setFileType ( aMeshGroupSO, "COULEURGROUP" );
 
       /* init for next operation */
       myName->setText("");
-      myColorSpinBox->setValue(0);
       myElements->clear();
       myGroup = SMESH::SMESH_Group::_nil();
 
     } else { // edition
       myGroup->SetName(myName->text());
         
-      int aColorNumber = myColorSpinBox->value();
-      myGroup->SetColorNumber(aColorNumber);
+      SALOMEDS::Color aColor = getGroupColor();
+      myGroup->SetColor(aColor);
+
+      _PTR(SObject) aMeshGroupSO = SMESH::FindSObject(myGroup);
+      if(SMESH_Actor *anActor = SMESH::FindActorByEntry(aMeshGroupSO->GetID().c_str()))
+       anActor->SetSufaceColor( aColor.R, aColor.G, aColor.B );
 
       QValueList<int> aAddList;
       QValueList<int>::iterator anIt;
@@ -836,25 +883,27 @@ bool SMESHGUI_GroupDlg::onApply()
         myGroupOnGeom = myMesh->CreateGroupFromGEOM(aType, myName->text(), aGroupVar);
       }
 
-      int aColorNumber = myColorSpinBox->value();
-      myGroupOnGeom->SetColorNumber(aColorNumber);
+      SALOMEDS::Color aColor = getGroupColor();
+      myGroupOnGeom->SetColor(aColor);
 
       _PTR(SObject) aMeshGroupSO = SMESH::FindSObject(myGroupOnGeom);
 
-      SMESH::setFileName ( aMeshGroupSO, QString::number(myColorSpinBox->value()) );
-
+      //SMESH::setFileName ( aMeshGroupSO, QString::number(myColorSpinBox->value()) );
       SMESH::setFileType ( aMeshGroupSO,"COULEURGROUP" );
 
       /* init for next operation */
       myName->setText("");
-      myColorSpinBox->setValue(0);
       myGroupOnGeom = SMESH::SMESH_GroupOnGeom::_nil();
     }
     else { // edition
       myGroupOnGeom->SetName(myName->text());
 
-      int aColorNumber = myColorSpinBox->value();
-      myGroupOnGeom->SetColorNumber(aColorNumber);
+      SALOMEDS::Color aColor = getGroupColor();
+      myGroupOnGeom->SetColor(aColor);
+
+      _PTR(SObject) aMeshGroupSO = SMESH::FindSObject(myGroupOnGeom);
+      if(SMESH_Actor *anActor = SMESH::FindActorByEntry(aMeshGroupSO->GetID().c_str()))
+       anActor->SetSufaceColor( aColor.R, aColor.G, aColor.B );
     }
 
     mySMESHGUI->updateObjBrowser(true);
@@ -1108,6 +1157,8 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
     }
 
     myCurrentLineEdit->setText(aString);
+    myOldName = myName->text();
+    myName->setText(aString);
     myCurrentLineEdit->home(false);
 
     updateButtons();
@@ -1222,17 +1273,6 @@ void SMESHGUI_GroupDlg::onSelectGeomGroup(bool on)
   }
 }
 
-//=================================================================================
-// function : (onSelectColorGroup)
-// purpose  : Called when setting a color on group
-//=================================================================================
-void SMESHGUI_GroupDlg::onSelectColorGroup(bool on)
-{
-  if (!on)
-    myColorSpinBox->setValue(0);
-  
-  myColorSpinBox->setEnabled(on);
-}
 
 //=================================================================================
 // function : setCurrentSelection()
@@ -1854,3 +1894,95 @@ void SMESHGUI_GroupDlg::onCloseShapeByMeshDlg(SUIT_Operation* op)
       setSelectionMode(7);
     }
 }
+
+//=================================================================================
+// function : setGroupColor()
+// purpose  :
+//=================================================================================
+void SMESHGUI_GroupDlg::setGroupColor( const SALOMEDS::Color& theColor )
+{
+  QColor aQColor( (int)( theColor.R * 255.0 ),
+                 (int)( theColor.G * 255.0 ),
+                 (int)( theColor.B * 255.0 ) );
+  setGroupQColor( aQColor );
+}
+
+//=================================================================================
+// function : getGroupColor()
+// purpose  :
+//=================================================================================
+SALOMEDS::Color SMESHGUI_GroupDlg::getGroupColor() const
+{
+  QColor aQColor = getGroupQColor();
+
+  SALOMEDS::Color aColor;
+  aColor.R = (float)aQColor.red() / 255.0;
+  aColor.G = (float)aQColor.green() / 255.0;
+  aColor.B = (float)aQColor.blue() / 255.0;
+
+  return aColor;
+}
+
+//=================================================================================
+// function : setGroupQColor()
+// purpose  :
+//=================================================================================
+void SMESHGUI_GroupDlg::setGroupQColor( const QColor& theColor )
+{
+  if( theColor.isValid() )
+  {
+    QPalette pal = myColorBtn->palette();
+    pal.setColor(QColorGroup::Button, theColor);
+    myColorBtn->setPalette(pal);
+  }
+}
+
+//=================================================================================
+// function : getGroupQColor()
+// purpose  :
+//=================================================================================
+QColor SMESHGUI_GroupDlg::getGroupQColor() const
+{
+  QColor aColor = myColorBtn->palette().active().button();
+  return aColor;
+}
+
+//=================================================================================
+// function : setDefaultGroupColor()
+// purpose  :
+//=================================================================================
+void SMESHGUI_GroupDlg::setDefaultGroupColor()
+{
+  if( myMesh->_is_nil() )
+    return;
+
+  bool isAutoColor = myMesh->GetAutoColor();
+
+  QColor aQColor;
+  if( !isAutoColor )
+  {
+    int r = 0, g = 0, b = 0;
+    SMESH::GetColor( "SMESH", "fill_color", r, g, b, QColor( 0, 170, 255 ) );
+    aQColor.setRgb( r, g, b );
+  }
+  else
+  {
+    SMESH::ListOfGroups aListOfGroups = *myMesh->GetGroups();
+
+    QValueList<SALOMEDS::Color> aReservedColors;
+    for( int i = 0, n = aListOfGroups.length(); i < n; i++ )
+    {
+      SMESH::SMESH_GroupBase_var aGroupObject = aListOfGroups[i];
+      SALOMEDS::Color aReservedColor = aGroupObject->GetColor();
+      aReservedColors.append( aReservedColor );
+    }
+
+    SALOMEDS::Color aColor = SMESHGUI::getUniqueColor( aReservedColors );
+    aQColor.setRgb( (int)( aColor.R * 255.0 ),
+                   (int)( aColor.G * 255.0 ),
+                   (int)( aColor.B * 255.0 ) );
+
+  }
+
+  setGroupQColor( aQColor );
+}
index be6f5ebdd8845bea1fdf6d208774f46b40f04d85..f5d9430b507717f229d4ec8b8ad972fe1be881ee 100644 (file)
@@ -80,6 +80,8 @@ public:
                       bool modal = FALSE, WFlags fl = 0 );
     ~SMESHGUI_GroupDlg();
 
+    static QString GetDefaultName(const QString& theOperation);
+
 public slots:
 
     void onAdd();
@@ -103,16 +105,16 @@ private slots:
     void onSelectSubMesh(bool on);
     void onSelectGroup(bool on);
     void onSelectGeomGroup(bool on);
-    void onSelectColorGroup(bool on);
     void setCurrentSelection();
 
     void setFilters();
     void onSort();
 
     void onNameChanged(const QString& text);
-    void onNbColorsChanged(const QString& text);
     void onFilterAccepted();
 
+    void onSelectColor();
+
     void onGeomPopup( int );
     void onGeomSelectionButton( bool );
 
@@ -131,6 +133,14 @@ private:
     void updateButtons();
     void updateGeomPopup();
 
+    void                          setGroupColor( const SALOMEDS::Color& );
+    SALOMEDS::Color               getGroupColor() const;
+
+    void                          setGroupQColor( const QColor& );
+    QColor                        getGroupQColor() const;
+
+    void                          setDefaultGroupColor();
+
     SMESHGUI*                     mySMESHGUI;              /* Current SMESHGUI object */
     LightApp_SelectionMgr*        mySelectionMgr;          /* User shape selection */
     SMESH_Actor*                  myActor;                 /* Current mesh actor */
@@ -144,6 +154,7 @@ private:
     
     QButtonGroup*                 myTypeGroup;
     QLineEdit*                    myName;
+    QString                       myOldName;
 
     QButtonGroup*                 myGrpTypeGroup;
 
@@ -159,8 +170,7 @@ private:
     QPushButton*                  myGroupBtn;
     QLineEdit*                    myGroupLine;
 
-    QCheckBox*                    mySelectColorGroup;
-    QtxIntSpinBox*                myColorSpinBox;
+    QPushButton*                  myColorBtn;
 
     QCheckBox*                    mySelectGeomGroup;
     QToolButton*                  myGeomGroupBtn;
index 670d2f16ea109d1e5998834debd5f98074538301..4d9f9f6e409e9ad18db78e5909dd00bca4ac02a6 100644 (file)
@@ -78,15 +78,15 @@ SMESHGUI_GroupOpDlg::SMESHGUI_GroupOpDlg( SMESHGUI* theModule, const int theMode
 
   if (myMode == UNION) {
     setCaption(tr("UNION_OF_TWO_GROUPS"));
-    myHelpFileName = "/files/using_operations_on_groups.htm#Union";
+    myHelpFileName = "using_operations_on_groups_page.html#union_anchor";
   }
   else if (myMode == INTERSECT) {
     setCaption(tr("INTERSECTION_OF_TWO_GROUPS"));
-    myHelpFileName = "/files/using_operations_on_groups.htm#Intersection";
+    myHelpFileName = "using_operations_on_groups_page.html#intersection_anchor";
   }
   else {
     setCaption(tr("CUT_OF_TWO_GROUPS"));
-    myHelpFileName = "/files/using_operations_on_groups.htm#Cut";
+    myHelpFileName = "using_operations_on_groups_page.html#cut_anchor";
   }
 
   mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
index e94a8a99394c281a4a9b1af76c3039f9d1ede6fc..2078b02c7bb0de3b410ae0f4a891cc4bd3d82bdc 100644 (file)
@@ -45,8 +45,8 @@
 
 #include <qapplication.h>
 
-SMESHGUI_GenericHypothesisCreator::SMESHGUI_GenericHypothesisCreator( const QString& aHypType )
-  : myHypType( aHypType ), myIsCreate( false ), myDlg( 0 )
+SMESHGUI_GenericHypothesisCreator::SMESHGUI_GenericHypothesisCreator( const QString& theHypType )
+  : myHypType( theHypType ), myIsCreate( false ), myDlg( 0 )
 {
 }
 
@@ -55,63 +55,62 @@ SMESHGUI_GenericHypothesisCreator::~SMESHGUI_GenericHypothesisCreator()
 }
 
 void SMESHGUI_GenericHypothesisCreator::create( SMESH::SMESH_Hypothesis_ptr initParamsHyp,
+                                               const QString& theHypName,
                                                 QWidget* parent)
 {
   MESSAGE( "Creation of hypothesis with initial params" );
 
   if ( !CORBA::is_nil( initParamsHyp ) && hypType() == initParamsHyp->GetName() )
     myInitParamsHypo = SMESH::SMESH_Hypothesis::_duplicate( initParamsHyp );
-  create( false, parent );
+  create( false, theHypName, parent );
 }
 
-void SMESHGUI_GenericHypothesisCreator::create( const bool isAlgo, QWidget* parent )
+void SMESHGUI_GenericHypothesisCreator::create( bool isAlgo,
+                                               const QString& theHypName,
+                                               QWidget* theParent )
 {
   MESSAGE( "Creation of hypothesis" );
 
-  // Get default name for hypothesis/algorithm creation
-  HypothesisData* aHypData = SMESH::GetHypothesisData( hypType().latin1() );
-  QString aHypName = aHypData ? aHypData->Label : hypType();
-
   myIsCreate = true;
 
   // Create hypothesis/algorithm
   if (isAlgo)
-    SMESH::CreateHypothesis( hypType(), aHypName, isAlgo );
-
+    SMESH::CreateHypothesis( hypType(), theHypName, isAlgo );
   else
   {
-    SMESH::SMESH_Hypothesis_var newHypo = SMESH::SMESH_Hypothesis::_narrow
-      ( SMESH::CreateHypothesis( hypType(), aHypName, false ) );
-  
-    if( !editHypothesis( newHypo.in(), parent ) )
+    SMESH::SMESH_Hypothesis_var aHypothesis = 
+      SMESH::CreateHypothesis( hypType(), theHypName, false );
+    if( !editHypothesis( aHypothesis.in(), theHypName, theParent ) )
     { //remove just created hypothesis
-      _PTR(SObject) SHyp = SMESH::FindSObject( newHypo.in() );
+      _PTR(SObject) aHypSObject = SMESH::FindSObject( aHypothesis.in() );
       _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
       if( aStudy && !aStudy->GetProperties()->IsLocked() )
       {
        _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
-       aBuilder->RemoveObjectWithChildren( SHyp );
+       aBuilder->RemoveObjectWithChildren( aHypSObject );
       }
     }
   }
   SMESHGUI::GetSMESHGUI()->updateObjBrowser( true, 0 );
 }
 
-void SMESHGUI_GenericHypothesisCreator::edit( SMESH::SMESH_Hypothesis_ptr h, QWidget* parent )
+void SMESHGUI_GenericHypothesisCreator::edit( SMESH::SMESH_Hypothesis_ptr theHypothesis,
+                                             const QString& theHypName,
+                                             QWidget* theParent )
 {
-  if( CORBA::is_nil( h ) )
+  if( CORBA::is_nil( theHypothesis ) )
     return;
 
   MESSAGE("Edition of hypothesis");
 
   myIsCreate = false;
 
-  if( !editHypothesis( h, parent ) )
+  if( !editHypothesis( theHypothesis, theHypName, theParent ) )
     return;
 
-  SMESH::SObjectList listSOmesh = SMESH::GetMeshesUsingAlgoOrHypothesis( h );
+  SMESH::SObjectList listSOmesh = SMESH::GetMeshesUsingAlgoOrHypothesis( theHypothesis );
   if( listSOmesh.size() > 0 )
-    for( int i=0; i<listSOmesh.size(); i++ )
+    for( int i = 0; i < listSOmesh.size(); i++ )
     {
       _PTR(SObject) submSO = listSOmesh[i];
       SMESH::SMESH_Mesh_var aMesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( submSO );
@@ -124,29 +123,30 @@ void SMESHGUI_GenericHypothesisCreator::edit( SMESH::SMESH_Hypothesis_ptr h, QWi
   SMESHGUI::GetSMESHGUI()->updateObjBrowser( true, 0 );
 }
 
-bool SMESHGUI_GenericHypothesisCreator::editHypothesis( SMESH::SMESH_Hypothesis_ptr h, QWidget* parent )
+bool SMESHGUI_GenericHypothesisCreator::editHypothesis( SMESH::SMESH_Hypothesis_ptr h, 
+                                                       const QString& theHypName,
+                                                       QWidget* theParent )
 {
   if( CORBA::is_nil( h ) )
     return false;
 
   bool res = true;
+  myHypName = theHypName;
   myHypo = SMESH::SMESH_Hypothesis::_duplicate( h );
 
-  SMESHGUI_HypothesisDlg* Dlg =
-    new SMESHGUI_HypothesisDlg( const_cast<SMESHGUI_GenericHypothesisCreator*>( this ), parent );
+  SMESHGUI_HypothesisDlg* Dlg = new SMESHGUI_HypothesisDlg( this, theParent );
   myDlg = Dlg;
   QFrame* fr = buildFrame();
   if( fr )
   {
     Dlg->setCustomFrame( fr );
     Dlg->setCaption( caption() );
+    Dlg->setName( theHypName );
     Dlg->setHIcon( icon() );
     Dlg->setType( type() );
     retrieveParams();
     Dlg->show();
-    //connect(myDlg, SIGNAL( closed() ), this, SLOT( onDlgClosed() ));
     qApp->enter_loop(); // make myDlg not modal
-//     res = myDlg->exec()==QDialog::Accepted;
     res = myDlg->result();
     if( res ) {
       QString paramValues = storeParams();
@@ -332,6 +332,11 @@ QString SMESHGUI_GenericHypothesisCreator::hypType() const
   return myHypType;
 }
 
+QString SMESHGUI_GenericHypothesisCreator::hypName() const
+{
+  return myHypName;
+}
+
 const SMESHGUI_GenericHypothesisCreator::ListOfWidgets& SMESHGUI_GenericHypothesisCreator::widgets() const
 {
   return myParamWidgets;
@@ -409,21 +414,21 @@ SMESHGUI_HypothesisDlg::SMESHGUI_HypothesisDlg( SMESHGUI_GenericHypothesisCreato
 
   QString aHypType = creator->hypType();
   if ( aHypType == "LocalLength" )
-    myHelpFileName = "/files/arithmetic_1d.htm#Average_length";
+    myHelpFileName = "a1d_meshing_hypo_page.html#average_length_anchor";
   else if ( aHypType == "Arithmetic1D")
-    myHelpFileName = "/files/arithmetic_1d.htm#arithmetic_1D";
+    myHelpFileName = "a1d_meshing_hypo_page.html#arithmetic_1d_anchor";
   else if ( aHypType == "MaxElementArea")
-    myHelpFileName = "/files/max._element_area_hypothesis.htm";
+    myHelpFileName = "a2d_meshing_hypo_page.html#max_element_area_anchor";
   else if ( aHypType == "MaxElementVolume")
-    myHelpFileName = "/files/max._element_volume_hypothsis.htm";
+    myHelpFileName = "max_element_volume_hypo_page.html";
   else if ( aHypType == "StartEndLength")
-    myHelpFileName = "/files/arithmetic_1d.htm#start_and_end_length";
+    myHelpFileName = "a1d_meshing_hypo_page.html#start_and_end_length_anchor";
   else if ( aHypType == "Deflection1D")
-    myHelpFileName = "/files/arithmetic_1d.htm#deflection_1D";
+    myHelpFileName = "a1d_meshing_hypo_page.html#deflection_1d_anchor";
   else if ( aHypType == "AutomaticLength")
-    myHelpFileName = "/files/arithmetic_1d.htm#automatic_length";
+    myHelpFileName = "a1d_meshing_hypo_page.html#automatic_length_anchor";
   else if ( aHypType == "NumberOfSegments")
-    myHelpFileName = "/files/arithmetic_1d.htm#Number_of_elements";
+    myHelpFileName = "a1d_meshing_hypo_page.html#number_of_segments_anchor";
   else
     myHelpFileName = "";
 
index c76e409e1a2963ff5c324349ad136c9244954329..fba15ebd198e33e7ce5b91ac66bae03bb8e6a244 100644 (file)
@@ -47,18 +47,19 @@ class SMESHGUI_EXPORT SMESHGUI_GenericHypothesisCreator : public QObject
   Q_OBJECT
 
 public:
-  SMESHGUI_GenericHypothesisCreator( const QString& );
+  SMESHGUI_GenericHypothesisCreator( const QString& theHypType );
   virtual ~SMESHGUI_GenericHypothesisCreator();
 
-          void create( const bool isAlgo, QWidget* );
-          void edit( SMESH::SMESH_Hypothesis_ptr, QWidget* );
-          void create( SMESH::SMESH_Hypothesis_ptr, QWidget* );
+  void create( SMESH::SMESH_Hypothesis_ptr, const QString&, QWidget*);
+  void create( bool isAlgo, const QString&, QWidget*);
+  void edit( SMESH::SMESH_Hypothesis_ptr, const QString&, QWidget*);
 
   virtual bool checkParams() const = 0;
   virtual void onReject();
 
-  QString                     hypType() const;
-  bool                        isCreation() const;
+  QString hypType() const;
+  QString hypName() const;
+  bool    isCreation() const;
 
 protected:
   typedef struct
@@ -95,10 +96,11 @@ protected slots:
   virtual void onValueChanged();
 
 private:
-          bool editHypothesis( SMESH::SMESH_Hypothesis_ptr, QWidget* );
+  bool editHypothesis( SMESH::SMESH_Hypothesis_ptr, const QString&, QWidget* );
 
 private:
   SMESH::SMESH_Hypothesis_var  myHypo, myInitParamsHypo;
+  QString                      myHypName;
   QString                      myHypType;
   ListOfWidgets                myParamWidgets;
   bool                         myIsCreate;
@@ -113,9 +115,9 @@ public:
   SMESHGUI_HypothesisDlg( SMESHGUI_GenericHypothesisCreator*, QWidget* );
   virtual ~SMESHGUI_HypothesisDlg();
 
-          void setHIcon( const QPixmap& );
-          void setCustomFrame( QFrame* );
-          void setType( const QString& );
+  void setHIcon( const QPixmap& );
+  void setCustomFrame( QFrame* );
+  void setType( const QString& );
 
 protected slots:
   virtual void accept();
@@ -125,7 +127,8 @@ protected slots:
 private:
   SMESHGUI_GenericHypothesisCreator*   myCreator;
   QVBoxLayout*                         myLayout;
-  QLabel                              *myIconLabel, *myTypeLabel;
+  QLabel*                              myIconLabel;
+  QLabel*                              myTypeLabel;
   QString                              myHelpFileName;
 };
 
@@ -146,7 +149,8 @@ class HypothesisData
                   const QStringList& theNeededHypos,
                   const QStringList& theOptionalHypos,
                   const QStringList& theInputTypes,
-                  const QStringList& theOutputTypes)
+                  const QStringList& theOutputTypes,
+                 const bool theIsNeedGeometry = true)
     : TypeName( theTypeName ),
     PluginName( thePluginName ),
     ServerLibName( theServerLibName ),
@@ -156,7 +160,8 @@ class HypothesisData
     Dim( theDim ),
     IsAux( theIsAux ),
     NeededHypos( theNeededHypos ), OptionalHypos( theOptionalHypos ),
-    InputTypes( theInputTypes ), OutputTypes( theOutputTypes )
+    InputTypes( theInputTypes ), OutputTypes( theOutputTypes ),
+    IsNeedGeometry( theIsNeedGeometry )
     {};
 
  QString TypeName;        //!< hypothesis type name
@@ -167,6 +172,7 @@ class HypothesisData
  QString IconId;          //!< icon identifier
  QValueList<int> Dim;     //!< list of supported dimensions (see SMESH::Dimension enumeration)
  bool IsAux;              //!< TRUE if given hypothesis is auxiliary one, FALSE otherwise
+ bool IsNeedGeometry;     //!< TRUE if for given hypothesis need shape, FALSE otherwise
 
  // for algorithm only: dependencies algo <-> algo and algo -> hypos
  QStringList NeededHypos;  //!< list of obligatory hypotheses
index 114b8dbc3c274ed9a550d96443f255fc38391fd0..6a393a25404cc2ae021d72e3d33eae05738d9fd9 100644 (file)
@@ -113,6 +113,9 @@ namespace SMESH{
       aMsg = QObject::tr(aMsg).arg(aHypName) +
        QObject::tr(QString("SMESH_HYP_%1").arg(theHypStatus));
 
+      if ( theHypStatus == SMESH::HYP_HIDDEN_ALGO ) // PAL18501
+        aMsg = aMsg.arg( GetHypothesisData(theHyp->GetName())->Dim[0] );
+
       SUIT_MessageBox::warn1(SMESHGUI::desktop(),
                            QObject::tr("SMESH_WRN_WARNING"),
                            aMsg,
@@ -208,21 +211,27 @@ namespace SMESH{
 
   QStringList GetAvailableHypotheses( const bool isAlgo, 
                                       const int theDim,                          
-                                      const bool isAux )
+                                      const bool isAux,
+                                      const bool isNeedGeometry)
   {
     QStringList aHypList;
 
     // Init list of available hypotheses, if needed
     InitAvailableHypotheses();
-
+    bool checkGeometry = !isNeedGeometry;
     // fill list of hypotheses/algorithms
     THypothesisDataMap* pMap = isAlgo ? &myAlgorithmsMap : &myHypothesesMap;
     THypothesisDataMap::iterator anIter;
     for ( anIter = pMap->begin(); anIter != pMap->end(); anIter++ )
     {
       HypothesisData* aData = (*anIter).second;
-      if ( ( theDim < 0 || aData->Dim.contains( theDim ) ) && aData->IsAux == isAux )
-        aHypList.append(((*anIter).first).c_str());
+      if ( ( theDim < 0 || aData->Dim.contains( theDim ) ) && aData->IsAux == isAux)
+        if (checkGeometry){
+          if (aData->IsNeedGeometry == isNeedGeometry)
+            aHypList.append(((*anIter).first).c_str());
+        }
+        else
+          aHypList.append(((*anIter).first).c_str());
     }
     return aHypList;
   }
@@ -388,30 +397,21 @@ namespace SMESH{
                                               const bool isAlgo)
   {
     if(MYDEBUG) MESSAGE("Create " << aHypType << " with name " << aHypName);
-
-    SMESH::SMESH_Hypothesis_var Hyp;
-
     HypothesisData* aHypData = GetHypothesisData(aHypType);
     QString aServLib = aHypData->ServerLibName;
-
     try {
-      Hyp = SMESHGUI::GetSMESHGen()->CreateHypothesis(aHypType, aServLib);
-      if (!Hyp->_is_nil()) {
-       _PTR(SObject) SHyp = SMESH::FindSObject(Hyp.in());
-       if (SHyp) {
-         //if (strcmp(aHypName,"") != 0)
+      SMESH::SMESH_Hypothesis_var aHypothesis;
+      aHypothesis = SMESHGUI::GetSMESHGen()->CreateHypothesis(aHypType, aServLib);
+      if (!aHypothesis->_is_nil()) {
+       _PTR(SObject) aHypSObject = SMESH::FindSObject(aHypothesis.in());
+       if (aHypSObject) {
          if (strlen(aHypName) > 0)
-           SMESH::SetName(SHyp, aHypName);
-         //SalomeApp_Application* app =
-         //  dynamic_cast<SalomeApp_Application*>(SUIT_Session::session()->activeApplication());
-         //if (app)
-         //  app->objectBrowser()->updateTree();
-          SMESHGUI::GetSMESHGUI()->updateObjBrowser();
-         return Hyp._retn();
+           SMESH::SetName(aHypSObject, aHypName);
+         SMESHGUI::GetSMESHGUI()->updateObjBrowser();
+         return aHypothesis._retn();
        }
       }
-    }
-    catch (const SALOME::SALOME_Exception & S_ex) {
+    } catch (const SALOME::SALOME_Exception & S_ex) {
       SalomeApp_Tools::QtCatchCorbaException(S_ex);
     }
 
@@ -542,27 +542,36 @@ namespace SMESH{
     if (MorSM) {
       try {
         GEOM::GEOM_Object_var aShapeObject = SMESH::GetShapeOnMeshOrSubMesh(MorSM);
-        if (!aShapeObject->_is_nil()) {
-          SMESH::SMESH_Mesh_var aMesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>(MorSM);
-         SMESH::SMESH_subMesh_var aSubMesh = SMESH::SObjectToInterface<SMESH::SMESH_subMesh>(MorSM);
-
-         if (!aSubMesh->_is_nil())
-           aMesh = aSubMesh->GetFather();
-
-         if (!aMesh->_is_nil()) {
-           res = aMesh->RemoveHypothesis(aShapeObject, anHyp);
-           if (res < SMESH::HYP_UNKNOWN_FATAL) {
+        SMESH::SMESH_Mesh_var aMesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>(MorSM);
+        SMESH::SMESH_subMesh_var aSubMesh = SMESH::SObjectToInterface<SMESH::SMESH_subMesh>(MorSM);
+        
+        if (!aSubMesh->_is_nil())
+          aMesh = aSubMesh->GetFather();
+        
+        if (!aMesh->_is_nil()) {    
+          if (aMesh->HasShapeToMesh() && !aShapeObject->_is_nil()) {
+            res = aMesh->RemoveHypothesis(aShapeObject, anHyp);
+            if (res < SMESH::HYP_UNKNOWN_FATAL) {
               _PTR(SObject) meshSO = SMESH::FindSObject(aMesh);
               if (meshSO)
                 SMESH::ModifiedMesh(meshSO, false, aMesh->NbNodes()==0);
             }
-           if (res > SMESH::HYP_OK) {
-             wc.suspend();
-             processHypothesisStatus(res, anHyp, false);
-             wc.resume();
-           }
-         }
-       }
+            
+          }
+          else if(!aMesh->HasShapeToMesh()){
+            res = aMesh->RemoveHypothesis(aShapeObject, anHyp);
+           if (res < SMESH::HYP_UNKNOWN_FATAL) {
+              _PTR(SObject) meshSO = SMESH::FindSObject(aMesh);
+              if (meshSO)
+                SMESH::ModifiedMesh(meshSO, false, aMesh->NbNodes()==0);              
+            }
+          }
+          if (res > SMESH::HYP_OK) {
+            wc.suspend();
+            processHypothesisStatus(res, anHyp, false);
+            wc.resume();
+          }
+        }
       } catch(const SALOME::SALOME_Exception& S_ex) {
        wc.suspend();
        SalomeApp_Tools::QtCatchCorbaException(S_ex);
@@ -609,7 +618,7 @@ namespace SMESH{
 #define CASE2MESSAGE(enum) case SMESH::enum: msg = QObject::tr( "STATE_" #enum ); break;
   QString GetMessageOnAlgoStateErrors(const algo_error_array& errors)
   {
-    QString resMsg = QObject::tr("SMESH_WRN_MISSING_PARAMETERS") + ":\n";
+    QString resMsg; // PAL14861 = QObject::tr("SMESH_WRN_MISSING_PARAMETERS") + ":\n";
     for ( int i = 0; i < errors.length(); ++i ) {
       const SMESH::AlgoStateError & error = errors[ i ];
       const bool hasAlgo = ( strlen( error.algoName ) != 0 );
@@ -621,6 +630,7 @@ namespace SMESH{
           CASE2MESSAGE( HYP_MISSING );
           CASE2MESSAGE( HYP_NOTCONFORM );
           CASE2MESSAGE( HYP_BAD_PARAMETER );
+          CASE2MESSAGE( HYP_BAD_GEOMETRY );
         default: continue;
         }
       // apply args to message:
index f62b14da2d666bb533d81df9e1e33d2c18b82152..42172d76b64ce64f3394b971a236e3c110981be5 100644 (file)
@@ -57,7 +57,8 @@ namespace SMESH{
   SMESHGUI_EXPORT
   QStringList GetAvailableHypotheses( const bool isAlgo, 
                                       const int theDim = -1, 
-                                      const bool isAux = false);
+                                      const bool isAux = false,
+                                     const bool isNeedGeometry = true);
   SMESHGUI_EXPORT
   QStringList GetHypothesesSets();
 
index b21ad3260cb676f1668fe1d39c308d672a133d16..c31fc078a4d89f6ef1c9659a030d9292e448c6ff 100644 (file)
@@ -138,16 +138,18 @@ QFrame* SMESHGUI_MakeNodeAtPointDlg::createMainFrame (QWidget* theParent)
   myX = new SMESHGUI_SpinBox(aCoordGrp);
 
   QLabel* aYLabel = new QLabel(tr("SMESH_Y"), aCoordGrp);
-  aYLabel->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
+  //aYLabel->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
+  aYLabel->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
   myY = new SMESHGUI_SpinBox(aCoordGrp);
 
   QLabel* aZLabel = new QLabel(tr("SMESH_Z"), aCoordGrp);
-  aZLabel->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
+  //aZLabel->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
+  aZLabel->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
   myZ = new SMESHGUI_SpinBox(aCoordGrp);
 
-  myX->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, 3);
-  myY->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, 3);
-  myZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, 3);
+  myX->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY);
+  myY->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY);
+  myZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY);
 
   // Method selection
 
@@ -258,6 +260,7 @@ SMESHGUI_MakeNodeAtPointOp::SMESHGUI_MakeNodeAtPointOp()
   mySimulation = 0;
   myDlg = new SMESHGUI_MakeNodeAtPointDlg;
   myFilter = 0;
+  myHelpFileName = "mesh_through_point_page.html";
 
   // connect signals and slots
   connect(myDlg->myX, SIGNAL (valueChanged(double)), this, SLOT(redisplayPreview()));
index 1fadd352b62e19e376af870247f1133dcc4d6d94..45f754f522a501d657d6e6baf9942be0f27fdc60 100644 (file)
@@ -308,7 +308,7 @@ SMESHGUI_MergeNodesDlg::SMESHGUI_MergeNodesDlg( SMESHGUI* theModule, const char*
   // Init Mesh field from selection
   SelectionIntoArgument();
 
-  myHelpFileName = "/files/merging_nodes.htm";
+  myHelpFileName = "merging_nodes_page.html";
 }
 
 //=================================================================================
index 33d2e6485f6eaf4c13943600fc337944b0c99615..b9b4f079d7babbaa98b6b5a057bb9717fff4e57f 100644 (file)
@@ -569,6 +569,27 @@ void SMESHGUI_MeshDlg::setGeomPopupEnabled( const bool enable )
   }
 }
 
+
+//================================================================================
+/*!
+ * \brief Disable tab
+ * \param int - tab ID
+ */
+//================================================================================
+void SMESHGUI_MeshDlg::disableTab(const int theTabId) {
+  myTabWg->setTabEnabled( myTabs[ theTabId ], false );
+}
+
+//================================================================================
+/*!
+ * \brief Enable tabs
+ * \param int - tab ID
+ */
+//================================================================================
+void SMESHGUI_MeshDlg::enableTab(const int theTabId) {
+  myTabWg->setTabEnabled( myTabs[ theTabId ], true );
+}
+
 void SMESHGUI_MeshDlg::onGeomSelectionButton(bool isBtnOn)
 {
   if ( myGeomPopup && isBtnOn )
index 33f1b2d573dd05abcd22f9771f4d6e162fb5b1ae..4b909b3c8ea3819d5fcfdb1bc95ca2ab1a9f7e0d 100644 (file)
@@ -74,6 +74,9 @@ public:
   void                         setMaxHypoDim( const int );
   void                         setHypoSets( const QStringList& );
   void                         setGeomPopupEnabled( const bool );
+  void                         disableTab(const int);
+  void                         enableTab(const int);
+
 
 signals:
 
index 4bcb125b15ab199ee2df13c53cd41578b4e2bda6..2b74c92a82ecb018f1ff302f2e9a78cfc4f0b3f0 100644 (file)
@@ -446,7 +446,7 @@ SMESHGUI_MeshInfosDlg::SMESHGUI_MeshInfosDlg (SMESHGUI* theModule,
   // init dialog with current selection
   onSelectionChanged();
 
-  myHelpFileName = "/files/viewing_mesh_info.htm#advanced_infos";
+  myHelpFileName = "mesh_infos_page.html#advanced_mesh_infos_anchor";
 }
 
 //=================================================================================
index 9aa469e68ccf909ef99a60a3f68957f6ebad73ae..11d298a6db9ad87391b8a15f3f3075a7a8d470ca 100644 (file)
@@ -44,6 +44,8 @@
 #include "SMESH_TypeFilter.hxx"
 #include "SMESH_NumberFilter.hxx"
 
+#include CORBA_CLIENT_HEADER(SMESH_Gen)
+
 #include "GEOM_SelectionFilter.h"
 #include "GEOMBase.h"
 #include "GeometryGUI.h"
 #include <TopoDS_Shape.hxx>
 #include <TopExp_Explorer.hxx>
 
-enum { GLOBAL_ALGO_TAG        =3,
-       GLOBAL_HYPO_TAG        =2,
-       LOCAL_ALGO_TAG         =2,
-       LOCAL_HYPO_TAG         =1,
-       SUBMESH_ON_VERTEX_TAG  =4,
-       SUBMESH_ON_EDGE_TAG    =5,
-       SUBMESH_ON_WIRE_TAG    =6,
-       SUBMESH_ON_FACE_TAG    =7,
-       SUBMESH_ON_SHELL_TAG   =8,
-       SUBMESH_ON_SOLID_TAG   =9,
-       SUBMESH_ON_COMPOUND_TAG=10 };
-
 //================================================================================
 /*!
  * \brief Constructor
@@ -102,6 +92,7 @@ SMESHGUI_MeshOp::SMESHGUI_MeshOp( const bool theToCreate, const bool theIsMesh )
 {
   if ( GeometryGUI::GetGeomGen()->_is_nil() )// check that GEOM_Gen exists
     GeometryGUI::InitGeomGen();
+  myIsOnGeometry = true;
 }
 
 //================================================================================
@@ -137,7 +128,7 @@ LightApp_Dialog* SMESHGUI_MeshOp::dlg() const
 //================================================================================
 bool SMESHGUI_MeshOp::onApply()
 {
-  if( isStudyLocked() )
+  if (isStudyLocked())
     return false;
 
   QString aMess;
@@ -199,7 +190,7 @@ bool SMESHGUI_MeshOp::onApply()
 //================================================================================
 void SMESHGUI_MeshOp::startOperation()
 {
-  if( !myDlg )
+  if (!myDlg)
   {
     myDlg = new SMESHGUI_MeshDlg( myToCreate, myIsMesh );
     for ( int i = SMESH::DIM_0D; i <= SMESH::DIM_3D; i++ )
@@ -215,9 +206,9 @@ void SMESHGUI_MeshOp::startOperation()
     connect( myDlg, SIGNAL( geomSelectionByMesh( bool )), SLOT( onGeomSelectionByMesh( bool )));
 
     if ( myToCreate )
-      if ( myIsMesh ) myHelpFileName = "/files/constructing_meshes.htm";
-      else myHelpFileName = "/files/constructing_submeshes.htm";
-    else myHelpFileName = "files/reassigning_hypotheses_and_algorithms.htm";
+      if ( myIsMesh ) myHelpFileName = "constructing_meshes_page.html";
+      else myHelpFileName = "constructing_submeshes_page.html";
+    else myHelpFileName = "editing_meshes_page.html";
   }
   SMESHGUI_SelectionOp::startOperation();
 
@@ -336,11 +327,11 @@ bool SMESHGUI_MeshOp::isSubshapeOk() const
       //if (mainObj->_is_nil() ||
       //    string(mainObj->GetEntry()) != string(mainGeom->GetEntry())) return false;
       while(1) {
-       if(mainObj->_is_nil())
-         return false;
-       if( string(mainObj->GetEntry()) == string(mainGeom->GetEntry()) )
-         return true;
-       mainObj = op->GetMainShape(mainObj);
+        if (mainObj->_is_nil())
+          return false;
+        if (string(mainObj->GetEntry()) == string(mainGeom->GetEntry()))
+          return true;
+        mainObj = op->GetMainShape(mainObj);
       }
     }
     //return true;
@@ -367,13 +358,13 @@ _PTR(SObject) SMESHGUI_MeshOp::getSubmeshByGeom() const
     if ( !geom->_is_nil() ) {
       int tag = -1;
       switch ( geom->GetShapeType() ) {
-      case GEOM::VERTEX:   tag = SUBMESH_ON_VERTEX_TAG  ; break;
-      case GEOM::EDGE:     tag = SUBMESH_ON_EDGE_TAG    ; break;
-      case GEOM::WIRE:     tag = SUBMESH_ON_WIRE_TAG    ; break;
-      case GEOM::FACE:     tag = SUBMESH_ON_FACE_TAG    ; break;
-      case GEOM::SHELL:    tag = SUBMESH_ON_SHELL_TAG   ; break;
-      case GEOM::SOLID:    tag = SUBMESH_ON_SOLID_TAG   ; break;
-      case GEOM::COMPOUND: tag = SUBMESH_ON_COMPOUND_TAG; break;
+      case GEOM::VERTEX:   tag = SMESH::Tag_SubMeshOnVertex  ; break;
+      case GEOM::EDGE:     tag = SMESH::Tag_SubMeshOnEdge    ; break;
+      case GEOM::WIRE:     tag = SMESH::Tag_SubMeshOnWire    ; break;
+      case GEOM::FACE:     tag = SMESH::Tag_SubMeshOnFace    ; break;
+      case GEOM::SHELL:    tag = SMESH::Tag_SubMeshOnShell   ; break;
+      case GEOM::SOLID:    tag = SMESH::Tag_SubMeshOnSolid   ; break;
+      case GEOM::COMPOUND: tag = SMESH::Tag_SubMeshOnCompound; break;
       default:;
       }
       _PTR(GenericAttribute) anAttr;
@@ -410,127 +401,161 @@ _PTR(SObject) SMESHGUI_MeshOp::getSubmeshByGeom() const
 //================================================================================
 void SMESHGUI_MeshOp::selectionDone()
 {
-  if ( !dlg()->isShown() || !myDlg->isEnabled() )
+  if (!dlg()->isShown() || !myDlg->isEnabled())
     return;
 
   SMESHGUI_SelectionOp::selectionDone();
 
   try
   {
-    // Enable tabs according to shape dimension
-
-    int shapeDim = 3;
-
-    QStringList aGEOMs;
-    myDlg->selectedObject(SMESHGUI_MeshDlg::Geom, aGEOMs);
-    GEOM::ListOfGO_var aSeq = new GEOM::ListOfGO;
-
-    if (aGEOMs.count() > 0) {
-      // one or more GEOM shape selected
-      aSeq->length(aGEOMs.count());
-      QStringList::const_iterator aSubShapesIter = aGEOMs.begin();
-      int iSubSh = 0;
-      for (; aSubShapesIter != aGEOMs.end(); aSubShapesIter++, iSubSh++) {
-        QString aSubGeomEntry = (*aSubShapesIter);
-        _PTR(SObject) pSubGeom = studyDS()->FindObjectID(aSubGeomEntry.latin1());
-        GEOM::GEOM_Object_var aSubGeomVar =
-          GEOM::GEOM_Object::_narrow(_CAST(SObject,pSubGeom)->GetObject());
-        aSeq[iSubSh] = aSubGeomVar;
-      }
-    } else {
-      // get geometry by selected sub-mesh
-      QString anObjEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Obj );
-      _PTR(SObject) pObj = studyDS()->FindObjectID( anObjEntry.latin1() );
-      GEOM::GEOM_Object_var aGeomVar = SMESH::GetShapeOnMeshOrSubMesh( pObj );
-      if (!aGeomVar->_is_nil()) {
-        aSeq->length(1);
-        aSeq[0] = aGeomVar;
+    myIsOnGeometry = true;
+
+    //Check geometry for mesh
+    QString anObjEntry = myDlg->selectedObject(SMESHGUI_MeshDlg::Obj);
+    _PTR(SObject) pObj = studyDS()->FindObjectID(anObjEntry.latin1());
+    if (pObj)
+    {
+      SMESH::SMESH_Mesh_var aMeshVar =
+        SMESH::SMESH_Mesh::_narrow(_CAST(SObject,pObj)->GetObject());
+      if (!aMeshVar->_is_nil()) {
+        if (!myToCreate && !aMeshVar->HasShapeToMesh())
+          myIsOnGeometry = false;
       }
     }
 
-    if (aSeq->length() > 0) {
-      shapeDim = 0;
-      for (int iss = 0; iss < aSeq->length() && shapeDim < 3; iss++) {
-        GEOM::GEOM_Object_var aGeomVar = aSeq[iss];
-        switch ( aGeomVar->GetShapeType() ) {
-        case GEOM::SOLID:
-        case GEOM::SHELL:  shapeDim = 3; break;
-        case GEOM::FACE:   shapeDim = (shapeDim < 2) ? 2 : shapeDim; break;
-        case GEOM::WIRE:
-        case GEOM::EDGE:   shapeDim = (shapeDim < 1) ? 1 : shapeDim; break;
-        case GEOM::VERTEX: break;
-        default:
-          TopoDS_Shape aShape;
-          if ( GEOMBase::GetShape(aGeomVar, aShape)) {
-            TopExp_Explorer exp( aShape, TopAbs_SHELL );
-            if ( exp.More() )
-              shapeDim = 3;
-            else if ( exp.Init( aShape, TopAbs_FACE ), exp.More() )
-              shapeDim = (shapeDim < 2) ? 2 : shapeDim;
-            else if ( exp.Init( aShape, TopAbs_EDGE ), exp.More() )
-              shapeDim = (shapeDim < 1) ? 1 : shapeDim;
-            else
-              ;//shapeDim = 0;
+    if (myIsOnGeometry)
+    {
+      // Enable tabs according to shape dimension
+
+      int shapeDim = 3;
+
+      QStringList aGEOMs;
+      myDlg->selectedObject(SMESHGUI_MeshDlg::Geom, aGEOMs);
+      GEOM::ListOfGO_var aSeq = new GEOM::ListOfGO;
+
+      if (aGEOMs.count() > 0) {
+        // one or more GEOM shape selected
+        aSeq->length(aGEOMs.count());
+        QStringList::const_iterator aSubShapesIter = aGEOMs.begin();
+        int iSubSh = 0;
+        for (; aSubShapesIter != aGEOMs.end(); aSubShapesIter++, iSubSh++) {
+          QString aSubGeomEntry = (*aSubShapesIter);
+          _PTR(SObject) pSubGeom = studyDS()->FindObjectID(aSubGeomEntry.latin1());
+          GEOM::GEOM_Object_var aSubGeomVar =
+            GEOM::GEOM_Object::_narrow(_CAST(SObject,pSubGeom)->GetObject());
+          aSeq[iSubSh] = aSubGeomVar;
+        }
+      } else {
+        // get geometry by selected sub-mesh
+        QString anObjEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Obj );
+        _PTR(SObject) pObj = studyDS()->FindObjectID( anObjEntry.latin1() );
+        GEOM::GEOM_Object_var aGeomVar = SMESH::GetShapeOnMeshOrSubMesh( pObj );
+        if (!aGeomVar->_is_nil()) {
+          aSeq->length(1);
+          aSeq[0] = aGeomVar;
+        }
+      }
+
+      if (aSeq->length() > 0) {
+        shapeDim = 0;
+        for (int iss = 0; iss < aSeq->length() && shapeDim < 3; iss++) {
+          GEOM::GEOM_Object_var aGeomVar = aSeq[iss];
+          switch ( aGeomVar->GetShapeType() ) {
+          case GEOM::SOLID:
+          case GEOM::SHELL:  shapeDim = 3; break;
+          case GEOM::FACE:   shapeDim = (shapeDim < 2) ? 2 : shapeDim; break;
+          case GEOM::WIRE:
+          case GEOM::EDGE:   shapeDim = (shapeDim < 1) ? 1 : shapeDim; break;
+          case GEOM::VERTEX: break;
+          default:
+            TopoDS_Shape aShape;
+            if ( GEOMBase::GetShape(aGeomVar, aShape)) {
+              TopExp_Explorer exp( aShape, TopAbs_SHELL );
+              if ( exp.More() )
+                shapeDim = 3;
+              else if ( exp.Init( aShape, TopAbs_FACE ), exp.More() )
+                shapeDim = (shapeDim < 2) ? 2 : shapeDim;
+              else if ( exp.Init( aShape, TopAbs_EDGE ), exp.More() )
+                shapeDim = (shapeDim < 1) ? 1 : shapeDim;
+              else
+                ;//shapeDim = 0;
+            }
           }
         }
       }
-    }
-    myDlg->setMaxHypoDim( shapeDim );
+      myDlg->setMaxHypoDim( shapeDim );
 
 
-    if ( !myToCreate ) // edition: read hypotheses
-    {
-      QString anObjEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Obj );
-      _PTR(SObject) pObj = studyDS()->FindObjectID( anObjEntry.latin1() );
-      if ( pObj != 0 )
+      if (!myToCreate) // edition: read hypotheses
       {
-        SMESH::SMESH_subMesh_var aVar =
-          SMESH::SMESH_subMesh::_narrow( _CAST( SObject,pObj )->GetObject() );
-        myDlg->setObjectShown( SMESHGUI_MeshDlg::Mesh, !aVar->_is_nil() );
-        myDlg->objectWg( SMESHGUI_MeshDlg::Mesh, SMESHGUI_MeshDlg::Btn )->hide();
-        myDlg->updateGeometry();
-        myDlg->adjustSize();
-        readMesh();
-      }
-      else
-        myDlg->reset();
-
-    }
-    else if ( !myIsMesh ) // submesh creation
-    {
-      // if a submesh on the selected shape already exist, pass to submesh edition mode
-      if ( _PTR(SObject) pSubmesh = getSubmeshByGeom() ) {
-        SMESH::SMESH_subMesh_var sm =
-          SMESH::SObjectToInterface<SMESH::SMESH_subMesh>( pSubmesh );
-        bool editSubmesh = ( !sm->_is_nil() &&
-                             SUIT_MessageBox::question2( myDlg, tr( "SMESH_WARNING" ),
-                                                         tr( "EDIT_SUBMESH_QUESTION"),
-                                                         tr( "SMESH_BUT_YES" ),
-                                                         tr( "SMESH_BUT_NO" ), 1, 0, 0 ));
-        if ( editSubmesh )
+        if (pObj != 0)
         {
-          selectionMgr()->clearFilters();
-          selectObject( pSubmesh );
-          SMESHGUI::GetSMESHGUI()->switchToOperation(704);
-          return;
+          SMESH::SMESH_subMesh_var aVar =
+            SMESH::SMESH_subMesh::_narrow( _CAST( SObject,pObj )->GetObject() );
+          myDlg->setObjectShown( SMESHGUI_MeshDlg::Mesh, !aVar->_is_nil() );
+          myDlg->setObjectShown( SMESHGUI_MeshDlg::Geom, true );
+          myDlg->objectWg( SMESHGUI_MeshDlg::Mesh, SMESHGUI_MeshDlg::Btn )->hide();
+          myDlg->objectWg( SMESHGUI_MeshDlg::Geom, SMESHGUI_MeshDlg::Btn )->hide();
+          myDlg->updateGeometry();
+          myDlg->adjustSize();
+          readMesh();
         }
         else
-        {
-          myDlg->selectObject( "", SMESHGUI_MeshDlg::Geom, "" );
-          selectObject( _PTR(SObject)() );
-          selectionDone();
-        }
+          myDlg->reset();
       }
+      else if ( !myIsMesh ) // submesh creation
+      {
+        // if a submesh on the selected shape already exist, pass to submesh edition mode
+        if ( _PTR(SObject) pSubmesh = getSubmeshByGeom() ) {
+          SMESH::SMESH_subMesh_var sm =
+            SMESH::SObjectToInterface<SMESH::SMESH_subMesh>( pSubmesh );
+          bool editSubmesh = ( !sm->_is_nil() &&
+                               SUIT_MessageBox::question2( myDlg, tr( "SMESH_WARNING" ),
+                                                           tr( "EDIT_SUBMESH_QUESTION"),
+                                                           tr( "SMESH_BUT_YES" ),
+                                                           tr( "SMESH_BUT_NO" ), 1, 0, 0 ));
+          if ( editSubmesh )
+          {
+            selectionMgr()->clearFilters();
+            selectObject( pSubmesh );
+            SMESHGUI::GetSMESHGUI()->switchToOperation(704);
+            return;
+          }
+          else
+          {
+            myDlg->selectObject( "", SMESHGUI_MeshDlg::Geom, "" );
+            selectObject( _PTR(SObject)() );
+            selectionDone();
+          }
+        }
 
-      // enable/disable popup for choice of geom selection way
-      bool enable = false;
-      QString aMeshEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Mesh );
-      if ( _PTR(SObject) pMesh = studyDS()->FindObjectID( aMeshEntry.latin1() )) {
-        SMESH::SMESH_Mesh_var mesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( pMesh );
-        if ( !mesh->_is_nil() )
-          enable = ( shapeDim > 1 ) && ( mesh->NbEdges() > 0 );
+        // enable/disable popup for choice of geom selection way
+        bool enable = false;
+        QString aMeshEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Mesh );
+        if ( _PTR(SObject) pMesh = studyDS()->FindObjectID( aMeshEntry.latin1() )) {
+          SMESH::SMESH_Mesh_var mesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( pMesh );
+          if ( !mesh->_is_nil() )
+            enable = ( shapeDim > 1 ) && ( mesh->NbEdges() > 0 );
+        }
+        myDlg->setGeomPopupEnabled( enable );
       }
-      myDlg->setGeomPopupEnabled( enable );
+    }
+    else {
+      myDlg->enableTab( SMESH::DIM_3D );
+      QStringList hypList;
+      availableHyps( SMESH::DIM_3D, Algo, hypList,
+                     myAvailableHypData[SMESH::DIM_3D][Algo]);
+
+      SMESHGUI_MeshTab* aTab = myDlg->tab( SMESH::DIM_3D );
+      aTab->setAvailableHyps( Algo, hypList );
+      for (int i = SMESH::DIM_0D;i < SMESH::DIM_3D; ++i) {
+        myDlg->disableTab(i);
+      }
+      //Hide labels and fields (Mesh ang Geometry)
+      myDlg->setObjectShown( SMESHGUI_MeshDlg::Mesh, false );
+      myDlg->setObjectShown( SMESHGUI_MeshDlg::Geom, false );
+      myDlg->adjustSize();
+      readMesh();
     }
   }
   catch ( const SALOME::SALOME_Exception& S_ex )
@@ -570,7 +595,7 @@ bool SMESHGUI_MeshOp::isValid( QString& theMess ) const
     return false;
   }
 
-  // Imported mesh, if create sub-mesh or edit mesh
+/*  // Imported mesh, if create sub-mesh or edit mesh
   if ( !myToCreate || ( myToCreate && !myIsMesh ))
   {
     QString aMeshEntry = myDlg->selectedObject
@@ -582,7 +607,7 @@ bool SMESHGUI_MeshOp::isValid( QString& theMess ) const
         return false;
       }
     }
-  }
+  }*/
 
   // Geom
   if ( myToCreate )
@@ -673,7 +698,7 @@ void SMESHGUI_MeshOp::availableHyps( const int       theDim,
   theHyps.clear();
   bool isAlgo = ( theHypType == Algo );
   bool isAux  = ( theHypType == AddHyp );
-  QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( isAlgo, theDim, isAux );
+  QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( isAlgo, theDim, isAux, myIsOnGeometry );
 
   QStringList::const_iterator anIter;
   for ( anIter = aHypTypeNameList.begin(); anIter != aHypTypeNameList.end(); ++anIter )
@@ -693,7 +718,6 @@ void SMESHGUI_MeshOp::availableHyps( const int       theDim,
   * \param theHypType - specifies whether algorims or hypotheses or additional ones
   * are retrieved (possible values are in HypType enumeration)
   * \param theFather - start object for finding ( may be component, mesh, or sub-mesh )
-  * \param theDataList - output list of hypotheses data
   * \param theHyps - output list of names.
   * \param theHypVars - output list of variables.
   * \param theAlgoData - to select hypos able to be used by this algo (optional)
@@ -706,12 +730,12 @@ void SMESHGUI_MeshOp::existingHyps( const int theDim,
                                     const int theHypType,
                                     _PTR(SObject) theFather,
                                     QStringList& theHyps,
-                                    QValueList<SMESH::SMESH_Hypothesis_var>& theHypVars,
+                                    THypList& theHypList,
                                     HypothesisData* theAlgoData)
 {
   // Clear hypoheses list
   theHyps.clear();
-  theHypVars.clear();
+  theHypList.clear();
 
   if ( !theFather )
     return;
@@ -726,9 +750,9 @@ void SMESHGUI_MeshOp::existingHyps( const int theDim,
   bool isMesh = !_CAST( SComponent, theFather );
   int aPart = -1;
   if ( isMesh )
-    aPart = theHypType == Algo ? GLOBAL_ALGO_TAG : GLOBAL_HYPO_TAG;
+    aPart = theHypType == Algo ? SMESH::Tag_RefOnAppliedAlgorithms : SMESH::Tag_RefOnAppliedHypothesis;
   else
-    aPart = theHypType == Algo ? LOCAL_ALGO_TAG : LOCAL_HYPO_TAG;
+    aPart = theHypType == Algo ? SMESH::Tag_AlgorithmsRoot : SMESH::Tag_HypothesisRoot;
 
   if ( theFather->FindSubObject( aPart, aHypRoot ) )
   {
@@ -754,15 +778,15 @@ void SMESHGUI_MeshOp::existingHyps( const int theDim,
           SMESH::SMESH_Hypothesis_var aHypVar = SMESH::SMESH_Hypothesis::_narrow( aVar );
           if ( !aHypVar->_is_nil() )
           {
-            QString aHypType( aHypVar->GetName() );
+            CORBA::String_var aHypType( aHypVar->GetName() );
             HypothesisData* aData = SMESH::GetHypothesisData( aHypType );
             if ( ( theDim == -1 || aData->Dim.contains( theDim ) ) &&
                  ( isCompatible ( theAlgoData, aData, theHypType )) &&
                  ( isAux == aData->IsAux ))
             {
-              //theDataList.append( aData );
-              theHyps.append( aName->Value().c_str() );
-              theHypVars.append( aHypVar );
+              std::string aHypName = aName->Value();
+              theHyps.append( aHypName.c_str() );
+              theHypList.append( THypItem( aHypVar, aHypName.c_str() ) );
             }
           }
         }
@@ -884,6 +908,19 @@ void SMESHGUI_MeshOp::onCreateHyp( const int theHypType, const int theIndex )
  *  \param theTypeName - specifies hypothesis to be created
  */
 //================================================================================
+namespace
+{
+  QString GetUniqueName (const QStringList& theHypNames,
+                         const QString& theName,
+                         size_t theIteration = 1)
+  {
+    QString aName = theName + "_" + QString::number( theIteration );
+    if ( theHypNames.contains( aName ) )
+      return GetUniqueName( theHypNames, theName, ++theIteration );
+    return aName;
+  }
+}
+
 void SMESHGUI_MeshOp::createHypothesis (const int theDim,
                                         const int theType,
                                         const QString& theTypeName)
@@ -896,13 +933,30 @@ void SMESHGUI_MeshOp::createHypothesis (const int theDim,
   if (!aData)
     return;
 
+  QStringList aHypNames;
+  TDim2Type2HypList::const_iterator aDimIter = myExistingHyps.begin();
+  for (; aDimIter != myExistingHyps.end(); aDimIter++) {
+    const TType2HypList& aType2HypList = aDimIter.data();
+    TType2HypList::const_iterator aTypeIter = aType2HypList.begin();
+    for (; aTypeIter != aType2HypList.end(); aTypeIter++) {
+      const THypList& aHypList = aTypeIter.data();
+      THypList::const_iterator anIter = aHypList.begin();
+      for (; anIter != aHypList.end(); anIter++) {
+        const THypItem& aHypItem = *anIter;
+        const QString& aHypName = aHypItem.second;
+        aHypNames.append(aHypName);
+      }
+    }
+  }
+  QString aHypName = GetUniqueName( aHypNames, aData->Label);
+
   // existing hypos
   int nbHyp = myExistingHyps[theDim][theType].count();
 
   QString aClientLibName = aData->ClientLibName;
   if (aClientLibName == "") {
     // Call hypothesis creation server method (without GUI)
-    SMESH::CreateHypothesis(theTypeName, aData->Label, false);
+    SMESH::CreateHypothesis(theTypeName, aHypName, false);
   } else {
     // Get hypotheses creator client (GUI)
     SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator(theTypeName);
@@ -914,10 +968,10 @@ void SMESHGUI_MeshOp::createHypothesis (const int theDim,
       SMESH::SMESH_Hypothesis_var initParamHyp =
         getInitParamsHypothesis(theTypeName, aData->ServerLibName);
       myDlg->setEnabled( false );
-      aCreator->create(initParamHyp, myDlg);
+      aCreator->create(initParamHyp, aHypName, myDlg);
       myDlg->setEnabled( true );
     } else {
-      SMESH::CreateHypothesis(theTypeName, aData->Label, false);
+      SMESH::CreateHypothesis(theTypeName, aHypName, false);
     }
   }
 
@@ -949,18 +1003,19 @@ void SMESHGUI_MeshOp::onEditHyp( const int theHypType, const int theIndex )
   if (aDim == -1)
     return;
 
-  QValueList<SMESH::SMESH_Hypothesis_var> aList = myExistingHyps[ aDim ][ theHypType ];
+  const THypList& aList = myExistingHyps[ aDim ][ theHypType ];
   if ( theIndex < 0 || theIndex >= aList.count() )
     return;
-  SMESH::SMESH_Hypothesis_var aHyp = aList[ theIndex ];
+  const THypItem& aHypItem = aList[ theIndex ];
+  SMESH::SMESH_Hypothesis_var aHyp = aHypItem.first;
   if ( aHyp->_is_nil() )
     return;
 
-  char* aTypeName = aHyp->GetName();
+  CORBA::String_var aTypeName = aHyp->GetName();
   SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator( aTypeName );
   if ( aCreator ) {
     myDlg->setEnabled( false );
-    aCreator->edit( aHyp.in(), dlg() );
+    aCreator->edit( aHyp.in(), aHypItem.second, dlg() );
     myDlg->setEnabled( true );
   }
 }
@@ -1035,7 +1090,7 @@ void SMESHGUI_MeshOp::onAlgoSelected( const int theIndex,
     }
     HypothesisData* prevAlgo = algoData;
     bool noCompatible = false;
-    for ( ; dim * dir <= lastDim * dir ; dim += dir )
+    for (; dim * dir <= lastDim * dir; dim += dir)
     {
       if ( !isAccessibleDim( dim ))
         continue;
@@ -1093,20 +1148,21 @@ void SMESHGUI_MeshOp::onAlgoSelected( const int theIndex,
 
       SMESH::SMESH_Hypothesis_var curHyp;
       if ( hypIndex >= 0 && hypIndex < myExistingHyps[ dim ][ type ].count() )
-        curHyp = myExistingHyps[ dim ][ type ][ hypIndex ];
+        curHyp = myExistingHyps[ dim ][ type ][ hypIndex ].first;
 
       if ( !myToCreate && !curAlgo && !curHyp->_is_nil() ) { // edition, algo not selected
         // try to find algo by selected hypothesis in order to keep it selected
         bool algoDeselectedByUser = ( theDim < 0 && aDim == dim );
-        QString curHypType = curHyp->GetName();
+        CORBA::String_var curHypType = curHyp->GetName();
         if ( !algoDeselectedByUser &&
              myObjHyps[ dim ][ type ].count() > 0 &&
-             curHypType == myObjHyps[ dim ][ type ][ 0 ]->GetName())
+             curHypType == myObjHyps[ dim ][ type ].first().first->GetName())
         {
-          HypothesisData* hypData = SMESH::GetHypothesisData( curHyp->GetName() );
-          for ( int i = 0 ; i < myAvailableHypData[ dim ][ Algo ].count(); ++i ) {
+          CORBA::String_var aName = curHyp->GetName();
+          HypothesisData* hypData = SMESH::GetHypothesisData( aName );
+          for (int i = 0; i < myAvailableHypData[ dim ][ Algo ].count(); ++i) {
             curAlgo = myAvailableHypData[ dim ][ Algo ][ i ];
-            if ( curAlgo && hypData && isCompatible( curAlgo, hypData, type ))
+            if (curAlgo && hypData && isCompatible(curAlgo, hypData, type))
               break;
             else
               curAlgo = 0;
@@ -1118,7 +1174,8 @@ void SMESHGUI_MeshOp::onAlgoSelected( const int theIndex,
       {
         // check if a selected hyp is compatible with the curAlgo
         if ( !curHyp->_is_nil() ) {
-          HypothesisData* hypData = SMESH::GetHypothesisData( curHyp->GetName() );
+          CORBA::String_var aName = curHyp->GetName();
+          HypothesisData* hypData = SMESH::GetHypothesisData( aName );
           if ( !isCompatible( curAlgo, hypData, type ))
             curHyp = SMESH::SMESH_Hypothesis::_nil();
         }
@@ -1136,10 +1193,10 @@ void SMESHGUI_MeshOp::onAlgoSelected( const int theIndex,
         hypIndex = -1;
       if ( !isSubmesh && hypIndex < 0 && anExisting.count() == 1 ) {
         // none is yet selected => select the sole existing if it is not optional
-        QString hypTypeName = myExistingHyps[ dim ][ type ][ 0 ]->GetName();
+        CORBA::String_var hypTypeName = myExistingHyps[ dim ][ type ].first().first->GetName();
         bool isOptional = true;
         if ( algoByDim[ dim ] &&
-             SMESH::IsAvailableHypothesis( algoByDim[ dim ], hypTypeName, isOptional ) &&
+             SMESH::IsAvailableHypothesis( algoByDim[ dim ], hypTypeName.in(), isOptional ) &&
              !isOptional )
           hypIndex = 0;
       }
@@ -1175,7 +1232,7 @@ void SMESHGUI_MeshOp::onHypoSet( const QString& theSetName )
       const QString& aHypoTypeName = (*aHypoList)[ i ];
       HypothesisData* aHypData = SMESH::GetHypothesisData(aHypoTypeName);
       if (!aHypData)
-       continue;
+        continue;
 
       int aDim = aHypData->Dim[0];
       // create or/and set
@@ -1192,6 +1249,9 @@ void SMESHGUI_MeshOp::onHypoSet( const QString& theSetName )
       }
       else {
         bool mainHyp = true;
+        QStringList anAvailable;
+        availableHyps( aDim, MainHyp, anAvailable, myAvailableHypData[aDim][MainHyp] );
+        myDlg->tab( aDim )->setAvailableHyps( MainHyp, anAvailable );
         int index = myAvailableHypData[aDim][MainHyp].findIndex( aHypData );
         if ( index < 0 ) {
           mainHyp = false;
@@ -1223,8 +1283,8 @@ bool SMESHGUI_MeshOp::createMesh( QString& theMess )
   QStringList aList;
   myDlg->selectedObject( SMESHGUI_MeshDlg::Geom, aList );
   QStringList::Iterator it = aList.begin();
-  for(; it!=aList.end(); it++) {
-
+  for (; it!=aList.end(); it++)
+  {
     QString aGeomEntry = *it;
     _PTR(SObject) pGeom = studyDS()->FindObjectID( aGeomEntry.latin1() );
     GEOM::GEOM_Object_var aGeomVar =
@@ -1251,7 +1311,7 @@ bool SMESHGUI_MeshOp::createMesh( QString& theMess )
       for ( int aHypType = MainHyp; aHypType <= AddHyp; aHypType++ ) {
         int aHypIndex = currentHyp( aDim, aHypType );
         if ( aHypIndex >= 0 && aHypIndex < myExistingHyps[ aDim ][ aHypType ].count() ) {
-          SMESH::SMESH_Hypothesis_var aHypVar = myExistingHyps[ aDim ][ aHypType ][ aHypIndex ];
+          SMESH::SMESH_Hypothesis_var aHypVar = myExistingHyps[ aDim ][ aHypType ][ aHypIndex ].first;
           if ( !aHypVar->_is_nil() )
             SMESH::AddHypothesisOnMesh( aMeshVar, aHypVar );
         }
@@ -1379,7 +1439,7 @@ bool SMESHGUI_MeshOp::createSubMesh( QString& theMess )
       if ( aHypIndex >= 0 && aHypIndex < myExistingHyps[ aDim ][ aHypType ].count() )
       {
         SMESH::SMESH_Hypothesis_var aHypVar =
-          myExistingHyps[ aDim ][ aHypType ][ aHypIndex ];
+          myExistingHyps[ aDim ][ aHypType ][ aHypIndex ].first;
         if ( !aHypVar->_is_nil() )
           SMESH::AddHypothesisOnSubMesh( aSubMeshVar, aHypVar );
       }
@@ -1493,12 +1553,13 @@ SMESH::SMESH_Hypothesis_var SMESHGUI_MeshOp::getAlgo( const int theDim )
   existingHyps( theDim, Algo, pObj, tmp, myExistingHyps[ theDim ][ Algo ]);
 
   // look for anexisting algo of such a type
-  QValueList<SMESH::SMESH_Hypothesis_var>& aHypVarList = myExistingHyps[ theDim ][ Algo ];
-  QValueList<SMESH::SMESH_Hypothesis_var>::iterator anIter;
-  for ( anIter = aHypVarList.begin(); anIter != aHypVarList.end(); anIter++ )
+  THypList& aHypVarList = myExistingHyps[ theDim ][ Algo ];
+  THypList::iterator anIter = aHypVarList.begin();
+  for (; anIter != aHypVarList.end(); anIter++)
   {
-    SMESH::SMESH_Hypothesis_var aHypVar = *anIter;
-    if ( !aHypVar->_is_nil() && aHypName == aHypVar->GetName() )
+    SMESH::SMESH_Hypothesis_var aHypVar = (*anIter).first;
+    CORBA::String_var aName = aHypVar->GetName();
+    if ( !aHypVar->_is_nil() && aHypName == aName )
     {
       anAlgoVar = aHypVar;
       break;
@@ -1518,7 +1579,7 @@ SMESH::SMESH_Hypothesis_var SMESHGUI_MeshOp::getAlgo( const int theDim )
 
         // Create algorithm
         if (aCreator)
-          aCreator->create(true, myDlg);
+          aCreator->create(true, aHypName, myDlg);
         else
           SMESH::CreateHypothesis(aHypName, aHypData->Label, true);
       }
@@ -1527,11 +1588,12 @@ SMESH::SMESH_Hypothesis_var SMESHGUI_MeshOp::getAlgo( const int theDim )
       existingHyps( theDim, Algo, aFather, tmpList, myExistingHyps[ theDim ][ Algo ] );
     }
 
-    QValueList<SMESH::SMESH_Hypothesis_var>& aNewHypVarList = myExistingHyps[ theDim ][ Algo ];
+    THypList& aNewHypVarList = myExistingHyps[ theDim ][ Algo ];
     for ( anIter = aNewHypVarList.begin(); anIter != aNewHypVarList.end(); ++anIter )
     {
-      SMESH::SMESH_Hypothesis_var aHypVar = *anIter;
-      if ( !aHypVar->_is_nil() && aHypName == aHypVar->GetName() )
+      SMESH::SMESH_Hypothesis_var aHypVar = (*anIter).first;
+      CORBA::String_var aName = aHypVar->GetName();
+      if ( !aHypVar->_is_nil() && aHypName == aName )
       {
         anAlgoVar = aHypVar;
         break;
@@ -1557,32 +1619,35 @@ void SMESHGUI_MeshOp::readMesh()
   if ( !pObj )
     return;
 
-  // Get name of mesh if current object is sub-mesh
-  SMESH::SMESH_subMesh_var aSubMeshVar =
+  if (myIsOnGeometry) {
+    // Get name of mesh if current object is sub-mesh
+    SMESH::SMESH_subMesh_var aSubMeshVar =
       SMESH::SMESH_subMesh::_narrow( _CAST( SObject,pObj )->GetObject() );
-  if ( !aSubMeshVar->_is_nil() )
-  {
-    SMESH::SMESH_Mesh_var aMeshVar =  aSubMeshVar->GetFather();
-    if ( !aMeshVar->_is_nil() )
+    if ( !aSubMeshVar->_is_nil() )
     {
-      _PTR(SObject) aMeshSO = SMESH::FindSObject( aMeshVar );
-      QString aMeshName = name( aMeshSO );
-      myDlg->setObjectText( SMESHGUI_MeshDlg::Mesh, aMeshName );
+      SMESH::SMESH_Mesh_var aMeshVar =  aSubMeshVar->GetFather();
+      if ( !aMeshVar->_is_nil() )
+      {
+        _PTR(SObject) aMeshSO = SMESH::FindSObject( aMeshVar );
+        QString aMeshName = name( aMeshSO );
+        myDlg->setObjectText( SMESHGUI_MeshDlg::Mesh, aMeshName );
+      }
     }
-  }
 
-  // Get name of geometry object
-  GEOM::GEOM_Object_var aGeomVar = SMESH::GetShapeOnMeshOrSubMesh( pObj );
-  if ( !aGeomVar->_is_nil() )
-  {
-    _PTR(SObject) aGeomSO = studyDS()->FindObjectID( aGeomVar->GetStudyEntry() );
-    QString aShapeName = name( aGeomSO );
-    myDlg->setObjectText( SMESHGUI_MeshDlg::Geom, aShapeName );
+    // Get name of geometry object
+    GEOM::GEOM_Object_var aGeomVar = SMESH::GetShapeOnMeshOrSubMesh( pObj );
+    if ( !aGeomVar->_is_nil() )
+    {
+      _PTR(SObject) aGeomSO = studyDS()->FindObjectID( aGeomVar->GetStudyEntry() );
+      QString aShapeName = name( aGeomSO );
+      myDlg->setObjectText( SMESHGUI_MeshDlg::Geom, aShapeName );
+    }
   }
 
   // Get hypotheses and algorithms assigned to the mesh/sub-mesh
   QStringList anExisting;
-  for ( int dim = SMESH::DIM_0D; dim <= SMESH::DIM_3D; dim++ )
+  const int aDim = ( myIsOnGeometry ) ? SMESH::DIM_0D : SMESH::DIM_3D;
+  for ( int dim = aDim; dim <= SMESH::DIM_3D; dim++ )
   {
     // get algorithm
     existingHyps( dim, Algo, pObj, anExisting, myObjHyps[ dim ][ Algo ] );
@@ -1590,8 +1655,8 @@ void SMESHGUI_MeshOp::readMesh()
     int aHypIndex = -1;
     if ( myObjHyps[ dim ][ Algo ].count() > 0 )
     {
-      SMESH::SMESH_Hypothesis_var aVar = myObjHyps[ dim ][ Algo ].first();
-      QString aHypTypeName = aVar->GetName();
+      SMESH::SMESH_Hypothesis_var aVar = myObjHyps[ dim ][ Algo ].first().first;
+      CORBA::String_var aHypTypeName = aVar->GetName();
       HypothesisData* algoData = SMESH::GetHypothesisData( aHypTypeName );
       aHypIndex = myAvailableHypData[ dim ][ Algo ].findIndex ( algoData );
 //       if ( aHypIndex < 0 && algoData ) {
@@ -1607,7 +1672,7 @@ void SMESHGUI_MeshOp::readMesh()
 
   // get hypotheses
   bool hypWithoutAlgo = false;
-  for ( int dim = SMESH::DIM_0D; dim <= SMESH::DIM_3D; dim++ )
+  for ( int dim = aDim; dim <= SMESH::DIM_3D; dim++ )
   {
     for ( int hypType = MainHyp; hypType <= AddHyp; hypType++ )
     {
@@ -1616,7 +1681,7 @@ void SMESHGUI_MeshOp::readMesh()
       // find index of requered hypothesis among existing ones for this dimension and type
       int aHypIndex = -1;
       if ( myObjHyps[ dim ][ hypType ].count() > 0 ) {
-        aHypIndex = find( myObjHyps[ dim ][ hypType ].first(),
+        aHypIndex = find( myObjHyps[ dim ][ hypType ].first().first,
                           myExistingHyps[ dim ][ hypType ] );
         if ( aHypIndex < 0 ) {
           // assigned hypothesis is incompatible with the algorithm
@@ -1673,16 +1738,16 @@ QString SMESHGUI_MeshOp::name( _PTR(SObject) theSO ) const
  */
 //================================================================================
 int SMESHGUI_MeshOp::find( const SMESH::SMESH_Hypothesis_var& theHyp,
-                           const QValueList<SMESH::SMESH_Hypothesis_var>& theHypList ) const
+                           const THypList& theHypList ) const
 {
   int aRes = -1;
   if ( !theHyp->_is_nil() )
   {
     int i = 0;
-    QValueList<SMESH::SMESH_Hypothesis_var>::const_iterator anIter;
-    for ( anIter = theHypList.begin(); anIter != theHypList.end(); ++ anIter )
+    THypList::const_iterator anIter = theHypList.begin();
+    for (; anIter != theHypList.end(); ++ anIter)
     {
-      if ( theHyp->_is_equivalent( *anIter ) )
+      if ( theHyp->_is_equivalent( (*anIter).first ) )
       {
         aRes = i;
         break;
@@ -1718,27 +1783,29 @@ bool SMESHGUI_MeshOp::editMeshOrSubMesh( QString& theMess )
   SUIT_OverrideCursor aWaitCursor;
 
   // Set new name
-  SMESH::SetName( pObj, myDlg->objectText( SMESHGUI_MeshDlg::Obj ).latin1() );
+  QString aName = myDlg->objectText( SMESHGUI_MeshDlg::Obj );
+  SMESH::SetName( pObj, aName.latin1() );
+  int aDim = ( myIsOnGeometry ) ? SMESH::DIM_0D : SMESH::DIM_3D;
 
   // First, remove old algos in order to avoid messages on algorithm hiding
-  for ( int dim = SMESH::DIM_0D; dim <= SMESH::DIM_3D; dim++ )
+  for ( int dim = aDim; dim <= SMESH::DIM_3D; dim++ )
   {
     if ( isAccessibleDim( dim ) && myObjHyps[ dim ][ Algo ].count() > 0 )
     {
-      SMESH::SMESH_Hypothesis_var anOldAlgo = myObjHyps[ dim ][ Algo ].first();
+      SMESH::SMESH_Hypothesis_var anOldAlgo = myObjHyps[ dim ][ Algo ].first().first;
       SMESH::SMESH_Hypothesis_var anAlgoVar = getAlgo( dim );
       if ( anAlgoVar->_is_nil() || // no new algo selected or
            strcmp(anOldAlgo->GetName(), anAlgoVar->GetName()) ) // algo change
       {
         // remove old algorithm
-        SMESH::RemoveHypothesisOrAlgorithmOnMesh ( pObj, myObjHyps[ dim ][ Algo ].first() );
+        SMESH::RemoveHypothesisOrAlgorithmOnMesh ( pObj, myObjHyps[ dim ][ Algo ].first().first );
         myObjHyps[ dim ][ Algo ].clear();
       }
     }
   }
 
   // Assign new algorithms and hypotheses
-  for ( int dim = SMESH::DIM_0D; dim <= SMESH::DIM_3D; dim++ )
+  for ( int dim = aDim; dim <= SMESH::DIM_3D; dim++ )
   {
     if ( !isAccessibleDim( dim )) continue;
 
@@ -1749,8 +1816,9 @@ bool SMESHGUI_MeshOp::editMeshOrSubMesh( QString& theMess )
     if ( !anAlgoVar->_is_nil() && // some algo selected and
          myObjHyps[ dim ][ Algo ].count() == 0 ) // no algo assigned
     {
-      SMESH::SMESH_Mesh_var aMeshVar =
-        SMESH::SMESH_Mesh::_narrow( _CAST(SObject,pObj)->GetObject() );
+      SALOMEDS_SObject* aSObject = _CAST(SObject, pObj);
+      CORBA::Object_var anObject = aSObject->GetObject();
+      SMESH::SMESH_Mesh_var aMeshVar = SMESH::SMESH_Mesh::_narrow( anObject );
       bool isMesh = !aMeshVar->_is_nil();
       if ( isMesh ) {
         SMESH::AddHypothesisOnMesh( aMeshVar, anAlgoVar );
@@ -1760,7 +1828,7 @@ bool SMESHGUI_MeshOp::editMeshOrSubMesh( QString& theMess )
         if ( !aVar->_is_nil() )
           SMESH::AddHypothesisOnSubMesh( aVar, anAlgoVar );
       }
-      myObjHyps[ dim ][ Algo ].append( anAlgoVar );
+      myObjHyps[ dim ][ Algo ].append( THypItem( anAlgoVar, aName) );
     }
 
     // assign hypotheses
@@ -1772,13 +1840,13 @@ bool SMESHGUI_MeshOp::editMeshOrSubMesh( QString& theMess )
       // remove old hypotheses
       if ( myObjHyps[ dim ][ hypType ].count() > 0 )
       {
-        anOldHypIndex = find( myObjHyps[ dim ][ hypType ].first(),
+        anOldHypIndex = find( myObjHyps[ dim ][ hypType ].first().first ,
                               myExistingHyps[ dim ][ hypType ] );
         if ( aNewHypIndex != anOldHypIndex || // different hyps
              anOldHypIndex == -1 )            // hyps of different algos
         {
           SMESH::RemoveHypothesisOrAlgorithmOnMesh
-            ( pObj, myObjHyps[ dim ][ hypType ].first() );
+            ( pObj, myObjHyps[ dim ][ hypType ].first().first );
           myObjHyps[ dim ][ hypType ].clear();
         }
       }
@@ -1792,7 +1860,7 @@ bool SMESHGUI_MeshOp::editMeshOrSubMesh( QString& theMess )
         if ( isMesh )
         {
           SMESH::AddHypothesisOnMesh
-            (aMeshVar, myExistingHyps[ dim ][ hypType ][ aNewHypIndex ] );
+            (aMeshVar, myExistingHyps[ dim ][ hypType ][ aNewHypIndex ].first );
         }
         else
         {
@@ -1800,7 +1868,7 @@ bool SMESHGUI_MeshOp::editMeshOrSubMesh( QString& theMess )
             SMESH::SMESH_subMesh::_narrow( _CAST(SObject,pObj)->GetObject() );
           if ( !aVar->_is_nil() )
             SMESH::AddHypothesisOnSubMesh
-              ( aVar, myExistingHyps[ dim ][ hypType ][ aNewHypIndex ] );
+              ( aVar, myExistingHyps[ dim ][ hypType ][ aNewHypIndex ].first );
         }
       }
       // reread all hypotheses of mesh if necessary
index 190c386dd77a33232e7722b9206f916a33a09f63..c658fb74e33568594bcfa6fd53b3784d597ab978 100644 (file)
 #include "SMESH_SMESHGUI.hxx"
 
 #include "SMESHGUI_SelectionOp.h"
-#include <qstringlist.h>
 
 #include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
+#include CORBA_CLIENT_HEADER(GEOM_Gen)
+#include CORBA_CLIENT_HEADER(SMESH_Mesh)
+
+#include <qstringlist.h>
 
 class SMESHGUI_MeshDlg;
 class SMESHGUI_ShapeByMeshOp;
@@ -58,6 +59,15 @@ public:
 
   enum HypType{ Algo = 0, MainHyp, AddHyp, NbHypTypes };
 
+  typedef std::pair<SMESH::SMESH_Hypothesis_var, QString> THypItem;
+  typedef QValueList< THypItem > THypList;
+
+  typedef int THypType;
+  typedef QMap< THypType, THypList > TType2HypList;
+
+  typedef int THypDim;
+  typedef QMap< THypDim, TType2HypList > TDim2Type2HypList;
+
   SMESHGUI_MeshOp( const bool theToCreate, const bool theIsMesh = true );
   virtual ~SMESHGUI_MeshOp();
   
@@ -94,7 +104,7 @@ private:
                                                const int     theHypType, 
                                                _PTR(SObject) theFather,
                                                QStringList&  theHyps, 
-                                               QValueList<SMESH::SMESH_Hypothesis_var>& theHypVars,
+                                               THypList& theHypList,
                                                HypothesisData* theAlgoData = 0);
   HypothesisData*                hypData( const int theDim,
                                           const int theHypType,
@@ -115,7 +125,7 @@ private:
   void                           readMesh();
   QString                        name( _PTR(SObject) ) const;
   int                            find( const SMESH::SMESH_Hypothesis_var&,
-                                       const QValueList<SMESH::SMESH_Hypothesis_var>& ) const;
+                                       const THypList& theHypList) const;
   SMESH::SMESH_Hypothesis_var    getInitParamsHypothesis( const QString& aHypType,
                                                           const QString& aServerLib ) const;
   bool                           isSubshapeOk() const;
@@ -123,16 +133,14 @@ private:
   void                           selectObject( _PTR(SObject) ) const;
 
 private:
-  typedef QMap< int, QValueList<SMESH::SMESH_Hypothesis_var> > IdToHypListMap;
-  typedef QMap< int, IdToHypListMap > DimToHypMap;
-
   SMESHGUI_MeshDlg*              myDlg;
   SMESHGUI_ShapeByMeshOp*        myShapeByMeshOp;
   bool                           myToCreate;
   bool                           myIsMesh;
+  bool                           myIsOnGeometry; //!< TRUE if edited mesh accotiated with geometrical object
 
-  DimToHypMap                    myExistingHyps; //!< all hypothesis of SMESH module
-  DimToHypMap                    myObjHyps;      //!< hypothesis assigned to the current 
+  TDim2Type2HypList              myExistingHyps; //!< all hypothesis of SMESH module
+  TDim2Type2HypList              myObjHyps;      //!< hypothesis assigned to the current 
                                                  //   edited mesh/sub-mesh
 
   // hypdata corresponding to hypotheses present in myDlg
index 8d72e0ede6d90ce4d8a0b9c2402b36237de7e5b0..1c99b81efc5735210f7c07b8938eee928997b817 100755 (executable)
@@ -132,7 +132,7 @@ SMESHGUI_MeshPatternDlg::SMESHGUI_MeshPatternDlg( SMESHGUI*   theModule,
 
   mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
 
-  myHelpFileName = "pattern_mapping.htm";
+  myHelpFileName = "pattern_mapping_page.html";
 
   Init();
 }
index b8e5c305577653443872bd72959ded9e0f944eca..ccbdaff7d5855e096ec46ea9cdd8bcc07e2902a8 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "SMESHGUI_MeshUtils.h"
 #include "SMESHGUI_Utils.h"
+#include "SALOMEDSClient_Study.hxx"
 
 #include "SALOMEconfig.h"
 #include CORBA_SERVER_HEADER(SMESH_Group)
@@ -44,4 +45,27 @@ namespace SMESH
     return SMESH_Mesh::_nil();
   }
 
+  QString UniqueMeshName(const char* theBaseName, const char* thePostfix)
+  {
+    QString baseName = theBaseName;
+    if ( thePostfix/* && !name.contains( postfix )*/) { // add postfix
+      baseName += "_";
+      baseName += thePostfix;
+    }
+    if(_PTR(Study) aStudy = GetActiveStudyDocument()) {
+      QString name = baseName;
+      while ( !aStudy->FindObjectByName( name.latin1(), "SMESH" ).empty() ) {
+        int nb = 0;
+        if ( name[ name.length()-1 ].isNumber() ) {
+          int nbBeg = name.findRev("_");
+          nb = name.right( name.length() - nbBeg - 1 ).toInt();
+          name = name.left( nbBeg );
+        }
+        name += QString("_%1").arg( nb+1 );
+      }
+      return name;
+    }
+    return QString("");
+  }
+
 }
index 81cdb67c1c67b0f8b3c180201c7675d14f16c00e..c7e93a0659ed8d1a0037d06cbb9492d703267167 100644 (file)
 #include "SALOMEconfig.h"
 #include CORBA_SERVER_HEADER(SMESH_Mesh)
 
+#include <qstring.h>
+
 
 namespace SMESH{
 
 SMESHGUI_EXPORT
   SMESH_Mesh_var GetMeshByIO(const Handle(SALOME_InteractiveObject)& theIO);
 
+  QString UniqueMeshName(const char* theBaseName, const char* thePostfix);
 }
 
 
index 8eb5e67cece16eaef81766b254d58472d5776c12..de8ebe9b5d65aae394d2328a33396f9de5ae0842 100644 (file)
@@ -118,7 +118,7 @@ SMESHGUI_MoveNodesDlg::SMESHGUI_MoveNodesDlg (SMESHGUI* theModule,
 
   mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
 
-  myHelpFileName = "/files/displacing_nodes.htm";
+  myHelpFileName = "moving_nodes_page.html";
 
   Init();
 }
@@ -184,16 +184,18 @@ QFrame* SMESHGUI_MoveNodesDlg::createMainFrame (QWidget* theParent)
   myX = new SMESHGUI_SpinBox(aCoordGrp);
 
   QLabel* aYLabel = new QLabel(tr("SMESH_Y"), aCoordGrp);
-  aYLabel->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
+  //aYLabel->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
+  aYLabel->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
   myY = new SMESHGUI_SpinBox(aCoordGrp);
 
   QLabel* aZLabel = new QLabel(tr("SMESH_Z"), aCoordGrp);
-  aZLabel->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
+  //aZLabel->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
+  aZLabel->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
   myZ = new SMESHGUI_SpinBox(aCoordGrp);
 
-  myX->RangeStepAndValidator(COORD_MIN, COORD_MAX, 25.0, 3);
-  myY->RangeStepAndValidator(COORD_MIN, COORD_MAX, 25.0, 3);
-  myZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, 25.0, 3);
+  myX->RangeStepAndValidator(COORD_MIN, COORD_MAX, 25.0, DBL_DIGITS_DISPLAY);
+  myY->RangeStepAndValidator(COORD_MIN, COORD_MAX, 25.0, DBL_DIGITS_DISPLAY);
+  myZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, 25.0, DBL_DIGITS_DISPLAY);
 
   QVBoxLayout* aLay = new QVBoxLayout(aFrame);
   aLay->addWidget(aPixGrp);
index 8ef34e62a727ce620eb283fb45a161f3a726b381..70bf3f61d617cb71ef18e096396c373dfe7a04b4 100755 (executable)
@@ -1080,7 +1080,7 @@ SMESHGUI_ChangeOrientationDlg
   SMESHGUI_MultiEditDlg(theModule, SMESHGUI_FaceFilter, true, theName)
 {
   setCaption(tr("CAPTION"));
-  myHelpFileName = "/files/changing_orientation_of_elements.htm";
+  myHelpFileName = "changing_orientation_of_elements_page.html";
 }
 
 SMESHGUI_ChangeOrientationDlg::~SMESHGUI_ChangeOrientationDlg()
@@ -1120,7 +1120,7 @@ SMESHGUI_UnionOfTrianglesDlg
 
   myCriterionGrp->show();
 
-  myHelpFileName = "/files/uniting_a_set_of_triangles.htm";
+  myHelpFileName = "uniting_set_of_triangles_page.html";
 }
 
 SMESHGUI_UnionOfTrianglesDlg::~SMESHGUI_UnionOfTrianglesDlg()
@@ -1160,7 +1160,7 @@ SMESHGUI_CuttingOfQuadsDlg
   connect(myComboBoxFunctor, SIGNAL(activated(int))      , this, SLOT(onPreviewChk()));
   connect(this             , SIGNAL(ListContensChanged()), this, SLOT(onPreviewChk()));
 
-  myHelpFileName = "/files/cutting_quadrangles.htm";
+  myHelpFileName = "cutting_quadrangles_page.html";
 }
 
 SMESHGUI_CuttingOfQuadsDlg::~SMESHGUI_CuttingOfQuadsDlg()
index b89009898cd88a49bd08ff2f08c09a682757b83f..4b135d5913397d23bdcd67b64381d2fc52703b79 100644 (file)
@@ -310,17 +310,21 @@ SMESHGUI_NodesDlg::SMESHGUI_NodesDlg (SMESHGUI* theModule,
   GroupCoordinatesLayout->setAlignment(Qt::AlignTop);
   GroupCoordinatesLayout->setSpacing(6);
   GroupCoordinatesLayout->setMargin(11);
+
   TextLabel_X = new QLabel(GroupCoordinates, "TextLabel_X");
   TextLabel_X->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
   TextLabel_X->setText(tr("SMESH_X" ));
   GroupCoordinatesLayout->addWidget(TextLabel_X, 0, 0);
+
   TextLabel_Y = new QLabel(GroupCoordinates, "TextLabel_Y");
-  TextLabel_Y->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
+  //TextLabel_Y->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
+  TextLabel_Y->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
   TextLabel_Y->setText(tr("SMESH_Y" ));
   GroupCoordinatesLayout->addWidget(TextLabel_Y, 0, 2);
 
   TextLabel_Z = new QLabel(GroupCoordinates, "TextLabel_Z");
-  TextLabel_Z->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
+  //TextLabel_Z->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
+  TextLabel_Z->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) );
   TextLabel_Z->setText(tr("SMESH_Z" ));
   GroupCoordinatesLayout->addWidget(TextLabel_Z, 0, 4);
 
@@ -335,7 +339,7 @@ SMESHGUI_NodesDlg::SMESHGUI_NodesDlg (SMESHGUI* theModule,
 
   SMESHGUI_NodesDlgLayout->addWidget(GroupCoordinates, 1, 0);
 
-  myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_nodes";
+  myHelpFileName = "adding_nodes_and_elements_page.html#adding_nodes_anchor";
 
   /* Initialisation and display */
   Init();
@@ -363,9 +367,9 @@ void SMESHGUI_NodesDlg::Init ()
   step = 25.0;
 
   /* min, max, step and decimals for spin boxes */
-  SpinBox_X->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
-  SpinBox_Y->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
-  SpinBox_Z->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
+  SpinBox_X->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY);
+  SpinBox_Y->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY);
+  SpinBox_Z->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY);
   SpinBox_X->SetValue(0.0);
   SpinBox_Y->SetValue(0.0);
   SpinBox_Z->SetValue(0.0);
index d4636f4f2b62dcbc607951b4951ab101437e461a..77d3940e84ebe27f52f6817ba9de82a1aad953b7 100644 (file)
@@ -186,7 +186,7 @@ SMESHGUI_RemoveElementsDlg
     GroupC1Layout->addWidget(LineEditC1A1, 0, 2);
     SMESHGUI_RemoveElementsDlgLayout->addWidget(GroupC1, 1, 0);
 
-    myHelpFileName = "/files/removing_nodes_and_elements.htm#remove_an_element";
+    myHelpFileName = "removing_nodes_and_elements_page.html#removing_elements_anchor";
 
     Init(); /* Initialisations */
 }
index 329d5db3bdc0851af610b6556393440a88364ccc..1ceff864d625c5add00dcb0f580a5d924676e73b 100644 (file)
@@ -186,7 +186,7 @@ SMESHGUI_RemoveNodesDlg
     GroupC1Layout->addWidget(LineEditC1A1, 0, 2);
     SMESHGUI_RemoveNodesDlgLayout->addWidget(GroupC1, 1, 0);
 
-    myHelpFileName = "/files/removing_nodes_and_elements.htm#remove_a_node";
+    myHelpFileName = "removing_nodes_and_elements_page.html#removing_nodes_anchor";
 
     Init(); /* Initialisations */
 }
index 17fe6f6a84d944589de4b59bcea2a72858d744cc..b1cdd6b5951b73d7903a0086d85822e4f0b5216a 100644 (file)
@@ -99,11 +99,11 @@ SMESHGUI_RenumberingDlg::SMESHGUI_RenumberingDlg( SMESHGUI* theModule, const cha
   GroupConstructors = new QButtonGroup(this, "GroupConstructors");
   if (unit == 0) {
     GroupConstructors->setTitle(tr("SMESH_NODES" ));
-    myHelpFileName = "/files/renumbering_nodes_and_elements.htm#renumber_nodes";
+    myHelpFileName = "renumbering_nodes_and_elements_page.html#renumbering_nodes_anchor";
   }
   else if (unit == 1) {
     GroupConstructors->setTitle(tr("SMESH_ELEMENTS" ));
-    myHelpFileName = "/files/renumbering_nodes_and_elements.htm#renumber_elements";
+    myHelpFileName = "renumbering_nodes_and_elements_page.html#renumbering_elements_anchor";
   }
   GroupConstructors->setExclusive(TRUE);
   GroupConstructors->setColumnLayout(0, Qt::Vertical);
index 90b699a7fc228f0b4ad1cfec1c5287656c2a0548..c10a0898b9a3ed82c766ad7ae0b626b4d2a431ed 100644 (file)
@@ -290,6 +290,12 @@ SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( SMESHGUI* theModule, const char*
   SpinBox_Tolerance = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Tolerance");
   GroupArgumentsLayout->addWidget(SpinBox_Tolerance, 5, 2);
 
+  // CheckBox for groups generation
+  MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
+  MakeGroupsCheck->setChecked(true);
+  GroupArgumentsLayout->addMultiCellWidget(MakeGroupsCheck, 6, 6, 0, 3);
+
+
   SMESHGUI_RevolutionDlgLayout->addWidget(GroupArguments, 1, 0);
 
   /* Initialisations */
@@ -326,7 +332,7 @@ SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( SMESHGUI* theModule, const char*
   myMeshOrSubMeshOrGroupFilter =
     new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
 
-  myHelpFileName = "revolution.htm";
+  myHelpFileName = "revolution_page.html";
 
   Init();
 
@@ -479,12 +485,21 @@ void SMESHGUI_RevolutionDlg::ClickOnApply()
     try {
       SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
       QApplication::setOverrideCursor(Qt::waitCursor);
-      aMeshEditor->RotationSweep(anElementsId.inout(), anAxis, anAngle, aNbSteps, aTolerance);
+
+      if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
+        SMESH::ListOfGroups_var groups = 
+          aMeshEditor->RotationSweepMakeGroups(anElementsId.inout(), anAxis,
+                                               anAngle, aNbSteps, aTolerance);
+      else
+        aMeshEditor->RotationSweep(anElementsId.inout(), anAxis, anAngle, aNbSteps, aTolerance);
+
       QApplication::restoreOverrideCursor();
     } catch (...) {
     }
 
     SMESH::UpdateView();
+    if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() )
+      mySMESHGUI->updateObjBrowser(true); // new groups may appear
     Init(false);
     ConstructorsClicked(GetConstructorId());
     SelectionIntoArgument();
@@ -640,6 +655,14 @@ void SMESHGUI_RevolutionDlg::SelectionIntoArgument()
   if (myEditCurrentArgument == (QWidget*)LineEditElements) {
     myElementsId = "";
 
+    // MakeGroups is available if there are groups
+    if ( myMesh->NbGroups() == 0 ) {
+      MakeGroupsCheck->setChecked(false);
+      MakeGroupsCheck->setEnabled(false);
+    } else {
+      MakeGroupsCheck->setEnabled(true);
+    }
+
     if (CheckBoxMesh->isChecked()) {
       int aConstructorId = GetConstructorId();
 
index 9db7f48590b79c50041e988369a3c6e008f17ace..389c380a110810c8ea23189caa6e1d8ad89deb1e 100644 (file)
@@ -110,6 +110,7 @@ private:
     QPushButton* SelectElementsButton;
     QLineEdit* LineEditElements;
     QCheckBox* CheckBoxMesh;
+    QCheckBox* MakeGroupsCheck;
 
     QLabel* TextLabelPoint;
     QPushButton* SelectPointButton;
index e4f4a1d5bff18e638a79c044cf51ddabb5884927..d587855d3d6bc16cc6b153fa695af308df9196e7 100644 (file)
@@ -51,6 +51,7 @@
 #include "SVTK_Selector.h"
 #include "SVTK_Selection.h"
 #include "SALOME_ListIO.hxx"
+#include "SALOMEDSClient_SObject.hxx"
 
 #include "utilities.h"
 
@@ -77,6 +78,8 @@
 
 using namespace std;
 
+enum { MOVE_ELEMS_BUTTON = 0, COPY_ELEMS_BUTTON, MAKE_MESH_BUTTON }; //!< action type
+
 //=================================================================================
 // class    : SMESHGUI_RotationDlg()
 // purpose  :
@@ -175,7 +178,7 @@ SMESHGUI_RotationDlg::SMESHGUI_RotationDlg( SMESHGUI* theModule, const char* nam
   // Controls for elements selection
   TextLabelElements  = new QLabel(GroupArguments, "TextLabelElements");
   TextLabelElements->setText(tr("SMESH_ID_ELEMENTS" ));
-  TextLabelElements->setFixedWidth(74);
+  //TextLabelElements->setFixedWidth(74);
   GroupArgumentsLayout->addWidget(TextLabelElements, 0, 0);
 
   SelectElementsButton  = new QPushButton(GroupArguments, "SelectElementsButton");
@@ -184,14 +187,14 @@ SMESHGUI_RotationDlg::SMESHGUI_RotationDlg( SMESHGUI* theModule, const char* nam
   SelectElementsButton->setToggleButton(FALSE);
   GroupArgumentsLayout->addWidget(SelectElementsButton, 0, 1);
 
-  LineEditElements  = new QLineEdit(GroupArguments, "LineEditElements");
+  LineEditElements = new QLineEdit(GroupArguments, "LineEditElements");
   LineEditElements->setValidator(new SMESHGUI_IdValidator(this, "validator"));
-  GroupArgumentsLayout->addWidget(LineEditElements, 0, 2);
+  GroupArgumentsLayout->addMultiCellWidget(LineEditElements, 0, 0, 2, 3);
 
   // Control for the whole mesh selection
   CheckBoxMesh = new QCheckBox(GroupArguments, "CheckBoxMesh");
   CheckBoxMesh->setText(tr("SMESH_SELECT_WHOLE_MESH" ));
-  GroupArgumentsLayout->addMultiCellWidget(CheckBoxMesh, 1, 1, 0, 2);
+  GroupArgumentsLayout->addMultiCellWidget(CheckBoxMesh, 1, 1, 0, 3);
 
   // Controls for axis defining
   GroupAxis = new QGroupBox(GroupArguments, "GroupAxis");
@@ -268,20 +271,31 @@ SMESHGUI_RotationDlg::SMESHGUI_RotationDlg( SMESHGUI* theModule, const char* nam
   SpinBox_DZ = new SMESHGUI_SpinBox(GroupAxis, "SpinBox_DZ");
   GroupAxisLayout->addWidget(SpinBox_DZ, 1, 7);
 
-  GroupArgumentsLayout->addMultiCellWidget(GroupAxis, 2, 2, 0, 2);
+  GroupArgumentsLayout->addMultiCellWidget(GroupAxis, 2, 2, 0, 3);
 
   // Controls for angle defining
   TextLabelAngle = new QLabel(GroupArguments, "TextLabelAngle");
   TextLabelAngle->setText(tr("SMESH_ANGLE"));
-  GroupArgumentsLayout->addMultiCellWidget(TextLabelAngle, 3, 3, 0, 1);
+  GroupArgumentsLayout->addMultiCellWidget(TextLabelAngle, 3, 3, 0, 2);
 
   SpinBox_Angle = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Angle");
   GroupArgumentsLayout->addWidget(SpinBox_Angle, 3, 2);
 
-  // Controls for "Create a copy" option
-  CheckBoxCopy = new QCheckBox(GroupArguments, "CheckBoxCopy");
-  CheckBoxCopy->setText(tr("SMESH_CREATE_COPY"));
-  GroupArgumentsLayout->addMultiCellWidget(CheckBoxCopy, 4, 4, 0, 2);
+  // action switch
+  ActionGroup = new QButtonGroup(1, Qt::Horizontal, GroupArguments, "ActionGroup");
+  ActionGroup->setExclusive(true);
+  ActionGroup->insert(new QRadioButton(tr("SMESH_MOVE_ELEMENTS"),ActionGroup), MOVE_ELEMS_BUTTON);
+  ActionGroup->insert(new QRadioButton(tr("SMESH_COPY_ELEMENTS"),ActionGroup), COPY_ELEMS_BUTTON);
+  ActionGroup->insert(new QRadioButton(tr("SMESH_CREATE_MESH"  ),ActionGroup), MAKE_MESH_BUTTON);
+  GroupArgumentsLayout->addMultiCellWidget(ActionGroup, 4, 6, 0, 2);
+
+  // CheckBox for groups generation
+  MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
+  GroupArgumentsLayout->addWidget(MakeGroupsCheck, 5, 3);
+
+  // Name of a mesh to create
+  LineEditNewMesh = new QLineEdit(GroupArguments, "LineEditNewMesh");
+  GroupArgumentsLayout->addWidget(LineEditNewMesh, 6, 3);
 
   SMESHGUI_RotationDlgLayout->addWidget(GroupArguments, 1, 0);
 
@@ -314,7 +328,7 @@ SMESHGUI_RotationDlg::SMESHGUI_RotationDlg( SMESHGUI* theModule, const char* nam
   myMeshOrSubMeshOrGroupFilter =
     new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
 
-  myHelpFileName = "/files/rotation.htm";
+  myHelpFileName = "rotation_page.html";
 
   Init();
 
@@ -339,10 +353,13 @@ SMESHGUI_RotationDlg::SMESHGUI_RotationDlg( SMESHGUI* theModule, const char* nam
   connect(mySMESHGUI,       SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
   connect(LineEditElements, SIGNAL(textChanged(const QString&)),    SLOT(onTextChange(const QString&)));
   connect(CheckBoxMesh,     SIGNAL(toggled(bool)),                  SLOT(onSelectMesh(bool)));
+  connect(ActionGroup,      SIGNAL(clicked(int)),                   SLOT(onActionClicked(int)));
 
   this->show(); /* displays Dialog */
 
   ConstructorsClicked(0);
+  //SelectionIntoArgument();
+  onActionClicked(MOVE_ELEMS_BUTTON);
   resize(0,0); // ??
 }
 
@@ -384,8 +401,11 @@ void SMESHGUI_RotationDlg::Init (bool ResetControls)
 
     SpinBox_Angle->SetValue(45);
 
-    CheckBoxCopy->setChecked(false);
+    ((QRadioButton*) ActionGroup->find( MOVE_ELEMS_BUTTON ))->setChecked(TRUE);
     CheckBoxMesh->setChecked(false);
+//     MakeGroupsCheck->setChecked(false);
+//     MakeGroupsCheck->setEnabled(false);
+//    onSelectMesh(false);
   }
 
   onSelectMesh(CheckBoxMesh->isChecked());
@@ -427,18 +447,37 @@ void SMESHGUI_RotationDlg::ClickOnApply()
     anAxis.vz = SpinBox_DZ->GetValue();
 
     double anAngle = (SpinBox_Angle->GetValue())*PI/180;
-    bool toCreateCopy = CheckBoxCopy->isChecked();
-
+    int actionButton = ActionGroup->id( ActionGroup->selected() );
+    bool makeGroups = ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() );
     try {
       SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
       QApplication::setOverrideCursor(Qt::waitCursor);
-      aMeshEditor->Rotate(anElementsId.inout(), anAxis, anAngle, toCreateCopy);
+      switch ( actionButton ) {
+      case MOVE_ELEMS_BUTTON:
+        aMeshEditor->Rotate(anElementsId, anAxis, anAngle, false);
+        break;
+      case COPY_ELEMS_BUTTON:
+        if ( makeGroups )
+          SMESH::ListOfGroups_var groups = 
+            aMeshEditor->RotateMakeGroups(anElementsId, anAxis, anAngle);
+        else
+          aMeshEditor->Rotate(anElementsId, anAxis, anAngle, true);
+        break;
+      case MAKE_MESH_BUTTON:
+        SMESH::SMESH_Mesh_var mesh = 
+          aMeshEditor->RotateMakeMesh(anElementsId, anAxis, anAngle, makeGroups,
+                                      LineEditNewMesh->text().latin1());
+      }
       QApplication::restoreOverrideCursor();
     } catch (...) {
     }
 
     SMESH::UpdateView();
+    if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() ||
+         actionButton == MAKE_MESH_BUTTON )
+      mySMESHGUI->updateObjBrowser(true); // new groups may appear
     Init(false);
+    //ConstructorsClicked(GetConstructorId());
     SelectionIntoArgument();
   }
 }
@@ -592,6 +631,14 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
   if (myEditCurrentArgument == (QWidget*)LineEditElements) {
     myElementsId = "";
 
+    // MakeGroups is available if there are groups and "Copy"
+    if ( myMesh->NbGroups() == 0 ) {
+      MakeGroupsCheck->setChecked(false);
+      MakeGroupsCheck->setEnabled(false);
+    }
+    else if ( ActionGroup->id( ActionGroup->selected() ) != MOVE_ELEMS_BUTTON ) {
+      MakeGroupsCheck->setEnabled(true);
+    }
     if (CheckBoxMesh->isChecked()) {
       SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
 
@@ -672,8 +719,10 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
   }
 
   myBusy = true;
-  if (myEditCurrentArgument == (QWidget*)LineEditElements)
+  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
     LineEditElements->setText(aString);
+    setNewMeshName();
+  }
   myBusy = false;
 
   // OK
@@ -854,6 +903,61 @@ void SMESHGUI_RotationDlg::onVectorChanged()
   }
 }
 
+
+//=======================================================================
+//function : onActionClicked
+//purpose  : slot called when an action type changed
+//=======================================================================
+
+void SMESHGUI_RotationDlg::onActionClicked(int button)
+{
+  switch ( button ) {
+  case MOVE_ELEMS_BUTTON:
+    MakeGroupsCheck->setEnabled(false);
+    LineEditNewMesh->setEnabled(false);
+    break;
+  case COPY_ELEMS_BUTTON:
+    LineEditNewMesh->setEnabled(false);
+    MakeGroupsCheck->setText( tr("SMESH_MAKE_GROUPS"));
+    if ( myMesh->_is_nil() || myMesh->NbGroups() > 0)
+      MakeGroupsCheck->setEnabled(true);
+    else
+      MakeGroupsCheck->setEnabled(false);
+    break;
+  case MAKE_MESH_BUTTON:
+    LineEditNewMesh->setEnabled(true);
+    MakeGroupsCheck->setText( tr("SMESH_COPY_GROUPS"));
+    if ( myMesh->_is_nil() || myMesh->NbGroups() > 0)
+      MakeGroupsCheck->setEnabled(true);
+    else
+      MakeGroupsCheck->setEnabled(false);
+    break;
+  }
+  setNewMeshName();
+}
+
+//=======================================================================
+//function : setNewMeshName
+//purpose  : update contents of LineEditNewMesh
+//=======================================================================
+
+void SMESHGUI_RotationDlg::setNewMeshName()
+{
+  LineEditNewMesh->setText("");
+  if ( LineEditNewMesh->isEnabled() && !myMesh->_is_nil() ) {
+    QString name;
+    if ( CheckBoxMesh->isChecked() ) {
+      name = LineEditElements->text();
+    }
+    else {
+      _PTR(SObject) meshSO = SMESH::FindSObject( myMesh );
+      name = meshSO->GetName();
+    }
+    if ( !name.isEmpty() )
+      LineEditNewMesh->setText( SMESH::UniqueMeshName( name.latin1(), "rotated"));
+  }
+}
+
 //=================================================================================
 // function : keyPressEvent()
 // purpose  :
index 86075d763d352415bca06a1f230a8428d565fd64..51a5e141a87497532246ee2d8c2cb1077beda51b 100644 (file)
@@ -81,6 +81,7 @@ private:
     void hideEvent (QHideEvent*);                       /* ESC key */
     void keyPressEvent(QKeyEvent*);
     bool IsAxisOk();
+    void setNewMeshName();
 
     SMESHGUI*                     mySMESHGUI;              /* Current SMESHGUI object */
     LightApp_SelectionMgr*        mySelectionMgr;          /* User shape selection */
@@ -128,7 +129,10 @@ private:
 
     QLabel* TextLabelAngle;
     SMESHGUI_SpinBox* SpinBox_Angle;
-    QCheckBox* CheckBoxCopy;
+    //QCheckBox* CheckBoxCopy;
+    QButtonGroup* ActionGroup;
+    QCheckBox* MakeGroupsCheck;
+    QLineEdit* LineEditNewMesh;
 
     QString myHelpFileName;
 
@@ -146,6 +150,7 @@ private slots:
     void onTextChange (const QString&);
     void onSelectMesh (bool toSelectMesh);
     void onVectorChanged();
+    void onActionClicked(int button);
 
 protected:
     QGridLayout* SMESHGUI_RotationDlgLayout;
index 7602c410b31212349110866af3ac1cc3aeb32641..9791ebebd05431113d4a2061abd0dfc15390613c 100644 (file)
@@ -36,8 +36,9 @@
 #include "SVTK_RenderWindowInteractor.h"
 #include "SVTK_ViewWindow.h"
 
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-#include CORBA_SERVER_HEADER(SMESH_Group)
+#include CORBA_CLIENT_HEADER(SMESH_Gen)
+#include CORBA_CLIENT_HEADER(SMESH_Mesh)
+#include CORBA_CLIENT_HEADER(SMESH_Group)
 
 //=======================================================================
 //function : SMESHGUI_Selection
@@ -82,7 +83,7 @@ void SMESHGUI_Selection::init( const QString& client, LightApp_SelectionMgr* mgr
 //=======================================================================
 void SMESHGUI_Selection::processOwner( const LightApp_DataOwner* ow )
 {
-  const LightApp_SVTKDataOwner* owner = 
+  const LightApp_SVTKDataOwner* owner =
     dynamic_cast<const LightApp_SVTKDataOwner*> ( ow );
   if( owner )
     myActors.append( dynamic_cast<SMESH_Actor*>( owner->GetActor() ) );
@@ -100,6 +101,7 @@ QtxValue SMESHGUI_Selection::param( const int ind, const QString& p ) const
        if ( p=="client" )        val = QtxValue( globalParam( p ) );
   else if ( p=="type" )          val = QtxValue( myTypes[ind] );
   else if ( p=="elemTypes" )     val = QtxValue( elemTypes( ind ) );
+  else if ( p=="isAutoColor" )   val = QtxValue( isAutoColor( ind ) );
   else if ( p=="numberOfNodes" ) val = QtxValue( numberOfNodes( ind ) );
   else if ( p=="labeledTypes" )  val = QtxValue( labeledTypes( ind ) );
   else if ( p=="shrinkMode" )    val = QtxValue( shrinkMode( ind ) );
@@ -252,6 +254,27 @@ QString SMESHGUI_Selection::controlMode( int ind ) const
   return "eNone";
 }
 
+//=======================================================================
+//function : isAutoColor
+//purpose  : 
+//=======================================================================
+
+bool SMESHGUI_Selection::isAutoColor( int ind ) const
+{
+  if ( ind >= 0 && ind < myTypes.count() && myTypes[ind] != "Unknown" )
+  {
+    _PTR(SObject) sobj = SMESH::GetActiveStudyDocument()->FindObjectID( entry( ind ).latin1() );
+    CORBA::Object_var obj = SMESH::SObjectToObject( sobj, SMESH::GetActiveStudyDocument() );
+
+    if ( ! CORBA::is_nil( obj )) {
+      SMESH::SMESH_Mesh_var mesh = SMESH::SMESH_Mesh::_narrow( obj );
+      if ( ! mesh->_is_nil() )
+        return mesh->GetAutoColor();
+    }
+  }
+  return false;
+}
+
 //=======================================================================
 //function : numberOfNodes
 //purpose  : 
@@ -291,13 +314,30 @@ QVariant SMESHGUI_Selection::isComputable( int ind ) const
 /*    Handle(SALOME_InteractiveObject) io =
       static_cast<LightApp_DataOwner*>( myDataOwners[ ind ].get() )->IO();
     if ( !io.IsNull() ) {
-      SMESH::SMESH_Mesh_var mesh = SMESH::GetMeshByIO(io) ; // m,sm,gr->m
+      SMESH::SMESH_Mesh_var mesh = SMESH::GetMeshByIO(io); // m,sm,gr->m
       if ( !mesh->_is_nil() ) {*/
         _PTR(SObject) so = SMESH::GetActiveStudyDocument()->FindObjectID( entry( ind ).latin1() );
        //FindSObject( mesh );
         if ( so ) {
-          GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so );
-          return QVariant( !shape->_is_nil(), 0 );
+          CORBA::Object_var obj = SMESH::SObjectToObject(so, SMESH::GetActiveStudyDocument());
+          if(!CORBA::is_nil(obj)){
+            SMESH::SMESH_Mesh_var mesh = SMESH::SMESH_Mesh::_narrow( obj );
+            if (!mesh->_is_nil()){
+              if(mesh->HasShapeToMesh()) {
+                GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so );
+                return QVariant( !shape->_is_nil(), 0 );
+              }
+              else
+              {
+                return QVariant(!mesh->NbFaces()==0, 0);
+              }
+            }
+            else
+            {
+              GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so );
+              return QVariant( !shape->_is_nil(), 0 );
+            }
+          }
         }
 //      }
 //    }
@@ -363,47 +403,47 @@ int SMESHGUI_Selection::type( const QString& entry, _PTR(Study) study )
       anOTag = obj->Tag(),
       res = -1;
 
-  switch( aLevel )
+  switch (aLevel)
   {
   case 1:
-    if( anOTag>=3 )
+    if (anOTag >= SMESH::Tag_FirstMeshRoot)
       res = MESH;
     break;
   case 2:
-    switch( aFTag )
+    switch (aFTag)
     {
-    case 1:
+    case SMESH::Tag_HypothesisRoot:
       res = HYPOTHESIS;
       break;
-    case 2:
+    case SMESH::Tag_AlgorithmsRoot:
       res = ALGORITHM;
       break;
     }
     break;
   case 3:
-    switch( aFTag )
+    switch (aFTag)
     {
-    case 4:
+    case SMESH::Tag_SubMeshOnVertex:
       res = SUBMESH_VERTEX;
       break;
-    case 5:
+    case SMESH::Tag_SubMeshOnEdge:
       res = SUBMESH_EDGE;
       break;
-    case 7:
+    case SMESH::Tag_SubMeshOnFace:
       res = SUBMESH_FACE;
       break;
-    case 9:
+    case SMESH::Tag_SubMeshOnSolid:
       res = SUBMESH_SOLID;
       break;
-    case 10:
+    case SMESH::Tag_SubMeshOnCompound:
       res = SUBMESH_COMPOUND;
       break;
+    default:
+      if (aFTag >= SMESH::Tag_FirstGroup)
+        res = GROUP;
+      else
+        res = SUBMESH;
     }
-    if( aFTag>10 )
-      res = GROUP;
-    else
-      res = SUBMESH;
-
     break;
   }
 
index 6dd5bc27179a984ee3db38cc63c928d63e9af3a2..440c8d4bd81a8bfd76209935c9a3d4fbb9038b45 100644 (file)
@@ -50,6 +50,7 @@ public:
   virtual void     processOwner( const LightApp_DataOwner* );
 
   // got from object, not from actor
+  virtual bool isAutoColor( int ind ) const;
   virtual int numberOfNodes( int ind ) const;
   virtual QVariant isComputable( int ind ) const;
   virtual QVariant hasReference( int ind ) const;
index 238e88a41d2a41676d34fdf7882ad19af95d4c3a..a6ae00781d2ded3f73506a1b51f6ca80e66db335 100644 (file)
@@ -297,7 +297,7 @@ SMESHGUI_SewingDlg::SMESHGUI_SewingDlg( SMESHGUI* theModule, const char* name,
 
   mySMESHGUI->SetActiveDialogBox((QDialog*)this);
 
-  myHelpFileName = "/files/sewing_meshes.htm";
+  myHelpFileName = "sewing_meshes_page.html";
 
   Init();
 
index ce21c9c17fed51c2db959478a5e29bf7b6fc206a..201b1c126cffb91d3e43be3480ae5305a4fcbbc7 100755 (executable)
@@ -570,7 +570,7 @@ SMESHGUI_TrianglesInversionDlg
 : SMESHGUI_SingleEditDlg(theModule,theName)
 {
   setCaption(tr("CAPTION"));
-  myHelpFileName = "/files/diagonal_iversion_of_elements.htm";
+  myHelpFileName = "diagonal_inversion_of_elements_page.html";
 }
 
 SMESHGUI_TrianglesInversionDlg::~SMESHGUI_TrianglesInversionDlg()
@@ -595,7 +595,7 @@ SMESHGUI_UnionOfTwoTrianglesDlg
 : SMESHGUI_SingleEditDlg(theModule,theName)
 {
   setCaption(tr("CAPTION"));
-  myHelpFileName = "/files/uniting_two_triangles.htm";
+  myHelpFileName = "uniting_two_triangles_page.html";
 }
 
 SMESHGUI_UnionOfTwoTrianglesDlg::~SMESHGUI_UnionOfTwoTrianglesDlg()
index 231dba97f7e98b4f1bfbdf1d6e3103c24e2a5c5f..d46673b73f45bb2a051e8b4a080d67ecb776c48d 100644 (file)
@@ -275,7 +275,7 @@ SMESHGUI_SmoothingDlg::SMESHGUI_SmoothingDlg( SMESHGUI* theModule, const char* n
   myMeshOrSubMeshOrGroupFilter =
     new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
 
-  myHelpFileName = "/files/smoothing.htm";
+  myHelpFileName = "smoothing_page.html";
 
   Init();
 
index cc5c996893f5038f8c248f43cd78a4be5efc8124..53069b718412e4a23a80b61ef86cc09790e2b16d 100644 (file)
@@ -36,6 +36,7 @@
 // like in GEOM_SRC/src/DlgRef/DlgRef_SpinBox.h
 #define COORD_MIN -1e+15
 #define COORD_MAX +1e+15
+#define DBL_DIGITS_DISPLAY 14
 
 //=================================================================================
 // class    : SMESHGUI_SpinBox
index 5fffc787e1e9bae67bc2608a6316d8b0825765aa..3fe48b107e74af8e78c2d137aedba5a8664a1576 100644 (file)
@@ -17,7 +17,7 @@
 //  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
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -32,7 +32,6 @@
 #include "SMESHGUI_Utils.h"
 #include "SMESHGUI_MeshUtils.h"
 
-#include "SMESH.hxx"
 #include "SMESH_TypeFilter.hxx"
 
 #include "SALOMEDSClient_Study.hxx"
@@ -178,7 +177,7 @@ SMESHGUI_StandardMeshInfosDlg::SMESHGUI_StandardMeshInfosDlg( SMESHGUI* theModul
   mySelectionMgr->installFilter(myMeshFilter);
   onSelectionChanged();
 
-  myHelpFileName = "/files/viewing_mesh_info.htm#standard_infos";
+  myHelpFileName = "mesh_infos_page.html#standard_mesh_infos_anchor";
 }
 
 //=================================================================================
@@ -251,7 +250,7 @@ void SMESHGUI_StandardMeshInfosDlg::DumpMeshInfos()
       bool hasGroup = false;
 
       // info about groups on nodes
-      aMeshSO->FindSubObject(Tag_NodeGroups, anObj);
+      aMeshSO->FindSubObject(SMESH::Tag_NodeGroups, anObj);
       if (anObj) {
         _PTR(ChildIterator) it = aStudy->NewChildIterator(anObj);
        if (it->More()) {
@@ -284,7 +283,7 @@ void SMESHGUI_StandardMeshInfosDlg::DumpMeshInfos()
 
       // info about groups on edges
       anObj.reset();
-      aMeshSO->FindSubObject(Tag_EdgeGroups, anObj);
+      aMeshSO->FindSubObject(SMESH::Tag_EdgeGroups, anObj);
       if (anObj) {
         _PTR(ChildIterator) it = aStudy->NewChildIterator(anObj);
         if (!hasGroup && it->More()) {
@@ -317,7 +316,7 @@ void SMESHGUI_StandardMeshInfosDlg::DumpMeshInfos()
 
       // info about groups on faces
       anObj.reset();
-      aMeshSO->FindSubObject(Tag_FaceGroups , anObj);
+      aMeshSO->FindSubObject(SMESH::Tag_FaceGroups , anObj);
       if (anObj) {
         _PTR(ChildIterator) it = aStudy->NewChildIterator(anObj);
        if (!hasGroup && it->More()) {
@@ -350,7 +349,7 @@ void SMESHGUI_StandardMeshInfosDlg::DumpMeshInfos()
 
       // info about groups on volumes
       anObj.reset();
-      aMeshSO->FindSubObject(Tag_VolumeGroups, anObj);
+      aMeshSO->FindSubObject(SMESH::Tag_VolumeGroups, anObj);
       if (anObj) {
         _PTR(ChildIterator) it = aStudy->NewChildIterator(anObj);
        if (!hasGroup && it->More())
@@ -458,14 +457,14 @@ void SMESHGUI_StandardMeshInfosDlg::onStartSelection()
 void SMESHGUI_StandardMeshInfosDlg::onHelp()
 {
   LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
-  if (app) 
+  if (app)
     app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
   else {
-               QString platform;
+    QString platform;
 #ifdef WIN32
-               platform = "winapplication";
+    platform = "winapplication";
 #else
-               platform = "application";
+    platform = "application";
 #endif
     SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
                           QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
index fec084979966469eae52d41301a8133ccc11c300..ee4705c0e5b243618d1af8ba23d46ac05de9b0d7 100644 (file)
@@ -17,7 +17,7 @@
 //  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
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -65,20 +65,6 @@ using namespace std;
 
 static CORBA::ORB_var anORB;
 
-// Tags definition 
-static long Tag_HypothesisRoot = 1;
-static long Tag_AlgorithmsRoot = 2;
-  
-static long Tag_RefOnShape = 1;
-static long Tag_RefOnAppliedHypothesis = 2;
-static long Tag_RefOnAppliedAlgorithms = 3;
-
-static long Tag_SubMeshOnVertex = 4;
-static long Tag_SubMeshOnEdge = 5;
-static long Tag_SubMeshOnFace = 6;
-static long Tag_SubMeshOnSolid = 7;
-static long Tag_SubMeshOnCompound  = 8;
-
 namespace
 {
   //---------------------------------------------------------------
@@ -125,11 +111,11 @@ namespace
   {
     return GetDomainRoot(theSComponentMesh,
                         theStudyBuilder,
-                        Tag_HypothesisRoot,
+                        SMESH::Tag_HypothesisRoot,
                         QObject::tr("SMESH_MEN_HYPOTHESIS"),
                         "ICON_SMESH_TREE_HYPO");
   }
-  
+
 
   //---------------------------------------------------------------
   inline
@@ -139,7 +125,7 @@ namespace
   {
     return GetDomainRoot(theSComponentMesh,
                         theStudyBuilder,
-                        Tag_AlgorithmsRoot,
+                        SMESH::Tag_AlgorithmsRoot,
                         QObject::tr("SMESH_MEN_ALGORITHMS"),
                         "ICON_SMESH_TREE_ALGO");
   }
@@ -157,7 +143,7 @@ namespace
   {
     SALOMEDS::SObject_var aDomain = GetDomainRoot(theSComponentMesh,
                                                  theStudyBuilder,
-                                                 Tag_AlgorithmsRoot,
+                                                 SMESH::Tag_AlgorithmsRoot,
                                                  theDomainName,
                                                  theDomainPixmap);
     // Add New Hypothesis
@@ -172,7 +158,7 @@ namespace
     anAttr = theStudyBuilder->FindOrCreateAttribute(aSObject,"AttributeIOR");
     SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
     anIOR->SetValue(theIOR.c_str());
-    
+
     return aSObject;
   }
 
@@ -186,7 +172,7 @@ namespace
     return AddToDomain(theIOR,
                       theSComponentMesh,
                       theStudyBuilder,
-                      Tag_HypothesisRoot,
+                      SMESH::Tag_HypothesisRoot,
                       QObject::tr("SMESH_MEN_HYPOTHESIS"),
                       "ICON_SMESH_TREE_HYPO");
   }
@@ -201,7 +187,7 @@ namespace
     return AddToDomain(theIOR,
                       theSComponentMesh,
                       theStudyBuilder,
-                      Tag_AlgorithmsRoot,
+                      SMESH::Tag_AlgorithmsRoot,
                       QObject::tr("SMESH_MEN_ALGORITHMS"),
                       "ICON_SMESH_TREE_ALGO");
   }
@@ -209,7 +195,7 @@ namespace
 
   //---------------------------------------------------------------
   void
-  SetDomain(const char* theMeshOrSubMeshEntry, 
+  SetDomain(const char* theMeshOrSubMeshEntry,
            const char* theDomainEntry,
            const SALOMEDS::Study_var& theStudy,
            const SALOMEDS::StudyBuilder_var& theStudyBuilder,
@@ -225,7 +211,7 @@ namespace
       SALOMEDS::SObject_var anAppliedDomainSO;
       if(!aMeshOrSubMeshSO->FindSubObject(theRefOnAppliedDomainTag,anAppliedDomainSO)){
        anAppliedDomainSO = theStudyBuilder->NewObjectToTag(aMeshOrSubMeshSO,theRefOnAppliedDomainTag);
-       SALOMEDS::GenericAttribute_var anAttr = 
+       SALOMEDS::GenericAttribute_var anAttr =
          theStudyBuilder->FindOrCreateAttribute(anAppliedDomainSO,"AttributeName");
        SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(anAttr);
        aName->SetValue(theAppliedDomainMEN.latin1());
@@ -244,7 +230,7 @@ namespace
 
   //---------------------------------------------------------------
   void
-  SetHypothesis(const char* theMeshOrSubMeshEntry, 
+  SetHypothesis(const char* theMeshOrSubMeshEntry,
                const char* theDomainEntry,
                const SALOMEDS::Study_var& theStudy,
                const SALOMEDS::StudyBuilder_var& theStudyBuilder)
@@ -253,7 +239,7 @@ namespace
              theDomainEntry,
              theStudy,
              theStudyBuilder,
-             Tag_RefOnAppliedHypothesis,
+             SMESH::Tag_RefOnAppliedHypothesis,
              QObject::tr("SMESH_MEN_APPLIED_HYPOTHESIS"),
              "ICON_SMESH_TREE_HYPO");
   }
@@ -261,7 +247,7 @@ namespace
 
   //---------------------------------------------------------------
   void
-  SetAlgorithms(const char* theMeshOrSubMeshEntry, 
+  SetAlgorithms(const char* theMeshOrSubMeshEntry,
                const char* theDomainEntry,
                const SALOMEDS::Study_var& theStudy,
                const SALOMEDS::StudyBuilder_var& theStudyBuilder)
@@ -270,7 +256,7 @@ namespace
              theDomainEntry,
              theStudy,
              theStudyBuilder,
-             Tag_RefOnAppliedAlgorithms,
+             SMESH::Tag_RefOnAppliedAlgorithms,
              QObject::tr("SMESH_MEN_APPLIED_ALGORIHTMS"),
              "ICON_SMESH_TREE_ALGO");
   }
@@ -347,7 +333,7 @@ SMESH_Swig::Init(int theStudyID)
       myStudy = aStudyMgr->GetStudyByID(myStudyID);
 
       SMESH::SMESH_Gen_var aSMESHGen = SMESHGUI::GetSMESHGen();
-      aSMESHGen->SetCurrentStudy( myStudy.in() ); 
+      aSMESHGen->SetCurrentStudy( myStudy.in() );
 
       myStudyBuilder = myStudy->NewBuilder();
 
@@ -358,7 +344,7 @@ SMESH_Swig::Init(int theStudyID)
       SALOMEDS::SComponent_var aSComponent = myStudy->FindComponent("SMESH");
       if(aSComponent->_is_nil()){
        bool aLocked = myStudy->GetProperties()->IsLocked();
-       if (aLocked) 
+       if (aLocked)
          myStudy->GetProperties()->SetLocked(false);
        
        aSComponent = myStudyBuilder->NewComponent("SMESH");
@@ -366,18 +352,18 @@ SMESH_Swig::Init(int theStudyID)
        aName = SALOMEDS::AttributeName::_narrow(anAttr);
 
        SMESHGUI* aSMESHGUI = SMESHGUI::GetSMESHGUI(); //SRN: BugID IPAL9186, load a SMESH gui if it hasn't been loaded
-       if(!aSMESHGUI){
+       if (!aSMESHGUI){
          CAM_Module* aModule = anApp->module("Mesh");
-         if(!aModule) 
+         if(!aModule)
              aModule = anApp->loadModule("Mesh");
-         aSMESHGUI = dynamic_cast<SMESHGUI*>(aModule); 
+         aSMESHGUI = dynamic_cast<SMESHGUI*>(aModule);
        } //SRN: BugID IPAL9186: end of a fix
        aName->SetValue(aSMESHGUI->moduleName());
        anAttr = myStudyBuilder->FindOrCreateAttribute(aSComponent,"AttributePixMap");
        aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
        aPixmap->SetPixMap( "ICON_OBJBROWSER_SMESH" );
        myStudyBuilder->DefineComponentInstance(aSComponent,aSMESHGen);
-       if(aLocked) 
+       if (aLocked)
          myStudy->GetProperties()->SetLocked(true);
       }
 
@@ -404,18 +390,17 @@ SMESH_Swig::~SMESH_Swig()
 
 
 //===============================================================
-const char* 
-SMESH_Swig::AddNewMesh(const char* theIOR)
+const char* SMESH_Swig::AddNewMesh(const char* theIOR)
 {
   MESSAGE("AddNewMesh");
 
   // VSR: added temporarily - to be removed - objects are published automatically by engine
   SALOMEDS::SObject_var aSObject = myStudy->FindObjectIOR(theIOR);
-  if(aSObject->_is_nil()){
+  if (aSObject->_is_nil()){
     //Find or Create Hypothesis root
     GetHypothesisRoot(mySComponentMesh,myStudyBuilder);
     GetAlgorithmsRoot(mySComponentMesh,myStudyBuilder);
-    
+
     // Add New Mesh
     aSObject = myStudyBuilder->NewObject(mySComponentMesh);
     SALOMEDS::GenericAttribute_var anAttr = myStudyBuilder->FindOrCreateAttribute(aSObject,"AttributePixMap");
@@ -433,12 +418,10 @@ SMESH_Swig::AddNewMesh(const char* theIOR)
 
 
 //===============================================================
-const char* 
-SMESH_Swig::AddNewHypothesis(const char* theIOR)
+const char* SMESH_Swig::AddNewHypothesis(const char* theIOR)
 {
-
   MESSAGE("AddNewHypothesis");
-  
+
   SALOMEDS::SObject_var aSObject = ::AddHypothesis(theIOR,
                                                   mySComponentMesh,
                                                   myStudyBuilder);
@@ -448,11 +431,10 @@ SMESH_Swig::AddNewHypothesis(const char* theIOR)
 
 
 //===============================================================
-const char* 
-SMESH_Swig::AddNewAlgorithms(const char* theIOR)
+const char* SMESH_Swig::AddNewAlgorithms(const char* theIOR)
 {
   MESSAGE("AddNewAlgorithms");
-  
+
   SALOMEDS::SObject_var aSObject = ::AddAlgorithms(theIOR,
                                                   mySComponentMesh,
                                                   myStudyBuilder);
@@ -462,24 +444,22 @@ SMESH_Swig::AddNewAlgorithms(const char* theIOR)
 
 
 //===============================================================
-void 
-SMESH_Swig::SetShape(const char* theShapeEntry, 
-                    const char* theMeshEntry)
+void SMESH_Swig::SetShape(const char* theShapeEntry,
+                          const char* theMeshEntry)
 {
   SALOMEDS::SObject_var aMeshSO = myStudy->FindObjectID( theMeshEntry );
   SALOMEDS::SObject_var aGeomShapeSO = myStudy->FindObjectID( theShapeEntry );
-  
+
   if(!aMeshSO->_is_nil() && !aGeomShapeSO->_is_nil()){
-    SALOMEDS::SObject_var aSObject = myStudyBuilder->NewObjectToTag(aMeshSO,Tag_RefOnShape);
+    SALOMEDS::SObject_var aSObject = myStudyBuilder->NewObjectToTag(aMeshSO, SMESH::Tag_RefOnShape);
     myStudyBuilder->Addreference(aSObject,aGeomShapeSO);
   }
 }
 
 
 //===============================================================
-void 
-SMESH_Swig::SetHypothesis(const char* theMeshOrSubMeshEntry, 
-                         const char* theDomainEntry)
+void SMESH_Swig::SetHypothesis(const char* theMeshOrSubMeshEntry,
+                               const char* theDomainEntry)
 {
   ::SetHypothesis(theMeshOrSubMeshEntry,
                  theDomainEntry,
@@ -489,9 +469,8 @@ SMESH_Swig::SetHypothesis(const char* theMeshOrSubMeshEntry,
 
 
 //===============================================================
-void 
-SMESH_Swig::SetAlgorithms(const char* theMeshOrSubMeshEntry, 
-                         const char* theDomainEntry)
+void SMESH_Swig::SetAlgorithms(const char* theMeshOrSubMeshEntry,
+                               const char* theDomainEntry)
 {
   ::SetAlgorithms(theMeshOrSubMeshEntry,
                  theDomainEntry,
@@ -509,10 +488,9 @@ SMESH_Swig::UnSetHypothesis(const char* theDomainEntry)
     myStudyBuilder->RemoveObject(aDomainSO);
 }
 
-const char* 
-SMESH_Swig::AddSubMesh(const char* theMeshEntry, 
-                      const char* theSubMeshIOR, 
-                      int theShapeType)
+const char* SMESH_Swig::AddSubMesh(const char* theMeshEntry,
+                                   const char* theSubMeshIOR,
+                                   int theShapeType)
 {
   SALOMEDS::SObject_var aMeshSO = myStudy->FindObjectID(theMeshEntry);
   if(!aMeshSO->_is_nil()){
@@ -520,26 +498,26 @@ SMESH_Swig::AddSubMesh(const char* theMeshEntry,
     QString aSubMeshName;
     switch(theShapeType){
     case TopAbs_SOLID:
-      aShapeTag = Tag_SubMeshOnSolid;
+      aShapeTag = SMESH::Tag_SubMeshOnSolid;
       aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnSolid");
       break;
     case TopAbs_FACE:
-      aShapeTag = Tag_SubMeshOnFace;
+      aShapeTag = SMESH::Tag_SubMeshOnFace;
       aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnFace");
       break;
     case TopAbs_EDGE:
-      aShapeTag = Tag_SubMeshOnEdge;
+      aShapeTag = SMESH::Tag_SubMeshOnEdge;
       aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnEdge");
       break;
     case TopAbs_VERTEX:
-      aShapeTag = Tag_SubMeshOnVertex;
+      aShapeTag = SMESH::Tag_SubMeshOnVertex;
       aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnVertex");
       break;
     default:
-      aShapeTag = Tag_SubMeshOnCompound;
-      aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnCompound");      
+      aShapeTag = SMESH::Tag_SubMeshOnCompound;
+      aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnCompound");
     }
-      
+
     SALOMEDS::SObject_var aSubMeshesRoot;
     SALOMEDS::GenericAttribute_var anAttr;
     if(!aMeshSO->FindSubObject(aShapeTag,aSubMeshesRoot)){
@@ -564,11 +542,10 @@ SMESH_Swig::AddSubMesh(const char* theMeshEntry,
   return "";
 }
 
-const char* 
-SMESH_Swig::AddSubMeshOnShape(const char* theMeshEntry, 
-                             const char* theGeomShapeEntry, 
-                             const char* theSubMeshIOR, 
-                             int ShapeType)
+const char* SMESH_Swig::AddSubMeshOnShape(const char* theMeshEntry,
+                                          const char* theGeomShapeEntry,
+                                          const char* theSubMeshIOR,
+                                          int ShapeType)
 {
   SALOMEDS::SObject_var aGeomShapeSO = myStudy->FindObjectID(theGeomShapeEntry);
   if(!aGeomShapeSO->_is_nil()){
@@ -605,14 +582,12 @@ void SMESH_Swig::CreateAndDisplayActor( const char* Mesh_Entry )
       aDisp->Display(_entry,1);
     }
   };
-  
+
   ProcessVoidEvent(new TEvent(Mesh_Entry));
-  
 }
 
-void
-SMESH_Swig::SetName(const char* theEntry, 
-                   const char* theName)
+void SMESH_Swig::SetName(const char* theEntry,
+                         const char* theName)
 {
   SALOMEDS::SObject_var aSObject = myStudy->FindObjectID(theEntry);
   SALOMEDS::GenericAttribute_var anAttr;
@@ -632,7 +607,7 @@ SMESH_Swig::SetName(const char* theEntry,
  */
 //================================================================================
 
-void SMESH_Swig::SetMeshIcon(const char* theMeshEntry, 
+void SMESH_Swig::SetMeshIcon(const char* theMeshEntry,
                             const bool theIsComputed,
                              const bool isEmpty)
 {
index 357eb8f41384485bb14ad9f7637b3e5428122f4f..0bf92e0d8e859e8c377ddeec98a8911fe4ef0257 100644 (file)
@@ -52,6 +52,7 @@
 #include "SVTK_Selector.h"
 #include "SVTK_Selection.h"
 #include "SALOME_ListIO.hxx"
+#include "SALOMEDSClient_SObject.hxx"
 
 #include "utilities.h"
 
 
 using namespace std;
 
+enum { MOVE_ELEMS_BUTTON = 0, COPY_ELEMS_BUTTON, MAKE_MESH_BUTTON }; //!< action type
+
 //=================================================================================
 // class    : SMESHGUI_SymmetryDlg()
 // purpose  :
 //=================================================================================
+
 SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule, const char* name,
                                             bool modal, WFlags fl)
      : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
@@ -182,8 +186,9 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule, const char* nam
   // Controls for elements selection
   TextLabelElements  = new QLabel(GroupArguments, "TextLabelElements");
   TextLabelElements->setText(tr("SMESH_ID_ELEMENTS" ));
-  TextLabelElements->setFixedWidth(74);
+  //TextLabelElements->setFixedWidth(74);
   GroupArgumentsLayout->addWidget(TextLabelElements, 0, 0);
+  //GroupArgumentsLayout->addMultiCellWidget(TextLabelElements, 0, 0, 0, 1);
 
   SelectElementsButton  = new QPushButton(GroupArguments, "SelectElementsButton");
   SelectElementsButton->setText(tr("" ));
@@ -191,14 +196,15 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule, const char* nam
   SelectElementsButton->setToggleButton(FALSE);
   GroupArgumentsLayout->addWidget(SelectElementsButton, 0, 1);
 
-  LineEditElements  = new QLineEdit(GroupArguments, "LineEditElements");
+  LineEditElements = new QLineEdit(GroupArguments, "LineEditElements");
   LineEditElements->setValidator(new SMESHGUI_IdValidator(this, "validator"));
-  GroupArgumentsLayout->addWidget(LineEditElements, 0, 2);
+  //GroupArgumentsLayout->addWidget(LineEditElements, 0, 3);
+  GroupArgumentsLayout->addMultiCellWidget(LineEditElements, 0, 0, 2, 4);
 
   // Control for the whole mesh selection
   CheckBoxMesh = new QCheckBox(GroupArguments, "CheckBoxMesh");
   CheckBoxMesh->setText(tr("SMESH_SELECT_WHOLE_MESH" ));
-  GroupArgumentsLayout->addMultiCellWidget(CheckBoxMesh, 1, 1, 0, 2);
+  GroupArgumentsLayout->addMultiCellWidget(CheckBoxMesh, 1, 1, 0, 4);
 
   // Controls for mirror selection
   GroupMirror = new QGroupBox(GroupArguments, "GroupMirror");
@@ -251,6 +257,7 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule, const char* nam
 
   TextLabelDX = new QLabel(GroupMirror, "TextLabelDX");
   TextLabelDX->setText(tr("SMESH_DX"));
+  TextLabelDX->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
   GroupMirrorLayout->addWidget(TextLabelDX, 1, 2);
 
   SpinBox_DX = new SMESHGUI_SpinBox(GroupMirror, "SpinBox_DX");
@@ -258,6 +265,7 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule, const char* nam
 
   TextLabelDY = new QLabel(GroupMirror, "TextLabelDY");
   TextLabelDY->setText(tr("SMESH_DY"));
+  TextLabelDY->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
   GroupMirrorLayout->addWidget(TextLabelDY, 1, 4);
 
   SpinBox_DY = new SMESHGUI_SpinBox(GroupMirror, "SpinBox_DY");
@@ -265,18 +273,30 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule, const char* nam
 
   TextLabelDZ = new QLabel(GroupMirror, "TextLabelDZ");
   TextLabelDZ->setText(tr("SMESH_DZ"));
+  TextLabelDZ->setAlignment( Qt::AlignRight | Qt::AlignVCenter | Qt::ExpandTabs );
   GroupMirrorLayout->addWidget(TextLabelDZ, 1, 6);
 
   SpinBox_DZ = new SMESHGUI_SpinBox(GroupMirror, "SpinBox_DZ");
   GroupMirrorLayout->addWidget(SpinBox_DZ, 1, 7);
 
-  GroupArgumentsLayout->addMultiCellWidget(GroupMirror, 2, 2, 0, 2);
+  GroupArgumentsLayout->addMultiCellWidget(GroupMirror, 2, 2, 0, 4);
 
-  // Controls for "Create a copy" option
-  CheckBoxCopy = new QCheckBox(GroupArguments, "CheckBoxCopy");
-  CheckBoxCopy->setText(tr("SMESH_CREATE_COPY"));
-  GroupArgumentsLayout->addMultiCellWidget(CheckBoxCopy, 3, 3, 0, 2);
+  // switch of action type
+  ActionGroup = new QButtonGroup(1, Qt::Horizontal, GroupArguments, "ActionGroup");
+  ActionGroup->setExclusive(true);
+  ActionGroup->insert(new QRadioButton(tr("SMESH_MOVE_ELEMENTS"),ActionGroup), MOVE_ELEMS_BUTTON);
+  ActionGroup->insert(new QRadioButton(tr("SMESH_COPY_ELEMENTS"),ActionGroup), COPY_ELEMS_BUTTON);
+  ActionGroup->insert(new QRadioButton(tr("SMESH_CREATE_MESH"  ),ActionGroup), MAKE_MESH_BUTTON);
+  GroupArgumentsLayout->addMultiCellWidget(ActionGroup, 3, 5, 0, 3);
 
+  // CheckBox for groups generation
+  MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
+  MakeGroupsCheck->setChecked(false);
+  GroupArgumentsLayout->addWidget(MakeGroupsCheck, 4, 4);
+
+  // Name of a mesh to create
+  LineEditNewMesh = new QLineEdit(GroupArguments, "LineEditNewMesh");
+  GroupArgumentsLayout->addWidget(LineEditNewMesh, 5, 4);
 
   SMESHGUI_SymmetryDlgLayout->addWidget(GroupArguments, 1, 0);
 
@@ -306,7 +326,7 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule, const char* nam
   myMeshOrSubMeshOrGroupFilter =
     new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
 
-  myHelpFileName = "/files/symmetry.htm";
+  myHelpFileName = "symmetry_page.html";
 
   Init();
 
@@ -331,11 +351,13 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule, const char* nam
   connect(mySMESHGUI,       SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
   connect(LineEditElements, SIGNAL(textChanged(const QString&)),   SLOT(onTextChange(const QString&)));
   connect(CheckBoxMesh,     SIGNAL(toggled(bool)),                 SLOT(onSelectMesh(bool)));
+  connect(ActionGroup,      SIGNAL(clicked(int)),                   SLOT(onActionClicked(int)));
 
   this->show(); /* displays Dialog */
 
   ConstructorsClicked(0);
   SelectionIntoArgument();
+  onActionClicked(MOVE_ELEMS_BUTTON);
   resize(0,0); // ??
 }
 
@@ -375,8 +397,10 @@ void SMESHGUI_SymmetryDlg::Init (bool ResetControls)
     SpinBox_DY->SetValue(0.0);
     SpinBox_DZ->SetValue(0.0);
 
-    CheckBoxCopy->setChecked(false);
+    ((QRadioButton*) ActionGroup->find( MOVE_ELEMS_BUTTON ))->setChecked(TRUE);
     CheckBoxMesh->setChecked(false);
+//     MakeGroupsCheck->setChecked(false);
+//     MakeGroupsCheck->setEnabled(false);
     onSelectMesh(false);
   }
 }
@@ -478,7 +502,6 @@ void SMESHGUI_SymmetryDlg::ClickOnApply()
       aMirror.vz = SpinBox_DZ->GetValue();
     }
 
-    bool toCreateCopy = CheckBoxCopy->isChecked();
 
     SMESH::SMESH_MeshEditor::MirrorType aMirrorType;
 
@@ -489,15 +512,36 @@ void SMESHGUI_SymmetryDlg::ClickOnApply()
     if (GetConstructorId() == 2)
       aMirrorType = SMESH::SMESH_MeshEditor::PLANE;
 
+    int actionButton = ActionGroup->id( ActionGroup->selected() );
+    bool makeGroups = ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() );
+
     try {
       SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
       QApplication::setOverrideCursor(Qt::waitCursor);
-      aMeshEditor->Mirror(anElementsId, aMirror, aMirrorType, toCreateCopy);
+      switch ( actionButton ) {
+      case MOVE_ELEMS_BUTTON:
+        aMeshEditor->Mirror(anElementsId, aMirror, aMirrorType, false );
+        break;
+      case COPY_ELEMS_BUTTON:
+        if ( makeGroups )
+          SMESH::ListOfGroups_var groups = 
+            aMeshEditor->MirrorMakeGroups(anElementsId, aMirror, aMirrorType);
+        else
+          aMeshEditor->Mirror(anElementsId, aMirror, aMirrorType, true);
+        break;
+      case MAKE_MESH_BUTTON:
+        SMESH::SMESH_Mesh_var mesh = 
+          aMeshEditor->MirrorMakeMesh(anElementsId, aMirror, aMirrorType, makeGroups,
+                                      LineEditNewMesh->text().latin1());
+      }
       QApplication::restoreOverrideCursor();
     } catch (...) {
     }
 
     SMESH::UpdateView();
+    if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() ||
+         actionButton == MAKE_MESH_BUTTON )
+      mySMESHGUI->updateObjBrowser(true); // new groups may appear
     Init(false);
     ConstructorsClicked(GetConstructorId());
     SelectionIntoArgument();
@@ -654,6 +698,14 @@ void SMESHGUI_SymmetryDlg::SelectionIntoArgument()
   if (myEditCurrentArgument == (QWidget*)LineEditElements) {
     myElementsId = "";
 
+    // MakeGroups is available if there are groups and "Copy"
+    if ( myMesh->NbGroups() == 0 ) {
+      MakeGroupsCheck->setChecked(false);
+      MakeGroupsCheck->setEnabled(false);
+    }
+    else if ( ActionGroup->id( ActionGroup->selected() ) != MOVE_ELEMS_BUTTON ) {
+      MakeGroupsCheck->setEnabled(true);
+    }
     if (CheckBoxMesh->isChecked()) {
       SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
 
@@ -734,8 +786,10 @@ void SMESHGUI_SymmetryDlg::SelectionIntoArgument()
   }
 
   myBusy = true;
-  if (myEditCurrentArgument == (QWidget*)LineEditElements)
+  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
     LineEditElements->setText(aString);
+    setNewMeshName();
+  }
   myBusy = false;
 
   // OK
@@ -927,6 +981,60 @@ void SMESHGUI_SymmetryDlg::onVectorChanged()
   }
 }
 
+//=======================================================================
+//function : onActionClicked
+//purpose  : slot called when an action type changed
+//=======================================================================
+
+void SMESHGUI_SymmetryDlg::onActionClicked(int button)
+{
+  switch ( button ) {
+  case MOVE_ELEMS_BUTTON:
+    MakeGroupsCheck->setEnabled(false);
+    LineEditNewMesh->setEnabled(false);
+    break;
+  case COPY_ELEMS_BUTTON:
+    LineEditNewMesh->setEnabled(false);
+    MakeGroupsCheck->setText( tr("SMESH_MAKE_GROUPS"));
+    if ( myMesh->_is_nil() || myMesh->NbGroups() > 0)
+      MakeGroupsCheck->setEnabled(true);
+    else
+      MakeGroupsCheck->setEnabled(false);
+    break;
+  case MAKE_MESH_BUTTON:
+    LineEditNewMesh->setEnabled(true);
+    MakeGroupsCheck->setText( tr("SMESH_COPY_GROUPS"));
+    if ( myMesh->_is_nil() || myMesh->NbGroups() > 0)
+      MakeGroupsCheck->setEnabled(true);
+    else
+      MakeGroupsCheck->setEnabled(false);
+    break;
+  }
+  setNewMeshName();
+}
+
+//=======================================================================
+//function : setNewMeshName
+//purpose  : update contents of LineEditNewMesh
+//=======================================================================
+
+void SMESHGUI_SymmetryDlg::setNewMeshName()
+{
+  LineEditNewMesh->setText("");
+  if ( LineEditNewMesh->isEnabled() && !myMesh->_is_nil() ) {
+    QString name;
+    if ( CheckBoxMesh->isChecked() ) {
+      name = LineEditElements->text();
+    }
+    else {
+      _PTR(SObject) meshSO = SMESH::FindSObject( myMesh );
+      name = meshSO->GetName();
+    }
+    if ( !name.isEmpty() )
+      LineEditNewMesh->setText( SMESH::UniqueMeshName( name.latin1(), "mirrored"));
+  }
+}
+
 //=================================================================================
 // function : keyPressEvent()
 // purpose  :
index a4c00e3b644aee4fecac1d7319bec6364d6bf086..3f33ab4c10106c1c48ee96018a819395902ca0fd 100644 (file)
@@ -81,6 +81,7 @@ private:
     void keyPressEvent(QKeyEvent*);
     int GetConstructorId();
     bool IsMirrorOk();
+    void setNewMeshName();
 
     SMESHGUI*                     mySMESHGUI;              /* Current SMESHGUI object */
     LightApp_SelectionMgr*        mySelectionMgr;          /* User shape selection */
@@ -128,7 +129,10 @@ private:
     QLabel* TextLabelDZ;
     SMESHGUI_SpinBox* SpinBox_DZ;
     
-    QCheckBox* CheckBoxCopy;
+    //QCheckBox* CheckBoxCopy;
+    QButtonGroup* ActionGroup;
+    QCheckBox* MakeGroupsCheck;
+    QLineEdit* LineEditNewMesh;
 
     QString myHelpFileName;
    
@@ -146,7 +150,8 @@ private:
     void onTextChange(const QString&);
     void onSelectMesh(bool toSelectMesh);
     void onVectorChanged();
-    
+    void onActionClicked(int button);
+
 protected:
     QGridLayout* SMESHGUI_SymmetryDlgLayout;
     QGridLayout* GroupConstructorsLayout;
index bf4fd6d9861277f742fa1606829a27d6dfa2e10e..56cae0c67daab7ecc450a73c12d7f526aeef25e2 100644 (file)
@@ -52,6 +52,7 @@
 #include "SVTK_ViewWindow.h"
 #include "SVTK_Selector.h"
 #include "SALOME_ListIO.hxx"
+#include "SALOMEDSClient_SObject.hxx"
 
 #include "utilities.h"
 
@@ -79,6 +80,8 @@
 
 using namespace std;
 
+enum { MOVE_ELEMS_BUTTON = 0, COPY_ELEMS_BUTTON, MAKE_MESH_BUTTON }; //!< action type
+
 //=================================================================================
 // class    : SMESHGUI_TranslationDlg()
 // purpose  :
@@ -181,7 +184,7 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha
   SelectElementsButton->setToggleButton(FALSE);
   GroupArgumentsLayout->addWidget(SelectElementsButton, 0, 1);
 
-  LineEditElements  = new QLineEdit(GroupArguments, "LineEditElements");
+  LineEditElements = new QLineEdit(GroupArguments, "LineEditElements");
   LineEditElements->setValidator(new SMESHGUI_IdValidator(this, "validator"));
   GroupArgumentsLayout->addMultiCellWidget(LineEditElements, 0, 0, 2, 7);
 
@@ -256,20 +259,36 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha
   GroupArgumentsLayout->addWidget(SpinBox2_3, 3, 7);
 
   // Controls for "Create a copy" option
-  CheckBoxCopy = new QCheckBox(GroupArguments, "CheckBoxCopy");
-  CheckBoxCopy->setText(tr("SMESH_CREATE_COPY"));
-  GroupArgumentsLayout->addMultiCellWidget(CheckBoxCopy, 4, 4, 0, 2);
-
+//   CheckBoxCopy = new QCheckBox(GroupArguments, "CheckBoxCopy");
+//   CheckBoxCopy->setText(tr("SMESH_CREATE_COPY"));
+//   GroupArgumentsLayout->addMultiCellWidget(CheckBoxCopy, 4, 4, 0, 2);
+
+  // switch of action type
+  ActionGroup = new QButtonGroup(1, Qt::Horizontal, GroupArguments, "ActionGroup");
+  ActionGroup->setExclusive(true);
+  ActionGroup->insert(new QRadioButton(tr("SMESH_MOVE_ELEMENTS"),ActionGroup), MOVE_ELEMS_BUTTON);
+  ActionGroup->insert(new QRadioButton(tr("SMESH_COPY_ELEMENTS"),ActionGroup), COPY_ELEMS_BUTTON);
+  ActionGroup->insert(new QRadioButton(tr("SMESH_CREATE_MESH"  ),ActionGroup), MAKE_MESH_BUTTON);
+  GroupArgumentsLayout->addMultiCellWidget(ActionGroup, 4, 6, 0, 3);
+
+  // CheckBox for groups generation
+  MakeGroupsCheck = new QCheckBox(tr("SMESH_MAKE_GROUPS"), GroupArguments);
+  MakeGroupsCheck->setChecked(false);
+  GroupArgumentsLayout->addMultiCellWidget(MakeGroupsCheck, 5, 5, 4, 7);
+
+  // Name of a mesh to create
+  LineEditNewMesh = new QLineEdit(GroupArguments, "LineEditNewMesh");
+  GroupArgumentsLayout->addMultiCellWidget(LineEditNewMesh, 6, 6, 4, 7);
 
   SMESHGUI_TranslationDlgLayout->addWidget(GroupArguments, 1, 0);
 
   /* Initialisations */
-  SpinBox1_1->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, 3);
-  SpinBox1_2->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, 3);
-  SpinBox1_3->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, 3);
-  SpinBox2_1->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, 3);
-  SpinBox2_2->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, 3);
-  SpinBox2_3->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, 3);
+  SpinBox1_1->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY);
+  SpinBox1_2->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY);
+  SpinBox1_3->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY);
+  SpinBox2_1->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY);
+  SpinBox2_2->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY);
+  SpinBox2_3->RangeStepAndValidator(COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY);
 
   GroupArguments->show();
   RadioButton1->setChecked(TRUE);
@@ -289,7 +308,7 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha
   myMeshOrSubMeshOrGroupFilter =
     new SMESH_LogicalFilter(aListOfFilters, SMESH_LogicalFilter::LO_OR);
 
-  myHelpFileName = "/files/translation.htm";
+  myHelpFileName = "translation_page.html";
 
   Init();
 
@@ -310,11 +329,13 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha
   connect(mySMESHGUI,       SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
   connect(LineEditElements, SIGNAL(textChanged(const QString&)),    SLOT(onTextChange(const QString&)));
   connect(CheckBoxMesh,     SIGNAL(toggled(bool)),                  SLOT(onSelectMesh(bool)));
+  connect(ActionGroup,      SIGNAL(clicked(int)),                   SLOT(onActionClicked(int)));
 
   this->show(); /* displays Dialog */
 
   ConstructorsClicked(0);
   SelectionIntoArgument();
+  onActionClicked(MOVE_ELEMS_BUTTON);
   resize(0,0); // ??
 }
 
@@ -354,8 +375,10 @@ void SMESHGUI_TranslationDlg::Init (bool ResetControls)
     SpinBox2_2->SetValue(0.0);
     SpinBox2_3->SetValue(0.0);
 
-    CheckBoxCopy->setChecked(false);
+    ((QRadioButton*) ActionGroup->find( MOVE_ELEMS_BUTTON ))->setChecked(TRUE);
     CheckBoxMesh->setChecked(false);
+//     MakeGroupsCheck->setChecked(false);
+//     MakeGroupsCheck->setEnabled(false);
     onSelectMesh(false);
   }
 }
@@ -452,17 +475,35 @@ void SMESHGUI_TranslationDlg::ClickOnApply()
       aVector.PS.z = SpinBox1_3->GetValue();
     }
 
-    bool toCreateCopy = CheckBoxCopy->isChecked();
-
+    int actionButton = ActionGroup->id( ActionGroup->selected() );
+    bool makeGroups = ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() );
     try {
       SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor();
       QApplication::setOverrideCursor(Qt::waitCursor);
-      aMeshEditor->Translate(anElementsId.inout(), aVector, toCreateCopy);
+      switch ( actionButton ) {
+      case MOVE_ELEMS_BUTTON:
+        aMeshEditor->Translate(anElementsId, aVector, false);
+        break;
+      case COPY_ELEMS_BUTTON:
+        if ( makeGroups )
+          SMESH::ListOfGroups_var groups = 
+            aMeshEditor->TranslateMakeGroups(anElementsId, aVector);
+        else
+          aMeshEditor->Translate(anElementsId, aVector, true);
+        break;
+      case MAKE_MESH_BUTTON:
+        SMESH::SMESH_Mesh_var mesh = 
+          aMeshEditor->TranslateMakeMesh(anElementsId, aVector, makeGroups,
+                                         LineEditNewMesh->text().latin1());
+      }
       QApplication::restoreOverrideCursor();
     } catch (...) {
     }
 
     SMESH::UpdateView();
+    if ( MakeGroupsCheck->isEnabled() && MakeGroupsCheck->isChecked() ||
+         actionButton == MAKE_MESH_BUTTON )
+      mySMESHGUI->updateObjBrowser(true); // new groups may appear
     Init(false);
     ConstructorsClicked(GetConstructorId());
     SelectionIntoArgument();
@@ -619,6 +660,15 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
   if (myEditCurrentArgument == (QWidget*)LineEditElements) {
     myElementsId = "";
 
+    // MakeGroups is available if there are groups and "Copy"
+    if ( myMesh->NbGroups() == 0 ) {
+      MakeGroupsCheck->setChecked(false);
+      MakeGroupsCheck->setEnabled(false);
+    }
+    else if ( ActionGroup->id( ActionGroup->selected() ) != MOVE_ELEMS_BUTTON ) {
+      MakeGroupsCheck->setEnabled(true);
+    }
+
     if (CheckBoxMesh->isChecked()) {
       SMESH::GetNameOfSelectedIObjects( mySelectionMgr, aString );
 
@@ -699,8 +749,10 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
   }
 
   myBusy = true;
-  if (myEditCurrentArgument == (QWidget*)LineEditElements)
+  if (myEditCurrentArgument == (QWidget*)LineEditElements) {
     LineEditElements->setText(aString);
+    setNewMeshName();
+  }
   myBusy = false;
 
   // OK
@@ -852,6 +904,60 @@ void SMESHGUI_TranslationDlg::onSelectMesh (bool toSelectMesh)
   SelectionIntoArgument();
 }
 
+//=======================================================================
+//function : onActionClicked
+//purpose  : slot called when an action type changed
+//=======================================================================
+
+void SMESHGUI_TranslationDlg::onActionClicked(int button)
+{
+  switch ( button ) {
+  case MOVE_ELEMS_BUTTON:
+    MakeGroupsCheck->setEnabled(false);
+    LineEditNewMesh->setEnabled(false);
+    break;
+  case COPY_ELEMS_BUTTON:
+    LineEditNewMesh->setEnabled(false);
+    MakeGroupsCheck->setText( tr("SMESH_MAKE_GROUPS"));
+    if ( myMesh->_is_nil() || myMesh->NbGroups() > 0)
+      MakeGroupsCheck->setEnabled(true);
+    else
+      MakeGroupsCheck->setEnabled(false);
+    break;
+  case MAKE_MESH_BUTTON:
+    LineEditNewMesh->setEnabled(true);
+    MakeGroupsCheck->setText( tr("SMESH_COPY_GROUPS"));
+    if ( myMesh->_is_nil() || myMesh->NbGroups() > 0)
+      MakeGroupsCheck->setEnabled(true);
+    else
+      MakeGroupsCheck->setEnabled(false);
+    break;
+  }
+  setNewMeshName();
+}
+
+//=======================================================================
+//function : setNewMeshName
+//purpose  : update contents of LineEditNewMesh
+//=======================================================================
+
+void SMESHGUI_TranslationDlg::setNewMeshName()
+{
+  LineEditNewMesh->setText("");
+  if ( LineEditNewMesh->isEnabled() && !myMesh->_is_nil() ) {
+    QString name;
+    if ( CheckBoxMesh->isChecked() ) {
+      name = LineEditElements->text();
+    }
+    else {
+      _PTR(SObject) meshSO = SMESH::FindSObject( myMesh );
+      name = meshSO->GetName();
+    }
+    if ( !name.isEmpty() )
+      LineEditNewMesh->setText( SMESH::UniqueMeshName( name.latin1(), "translated"));
+  }
+}
+
 //=================================================================================
 // function : GetConstructorId()
 // purpose  :
index a70f780aeec18443a5f96b8bf2e2a17ea7ed7c77..31ebe1b5c67f6283d040a4f75aceee886fa95ad2 100644 (file)
@@ -79,6 +79,7 @@ private:
     void hideEvent (QHideEvent*);                          /* ESC key */
     void keyPressEvent(QKeyEvent*);
     int GetConstructorId();
+    void setNewMeshName();
 
     SMESHGUI*                     mySMESHGUI;              /* Current SMESHGUI object */
     LightApp_SelectionMgr*        mySelectionMgr;          /* User shape selection */
@@ -123,7 +124,10 @@ private:
     SMESHGUI_SpinBox* SpinBox2_2;
     QLabel* TextLabel2_3;
     SMESHGUI_SpinBox* SpinBox2_3;
-    QCheckBox* CheckBoxCopy;
+    //QCheckBox* CheckBoxCopy;
+    QButtonGroup* ActionGroup;
+    QCheckBox* MakeGroupsCheck;
+    QLineEdit* LineEditNewMesh;
 
     QString myHelpFileName;
    
@@ -140,6 +144,7 @@ private:
     void ActivateThisDialog() ;
     void onTextChange(const QString&);
     void onSelectMesh(bool toSelectMesh);
+    void onActionClicked(int button);
     
 protected:
     QGridLayout* SMESHGUI_TranslationDlgLayout;
index d5c684d390c305b92cacd89fff6f5fd32e02cf45..ec40570efef2e658e0b9ea0755aca480cdfbc145 100644 (file)
@@ -156,7 +156,7 @@ SMESHGUI_TransparencyDlg::SMESHGUI_TransparencyDlg( SMESHGUI* theModule,
   connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnOk()));
   connect(mySelectionMgr,  SIGNAL(currentSelectionChanged()), this, SLOT(onSelectionChanged()));
 
-  myHelpFileName = "transparency.htm";
+  myHelpFileName = "transparency_page.html";
 
   this->show();
 }
index f924d19b77327e32f797d380dbc4123e81236f63..d8144f320dd16aacb844c71be3fa2fd5afd21519 100644 (file)
 
 #include "SMESHGUI.h"
 #include "SMESH_Actor.h"
+#include "SMESH_ActorUtils.h"
 #include "SMESH_ObjectDef.h"
+#include <SMDS_Mesh.hxx>
 
 #include <SUIT_Desktop.h>
 #include <SUIT_Session.h>
 #include <SUIT_Study.h>
+#include <SUIT_MessageBox.h>
 
 #include <SALOME_ListIO.hxx>
 #include <SALOME_ListIteratorOfListIO.hxx>
 // VTK
 #include <vtkRenderer.h>
 #include <vtkActorCollection.h>
+#include <vtkUnstructuredGrid.h>
 
 // OCCT
 #include <TColStd_IndexedMapOfInteger.hxx>
+#include <Standard_ErrorHandler.hxx>
 
 // STL
 #include <set>
@@ -69,10 +74,188 @@ namespace SMESH {
   typedef map<TKeyOfVisualObj,TVisualObjPtr> TVisualObjCont;
   static TVisualObjCont VISUAL_OBJ_CONT;
 
+  //=============================================================================
+  /*!
+   * \brief Allocate some memory at construction and release it at destruction.
+   * Is used to be able to continue working after mesh generation or visualization
+   * break due to lack of memory
+   */
+  //=============================================================================
+
+  struct MemoryReserve
+  {
+    char* myBuf;
+    MemoryReserve(): myBuf( new char[1024*1024*1] ){} // 1M
+    void Free() { if (myBuf) { delete [] myBuf; myBuf = 0; }}
+    ~MemoryReserve() { Free(); }
+  };
+  static MemoryReserve* theVISU_MemoryReserve = new MemoryReserve;
+
+  //================================================================================
+  /*!
+   * \brief Remove VisualObj and its actor from all views
+   */
+  //================================================================================
+
+  void RemoveVisualObjectWithActors( const char* theEntry )
+  {
+    SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
+      ( SUIT_Session::session()->activeApplication() );
+    SUIT_ViewManager* aViewManager =
+      app ? app->getViewManager(SVTK_Viewer::Type(), true) : 0;
+    if ( aViewManager ) {
+      QPtrVector<SUIT_ViewWindow> views = aViewManager->getViews();
+      for ( int iV = 0; iV < views.count(); ++iV ) {
+        if ( SMESH_Actor* actor = FindActorByEntry( views[iV], theEntry)) {
+          if(SVTK_ViewWindow* vtkWnd = GetVtkViewWindow(views[iV]))
+            vtkWnd->RemoveActor(actor);
+          actor->Delete();
+        }
+      }
+      int aStudyId = aViewManager->study()->id();
+      TVisualObjCont::key_type aKey(aStudyId,theEntry);
+      TVisualObjCont::iterator anIter = VISUAL_OBJ_CONT.find(aKey);
+      if(anIter != VISUAL_OBJ_CONT.end()) {
+        // for unknown reason, object destructor is not called, so clear object manually
+        anIter->second->GetUnstructuredGrid()->SetCells(0,0,0);
+        anIter->second->GetUnstructuredGrid()->SetPoints(0);
+      }
+      VISUAL_OBJ_CONT.erase(aKey);
+    }
+  }
+  //================================================================================
+  /*!
+   * \brief Remove all VisualObjs and their actors from all views
+   */
+  //================================================================================
+
+  void RemoveAllObjectsWithActors()
+  {
+    SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
+      ( SUIT_Session::session()->activeApplication() );
+    if (!app) return;
+    ViewManagerList viewMgrs = app->viewManagers();
+    for ( int iM = 0; iM < viewMgrs.count(); ++iM ) {
+      SUIT_ViewManager* aViewManager = viewMgrs.at( iM );
+      if ( aViewManager && aViewManager->getType() == SVTK_Viewer::Type()) {
+        QPtrVector<SUIT_ViewWindow> views = aViewManager->getViews();
+        for ( int iV = 0; iV < views.count(); ++iV ) {
+          if(SVTK_ViewWindow* vtkWnd = GetVtkViewWindow(views[iV])) {
+            vtkRenderer *aRenderer = vtkWnd->getRenderer();
+            vtkActorCollection *actors = aRenderer->GetActors();
+            for (int i = 0; i < actors->GetNumberOfItems(); ++i ) {
+              // size of actors changes inside the loop
+              while (SMESH_Actor *actor = dynamic_cast<SMESH_Actor*>(actors->GetItemAsObject(i)))
+              {
+                vtkWnd->RemoveActor(actor);
+                actor->Delete();
+              }
+            }
+          }
+        }
+      }
+    }
+    TVisualObjCont::iterator anIter = VISUAL_OBJ_CONT.begin();
+    for ( ; anIter != VISUAL_OBJ_CONT.end(); ++anIter ) {
+      // for unknown reason, object destructor is not called, so clear object manually
+      anIter->second->GetUnstructuredGrid()->SetCells(0,0,0);
+      anIter->second->GetUnstructuredGrid()->SetPoints(0);
+    }
+    VISUAL_OBJ_CONT.clear();
+  }
+
+  //================================================================================
+  /*!
+   * \brief Remove all VisualObjs of a study
+   */
+  //================================================================================
+
+  void RemoveVisuData(int studyID)
+  {
+    SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
+      ( SUIT_Session::session()->activeApplication() );
+    if (!app) return;
+    ViewManagerList viewMgrs = app->viewManagers();
+    for ( int iM = 0; iM < viewMgrs.count(); ++iM ) {
+      SUIT_ViewManager* aViewManager = viewMgrs.at( iM );
+      if ( aViewManager && aViewManager->getType() == SVTK_Viewer::Type() &&
+           aViewManager->study()->id() == studyID ) {
+        QPtrVector<SUIT_ViewWindow> views = aViewManager->getViews();
+        for ( int iV = 0; iV < views.count(); ++iV ) {
+          if(SVTK_ViewWindow* vtkWnd = GetVtkViewWindow(views[iV])) {
+            vtkRenderer *aRenderer = vtkWnd->getRenderer();
+            vtkActorCollection *actors = aRenderer->GetActors();
+            for (int i = 0; i < actors->GetNumberOfItems(); ++i ) {
+              // size of actors changes inside the loop
+              while(SMESH_Actor *actor = dynamic_cast<SMESH_Actor*>(actors->GetItemAsObject(i)))
+              {
+                vtkWnd->RemoveActor(actor);
+                actor->Delete();
+              }
+            }
+          }
+        }
+      }
+    }
+    TVisualObjCont::iterator anIter = VISUAL_OBJ_CONT.begin();
+    for ( ; anIter != VISUAL_OBJ_CONT.end(); ++anIter ) {
+      int curId = anIter->first.first;
+      if ( curId == studyID ) {
+        // for unknown reason, object destructor is not called, so clear object manually
+        anIter->second->GetUnstructuredGrid()->SetCells(0,0,0);
+        anIter->second->GetUnstructuredGrid()->SetPoints(0);
+        VISUAL_OBJ_CONT.erase( anIter-- );  // dercement occures before erase()
+      }
+    }
+  }
+
+  //================================================================================
+  /*!
+   * \brief Notify the user on problems during visualization
+   */
+  //================================================================================
+
+  void OnVisuException()
+  {
+    try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+      OCC_CATCH_SIGNALS;
+#endif
+      // PAL16774 (Crash after display of many groups). Salome sometimes crashes just
+      // after or at showing this message, so we do an additional check of available memory
+//       char* buf = new char[100*1024];
+//       delete [] buf;
+      SUIT_MessageBox::warn1 (SMESHGUI::desktop(), QObject::tr("SMESH_WRN_WARNING"),
+                              QObject::tr("SMESH_VISU_PROBLEM"),
+                              QObject::tr("SMESH_BUT_OK"));
+    } catch (...) {
+      // no more memory at all: last resort
+      cout<< "SMESHGUI_VTKUtils::OnVisuException(), exception even at showing a message!!!" <<endl;
+      cout<< "Try to remove all visual data..." <<endl;
+      if (theVISU_MemoryReserve) {
+        delete theVISU_MemoryReserve;
+        theVISU_MemoryReserve = 0;
+      }
+      RemoveAllObjectsWithActors();
+      SUIT_MessageBox::warn1 (SMESHGUI::desktop(), QObject::tr("SMESH_WRN_WARNING"),
+                              QObject::tr("SMESH_VISU_PROBLEM_CLEAR"),
+                              QObject::tr("SMESH_BUT_OK"));
+      cout<< "...done" << endl;
+    }
+  }
+  //================================================================================
+  /*!
+   * \brief Returns an updated visual object
+   */
+  //================================================================================
+
   TVisualObjPtr GetVisualObj(int theStudyId, const char* theEntry){
     TVisualObjPtr aVisualObj;
+    TVisualObjCont::key_type aKey(theStudyId,theEntry);
     try{
-      TVisualObjCont::key_type aKey(theStudyId,theEntry);
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+      OCC_CATCH_SIGNALS;
+#endif
       TVisualObjCont::iterator anIter = VISUAL_OBJ_CONT.find(aKey);
       if(anIter != VISUAL_OBJ_CONT.end()){
        aVisualObj = anIter->second;
@@ -88,16 +271,14 @@ namespace SMESH {
            CORBA::String_var aVal = anIOR->Value().c_str();
            CORBA::Object_var anObj = app->orb()->string_to_object( aVal.in() );
            if(!CORBA::is_nil(anObj)){
-             //Try narrow to SMESH_Mesh interafce
+             //Try narrow to SMESH_Mesh interface
              SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow(anObj);
              if(!aMesh->_is_nil()){
                aVisualObj.reset(new SMESH_MeshObj(aMesh));
-               aVisualObj->Update();
                TVisualObjCont::value_type aValue(aKey,aVisualObj);
                VISUAL_OBJ_CONT.insert(aValue);
-               return aVisualObj;
              }
-             //Try narrow to SMESH_Group interafce
+             //Try narrow to SMESH_Group interface
              SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(anObj);
              if(!aGroup->_is_nil()){
                _PTR(SObject) aFatherSObj = aSObj->GetFather();
@@ -108,13 +289,11 @@ namespace SMESH {
                TVisualObjPtr aVisObj = GetVisualObj(theStudyId,anEntry.in());
                if(SMESH_MeshObj* aMeshObj = dynamic_cast<SMESH_MeshObj*>(aVisObj.get())){
                  aVisualObj.reset(new SMESH_GroupObj(aGroup,aMeshObj));
-                 aVisualObj->Update();
                  TVisualObjCont::value_type aValue(aKey,aVisualObj);
                  VISUAL_OBJ_CONT.insert(aValue);
-                 return aVisualObj;
                }
              }
-             //Try narrow to SMESH_subMesh interafce
+             //Try narrow to SMESH_subMesh interface
              SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow(anObj);
              if(!aSubMesh->_is_nil()){
                _PTR(SObject) aFatherSObj = aSObj->GetFather();
@@ -125,10 +304,8 @@ namespace SMESH {
                TVisualObjPtr aVisObj = GetVisualObj(theStudyId,anEntry.in());
                if(SMESH_MeshObj* aMeshObj = dynamic_cast<SMESH_MeshObj*>(aVisObj.get())){
                  aVisualObj.reset(new SMESH_subMeshObj(aSubMesh,aMeshObj));
-                 aVisualObj->Update();
                  TVisualObjCont::value_type aValue(aKey,aVisualObj);
                  VISUAL_OBJ_CONT.insert(aValue);
-                 return aVisualObj;
                }
              }
            }
@@ -137,7 +314,61 @@ namespace SMESH {
       }
     }catch(...){
       INFOS("GetMeshObj - There is no SMESH_Mesh object for the SALOMEDS::Strudy and Entry!!!");
+      return TVisualObjPtr();
     }
+    // Update object
+    bool objModified = false;
+    if ( aVisualObj ) {
+      try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+        OCC_CATCH_SIGNALS;
+#endif
+        objModified = aVisualObj->Update();
+      }
+      catch (...) {
+#ifdef _DEBUG_
+        cout << "Exception in SMESHGUI_VTKUtils::GetVisualObj()" << endl;
+#endif
+        RemoveVisualObjectWithActors( theEntry ); // remove this object
+        OnVisuException();
+        aVisualObj.reset();
+      }
+    }
+
+    if ( objModified ) {
+      // PAL16631. Mesurements showed that to show aVisualObj in SHADING(default) mode,
+      // ~10 times more memory is used than it occupies.
+      // Warn the user if there is less free memory than 30 sizes of a grid
+      // TODO: estimate memory usage in other modes and take current mode into account
+      int freeMB = SMDS_Mesh::CheckMemory(true);
+      int usedMB = aVisualObj->GetUnstructuredGrid()->GetActualMemorySize() / 1024;
+      if ( freeMB > 0 && usedMB * 30 > freeMB ) {
+#ifdef _DEBUG_
+        cout << "SMESHGUI_VTKUtils::GetVisualObj(), freeMB=" << freeMB
+             << ", usedMB=" << usedMB<< endl;
+#endif
+        int continu = 0;
+        if ( usedMB * 10 > freeMB )
+          // even dont try to show
+          SUIT_MessageBox::warn1 (SMESHGUI::desktop(), QObject::tr("SMESH_WRN_WARNING"),
+                                  QObject::tr("SMESH_NO_MESH_VISUALIZATION"),
+                                  QObject::tr("SMESH_BUT_OK"));
+        else
+          // there is a chance to succeed
+          continu = SUIT_MessageBox::warn2
+            (SMESHGUI::desktop(),
+             QObject::tr("SMESH_WRN_WARNING"),
+             QObject::tr("SMESH_CONTINUE_MESH_VISUALIZATION"),
+             QObject::tr("SMESH_BUT_YES"),  QObject::tr("SMESH_BUT_NO"),
+             1, 0, 1);
+        if ( !continu ) {
+          // remove the corresponding actors from all views
+          RemoveVisualObjectWithActors( theEntry );
+          aVisualObj.reset();
+        }
+      }
+    }
+
     return aVisualObj;
   }
 
@@ -212,28 +443,72 @@ namespace SMESH {
   void RepaintCurrentView()
   {
     if (SVTK_ViewWindow* wnd = GetCurrentVtkView())
-      {
-       wnd->getRenderer()->Render();
-       wnd->Repaint(false);
+    {
+      try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+        OCC_CATCH_SIGNALS;
+#endif
+        wnd->getRenderer()->Render();
+        wnd->Repaint(false);
       }
+      catch (...) {
+#ifdef _DEBUG_
+        cout << "Exception in SMESHGUI_VTKUtils::RepaintCurrentView()" << endl;
+#endif
+        OnVisuException();
+      }
+    }
   }
 
   void RepaintViewWindow(SVTK_ViewWindow* theWindow)
   {
-    theWindow->getRenderer()->Render();
-    theWindow->Repaint();
+    try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+      OCC_CATCH_SIGNALS;
+#endif
+      theWindow->getRenderer()->Render();
+      theWindow->Repaint();
+    }
+    catch (...) {
+#ifdef _DEBUG_
+        cout << "Exception in SMESHGUI_VTKUtils::RepaintViewWindow(SVTK_ViewWindow)" << endl;
+#endif
+      OnVisuException();
+    }
   }
 
   void RenderViewWindow(SVTK_ViewWindow* theWindow)
   {
-    theWindow->getRenderer()->Render();
-    theWindow->Repaint();
+    try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+      OCC_CATCH_SIGNALS;
+#endif
+      theWindow->getRenderer()->Render();
+      theWindow->Repaint();
+    }
+    catch (...) {
+#ifdef _DEBUG_
+        cout << "Exception in SMESHGUI_VTKUtils::RenderViewWindow(SVTK_ViewWindow)" << endl;
+#endif
+      OnVisuException();
+    }
   }
 
   void FitAll(){
     if(SVTK_ViewWindow* wnd = GetCurrentVtkView() ){
-      wnd->onFitAll();
-      wnd->Repaint();
+      try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+        OCC_CATCH_SIGNALS;
+#endif
+        wnd->onFitAll();
+        wnd->Repaint();
+      }
+      catch (...) {
+#ifdef _DEBUG_
+        cout << "Exception in SMESHGUI_VTKUtils::FitAll()" << endl;
+#endif
+        OnVisuException();
+      }
     }
   }
 
@@ -298,6 +573,27 @@ namespace SMESH {
          std::string aNameVal = aName->Value();
          anActor = SMESH_Actor::New(aVisualObj,theEntry,aNameVal.c_str(),theIsClear);
        }
+
+       SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( aSObj ));
+       if(!CORBA::is_nil(aGroup))
+       {
+         SALOMEDS::Color aColor = aGroup->GetColor();
+         if( !( aColor.R > 0 || aColor.G > 0 || aColor.B > 0 ) )
+         {
+           int r = 0, g = 0, b = 0;
+           SMESH::GetColor( "SMESH", "fill_color", r, g, b, QColor( 0, 170, 255 ) );
+           aColor.R = (float)r / 255.0;
+           aColor.G = (float)g / 255.0;
+           aColor.B = (float)b / 255.0;
+           aGroup->SetColor( aColor );
+         }
+         if( aGroup->GetType() == SMESH::NODE )
+           anActor->SetNodeColor( aColor.R, aColor.G, aColor.B );
+         else if( aGroup->GetType() == SMESH::EDGE )
+           anActor->SetEdgeColor( aColor.R, aColor.G, aColor.B );
+         else
+           anActor->SetSufaceColor( aColor.R, aColor.G, aColor.B );
+       }
       }
     }
     return anActor;
@@ -306,8 +602,19 @@ namespace SMESH {
 
   void DisplayActor( SUIT_ViewWindow *theWnd, SMESH_Actor* theActor){
     if(SVTK_ViewWindow* vtkWnd = GetVtkViewWindow(theWnd)){
-      vtkWnd->AddActor(theActor);
-      vtkWnd->Repaint();
+      try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+        OCC_CATCH_SIGNALS;
+#endif
+        vtkWnd->AddActor(theActor);
+        vtkWnd->Repaint();
+      }
+      catch (...) {
+#ifdef _DEBUG_
+        cout << "Exception in SMESHGUI_VTKUtils::DisplayActor()" << endl;
+#endif
+        OnVisuException();
+      }
     }
   }
 
@@ -330,17 +637,42 @@ namespace SMESH {
     }
   }
 
+  //================================================================================
+  /*!
+   * \brief Return true if there are no SMESH actors in a view
+   */
+  //================================================================================
+
+  bool noSmeshActors(SUIT_ViewWindow *theWnd)
+  {
+    if(SVTK_ViewWindow* aViewWindow = GetVtkViewWindow(theWnd)) {
+      vtkRenderer *aRenderer = aViewWindow->getRenderer();
+      vtkActorCollection *aCollection = aRenderer->GetActors();
+      aCollection->InitTraversal();
+      while(vtkActor *anAct = aCollection->GetNextActor())
+       if(SMESH_Actor *anActor = dynamic_cast<SMESH_Actor*>(anAct))
+          return false;
+    }
+    return true;
+  }
 
-  void UpdateView(SUIT_ViewWindow *theWnd, EDisplaing theAction, const char* theEntry)
+  bool UpdateView(SUIT_ViewWindow *theWnd, EDisplaing theAction, const char* theEntry)
   {
-    if(SVTK_ViewWindow* aViewWnd = GetVtkViewWindow(theWnd)){
+    bool OK = false;
+    SVTK_ViewWindow* aViewWnd = GetVtkViewWindow(theWnd);
+    if (!aViewWnd)
+      return OK;
+
+    {
+      OK = true;
       vtkRenderer *aRenderer = aViewWnd->getRenderer();
       vtkActorCollection *aCollection = aRenderer->GetActors();
       aCollection->InitTraversal();
-      switch(theAction){
+
+      switch (theAction) {
       case eDisplayAll: {
-       while(vtkActor *anAct = aCollection->GetNextActor()){
-         if(SMESH_Actor *anActor = dynamic_cast<SMESH_Actor*>(anAct)){
+       while (vtkActor *anAct = aCollection->GetNextActor()) {
+         if (SMESH_Actor *anActor = dynamic_cast<SMESH_Actor*>(anAct)) {
            anActor->SetVisibility(true);
          }
        }
@@ -348,15 +680,15 @@ namespace SMESH {
       }
       case eDisplayOnly:
       case eEraseAll: {
-       while(vtkActor *anAct = aCollection->GetNextActor()){
-         if(SMESH_Actor *anActor = dynamic_cast<SMESH_Actor*>(anAct)){
+       while (vtkActor *anAct = aCollection->GetNextActor()) {
+         if (SMESH_Actor *anActor = dynamic_cast<SMESH_Actor*>(anAct)) {
            anActor->SetVisibility(false);
          }
        }
       }
       default: {
-       if(SMESH_Actor *anActor = FindActorByEntry(theWnd,theEntry)){
-         switch(theAction) {
+       if (SMESH_Actor *anActor = FindActorByEntry(theWnd,theEntry)) {
+         switch (theAction) {
            case eDisplay:
            case eDisplayOnly:
              anActor->SetVisibility(true);
@@ -367,30 +699,41 @@ namespace SMESH {
              break;
          }
        } else {
-         switch(theAction){
+         switch (theAction) {
          case eDisplay:
-         case eDisplayOnly:{
-           SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>( theWnd->getViewManager()->study() );
-           _PTR(Study) aDocument = aStudy->studyDS();
-           if((anActor = CreateActor(aDocument,theEntry,true))) {
-             DisplayActor(theWnd,anActor);
-             FitAll();
-           }
-           break;
-         }
+         case eDisplayOnly:
+            {
+              SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>(theWnd->getViewManager()->study());
+              _PTR(Study) aDocument = aStudy->studyDS();
+              // Pass non-visual objects (hypotheses, etc.), return true in this case
+              CORBA::Long anId = aDocument->StudyId();
+              if (TVisualObjPtr aVisualObj = GetVisualObj(anId,theEntry))
+              {
+                if ((anActor = CreateActor(aDocument,theEntry,true))) {
+                  bool needFitAll = noSmeshActors(theWnd); // fit for the first object only
+                  DisplayActor(theWnd,anActor);
+                  // FitAll(); - PAL16770(Display of a group performs an automatic fit all)
+                  if (needFitAll) FitAll();
+                } else {
+                  OK = false;
+                }
+              }
+              break;
+            }
          }
        }
       }
       }
     }
+    return OK;
   }
 
 
-  void UpdateView(EDisplaing theAction, const char* theEntry){
+  bool UpdateView(EDisplaing theAction, const char* theEntry){
     SalomeApp_Study* aStudy = dynamic_cast< SalomeApp_Study* >( GetActiveStudy() );
     SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( aStudy->application() );
     SUIT_ViewWindow *aWnd = app->activeViewManager()->getActiveView();
-    UpdateView(aWnd,theAction,theEntry);
+    return UpdateView(aWnd,theAction,theEntry);
   }
 
   void UpdateView(){
@@ -405,14 +748,16 @@ namespace SMESH {
        while(vtkActor *anAct = aCollection->GetNextActor()){
          if(SMESH_Actor *anActor = dynamic_cast<SMESH_Actor*>(anAct)){
            if(anActor->hasIO())
-             Update(anActor->getIO(),anActor->GetVisibility());
+             if (!Update(anActor->getIO(),anActor->GetVisibility()))
+                break; // avoid multiple warinings if visu failed
          }
        }
       }else{
        SALOME_ListIteratorOfListIO anIter( selected );
        for(; anIter.More(); anIter.Next()){
          Handle(SALOME_InteractiveObject) anIO = anIter.Value();
-         Update(anIO,true);
+         if ( !Update(anIO,true) )
+            break; // avoid multiple warinings if visu failed
        }
       }
       RepaintCurrentView();
@@ -420,16 +765,16 @@ namespace SMESH {
   }
 
 
-  void Update(const Handle(SALOME_InteractiveObject)& theIO,
-             bool theDisplay)
+  bool Update(const Handle(SALOME_InteractiveObject)& theIO, bool theDisplay)
   {
     _PTR(Study) aStudy = GetActiveStudyDocument();
     CORBA::Long anId = aStudy->StudyId();
-    TVisualObjPtr aVisualObj = SMESH::GetVisualObj(anId,theIO->getEntry());
-    if( aVisualObj )
-      aVisualObj->Update();
-    if ( theDisplay )
-      UpdateView(SMESH::eDisplay,theIO->getEntry());
+    if ( TVisualObjPtr aVisualObj = SMESH::GetVisualObj(anId,theIO->getEntry())) {
+      if ( theDisplay )
+        UpdateView(SMESH::eDisplay,theIO->getEntry());
+      return true;
+    }
+    return false;
   }
 
 
@@ -468,7 +813,8 @@ namespace SMESH {
         PW = mgr->integerValue( "SMESH", "highlight_width", 5 );
 
     double SP1 = mgr->doubleValue( "SMESH", "selection_precision_node", 0.025 ),
-           SP2 = mgr->doubleValue( "SMESH", "selection_precision_element", 0.001 );
+           SP2 = mgr->doubleValue( "SMESH", "selection_precision_element", 0.001 ),
+          SP3 = mgr->doubleValue( "SMESH", "selection_precision_object", 0.025 );
 
     for ( int i=0, n=views.count(); i<n; i++ ){
       // update VTK viewer properties
@@ -479,7 +825,7 @@ namespace SMESH {
                                   aSelColor.blue()/255.,
                                   SW );
        // tolerances
-       aVtkView->SetSelectionTolerance(SP1, SP2);
+       aVtkView->SetSelectionTolerance(SP1, SP2, SP3);
 
        // pre-selection
        aVtkView->SetPreselectionProp(aPreColor.red()/255.,
index b46c3f19d2090b10a55cbe096e5f2815e292f31f..dc1ed57a9b054f51d43e410579c39edc5812f9c2 100644 (file)
@@ -64,6 +64,8 @@ namespace SMESH {
 SMESHGUI_EXPORT
   TVisualObjPtr GetVisualObj(int theStudyId, 
                             const char* theEntry);
+SMESHGUI_EXPORT
+  void OnVisuException(); // PAL16631
 
   //----------------------------------------------------------------------------
 SMESHGUI_EXPORT
@@ -103,22 +105,24 @@ SMESHGUI_EXPORT
   void DisplayActor (SUIT_ViewWindow*, SMESH_Actor* theActor);
 SMESHGUI_EXPORT
   void RemoveActor  (SUIT_ViewWindow*, SMESH_Actor* theActor);
+SMESHGUI_EXPORT
+  void RemoveVisuData(int studyID);
 
   //----------------------------------------------------------------------------
   enum EDisplaing {eDisplayAll, eDisplay, eDisplayOnly, eErase, eEraseAll};
 SMESHGUI_EXPORT
-  void UpdateView (SUIT_ViewWindow*,
+  bool UpdateView (SUIT_ViewWindow*,
                   EDisplaing theAction,
                   const char* theEntry = "" );
 SMESHGUI_EXPORT                   
-  void UpdateView (EDisplaing theAction,
+  bool UpdateView (EDisplaing theAction,
                   const char* theEntry = "");
 
 SMESHGUI_EXPORT
   void UpdateView();
 
 SMESHGUI_EXPORT
-  void Update(const Handle(SALOME_InteractiveObject)& theIO,
+  bool Update(const Handle(SALOME_InteractiveObject)& theIO,
              bool theDisplay);
 
 
diff --git a/src/SMESHGUI/SMESHGUI_WhatIsDlg.cxx b/src/SMESHGUI/SMESHGUI_WhatIsDlg.cxx
new file mode 100755 (executable)
index 0000000..d7dd957
--- /dev/null
@@ -0,0 +1,626 @@
+//  SMESH SMESHGUI : GUI for SMESH component
+//
+//  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   : SMESHGUI_WhatIsDlg.cxx
+//  Author : Vladimir TURIN
+//  Module : SMESH
+//  $Header: 
+
+#include "SMESHGUI_WhatIsDlg.h"
+
+#include "SMESHGUI.h"
+#include "SMESHGUI_SpinBox.h"
+#include "SMESHGUI_Utils.h"
+#include "SMESHGUI_VTKUtils.h"
+#include "SMESHGUI_MeshUtils.h"
+#include "SMESHGUI_IdValidator.h"
+
+#include "SMESH_Actor.h"
+#include "SMESH_TypeFilter.hxx"
+#include "SMESH_LogicalFilter.hxx"
+#include "SMDS_Mesh.hxx"
+#include "SMDS_VolumeTool.hxx"
+
+#include "SUIT_Desktop.h"
+#include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
+
+#include "SVTK_ViewModel.h"
+#include "SVTK_Selection.h"
+#include "SVTK_ViewWindow.h"
+#include "SVTK_Selector.h"
+#include "SALOME_ListIO.hxx"
+
+#include "utilities.h"
+
+// OCCT Includes
+#include <TColStd_MapOfInteger.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <gp_XYZ.hxx>
+
+// QT Includes
+#include <qapplication.h>
+#include <qbuttongroup.h>
+#include <qgroupbox.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+#include <qspinbox.h>
+#include <qpixmap.h>
+#include <qtextbrowser.h>
+
+// IDL Headers
+#include "SALOMEconfig.h"
+#include CORBA_SERVER_HEADER(SMESH_Group)
+#include CORBA_SERVER_HEADER(SMESH_MeshEditor)
+
+using namespace std;
+
+//=================================================================================
+// class    : SMESHGUI_WhatIsDlg()
+// purpose  :
+//=================================================================================
+SMESHGUI_WhatIsDlg::SMESHGUI_WhatIsDlg( SMESHGUI* theModule, 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 ) )
+{
+  if (!name)
+    setName("SMESHGUI_WhatIsDlg");
+  resize(300, 500);
+  setCaption(tr("SMESH_WHAT_IS_TITLE"));
+  setSizeGripEnabled(TRUE);
+  SMESHGUI_WhatIsDlgLayout = new QGridLayout(this);
+  SMESHGUI_WhatIsDlgLayout->setSpacing(6);
+  SMESHGUI_WhatIsDlgLayout->setMargin(11);
+  
+  /***************************************************************/
+  GroupMesh = new QButtonGroup(this, "GroupSelections");
+  GroupMesh->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)5, (QSizePolicy::SizeType)0, 0, 0, GroupMesh->sizePolicy().hasHeightForWidth()));
+  GroupMesh->setTitle(tr(""));
+  GroupMesh->setColumnLayout(0, Qt::Vertical);
+  GroupMesh->layout()->setSpacing(0);
+  GroupMesh->layout()->setMargin(0);
+  GroupMeshLayout = new QGridLayout(GroupMesh->layout());
+  GroupMeshLayout->setAlignment(Qt::AlignTop);
+  GroupMeshLayout->setSpacing(6);
+  GroupMeshLayout->setMargin(11);
+  MeshLabel = new QLabel(GroupMesh, "MeshLabel");
+  MeshLabel->setText(tr("SMESH_NAME"));
+  GroupMeshLayout->addWidget(MeshLabel, 0, 0);
+  MeshName = new QLabel(GroupMesh, "MeshName");
+  MeshName->setText(tr(""));
+  GroupMeshLayout->addWidget(MeshName, 0, 1);
+  SMESHGUI_WhatIsDlgLayout->addWidget(GroupMesh, 0, 0);
+
+  /***************************************************************/
+  GroupSelections = new QButtonGroup(this, "GroupSelections");
+  GroupSelections->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)5, (QSizePolicy::SizeType)0, 0, 0, GroupSelections->sizePolicy().hasHeightForWidth()));
+  GroupSelections->setTitle(tr("ENTITY_TYPE" ));
+  GroupSelections->setExclusive(TRUE);
+  GroupSelections->setColumnLayout(0, Qt::Vertical);
+  GroupSelections->layout()->setSpacing(0);
+  GroupSelections->layout()->setMargin(0);
+  GroupSelectionsLayout = new QGridLayout(GroupSelections->layout());
+  GroupSelectionsLayout->setAlignment(Qt::AlignTop);
+  GroupSelectionsLayout->setSpacing(6);
+  GroupSelectionsLayout->setMargin(11);
+  RadioButtonNodes = new QRadioButton(GroupSelections, "RadioButtonNodes");
+  RadioButtonNodes->setText(tr("SMESH_NODES"));
+  GroupSelectionsLayout->addWidget(RadioButtonNodes, 0, 0);
+  RadioButtonElements = new QRadioButton(GroupSelections, "RadioButtonElements");
+  RadioButtonElements->setText(tr("SMESH_ELEMENTS"));
+  GroupSelectionsLayout->addWidget(RadioButtonElements, 0, 1 );
+  SMESHGUI_WhatIsDlgLayout->addWidget(GroupSelections, 1, 0);
+
+  /***************************************************************/
+  GroupArguments = new QGroupBox(this, "GroupArguments");
+  GroupArguments->setTitle(tr("SMESH_INFORMATION"));
+  GroupArguments->setColumnLayout(0, Qt::Vertical);
+  GroupArguments->layout()->setSpacing(0);
+  GroupArguments->layout()->setMargin(0);
+  GroupArgumentsLayout = new QGridLayout(GroupArguments->layout());
+  GroupArgumentsLayout->setAlignment(Qt::AlignTop);
+  GroupArgumentsLayout->setSpacing(6);
+  GroupArgumentsLayout->setMargin(11);
+
+  // Controls for elements selection
+  TextLabelElements  = new QLabel(GroupArguments, "TextLabelElements");
+  TextLabelElements->setText(tr("SMESH_ID_ELEMENTS" ));
+  TextLabelElements->setFixedWidth(74);
+  GroupArgumentsLayout->addWidget(TextLabelElements, 0, 0);
+
+  LineEditElements  = new QLineEdit(GroupArguments, "LineEditElements");
+  LineEditElements->setValidator(new SMESHGUI_IdValidator(this, "validator"));
+  GroupArgumentsLayout->addMultiCellWidget(LineEditElements, 0, 0, 2, 7);
+
+  // information text browser
+  Info = new QTextBrowser(GroupArguments, "Info");
+  Info->setHScrollBarMode(QScrollView::AlwaysOff);
+  Info->setVScrollBarMode(QScrollView::AlwaysOff);
+  GroupArgumentsLayout->addMultiCellWidget(Info, 1, 1, 0, 7);
+
+  SMESHGUI_WhatIsDlgLayout->addWidget(GroupArguments, 2, 0);
+
+  /***************************************************************/
+  GroupButtons = new QGroupBox(this, "GroupButtons");
+  GroupButtons->setSizePolicy(QSizePolicy((QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, GroupButtons->sizePolicy().hasHeightForWidth()));
+  GroupButtons->setTitle(tr("" ));
+  GroupButtons->setColumnLayout(0, Qt::Vertical);
+  GroupButtons->layout()->setSpacing(0);
+  GroupButtons->layout()->setMargin(0);
+  GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
+  GroupButtonsLayout->setAlignment(Qt::AlignTop);
+  GroupButtonsLayout->setSpacing(6);
+  GroupButtonsLayout->setMargin(11);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 3);
+  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+  GroupButtonsLayout->addItem(spacer_9, 0, 1);
+  buttonOk = new QPushButton(GroupButtons, "buttonOk");
+  buttonOk->setText(tr("SMESH_BUT_OK" ));
+  buttonOk->setAutoDefault(TRUE);
+  buttonOk->setDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
+  SMESHGUI_WhatIsDlgLayout->addWidget(GroupButtons, 3, 0);
+
+  GroupArguments->show();
+  RadioButtonNodes->setChecked(TRUE);
+
+  mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
+
+  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
+
+  // Costruction of the logical filter
+  SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH);
+  SMESH_TypeFilter* aSmeshGroupFilter    = new SMESH_TypeFilter (GROUP);
+
+  QPtrList<SUIT_SelectionFilter> aListOfFilters;
+  if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter);
+  if (aSmeshGroupFilter)    aListOfFilters.append(aSmeshGroupFilter);
+
+  myMeshOrSubMeshOrGroupFilter =
+    new SMESH_LogicalFilter(aListOfFilters, SMESH_LogicalFilter::LO_OR);
+
+  myHelpFileName = "/files/viewing_mesh_info.htm#element_infos";
+
+  Init();
+
+  /* signals and slots connections */
+  connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
+  connect(buttonHelp, SIGNAL(clicked()),   this, SLOT(ClickOnHelp()));
+  connect(GroupSelections, SIGNAL(clicked(int)), SLOT(SelectionsClicked(int)));
+
+  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
+  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()),   this, SLOT(SelectionIntoArgument()));
+  /* to close dialog if study change */
+  connect(mySMESHGUI,       SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
+  connect(LineEditElements, SIGNAL(textChanged(const QString&)),    SLOT(onTextChange(const QString&)));
+  this->show(); /* displays Dialog */
+
+  SelectionsClicked(0);
+  SelectionIntoArgument();
+}
+
+//=================================================================================
+// function : ~SMESHGUI_WhatIsDlg()
+// purpose  : Destroys the object and frees any allocated resources
+//=================================================================================
+SMESHGUI_WhatIsDlg::~SMESHGUI_WhatIsDlg()
+{
+  // no need to delete child widgets, Qt does it all for us
+}
+
+//=================================================================================
+// function : Init()
+// purpose  :
+//=================================================================================
+void SMESHGUI_WhatIsDlg::Init (bool ResetControls)
+{
+  myBusy = false;
+
+  LineEditElements->clear();
+
+  myActor = 0;
+  myMesh = SMESH::SMESH_Mesh::_nil();
+
+  if (ResetControls) {
+    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+      aViewWindow->SetSelectionMode( CellSelection );
+    onTextChange(LineEditElements->text());
+    
+    SelectionIntoArgument();
+  }
+}
+
+//=================================================================================
+// function : SelectionsClicked()
+// purpose  : Radio button management
+//=================================================================================
+void SMESHGUI_WhatIsDlg::SelectionsClicked (int selectionId)
+{
+  disconnect(mySelectionMgr, 0, this, 0);
+
+  mySelectionMgr->clearFilters();
+
+  switch (selectionId) {
+  case 0:
+    {
+      SMESH::SetPointRepresentation(true);
+      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+       aViewWindow->SetSelectionMode( NodeSelection );
+      break;
+    }    
+  case 1:
+    {
+      SMESH::SetPointRepresentation(false);
+      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+       aViewWindow->SetSelectionMode( CellSelection );
+      break;
+    }
+  }
+
+  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
+  SelectionIntoArgument();
+}
+
+//=================================================================================
+// function : ClickOnOk()
+// purpose  :
+//=================================================================================
+void SMESHGUI_WhatIsDlg::ClickOnOk()
+{
+  if (mySMESHGUI->isActiveStudyLocked())
+    return;
+
+  SMESH::UpdateView();
+  Init(false);
+  SelectionIntoArgument();
+  ClickOnCancel();
+}
+
+//=================================================================================
+// function : ClickOnCancel()
+// purpose  :
+//=================================================================================
+void SMESHGUI_WhatIsDlg::ClickOnCancel()
+{
+  disconnect(mySelectionMgr, 0, this, 0);
+  mySelectionMgr->clearFilters();
+  SMESH::SetPointRepresentation(false);
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+    aViewWindow->SetSelectionMode( ActorSelection );
+  mySMESHGUI->ResetState();
+  reject();
+}
+
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_WhatIsDlg::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_WhatIsDlg::onTextChange (const QString& theNewText)
+{
+  if (myBusy) return;
+  myBusy = true;
+
+  // hilight entered elements
+  SMDS_Mesh* aMesh = 0;
+  if (myActor)
+    aMesh = myActor->GetObject()->GetMesh();
+
+  if (aMesh) {
+    Handle(SALOME_InteractiveObject) anIO = myActor->getIO();
+    
+    TColStd_MapOfInteger newIndices;
+
+    QStringList aListId = QStringList::split(" ", theNewText, false);
+
+    for (int i = 0; i < aListId.count(); i++) {
+      const SMDS_MeshElement * e = RadioButtonNodes->isChecked()?
+       aMesh->FindNode(aListId[ i ].toInt()):
+       aMesh->FindElement(aListId[ i ].toInt());
+      if (e)
+       newIndices.Add(e->GetID());
+    }
+
+    mySelector->AddOrRemoveIndex( anIO, newIndices, false );
+    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+      aViewWindow->highlight( anIO, true, true );
+  }
+
+  SelectionIntoArgument();
+
+  myBusy = false;
+}
+
+//=================================================================================
+// function : SelectionIntoArgument()
+// purpose  : Called when selection as changed or other case
+//=================================================================================
+void SMESHGUI_WhatIsDlg::SelectionIntoArgument()
+{
+  int curBusy = myBusy;
+
+  // clear
+  myActor = 0;
+  QString aString = "";
+
+  myBusy = true;
+  if(!curBusy)
+    LineEditElements->setText(aString);
+  MeshName->setText(aString);
+  GroupMesh->setTitle(tr(""));
+  Info->clear();
+  myBusy = curBusy;
+
+  if (!GroupButtons->isEnabled()) // inactive
+    return;
+
+  // get selected mesh
+  SALOME_ListIO aList;
+  mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
+
+  int nbSel = aList.Extent();
+
+  if (nbSel != 1)
+    return;
+
+  Handle(SALOME_InteractiveObject) IO = aList.First();
+  myMesh = SMESH::GetMeshByIO(IO);
+  if (myMesh->_is_nil())
+    return;
+
+  myActor = SMESH::FindActorByObject(myMesh);
+  if (!myActor)
+    myActor = SMESH::FindActorByEntry(IO->getEntry());
+  if (!myActor)
+    return;
+
+  QString aName;
+  SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aName);
+  MeshName->setText(aName);
+  if(!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) {
+    GroupMesh->setTitle(tr("SMESH_MESH"));
+  } else if(!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) {
+    GroupMesh->setTitle(tr("SMESH_SUBMESH"));
+  } else if(!SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO)->_is_nil()) {
+    GroupMesh->setTitle(tr("SMESH_GROUP"));
+  }
+
+  int aNbUnits = 0;
+  
+  aNbUnits = SMESH::GetNameOfSelectedElements(mySelector, IO, aString);
+  
+  if (aNbUnits < 1)
+    return;
+
+  const SMDS_MeshElement * e = RadioButtonNodes->isChecked()?
+    myActor->GetObject()->GetMesh()->FindNode(aString.toInt()):
+    myActor->GetObject()->GetMesh()->FindElement(aString.toInt());
+  if (e) {
+    QString anInfo;
+    anInfo=tr("ENTITY_TYPE") + ": ";
+    if(e->GetType() == SMDSAbs_Node) {
+      anInfo+=tr("MESH_NODE")+"\n";
+      const SMDS_MeshNode *en = (SMDS_MeshNode*) e;
+    } else if(e->GetType() == SMDSAbs_Edge) {
+      anInfo+=tr("SMESH_EDGE")+"\n";
+      anInfo+=tr("SMESH_MESHINFO_TYPE")+": ";
+      const SMDS_MeshEdge *ee = (SMDS_MeshEdge*) e;
+      anInfo+=(ee->IsQuadratic()?tr("SMESH_MESHINFO_ORDER2"):tr("SMESH_MESHINFO_ORDER1"))+"\n";
+    } else if(e->GetType() == SMDSAbs_Face) {
+      const SMDS_MeshFace *ef = (SMDS_MeshFace*) e;
+      anInfo+=tr("SMESH_FACE")+"\n";
+      anInfo+=tr("SMESH_MESHINFO_TYPE")+": ";
+      if(!ef->IsPoly())
+       anInfo+=(ef->IsQuadratic()?tr("SMESH_MESHINFO_ORDER2"):tr("SMESH_MESHINFO_ORDER1"))+" ";
+      switch(ef->NbNodes()) {
+      case 3:
+      case 6:
+       {
+         anInfo+=tr("SMESH_TRIANGLE");
+         break;
+       }
+      case 4:
+      case 8:
+       {
+         anInfo+=tr("SMESH_QUADRANGLE");
+         break;
+       }
+      default:
+       break;
+      }
+      anInfo+="\n";
+    } else if(e->GetType() == SMDSAbs_Volume) {
+      anInfo+=tr("SMESH_VOLUME")+"\n";
+      anInfo+=tr("SMESH_MESHINFO_TYPE")+": ";
+      const SMDS_MeshVolume *ev = (SMDS_MeshVolume*) e;
+      SMDS_VolumeTool vt(ev);
+      if(vt.GetVolumeType() != SMDS_VolumeTool::POLYHEDA)
+       anInfo+=(ev->IsQuadratic()?tr("SMESH_MESHINFO_ORDER2"):tr("SMESH_MESHINFO_ORDER1"))+" ";
+      switch(vt.GetVolumeType()) {
+      case SMDS_VolumeTool::TETRA:
+      case SMDS_VolumeTool::QUAD_TETRA:
+       {
+         anInfo+=tr("SMESH_TETRAS");
+         break;
+       }
+      case SMDS_VolumeTool::PYRAM:
+      case SMDS_VolumeTool::QUAD_PYRAM:
+       {
+         anInfo+=tr("SMESH_PYRAMID");
+         break;
+       }
+      case SMDS_VolumeTool::PENTA:
+      case SMDS_VolumeTool::QUAD_PENTA:
+       {
+         anInfo+=tr("SMESH_PRISM");
+         break;
+       }
+      case SMDS_VolumeTool::HEXA:
+      case SMDS_VolumeTool::QUAD_HEXA:
+       {
+         anInfo+=tr("SMESH_HEXAS");
+         break;
+       }
+      case SMDS_VolumeTool::POLYHEDA:
+       {
+         anInfo+=tr("SMESH_POLYEDRON");
+         break;
+       }
+      default:
+       break;
+      }
+      anInfo+="\n";
+    }
+    if(e->GetType() != SMDSAbs_Node)
+      anInfo+=tr("GRAVITY_CENTER") + ":\n";
+    gp_XYZ anXYZ(0.,0.,0.);
+    SMDS_ElemIteratorPtr nodeIt = e->nodesIterator();
+    int nbNodes = 0;
+    for(; nodeIt->more(); nbNodes++) {
+      const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
+      anXYZ.Add( gp_XYZ( node->X(), node->Y(), node->Z() ) );
+    }
+    anXYZ.Divide(e->NbNodes()) ;
+    anInfo+=QString("X=%1\nY=%2\nZ=%3\n").arg(anXYZ.X()).arg(anXYZ.Y()).arg(anXYZ.Z());
+    Info->setText(anInfo);
+  }
+
+  if(!curBusy) {
+    myBusy = true;
+    LineEditElements->setText(aString);
+    myBusy = false;
+  }
+}
+
+//=================================================================================
+// function : DeactivateActiveDialog()
+// purpose  :
+//=================================================================================
+void SMESHGUI_WhatIsDlg::DeactivateActiveDialog()
+{
+  if (GroupArguments->isEnabled()) {
+    GroupSelections->setEnabled(false);
+    GroupMesh->setEnabled(false);
+    GroupArguments->setEnabled(false);
+    GroupButtons->setEnabled(false);
+    mySMESHGUI->ResetState();
+    mySMESHGUI->SetActiveDialogBox(0);
+  }
+}
+
+//=================================================================================
+// function : ActivateThisDialog()
+// purpose  :
+//=================================================================================
+void SMESHGUI_WhatIsDlg::ActivateThisDialog()
+{
+  /* Emit a signal to deactivate the active dialog */
+  mySMESHGUI->EmitSignalDeactivateDialog();
+  GroupArguments->setEnabled(true);
+  GroupButtons->setEnabled(true);
+  GroupSelections->setEnabled(true);
+  GroupMesh->setEnabled(true);
+
+  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
+
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+    SelectionsClicked(RadioButtonNodes->isChecked()?0:1);
+
+  SelectionIntoArgument();
+}
+
+//=================================================================================
+// function : enterEvent()
+// purpose  :
+//=================================================================================
+void SMESHGUI_WhatIsDlg::enterEvent (QEvent*)
+{
+  if (!GroupArguments->isEnabled())
+    ActivateThisDialog();
+}
+
+//=================================================================================
+// function : closeEvent()
+// purpose  :
+//=================================================================================
+void SMESHGUI_WhatIsDlg::closeEvent (QCloseEvent*)
+{
+  /* same than click on cancel button */
+  this->ClickOnCancel();
+}
+
+//=======================================================================
+//function : hideEvent
+//purpose  : caused by ESC key
+//=======================================================================
+void SMESHGUI_WhatIsDlg::hideEvent (QHideEvent*)
+{
+  if (!isMinimized())
+    ClickOnCancel();
+}
+
+//=================================================================================
+// function : keyPressEvent()
+// purpose  :
+//=================================================================================
+void SMESHGUI_WhatIsDlg::keyPressEvent( QKeyEvent* e )
+{
+  QDialog::keyPressEvent( e );
+  if ( e->isAccepted() )
+    return;
+
+  if ( e->key() == Key_F1 )
+    {
+      e->accept();
+      ClickOnHelp();
+    }
+}
diff --git a/src/SMESHGUI/SMESHGUI_WhatIsDlg.h b/src/SMESHGUI/SMESHGUI_WhatIsDlg.h
new file mode 100755 (executable)
index 0000000..af1c4ef
--- /dev/null
@@ -0,0 +1,130 @@
+//  SMESH SMESHGUI : GUI for SMESH component
+//
+//  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   : SMESHGUI_WhatIsDlg.h
+//  Author : Vladimir TURIN
+//  Module : SMESH
+//  $Header: 
+
+#ifndef SMESHGUI_WHATISDLG_H
+#define SMESHGUI_WHATISDLG_H
+
+#include "LightApp_SelectionMgr.h"
+
+#include "SMESH_LogicalFilter.hxx"
+
+// QT Includes
+#include <qdialog.h>
+
+class QGridLayout; 
+class QButtonGroup;
+class QGroupBox;
+class QLabel;
+class QLineEdit;
+class QPushButton;
+class QRadioButton;
+class QCheckBox;
+class QTextBrowser;
+class SMESHGUI;
+class SMESHGUI_SpinBox;
+class SMESH_Actor;
+class SVTK_ViewWindow;
+class SVTK_Selector;
+
+// IDL Headers
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SMESH_Mesh)
+
+
+//=================================================================================
+// class    : SMESHGUI_WhatIsDlg
+// purpose  :
+//=================================================================================
+class SMESHGUI_WhatIsDlg : public QDialog
+{ 
+  Q_OBJECT
+    
+public:
+
+  SMESHGUI_WhatIsDlg( SMESHGUI*,
+                     const char* name = 0,
+                     bool modal = FALSE,
+                     WFlags fl = 0);
+  ~SMESHGUI_WhatIsDlg();
+  
+private:
+
+  void Init (bool ResetControls = true);
+  void closeEvent (QCloseEvent*);
+  void enterEvent (QEvent*);                             /* mouse enter the QWidget */
+  void hideEvent (QHideEvent*);                          /* ESC key */
+  void keyPressEvent(QKeyEvent*);
+
+  SMESHGUI*                     mySMESHGUI;              /* Current SMESHGUI object */
+  LightApp_SelectionMgr*        mySelectionMgr;          /* User shape selection */
+
+  SVTK_Selector*                mySelector;
+
+  bool                          myBusy;
+  SMESH::SMESH_Mesh_var         myMesh;
+  SMESH_Actor*                  myActor;
+  SMESH_LogicalFilter*          myMeshOrSubMeshOrGroupFilter;
+
+  QButtonGroup* GroupSelections;
+  QRadioButton* RadioButtonNodes;
+  QRadioButton* RadioButtonElements;
+  QGroupBox* GroupButtons;
+  QPushButton* buttonOk;
+  QPushButton* buttonHelp;
+  QGroupBox* GroupArguments;
+  QGroupBox* GroupMesh;
+  QLabel* TextLabelElements;
+  QLineEdit* LineEditElements;
+  QLabel* MeshLabel;
+  QLabel* MeshName;
+
+  QTextBrowser* Info;
+    
+  QString myHelpFileName;
+
+private slots:
+
+  void SelectionsClicked(int selectionId);
+  void ClickOnOk();
+  void ClickOnCancel();
+  void ClickOnHelp();
+  void SelectionIntoArgument() ;
+  void DeactivateActiveDialog() ;
+  void ActivateThisDialog() ;
+  void onTextChange(const QString&);
+    
+protected:
+
+  QGridLayout* SMESHGUI_WhatIsDlgLayout;
+  QGridLayout* GroupSelectionsLayout;
+  QGridLayout* GroupMeshLayout;
+  QGridLayout* GroupButtonsLayout;
+  QGridLayout* GroupArgumentsLayout;
+};
+
+#endif // SMESHGUI_WHATISDLG_H
index e1ade098004bfed4432e9938997cbf2dd44c2cb1..2fa20059d26c859fecce1bb08d953b199e3a5f65 100644 (file)
@@ -130,6 +130,10 @@ bool SMESHGUI_XmlHandler::startElement (const QString&, const QString&,
       QString aLabel = atts.value("label-id");
       QString anIcon = atts.value("icon-id");
       bool isAux = atts.value("auxiliary") == "true";
+      bool isNeedGeom = true;
+      QString aNeedGeom = atts.value("need-geom");
+      if ( !aNeedGeom.isEmpty() )
+        isNeedGeom = (aNeedGeom == "true");
       
       QString aDimStr = atts.value("dim");
       aDimStr = aDimStr.remove( ' ' );
@@ -159,7 +163,7 @@ bool SMESHGUI_XmlHandler::startElement (const QString&, const QString&,
       HypothesisData* aHypData =
         new HypothesisData (aHypAlType, myPluginName, myServerLib, myClientLib,
                             aLabel, anIcon, aDim, isAux,
-                            attr[ HYPOS ], attr[ OPT_HYPOS ], attr[ INPUT ], attr[ OUTPUT ]);
+                            attr[ HYPOS ], attr[ OPT_HYPOS ], attr[ INPUT ], attr[ OUTPUT ], isNeedGeom );
 
       if (qName == "algorithm")
       {
index a9980d0cf8ca87ee2a35c31764aa67fbac45a362..fa3443962a0eb2a5961b046560353bc9b0a8a679 100644 (file)
@@ -322,6 +322,9 @@ msgstr "advanced_mesh_info.png"
 msgid "ICON_STD_INFO"
 msgstr "standard_mesh_info.png"
 
+msgid "ICON_WHAT_IS"
+msgstr "mesh_whatis.png"
+
 msgid "ICON_LENGTH"
 msgstr "mesh_length.png"
 
index 4ef2f345a78f1c6e4d7311b9e588756ef87e8935..d29cf68169804005aa5a4c4e4034599ff7cbcd77 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2007-01-19 10:44+0300\n"
+"PO-Revision-Date: 2007-11-23 13:01+0300\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -51,8 +51,8 @@ msgstr ""
 msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
-"POT-Creation-Date: 2002-05-28 10:57:43 AM CEST\n"
-"PO-Revision-Date: 2005-06-07 10:51+0400\n"
+"POT-Creation-Date: 2002-05-28 10:46:48 AM CEST\n"
+"PO-Revision-Date: 2004-10-20 17:25+0400\n"
 "Last-Translator: FULLNAME <EMAIL@ADDRESS>\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 
@@ -426,6 +426,14 @@ msgstr "Id Elements"
 msgid "SMESH_REMOVE"
 msgstr "Remove"
 
+#Move elements
+msgid "SMESH_MOVE_ELEMENTS"
+msgstr "Move Elements"
+
+#Copy elements
+msgid "SMESH_COPY_ELEMENTS"
+msgstr "Copy Elements"
+
 #Remove Elements
 msgid "SMESH_REMOVE_ELEMENTS_TITLE"
 msgstr "Remove Elements"
@@ -490,6 +498,14 @@ msgstr "Quadrangle"
 msgid "SMESH_EDGE"
 msgstr "Edge"
 
+#Pyramid
+msgid "SMESH_PYRAMID"
+msgstr "Pyramid"
+
+#Prism
+msgid "SMESH_PRISM"
+msgstr "Prism"
+
 #Tetrahedron
 msgid "SMESH_TETRAS"
 msgstr "Tetrahedron"
@@ -498,6 +514,10 @@ msgstr "Tetrahedron"
 msgid "SMESH_HEXAS"
 msgstr "Hexahedron"
 
+#Polyhedron
+msgid "SMESH_POLYEDRON"
+msgstr "Polyhedron"
+
 #Add Triangle
 msgid "SMESH_ADD_TRIANGLE"
 msgstr "Add Triangle"
@@ -798,6 +818,10 @@ msgstr "Rotation"
 msgid "SMESH_BUILD_COMPOUND_TITLE"
 msgstr "Create a Compound"
 
+# Create a new mesh
+msgid "SMESH_CREATE_MESH"
+msgstr "Create a new mesh"
+
 # -------------- Mesh Infos --------------
 
 #Mesh Infos
@@ -808,6 +832,10 @@ msgstr "Mesh Infos"
 msgid "SMESH_STANDARD_MESHINFO_TITLE"
 msgstr "Standard Mesh Infos"
 
+#What Is
+msgid "SMESH_WHAT_IS_TITLE"
+msgstr "Mesh Element Info"
+
 #Mesh Infos
 msgid "SMESH_MESHINFO_NAME"
 msgstr "Name"
@@ -986,7 +1014,7 @@ msgstr "Color group"
 
 #Check color group
 msgid "SMESH_CHECK_COLOR"
-msgstr "Color number"
+msgstr "Color"
 
 #%1 SubMeshes
 msgid "SMESH_SUBMESH_SELECTED"
@@ -996,6 +1024,13 @@ msgstr "%1 SubMeshes"
 msgid "SMESH_GROUP_SELECTED"
 msgstr "%1 Groups"
 
+# Generate groups at mesh transformation
+msgid "SMESH_MAKE_GROUPS"
+msgstr "Generate groups"
+
+# Generate groups at mesh transformation
+msgid "SMESH_COPY_GROUPS"
+msgstr "Copy groups"
 
 # -------------- Preferences - Selection --------------
 msgid "SMESH_PREF_SELECTION"
@@ -1284,7 +1319,7 @@ msgid "SMESH_HYP_3"
 msgstr "Hypothesis has a bad parameter value"
 
 msgid "SMESH_HYP_4"
-msgstr "Algorithm is hidden by an algorithm of upper dimension generating all-dimensions elements"
+msgstr "Submesh is ignored as there is another algorithm of upper dimension generating %1D elements"
 
 msgid "SMESH_HYP_5"
 msgstr "Algorithm hides algorithm(s) of lower dimension by generating all-dimensions elements"
@@ -1328,6 +1363,9 @@ msgstr "Hypothesis of %3 %2D algorithm \"%1\" has a bad parameter value"
 msgid "STATE_HYP_NOTCONFORM"
 msgstr "%3 %2D algorithm \"%1\" would produce not conform mesh: global \"Not Conform Mesh Allowed\" hypotesis is missing"
 
+msgid "STATE_HYP_BAD_GEOMETRY"
+msgstr "%3 %2D algorithm \"%1\" is assigned to geometry mismatching its expectation"
+
 msgid "GLOBAL_ALGO"
 msgstr "Global"
 
@@ -1383,6 +1421,22 @@ msgstr "Select an object"
 msgid "SMESH_AUTO_GROUPS"
 msgstr "Automatically create groups"
 
+msgid "SMESH_CONTINUE_MESH_VISUALIZATION"
+msgstr "It seems that there is not enough memory to show the mesh\n"
+       "so that the application may crash. "
+       "Do you wish to continue visualization?"
+
+msgid "SMESH_NO_MESH_VISUALIZATION"
+msgstr "There is not enough memory to show the mesh"
+
+msgid "SMESH_VISU_PROBLEM"
+msgstr "Mesh visualization failed, probably due to lack of memory"
+
+msgid "SMESH_VISU_PROBLEM_CLEAR"
+msgstr "Mesh visualization failed, no memory even to show a message,\n"
+       "so all visual data have been removed to let the application live.\n"
+       "Consider saving your work before application crash"
+
 #----------------------------------------------------
 
 msgid "SMESHGUI_FilterLibraryDlg::ADD_TO_TLT"
@@ -2200,6 +2254,9 @@ msgstr "Advanced Mesh Infos"
 msgid "MEN_STD_INFO"
 msgstr "Standard Mesh Infos"
 
+msgid "MEN_WHAT_IS"
+msgstr "Mesh Element Info"
+
 msgid "MEN_LENGTH"
 msgstr "Length"
 
@@ -2371,6 +2428,12 @@ msgstr "Shrink"
 msgid "MEN_AUTO_UPD"
 msgstr "Automatic update"
 
+msgid "MEN_AUTO_COLOR"
+msgstr "Auto color"
+
+msgid "MEN_DISABLE_AUTO_COLOR"
+msgstr "Disable auto color"
+
 msgid "MEN_COLORS"
 msgstr "Colors / Size"
 
@@ -2476,14 +2539,14 @@ msgstr "Transparency"
 msgid "MEN_CLIP"
 msgstr "Clipping"
 
-msgid "MEN_DISPLAY"
-msgstr "Display"
+msgid "MEN_SHOW"
+msgstr "Show"
 
-msgid "MEN_ERASE"
-msgstr "Erase"
+msgid "MEN_HIDE"
+msgstr "Hide"
 
 msgid "MEN_DISPLAY_ONLY"
-msgstr "Display only"
+msgstr "Show only"
 
 
 #------ TOP -----#
@@ -2562,6 +2625,9 @@ msgstr "Advanced Mesh Infos"
 msgid "TOP_STD_INFO"
 msgstr "Standard Mesh Infos"
 
+msgid "TOP_WHAT_IS"
+msgstr "Mesh Element Info"
+
 msgid "TOP_LENGTH"
 msgstr "Length"
 
@@ -2733,6 +2799,12 @@ msgstr "Shrink"
 msgid "TOP_AUTO_UPD"
 msgstr "Automatic update"
 
+msgid "TOP_AUTO_COLOR"
+msgstr "Auto color"
+
+msgid "TOP_DISABLE_AUTO_COLOR"
+msgstr "Disable auto color"
+
 msgid "TOP_COLORS"
 msgstr "Colors / Size"
 
@@ -2787,14 +2859,14 @@ msgstr "Transparency"
 msgid "TOP_CLIP"
 msgstr "Clipping"
 
-msgid "TOP_DISPLAY"
-msgstr "Display"
+msgid "TOP_SHOW"
+msgstr "Show"
 
-msgid "TOP_ERASE"
-msgstr "Erase"
+msgid "TOP_HIDE"
+msgstr "Hide"
 
 msgid "TOP_DISPLAY_ONLY"
-msgstr "Display only"
+msgstr "Show only"
 
 
 
@@ -2875,6 +2947,9 @@ msgstr "Advanced Mesh Infos"
 msgid "STB_STD_INFO"
 msgstr "Standard Mesh Infos"
 
+msgid "STB_WHAT_IS"
+msgstr "Mesh Element Info"
+
 msgid "STB_LENGTH"
 msgstr "Length"
 
@@ -3046,6 +3121,12 @@ msgstr "Shrink"
 msgid "STB_AUTO_UPD"
 msgstr "Automatic update"
 
+msgid "STB_AUTO_COLOR"
+msgstr "Auto color"
+
+msgid "STB_DISABLE_AUTO_COLOR"
+msgstr "Disable auto color"
+
 msgid "STB_COLORS"
 msgstr "Colors / Size"
 
@@ -3100,18 +3181,14 @@ msgstr "Transparency"
 msgid "STB_CLIP"
 msgstr "Clipping"
 
-msgid "STB_DISPLAY"
-msgstr "Display"
+msgid "STB_SHOW"
+msgstr "Show"
 
-msgid "STB_ERASE"
-msgstr "Erase"
+msgid "STB_HIDE"
+msgstr "Hide"
 
 msgid "STB_DISPLAY_ONLY"
-msgstr "Display only"
-
-
-
-
+msgstr "Show only"
 
 msgid "TB_MESH"
 msgstr "Mesh Toolbar"
@@ -3222,6 +3299,9 @@ msgstr "Nodes"
 msgid "SMESHGUI::PREF_ELEMENTS"
 msgstr "Elements"
 
+msgid "SMESHGUI::PREF_OBJECTS"
+msgstr "Objects"
+
 msgid "SMESHGUI::PREF_DISPLAY_MODE"
 msgstr "Display mode"
 
@@ -3291,6 +3371,9 @@ msgstr "Rename"
 msgid "SMESHGUI_BuildCompoundDlg::MERGE_NODES_AND_ELEMENTS"
 msgstr "Merge coincident nodes and elements"
 
+msgid "SMESHGUI_BuildCompoundDlg::CREATE_COMMON_GROUPS"
+msgstr "Create common groups for initial meshes"
+
 #-----------------------------------------------------------
 
 msgid "SMESHGUI_ShapeByMeshDlg::CAPTION"
@@ -3407,6 +3490,15 @@ msgstr "Show SubShape"
 msgid "SMESHGUI_ComputeDlg::PUBLISH_SHAPE"
 msgstr "Publish SubShape"
 
+msgid "SMESHGUI_ComputeDlg::MEMORY_LACK"
+msgstr "Memory allocation problem"
+
+msgid "SMESHGUI_WhatIsDlg::ENTITY_TYPE"
+msgstr "Element type"
+
+msgid "SMESHGUI_WhatIsDlg::GRAVITY_CENTER"
+msgstr "Gravity center"
+
 msgid "COMPERR_OK"
 msgstr "No errors"
 
index 6a8e251747dd53e2f16cbfa5f4491eb0a9232ba6..51f6177f04a83d09f8003b55d8e2db022a261c71 100644 (file)
@@ -86,6 +86,7 @@ libSMESHEngine_la_CPPFLAGS = \
        @HDF5_INCLUDES@ \
        $(BOOST_CPPFLAGS) \
        $(KERNEL_CXXFLAGS) \
+       $(GUI_CXXFLAGS) \
        $(MED_CXXFLAGS) \
        $(GEOM_CXXFLAGS) \
        -I$(srcdir)/../Controls \
@@ -112,6 +113,8 @@ libSMESHEngine_la_LDFLAGS  = \
        -lSalomeGenericObj \
        $(GEOM_LDFLAGS) \
        -lGEOMClient \
+       $(MED_LDFLAGS) \
+       -lMEDWrapper_V2_2 \
        $(CAS_LDPATH) \
        -lTKCDF \
        -lTKBO \
index 3025f693b849f914932b6415a738c6021240e576..2c6558822498f8e4a6378ee190c451eccab13216 100644 (file)
 //  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
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 //  File   : SMESH.hxx
 //  Author : Michael ZORIN
 //  Module : SMESH
-//  $Header
+//  $Header$
 
 #ifndef _SMESH_I_SMESH_HXX_
 #define _SMESH_I_SMESH_HXX_
  #define SMESH_I_EXPORT
 #endif
 
-// Tags definition
-enum {
-  // Top level
-  Tag_HypothesisRoot         = 1, // hypotheses root
-  Tag_AlgorithmsRoot         = 2, // algorithms root
-  // Mesh/Submesh
-  Tag_RefOnShape             = 1, // references to shape
-  Tag_RefOnAppliedHypothesis = 2, // applied hypotheses root
-  Tag_RefOnAppliedAlgorithms = 3, // applied algorithms root
-  // Mesh only
-  Tag_SubMeshOnVertex        = 4, // sub-meshes roots by type
-  Tag_SubMeshOnEdge          = 5, // ...
-  Tag_SubMeshOnWire          = 6, // ...
-  Tag_SubMeshOnFace          = 7, // ...
-  Tag_SubMeshOnShell         = 8, // ...
-  Tag_SubMeshOnSolid         = 9, // ...
-  Tag_SubMeshOnCompound      = 10, // ...
-  Tag_NodeGroups             = 11, // Group roots by type
-  Tag_EdgeGroups             = 12, // ...
-  Tag_FaceGroups             = 13, // ...
-  Tag_VolumeGroups           = 14 // ... 
-};
-
 #endif
-
index 2be0029fcf57901a0724d82e7ca54ce913e9e64d..354d1df44c31ac521281e59f5ee2780335277293 100644 (file)
@@ -28,6 +28,8 @@
 #ifndef _SMESH_0D_ALGO_I_HXX_
 #define _SMESH_0D_ALGO_I_HXX_
 
+#include "SMESH.hxx"
+
 #include <SALOMEconfig.h>
 #include CORBA_SERVER_HEADER(SMESH_Hypothesis)
 
@@ -36,7 +38,7 @@
 // ======================================================
 // Generic 0D algorithm
 // ======================================================
-class SMESH_0D_Algo_i:
+class SMESH_I_EXPORT SMESH_0D_Algo_i:
   public virtual POA_SMESH::SMESH_0D_Algo,
   public virtual SMESH_Algo_i
 {
index 3cd0dd18a0724af4a3bf934667954765c05a38a3..f933abfb709f24d771961ac160ccce74ddef6d9b 100644 (file)
@@ -46,6 +46,7 @@ IMPLEMENT_STANDARD_HANDLE (_pyObject          ,Standard_Transient);
 IMPLEMENT_STANDARD_HANDLE (_pyCommand         ,Standard_Transient);
 IMPLEMENT_STANDARD_HANDLE (_pyGen             ,_pyObject);
 IMPLEMENT_STANDARD_HANDLE (_pyMesh            ,_pyObject);
+IMPLEMENT_STANDARD_HANDLE (_pyMeshEditor      ,_pyObject);
 IMPLEMENT_STANDARD_HANDLE (_pyHypothesis      ,_pyObject);
 IMPLEMENT_STANDARD_HANDLE (_pyAlgorithm       ,_pyHypothesis);
 IMPLEMENT_STANDARD_HANDLE (_pyComplexParamHypo,_pyHypothesis);
@@ -55,6 +56,7 @@ IMPLEMENT_STANDARD_RTTIEXT(_pyObject          ,Standard_Transient);
 IMPLEMENT_STANDARD_RTTIEXT(_pyCommand         ,Standard_Transient);
 IMPLEMENT_STANDARD_RTTIEXT(_pyGen             ,_pyObject);
 IMPLEMENT_STANDARD_RTTIEXT(_pyMesh            ,_pyObject);
+IMPLEMENT_STANDARD_RTTIEXT(_pyMeshEditor      ,_pyObject);
 IMPLEMENT_STANDARD_RTTIEXT(_pyHypothesis      ,_pyObject);
 IMPLEMENT_STANDARD_RTTIEXT(_pyAlgorithm       ,_pyHypothesis);
 IMPLEMENT_STANDARD_RTTIEXT(_pyComplexParamHypo,_pyHypothesis);
@@ -79,11 +81,40 @@ static TCollection_AsciiString theEmptyString;
 #undef DUMP_CONVERSION
 #endif
 
+
+namespace {
+
+  //================================================================================
+  /*!
+   * \brief Set of TCollection_AsciiString initialized by C array of C strings
+   */
+  //================================================================================
+
+  struct TStringSet: public set<TCollection_AsciiString>
+  {
+    /*!
+     * \brief Filling. The last string must be ""
+     */
+    void Insert(const char* names[]) {
+      for ( int i = 0; names[i][0] ; ++i )
+        insert( (char*) names[i] );
+    }
+    /*!
+     * \brief Check if a string is in
+     */
+    bool Contains(const TCollection_AsciiString& name ) {
+      return find( name ) != end();
+    }
+  };
+}
+
 //================================================================================
 /*!
  * \brief Convert python script using commands of smesh.py
   * \param theScript - Input script
   * \retval TCollection_AsciiString - Convertion result
+  *
+  * Class SMESH_2smeshpy declared in SMESH_PythonDump.hxx
  */
 //================================================================================
 
@@ -152,6 +183,17 @@ _pyGen::_pyGen(Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod
   GetCreationCmd()->GetString() += "=";
 }
 
+//================================================================================
+/*!
+ * \brief name of SMESH_Gen in smesh.py
+ */
+//================================================================================
+
+const char* _pyGen::AccessorMethod() const
+{
+  return SMESH_2smeshpy::GenName();
+}
+
 //================================================================================
 /*!
  * \brief Convert a command using a specific converter
@@ -182,9 +224,21 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand
   // SMESH_Mesh method?
   map< _pyID, Handle(_pyMesh) >::iterator id_mesh = myMeshes.find( objID );
   if ( id_mesh != myMeshes.end() ) {
+    if ( aCommand->GetMethod() == "GetMeshEditor" ) { // MeshEditor creation
+      _pyID editorID = aCommand->GetResultValue();
+      Handle(_pyMeshEditor) editor = new _pyMeshEditor( aCommand );
+      myMeshEditors.insert( make_pair( editorID, editor ));
+      return aCommand;
+    }
     id_mesh->second->Process( aCommand );
     return aCommand;
   }
+  // SMESH_MeshEditor method?
+  map< _pyID, Handle(_pyMeshEditor) >::iterator id_editor = myMeshEditors.find( objID );
+  if ( id_editor != myMeshEditors.end() ) {
+    id_editor->second->Process( aCommand );
+    return aCommand;
+  }
   // SMESH_Hypothesis method?
   list< Handle(_pyHypothesis) >::iterator hyp = myHypos.begin();
   for ( ; hyp != myHypos.end(); ++hyp )
@@ -197,7 +251,7 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand
   AddMeshAccessorMethod( aCommand );
 
   // Add access to a wrapped algorithm
-  AddAlgoAccessorMethod( aCommand ); // ??? what if algo won't be wrapped at all ???
+  //  AddAlgoAccessorMethod( aCommand ); // ??? what if algo won't be wrapped at all ???
 
   // PAL12227. PythonDump was not updated at proper time; result is
   //     aCriteria.append(SMESH.Filter.Criterion(17,26,0,'L1',26,25,1e-07,SMESH.EDGE,-1))
@@ -234,15 +288,26 @@ void _pyGen::Process( const Handle(_pyCommand)& theCommand )
   // Concatenate( [mesh1, ...], ... )
   // CreateHypothesis( theHypType, theLibName )
   // Compute( mesh, geom )
-
+  // mesh creation
   if ( theCommand->GetMethod() == "CreateMesh" ||
-       theCommand->GetMethod() == "CreateEmptyMesh" )
+       theCommand->GetMethod() == "CreateEmptyMesh" ||
+       theCommand->GetMethod() == "CreateMeshesFromUNV" ||
+       theCommand->GetMethod() == "CreateMeshesFromSTL")
   {
     Handle(_pyMesh) mesh = new _pyMesh( theCommand );
     myMeshes.insert( make_pair( mesh->GetID(), mesh ));
     return;
   }
 
+  if(theCommand->GetMethod() == "CreateMeshesFromMED")
+  {
+    for(int ind = 0;ind<theCommand->GetNbResultValues();ind++)
+    {
+      Handle(_pyMesh) mesh = new _pyMesh( theCommand, theCommand->GetResultValue(ind));
+      myMeshes.insert( make_pair( theCommand->GetResultValue(ind), mesh ));     
+    }
+  }
+
   // CreateHypothesis()
   if ( theCommand->GetMethod() == "CreateHypothesis" )
   {
@@ -272,14 +337,29 @@ void _pyGen::Process( const Handle(_pyCommand)& theCommand )
     myHasPattern = true;
   }
 
-  // smeshgen.Method() --> smesh.smesh.Method()
-  theCommand->SetObject( SMESH_2smeshpy::GenName() );
-
   // Concatenate( [mesh1, ...], ... )
   if ( theCommand->GetMethod() == "Concatenate" )
   {
     AddMeshAccessorMethod( theCommand );
   }
+
+  // Replace name of SMESH_Gen
+
+  // names of SMESH_Gen methods fully equal to methods defined in smesh.py
+  static TStringSet smeshpyMethods;
+  if ( smeshpyMethods.empty() ) {
+    const char * names[] =
+      { "SetEmbeddedMode","IsEmbeddedMode","SetCurrentStudy","GetCurrentStudy",
+        "GetPattern","GetSubShapesId",
+        "" }; // <- mark of array end
+    smeshpyMethods.Insert( names );
+  }
+  if ( smeshpyMethods.Contains( theCommand->GetMethod() ))
+    // smeshgen.Method() --> smesh.Method()
+    theCommand->SetObject( SMESH_2smeshpy::SmeshpyName() );
+  else
+    // smeshgen.Method() --> smesh.smesh.Method()
+    theCommand->SetObject( SMESH_2smeshpy::GenName() );
 }
 
 //================================================================================
@@ -307,7 +387,7 @@ void _pyGen::Flush()
 
 //================================================================================
 /*!
- * \brief Add access method to mesh that is an object or an argument
+ * \brief Add access method to mesh that is an argument
   * \param theCmd - command to add access method
   * \retval bool - true if added
  */
@@ -372,13 +452,13 @@ Handle(_pyHypothesis) _pyGen::FindHyp( const _pyID& theHypID )
 //================================================================================
 
 Handle(_pyHypothesis) _pyGen::FindAlgo( const _pyID& theGeom, const _pyID& theMesh,
-                                      const TCollection_AsciiString& theAlgoType )
+                                        const Handle(_pyHypothesis)& theHypothesis )
 {
   list< Handle(_pyHypothesis) >::iterator hyp = myHypos.begin();
   for ( ; hyp != myHypos.end(); ++hyp )
     if ( !hyp->IsNull() &&
          (*hyp)->IsAlgo() &&
-         (*hyp)->GetType() == theAlgoType &&
+         theHypothesis->CanBeCreatedBy( (*hyp)->GetAlgoType() ) &&
          (*hyp)->GetGeom() == theGeom &&
          (*hyp)->GetMesh() == theMesh )
       return *hyp;
@@ -472,7 +552,7 @@ static bool sameGroupType( const _pyID&                   grpID,
       case GEOM::SOLID:
       case GEOM::SHELL:  type = SMESH::VOLUME; break;
       case GEOM::COMPOUND: {
-        GEOM::GEOM_Gen_var aGeomGen = SMESH_Gen_i::GetSMESHGen()->GetGeomEngine();
+        GEOM::GEOM_Gen_ptr aGeomGen = SMESH_Gen_i::GetSMESHGen()->GetGeomEngine();
         if ( !aGeomGen->_is_nil() ) {
           GEOM::GEOM_IGroupOperations_var aGrpOp =
             aGeomGen->GetIGroupOperations( study->StudyId() );
@@ -520,12 +600,32 @@ _pyMesh::_pyMesh(const Handle(_pyCommand) theCreationCmd):
 {
   // convert my creation command
   Handle(_pyCommand) creationCmd = GetCreationCmd();
-  creationCmd->SetObject( SMESH_2smeshpy::SmeshpyName() );
-  creationCmd->SetMethod( "Mesh" );
+  TCollection_AsciiString str = creationCmd->GetMethod();
+  
+  creationCmd->SetObject( SMESH_2smeshpy::SmeshpyName() ); 
+  if(str != "CreateMeshesFromUNV" &&
+     str != "CreateMeshesFromMED" &&
+     str != "CreateMeshesFromSTL")
+    creationCmd->SetMethod( "Mesh" );
 
   theGen->SetAccessorMethod( GetID(), "GetMesh()" );
 }
 
+//================================================================================
+/*!
+ * \brief 
+  * \param theCreationCmd - 
+ */
+//================================================================================
+_pyMesh::_pyMesh(const Handle(_pyCommand) theCreationCmd, const TCollection_AsciiString& id):
+  _pyObject(theCreationCmd), myHasEditor(false)
+{
+  // convert my creation command
+  Handle(_pyCommand) creationCmd = GetCreationCmd();
+  creationCmd->SetObject( SMESH_2smeshpy::SmeshpyName() ); 
+  theGen->SetAccessorMethod( id, "GetMesh()" );
+}
+
 //================================================================================
 /*!
  * \brief Convert a IDL API command of SMESH::Mesh to a method call of python Mesh
@@ -535,7 +635,8 @@ _pyMesh::_pyMesh(const Handle(_pyCommand) theCreationCmd):
 
 void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
 {
-  // smesh.py wraps the following methods:
+  // some methods of SMESH_Mesh interface needs special conversion
+  // to methods of Mesh python class
   //
   // 1. GetSubMesh(geom, name) + AddHypothesis(geom, algo)
   //     --> in Mesh_Algorithm.Create(mesh, geom, hypo, so)
@@ -543,21 +644,16 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
   //     --> in Mesh_Algorithm.Hypothesis(hyp, args, so)
   // 3. CreateGroupFromGEOM(type, name, grp)
   //     --> in Mesh.Group(grp, name="")
-  // 4. ExportToMED(f, opt, version)
-  //     --> in Mesh.ExportToMED( f, version, opt=0 )
-  // 5. ExportMED(f, opt)
-  //     --> in Mesh.ExportMED( f,opt=0 )
-  // 6. ExportDAT(f)
-  //     --> in Mesh.ExportDAT( f )
-  // 7. ExportUNV(f)
-  //     --> in Mesh.ExportUNV(f)
-  // 8. ExportSTL(f, ascii)
-  //     --> in Mesh.ExportSTL(f, ascii=1)
+  // 4. ExportToMED(f, auto_groups, version)
+  //     --> in Mesh.ExportMED( f, auto_groups, version )
+  // 5. etc
 
   const TCollection_AsciiString method = theCommand->GetMethod();
+  // ----------------------------------------------------------------------
   if ( method == "GetSubMesh" ) {
     mySubmeshes.push_back( theCommand );
   }
+  // ----------------------------------------------------------------------
   else if ( method == "AddHypothesis" ) { // mesh.AddHypothesis(geom, HYPO )
     myAddHypCmds.push_back( theCommand );
     // set mesh to hypo
@@ -569,6 +665,7 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
         hyp->SetMesh( this->GetID() );
     }
   }
+  // ----------------------------------------------------------------------
   else if ( method == "CreateGroupFromGEOM" ) {// (type, name, grp)
     _pyID grp = theCommand->GetArg( 3 );
     if ( sameGroupType( grp, theCommand->GetArg( 1 )) ) { // --> Group(grp)
@@ -580,16 +677,18 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
       AddMeshAccess( theCommand );
     }
   }
-  else if ( method == "ExportToMED" ) {//(f, opt, version)
-    // --> (f, version, opt)
-    _pyID opt = theCommand->GetArg( 2 );
-    _pyID ver = theCommand->GetArg( 3 );
-    theCommand->SetArg( 2, ver );
-    theCommand->SetArg( 3, opt );
+  // ----------------------------------------------------------------------
+  else if ( method == "ExportToMED" ) { // ExportToMED() --> ExportMED()
+    theCommand->SetMethod( "ExportMED" );
+  }
+  // ----------------------------------------------------------------------
+  else if ( method == "CreateGroup" ) { // CreateGroup() --> CreateEmptyGroup()
+    theCommand->SetMethod( "CreateEmptyGroup" );
   }
+  // ----------------------------------------------------------------------
   else if ( method == "RemoveHypothesis" ) // (geom, hyp)
   {
-    const _pyID & hypID = theCommand->GetArg( 2 );
+    _pyID hypID = theCommand->GetArg( 2 );
 
     // check if this mesh still has corresponding addition command
     bool hasAddCmd = false;
@@ -608,63 +707,56 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
       }
     }
     Handle(_pyHypothesis) hyp = theGen->FindHyp( hypID );
-    if ( ! hasAddCmd ) { // hypo addition already wrapped
-      // access to wrapped mesh
-      AddMeshAccess( theCommand );
-      // access to wrapped algo
-      if ( !hyp.IsNull() && hyp->IsAlgo() && hyp->IsWrapped() )
-        theCommand->SetArg( 2, theCommand->GetArg( 2 ) + ".GetAlgorithm()" );
+    if ( ! hasAddCmd && hypID.Length() != 0 ) { // hypo addition already wrapped
+      // RemoveHypothesis(geom, hyp) --> RemoveHypothesis( hyp, geom=0 )
+      _pyID geom = theCommand->GetArg( 1 );
+      theCommand->RemoveArgs();
+      theCommand->SetArg( 1, hypID );
+      if ( geom != GetGeom() )
+        theCommand->SetArg( 2, geom );
     }
     // remove hyp from myHypos
     myHypos.remove( hyp );
   }
-
-  // leave only one "  mesh_editor_<nb> = mesh.GetMeshEditor()"
-  else if ( theCommand->GetMethod() == "GetMeshEditor")
-  {
-    if ( myHasEditor )
-      theCommand->Clear();
-    else
-      AddMeshAccess( theCommand );
-    myHasEditor = true;
-  }
-
-  // apply theCommand to the mesh wrapped by smeshpy mesh
+  // add accessor method if necessary
   else
   {
-    AddMeshAccess( theCommand );
+    if ( NeedMeshAccess( theCommand ))
+      // apply theCommand to the mesh wrapped by smeshpy mesh
+      AddMeshAccess( theCommand );
   }
 }
 
-namespace {
-
-  //================================================================================
-  /*!
-   * \brief add addition result treatement command
-    * \param addCmd - hypothesis addition command
-   */
-  //================================================================================
+//================================================================================
+/*!
+ * \brief Return True if addition of accesor method is needed
+ */
+//================================================================================
 
-  void addErrorTreatmentCmd( Handle(_pyCommand) & addCmd,
-                             const bool           isAlgo)
-  {
-    return; // TO DEBUD - TreatHypoStatus() is not placed right after addCmd
-    // addCmd: status = mesh.AddHypothesis( geom, hypo )
-    // treatement command:
-    //    def TreatHypoStatus(status, hypName, geomName, isAlgo):
-    TCollection_AsciiString status = addCmd->GetResultValue();
-    if ( !status.IsEmpty() ) {
-      const _pyID& geomID = addCmd->GetArg( 1 );
-      const _pyID& hypoID = addCmd->GetArg( 2 );
-      TCollection_AsciiString cmdStr = addCmd->GetIndentation() +
-        SMESH_2smeshpy::SmeshpyName() + ".TreatHypoStatus( " + status + ", " +
-        SMESH_2smeshpy::SmeshpyName() + ".GetName(" + hypoID + "), " +
-        SMESH_2smeshpy::SmeshpyName() + ".GetName(" + geomID + "), " +
-        (char*)( isAlgo ? "True" : "False" ) + " )";
-      Handle(_pyCommand) cmd = theGen->AddCommand( cmdStr );
-      addCmd->AddDependantCmd( cmd, true );
-    }
-  }
+bool _pyMesh::NeedMeshAccess( const Handle(_pyCommand)& theCommand )
+{
+  // names of SMESH_Mesh methods fully equal to methods of class Mesh, so
+  // no conversion is needed for them at all:
+  static TStringSet sameMethods;
+  if ( sameMethods.empty() ) {
+    const char * names[] =
+      { "ExportDAT","ExportUNV","ExportSTL", "RemoveGroup","RemoveGroupWithContents",
+        "GetGroups","UnionGroups","IntersectGroups","CutGroups","GetLog","GetId","ClearLog",
+        "GetStudyId","HasDuplicatedGroupNamesMED","GetMEDMesh","NbNodes","NbElements",
+        "NbEdges","NbEdgesOfOrder","NbFaces","NbFacesOfOrder","NbTriangles",
+        "NbTrianglesOfOrder","NbQuadrangles","NbQuadranglesOfOrder","NbPolygons","NbVolumes",
+        "NbVolumesOfOrder","NbTetras","NbTetrasOfOrder","NbHexas","NbHexasOfOrder",
+        "NbPyramids","NbPyramidsOfOrder","NbPrisms","NbPrismsOfOrder","NbPolyhedrons",
+        "NbSubMesh","GetElementsId","GetElementsByType","GetNodesId","GetElementType",
+        "GetSubMeshElementsId","GetSubMeshNodesId","GetSubMeshElementType","Dump","GetNodeXYZ",
+        "GetNodeInverseElements","GetShapeID","GetShapeIDForElem","GetElemNbNodes",
+        "GetElemNode","IsMediumNode","IsMediumNodeOfAnyElem","ElemNbEdges","ElemNbFaces",
+        "IsPoly","IsQuadratic","BaryCenter","GetHypothesisList", "SetAutoColor", "GetAutoColor",
+        "" }; // <- mark of end
+    sameMethods.Insert( names );
+  }
+
+  return !sameMethods.Contains( theCommand->GetMethod() );
 }
 
 //================================================================================
@@ -682,19 +774,19 @@ void _pyMesh::Flush()
   for ( cmd = myAddHypCmds.begin(); cmd != myAddHypCmds.end(); ++cmd )
   {
     Handle(_pyCommand) addCmd = *cmd;
-    const _pyID& algoID = addCmd->GetArg( 2 );
+    _pyID algoID = addCmd->GetArg( 2 );
     Handle(_pyHypothesis) algo = theGen->FindHyp( algoID );
     if ( algo.IsNull() || !algo->IsAlgo() )
       continue;
     // try to convert
     _pyID geom = addCmd->GetArg( 1 );
+    bool isLocalAlgo = ( geom != GetGeom() );
     if ( algo->Addition2Creation( addCmd, this->GetID() )) // OK
     {
       // wrapped algo is created atfer mesh creation
       GetCreationCmd()->AddDependantCmd( addCmd );
 
-      if ( geom != GetGeom() ) // local algo
-      {
+      if ( isLocalAlgo ) {
         // mesh.AddHypothesis(geom, ALGO ) --> mesh.AlgoMethod(geom)
         addCmd->SetArg( addCmd->GetNbArgs() + 1,
                         TCollection_AsciiString( "geom=" ) + geom );
@@ -709,15 +801,13 @@ void _pyMesh::Flush()
         }
       }
     }
-    else // ALGO was already created
+    else // KO - ALGO was already created
     {
-      // mesh.AddHypothesis(geom, ALGO ) --> mesh.GetMesh().AddHypothesis(geom, ALGO )
-      AddMeshAccess( addCmd );
-      // mesh.GetMesh().AddHypothesis(geom, ALGO ) ->
-      // mesh.GetMesh().AddHypothesis(geom, ALGO.GetAlgorithm() )
-      addCmd->SetArg( 2, addCmd->GetArg( 2 ) + ".GetAlgorithm()" );
-      // add addition result treatement cmd
-      addErrorTreatmentCmd( addCmd, true );
+      // mesh.AddHypothesis(geom, ALGO) --> mesh.AddHypothesis(ALGO, geom=0)
+      addCmd->RemoveArgs();
+      addCmd->SetArg( 1, algoID );
+      if ( isLocalAlgo )
+        addCmd->SetArg( 2, geom );
     }
   }
 
@@ -726,24 +816,27 @@ void _pyMesh::Flush()
   for ( cmd = myAddHypCmds.begin(); cmd != myAddHypCmds.end(); ++cmd )
   {
     Handle(_pyCommand) addCmd = *cmd;
-    const _pyID& hypID = addCmd->GetArg( 2 );
+    _pyID hypID = addCmd->GetArg( 2 );
     Handle(_pyHypothesis) hyp = theGen->FindHyp( hypID );
     if ( hyp.IsNull() || hyp->IsAlgo() )
       continue;
-    if ( !hyp->Addition2Creation( addCmd, this->GetID() ))
-    {
-      AddMeshAccess( addCmd );
-      // add addition result treatement cmd
-      addErrorTreatmentCmd( addCmd, false );
+    bool converted = hyp->Addition2Creation( addCmd, this->GetID() );
+    if ( !converted ) {
+      // mesh.AddHypothesis(geom, HYP) --> mesh.AddHypothesis(HYP, geom=0)
+      _pyID geom = addCmd->GetArg( 1 );
+      addCmd->RemoveArgs();
+      addCmd->SetArg( 1, hypID );
+      if ( geom != GetGeom() )
+        addCmd->SetArg( 2, geom );
     }
   }
 
   // sm = mesh.GetSubMesh(geom, name) --> sm = mesh.GetMesh().GetSubMesh(geom, name)
-  for ( cmd = mySubmeshes.begin(); cmd != mySubmeshes.end(); ++cmd ) {
-    Handle(_pyCommand) subCmd = *cmd;
-    if ( subCmd->GetNbArgs() > 0 )
-      AddMeshAccess( subCmd );
-  }
+//   for ( cmd = mySubmeshes.begin(); cmd != mySubmeshes.end(); ++cmd ) {
+//     Handle(_pyCommand) subCmd = *cmd;
+//     if ( subCmd->GetNbArgs() > 0 )
+//       AddMeshAccess( subCmd );
+//   }
   myAddHypCmds.clear();
   mySubmeshes.clear();
 
@@ -753,6 +846,69 @@ void _pyMesh::Flush()
     (*hyp)->Flush();
 }
 
+//================================================================================
+/*!
+ * \brief MeshEditor convert its commands to ones of mesh
+ */
+//================================================================================
+
+_pyMeshEditor::_pyMeshEditor(const Handle(_pyCommand)& theCreationCmd):
+  _pyObject( theCreationCmd )
+{
+  myMesh = theCreationCmd->GetObject();
+  myCreationCmdStr = theCreationCmd->GetString();
+  theCreationCmd->Clear();
+}
+
+//================================================================================
+/*!
+ * \brief convert its commands to ones of mesh
+ */
+//================================================================================
+
+void _pyMeshEditor::Process( const Handle(_pyCommand)& theCommand)
+{
+  // names of SMESH_MeshEditor methods fully equal to methods of class Mesh, so
+  // commands calling this methods are converted to calls of methods of Mesh
+  static TStringSet sameMethods;
+  if ( sameMethods.empty() ) {
+    const char * names[] = {
+      "RemoveElements","RemoveNodes","AddNode","AddEdge","AddFace","AddPolygonalFace",
+      "AddVolume","AddPolyhedralVolume","AddPolyhedralVolumeByFaces","MoveNode",
+      "InverseDiag","DeleteDiag","Reorient","ReorientObject","SplitQuad","SplitQuadObject",
+      "BestSplit","Smooth","SmoothObject","SmoothParametric","SmoothParametricObject",
+      "ConvertToQuadratic","ConvertFromQuadratic","RenumberNodes","RenumberElements",
+      "RotationSweep","RotationSweepObject","ExtrusionSweep","AdvancedExtrusion",
+      "ExtrusionSweepObject","ExtrusionSweepObject1D","ExtrusionSweepObject2D","Mirror",
+      "MirrorObject","Translate","TranslateObject","Rotate","RotateObject",
+      "FindCoincidentNodes","FindCoincidentNodesOnPart","MergeNodes","FindEqualElements",
+      "MergeElements","MergeEqualElements","SewFreeBorders","SewConformFreeBorders",
+      "SewBorderToSide","SewSideElements","ChangeElemNodes","GetLastCreatedNodes",
+      "GetLastCreatedElems",
+      "MirrorMakeMesh","MirrorObjectMakeMesh","TranslateMakeMesh",
+      "TranslateObjectMakeMesh","RotateMakeMesh","RotateObjectMakeMesh",
+      "" }; // <- mark of the end
+    sameMethods.Insert( names );
+  }
+  //theGen->AddMeshAccessorMethod( theCommand ); // for *Object()
+
+  if ( sameMethods.Contains( theCommand->GetMethod() )) {
+    theCommand->SetObject( myMesh );
+
+    // meshes made by *MakeMesh() methods are not wrapped by _pyMesh,
+    // so let _pyMesh care of it (TMP?)
+    if ( theCommand->GetMethod().Search("MakeMesh") != -1 )
+      _pyMesh( new _pyCommand( theCommand->GetString(), 0 )); // for theGen->SetAccessorMethod()
+  }
+  else {
+    // editor creation command is needed only if any editor function is called
+    if ( !myCreationCmdStr.IsEmpty() ) {
+      GetCreationCmd()->GetString() = myCreationCmdStr;
+      myCreationCmdStr.Clear();
+    }
+  }
+}
+
 //================================================================================
 /*!
  * \brief _pyHypothesis constructor
@@ -855,25 +1011,37 @@ Handle(_pyHypothesis) _pyHypothesis::NewHypothesis( const Handle(_pyCommand)& th
     hyp->AddArgMethod( "SetNumberOfSegments");
     hyp->AddArgMethod( "SetPythonLog10RatioFunction");
   }
-  // 2D ----------
-  else if ( hypType == "MEFISTO_2D" ) {
+  // MEFISTO_2D ----------
+  else if ( hypType == "MEFISTO_2D" ) { // MEFISTO_2D
     algo->SetConvMethodAndType( "Triangle", hypType.ToCString());
   }
   else if ( hypType == "MaxElementArea" ) {
     hyp->SetConvMethodAndType( "MaxElementArea", "MEFISTO_2D");
+    hyp->SetConvMethodAndType( "MaxElementArea", "NETGEN_2D_ONLY");
     hyp->AddArgMethod( "SetMaxElementArea");
   }
   else if ( hypType == "LengthFromEdges" ) {
     hyp->SetConvMethodAndType( "LengthFromEdges", "MEFISTO_2D");
+    hyp->SetConvMethodAndType( "LengthFromEdges", "NETGEN_2D_ONLY");
   }
+  // Quadrangle_2D ----------
   else if ( hypType == "Quadrangle_2D" ) {
     algo->SetConvMethodAndType( "Quadrangle" , hypType.ToCString());
   }
   else if ( hypType == "QuadranglePreference" ) {
     hyp->SetConvMethodAndType( "QuadranglePreference", "Quadrangle_2D");
-  }
-  // 3D ----------
-  else if ( hypType == "NETGEN_3D") {
+    hyp->SetConvMethodAndType( "QuadranglePreference", "NETGEN_2D_ONLY");
+  }
+  // NETGEN ----------
+//   else if ( hypType == "NETGEN_2D") { // 1D-2D
+//     algo->SetConvMethodAndType( "Triangle" , hypType.ToCString());
+//     algo->myArgs.Append( "algo=smesh.NETGEN" );
+//   }
+  else if ( hypType == "NETGEN_2D_ONLY") { // 2D
+    algo->SetConvMethodAndType( "Triangle" , hypType.ToCString());
+    algo->myArgs.Append( "algo=smesh.NETGEN_2D" );
+  }
+  else if ( hypType == "NETGEN_3D") { // 3D
     algo->SetConvMethodAndType( "Tetrahedron" , hypType.ToCString());
     algo->myArgs.Append( "algo=smesh.NETGEN" );
   }
@@ -881,14 +1049,16 @@ Handle(_pyHypothesis) _pyHypothesis::NewHypothesis( const Handle(_pyCommand)& th
     hyp->SetConvMethodAndType( "MaxElementVolume", "NETGEN_3D");
     hyp->AddArgMethod( "SetMaxElementVolume" );
   }
+  // GHS3D_3D ----------
   else if ( hypType == "GHS3D_3D" ) {
     algo->SetConvMethodAndType( "Tetrahedron", hypType.ToCString());
     algo->myArgs.Append( "algo=smesh.GHS3D" );
   }
+  // Hexa_3D ---------
   else if ( hypType == "Hexa_3D" ) {
     algo->SetConvMethodAndType( "Hexahedron", hypType.ToCString());
   }
-  // Repetitive ---------
+  // Repetitive Projection_1D ---------
   else if ( hypType == "Projection_1D" ) {
     algo->SetConvMethodAndType( "Projection1D", hypType.ToCString());
   }
@@ -899,6 +1069,7 @@ Handle(_pyHypothesis) _pyHypothesis::NewHypothesis( const Handle(_pyCommand)& th
     // 2 args of SetVertexAssociation() will become the 3-th and 4-th args of hyp creation command
     hyp->AddArgMethod( "SetVertexAssociation", 2 );
   }
+  // Projection_2D ---------
   else if ( hypType == "Projection_2D" ) {
     algo->SetConvMethodAndType( "Projection2D", hypType.ToCString());
   }
@@ -908,6 +1079,7 @@ Handle(_pyHypothesis) _pyHypothesis::NewHypothesis( const Handle(_pyCommand)& th
     hyp->AddArgMethod( "SetSourceMesh");
     hyp->AddArgMethod( "SetVertexAssociation", 4 );
   }
+  // Projection_3D ---------
   else if ( hypType == "Projection_3D" ) {
     algo->SetConvMethodAndType( "Projection3D", hypType.ToCString());
   }
@@ -917,9 +1089,11 @@ Handle(_pyHypothesis) _pyHypothesis::NewHypothesis( const Handle(_pyCommand)& th
     hyp->AddArgMethod( "SetSourceMesh");
     hyp->AddArgMethod( "SetVertexAssociation", 4 );
   }
+  // Prism_3D ---------
   else if ( hypType == "Prism_3D" ) {
     algo->SetConvMethodAndType( "Prism", hypType.ToCString());
   }
+  // RadialPrism_3D ---------
   else if ( hypType == "RadialPrism_3D" ) {
     algo->SetConvMethodAndType( "Prism", hypType.ToCString());
   }
@@ -932,7 +1106,7 @@ Handle(_pyHypothesis) _pyHypothesis::NewHypothesis( const Handle(_pyCommand)& th
     hyp->SetConvMethodAndType( "LayerDistribution", "RadialPrism_3D");
   }
 
-  if ( !algo->GetCreationMethod().IsEmpty() ) {
+  if ( algo->IsValid() ) {
     return algo;
   }
   return hyp;
@@ -960,7 +1134,7 @@ bool _pyHypothesis::Addition2Creation( const Handle(_pyCommand)& theCmd,
   Handle(_pyHypothesis) algo;
   if ( !IsAlgo() ) {
     // find algo created on myGeom in theMesh
-    algo = theGen->FindAlgo( myGeom, theMesh, GetType() );
+    algo = theGen->FindAlgo( myGeom, theMesh, this );
     if ( algo.IsNull() )
       return false;
     algo->GetCreationCmd()->AddDependantCmd( theCmd );
@@ -970,7 +1144,7 @@ bool _pyHypothesis::Addition2Creation( const Handle(_pyCommand)& theCmd,
   // mesh.AddHypothesis(geom,hyp) --> hyp = <theMesh or algo>.myCreationMethod(args)
   theCmd->SetResultValue( GetID() );
   theCmd->SetObject( IsAlgo() ? theMesh : algo->GetID());
-  theCmd->SetMethod( myCreationMethod );
+  theCmd->SetMethod( IsAlgo() ? GetAlgoCreationMethod() : GetCreationMethod( algo->GetAlgoType() ));
   // set args
   theCmd->RemoveArgs();
   for ( int i = 1; i <= myArgs.Length(); ++i ) {
@@ -1190,7 +1364,7 @@ bool _pyLayerDistributionHypo::Addition2Creation( const Handle(_pyCommand)& theA
   // Convert my creation => me = RadialPrismAlgo.Get3DHypothesis()
 
   // find RadialPrism algo created on <geom> for theMesh
-  Handle(_pyHypothesis) algo = theGen->FindAlgo( geom, theMesh, this->GetType() );
+  Handle(_pyHypothesis) algo = theGen->FindAlgo( geom, theMesh, this );
   if ( !algo.IsNull() ) {
     GetCreationCmd()->SetObject( algo->GetID() );
     GetCreationCmd()->SetMethod( "Get3DHypothesis" );
@@ -1306,7 +1480,7 @@ bool _pySegmentLengthAroundVertexHyp::Addition2Creation( const Handle(_pyCommand
     while ( algo.IsNull() && !geom.IsEmpty()) {
       // try to find geom as a father of <vertex>
       geom = FatherID( geom );
-      algo = theGen->FindAlgo( geom, theMeshID, GetType() );
+      algo = theGen->FindAlgo( geom, theMeshID, this );
     }
     if ( algo.IsNull() )
       return false; // also possible to find geom as brother of veretex...
@@ -1427,6 +1601,54 @@ const TCollection_AsciiString & _pyCommand::GetResultValue()
   return myRes;
 }
 
+//================================================================================
+/*!
+ * \brief Return number of python command result value ResultValue = Obj.Meth()
+  * \retval const int
+ */
+//================================================================================
+
+const int _pyCommand::GetNbResultValues()
+{
+  int begPos = 1;
+  int Nb=0;
+  int endPos = myString.Location( "=", 1, Length() );
+  TCollection_AsciiString str = "";
+  while ( begPos < endPos) {
+    str = GetWord( myString, begPos, true );
+    begPos = begPos+ str.Length();
+    Nb++;
+  }
+  return (Nb-1);
+}
+
+
+//================================================================================
+/*!
+ * \brief Return substring of python command looking like
+ *  ResultValue1 , ResultValue1,... = Obj.Meth() with res index
+ * \retval const TCollection_AsciiString & - ResultValue with res index substring
+ */
+//================================================================================
+const TCollection_AsciiString & _pyCommand::GetResultValue(int res)
+{
+  int begPos = 1;
+  int Nb=0;
+  int endPos = myString.Location( "=", 1, Length() );
+  while ( begPos < endPos) {
+    myRes = GetWord( myString, begPos, true );
+    begPos = begPos + myRes.Length();
+    Nb++;
+    if(res == Nb){
+      myRes.RemoveAll('[');myRes.RemoveAll(']');
+      return myRes;
+    }
+    if(Nb>res)
+      break;
+  }
+  return theEmptyString;
+}
+
 //================================================================================
 /*!
  * \brief Return substring of python command looking like ResVal = Object.Meth()
index 2f1bc027c5abed7015147b8c1b17f7433ea06565..cb8586f015db8b75eb23599712a97e4e44e2d51e 100644 (file)
 
 // ===========================================================================================
 /*!
- * \brief Tool converting SMESH engine calls into commands defined in smesh.py
- *
  * This file was created in order to respond to requirement of bug PAL10494:
  * SMESH python dump uses idl interface.
  *
  * The creation reason is that smesh.py commands defining hypotheses encapsulate
  * several SMESH engine method calls. As well, the dependencies between smesh.py
- * classes differ from ones between SMESH IDL interfaces.
+ * classes differ from ones between corresponding SMESH IDL interfaces.
  * 
- * The only API method here is SMESH_2smeshpy::ConvertScript(), the rest ones are
- * for internal usage
+ * Everything here is for internal usage by SMESH_2smeshpy::ConvertScript()
+ * declared in SMESH_PythonDump.hxx
  *
- * See comments to _pyHypothesis class to know how to assure convertion of a new hypothesis
+ * See comments to _pyHypothesis class to know how to assure convertion of a new
+ * type of hypothesis
  */
 // ===========================================================================================
 
 class Resource_DataMapOfAsciiStringAsciiString;
 
-class SMESH_2smeshpy
-{
-public:
-  /*!
-   * \brief Convert a python script using commands of smesh.py
-   * \param theScript - Input script
-   * \param theEntry2AccessorMethod - The returning method names to access to
-   *        objects wrapped with python class
-   * \retval TCollection_AsciiString - Convertion result
-   */
-  static TCollection_AsciiString
-  ConvertScript(const TCollection_AsciiString& theScript,
-                Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod);
-
-  /*!
-   * \brief Return the name of the python file wrapping IDL API
-    * \retval TCollection_AsciiString - The file name
-   */
-  static char* SmeshpyName() { return "smesh"; }
-  static char* GenName() { return "smesh.smesh"; }
-};
-
 // ===========================================================================================
 // =====================
 //    INTERNAL STUFF
@@ -93,6 +70,7 @@ DEFINE_STANDARD_HANDLE (_pyCommand   ,Standard_Transient);
 DEFINE_STANDARD_HANDLE (_pyObject    ,Standard_Transient);
 DEFINE_STANDARD_HANDLE (_pyGen       ,_pyObject);
 DEFINE_STANDARD_HANDLE (_pyMesh      ,_pyObject);
+DEFINE_STANDARD_HANDLE (_pyMeshEditor,_pyObject);
 DEFINE_STANDARD_HANDLE (_pyHypothesis,_pyObject);
 DEFINE_STANDARD_HANDLE (_pyAlgorithm ,_pyHypothesis);
 
@@ -133,6 +111,8 @@ public:
   bool IsEmpty() const { return myString.IsEmpty(); }
   TCollection_AsciiString GetIndentation();
   const TCollection_AsciiString & GetResultValue();
+  const int GetNbResultValues();
+  const TCollection_AsciiString & GetResultValue(int res);
   const TCollection_AsciiString & GetObject();
   const TCollection_AsciiString & GetMethod();
   const TCollection_AsciiString & GetArg( int index );
@@ -198,20 +178,21 @@ public:
   void Flush();
   Handle(_pyHypothesis) FindHyp( const _pyID& theHypID );
   Handle(_pyHypothesis) FindAlgo( const _pyID& theGeom, const _pyID& theMesh,
-                                 const TCollection_AsciiString& theAlgoType);
+                                  const Handle(_pyHypothesis)& theHypothesis);
   void ExchangeCommands( Handle(_pyCommand) theCmd1, Handle(_pyCommand) theCmd2 );
   void SetCommandAfter( Handle(_pyCommand) theCmd, Handle(_pyCommand) theAfterCmd );
   std::list< Handle(_pyCommand) >& GetCommands() { return myCommands; }
   void SetAccessorMethod(const _pyID& theID, const char* theMethod );
   bool AddMeshAccessorMethod( Handle(_pyCommand) theCmd ) const;
   bool AddAlgoAccessorMethod( Handle(_pyCommand) theCmd ) const;
-  const char* AccessorMethod() const { return SMESH_2smeshpy::GenName(); }
+  const char* AccessorMethod() const;
 private:
-  std::map< _pyID, Handle(_pyMesh) > myMeshes;
-  std::list< Handle(_pyHypothesis) > myHypos;
-  std::list< Handle(_pyCommand) >    myCommands;
-  int                                myNbCommands;
-  bool                               myHasPattern;
+  std::map< _pyID, Handle(_pyMesh) >       myMeshes;
+  std::map< _pyID, Handle(_pyMeshEditor) > myMeshEditors;
+  std::list< Handle(_pyHypothesis) >       myHypos;
+  std::list< Handle(_pyCommand) >          myCommands;
+  int                                      myNbCommands;
+  bool                                     myHasPattern;
   Resource_DataMapOfAsciiStringAsciiString& myID2AccessorMethod;
 
   DEFINE_STANDARD_RTTI (_pyGen)
@@ -231,32 +212,51 @@ class _pyMesh: public _pyObject
   bool                            myHasEditor;
 public:
   _pyMesh(const Handle(_pyCommand) theCreationCmd);
+  _pyMesh(const Handle(_pyCommand) theCreationCmd, const TCollection_AsciiString &);
   const _pyID& GetGeom() { return GetCreationCmd()->GetArg(1); }
   void Process( const Handle(_pyCommand)& theCommand);
   void Flush();
   const char* AccessorMethod() const { return _pyMesh_ACCESS_METHOD; }
 private:
+  static bool NeedMeshAccess( const Handle(_pyCommand)& theCommand );
   static void AddMeshAccess( const Handle(_pyCommand)& theCommand )
   { theCommand->SetObject( theCommand->GetObject() + "." _pyMesh_ACCESS_METHOD ); }
 
+  //friend class _pyMeshEditor;
   DEFINE_STANDARD_RTTI (_pyMesh)
 };
 #undef _pyMesh_ACCESS_METHOD 
 
+// -------------------------------------------------------------------------------------
+/*!
+ * \brief MeshEditor convert its commands to ones of mesh
+ */
+// -------------------------------------------------------------------------------------
+class _pyMeshEditor: public _pyObject
+{
+  _pyID myMesh;
+  TCollection_AsciiString myCreationCmdStr;
+public:
+  _pyMeshEditor(const Handle(_pyCommand)& theCreationCmd);
+  void Process( const Handle(_pyCommand)& theCommand);
+  virtual void Flush() {}
+
+  DEFINE_STANDARD_RTTI (_pyMesh)
+};
+
 // -------------------------------------------------------------------------------------
 /*!
  * \brief Root class for hypothesis
  *
- * HOWTO assure convertion of a new hypothesis
- * In NewHypothesis():
- * 1. add a case for the name of the new hypothesis and
- * 2. initialize _pyHypothesis fields:
- *    . myDim - hypothesis dimention;
- *    . myType - type name of the algorithm creating the hypothesis;
- *    . myCreationMethod - method name of the algorithm creating the hypothesis;
- *    . append to myArgMethods interface methods setting param values in the
- *    order they are used when myCreationMethod is called. It is supposed that
- *    each interface method sets only one parameter, if it is not so, you are
+ * HOWTO assure convertion of a new type of hypothesis
+ * In _pyHypothesis::NewHypothesis():
+ * 1. add a case for the name of the new hypothesis
+ * 2. use SetConvMethodAndType() to set
+ *    . for algo: algorithm name and method of Mesh creating the algo
+ *    . for hypo: name of the algorithm and method creating the hypothesis
+ * 3. append to myArgMethods interface methods setting param values in the
+ *    order they are used when creation method is called. If arguments of
+ *    the creation method can't be easily got from calls of hypothesis methods, you are
  *    to derive a specific class from _pyHypothesis that would redefine Process(),
  *    see _pyComplexParamHypo for example
  */
@@ -264,41 +264,43 @@ private:
 class _pyHypothesis: public _pyObject
 {
 protected:
-  bool    myIsAlgo, myIsWrapped; //myIsLocal, myIsConverted;
-  //int     myDim/*, myAdditionCmdNb*/;
-  _pyID    myGeom, myMesh;
-  TCollection_AsciiString       myCreationMethod, myType;
-  TColStd_SequenceOfAsciiString myArgs;
-  TColStd_SequenceOfAsciiString myArgMethods;
-  TColStd_SequenceOfInteger     myNbArgsByMethod;
+  bool    myIsAlgo, myIsWrapped;
+  _pyID   myGeom,   myMesh;
+  // a hypothesis can be used and created by different algos by different methods
+  std::map<TCollection_AsciiString, TCollection_AsciiString > myType2CreationMethod;
+  //TCollection_AsciiString       myCreationMethod, myType;
+  TColStd_SequenceOfAsciiString myArgs;           // creation arguments
+  TColStd_SequenceOfAsciiString myArgMethods;     // hypo methods setting myArgs
+  TColStd_SequenceOfInteger     myNbArgsByMethod; // nb args set by each method
   std::list<Handle(_pyCommand)>  myArgCommands;
   std::list<Handle(_pyCommand)>  myUnknownCommands;
 public:
   _pyHypothesis(const Handle(_pyCommand)& theCreationCmd);
-  void SetConvMethodAndType(const char* creationMethod, const char* type=0)
-  { myCreationMethod = (char*)creationMethod; if ( type ) myType = (char*)type; }
-//   void SetDimMethodType(const int dim, const char* creationMethod, const char* type=0)
-//   { myDim = dim; myCreationMethod = (char*)creationMethod; if ( type ) myType = (char*)type; }
+  void SetConvMethodAndType(const char* creationMethod, const char* type)
+  { myType2CreationMethod[ (char*)type ] = (char*)creationMethod; }
   void AddArgMethod(const char* method, const int nbArgs = 1)
   { myArgMethods.Append( (char*)method ); myNbArgsByMethod.Append( nbArgs ); }
   const TColStd_SequenceOfAsciiString& GetArgs() const { return myArgs; }
-  const TCollection_AsciiString& GetCreationMethod() const { return myCreationMethod; }
   const std::list<Handle(_pyCommand)>& GetArgCommands() const { return myArgCommands; }
   void ClearAllCommands();
   virtual bool IsAlgo() const { return myIsAlgo; }
+  bool IsValid() const { return !myType2CreationMethod.empty(); }
   bool IsWrapped() const { return myIsWrapped; }
-  //bool & IsConverted() { return myIsConverted; }
-  //int GetDim() const { return myDim; }
   const _pyID & GetGeom() const { return myGeom; }
   void SetMesh( const _pyID& theMeshId) { if ( myMesh.IsEmpty() ) myMesh = theMeshId; }
   const _pyID & GetMesh() const { return myMesh; }
-  const TCollection_AsciiString GetType() { return myType; }
+  const TCollection_AsciiString& GetAlgoType() const
+  { return myType2CreationMethod.begin()->first; }
+  const TCollection_AsciiString& GetAlgoCreationMethod() const
+  { return myType2CreationMethod.begin()->second; }
+  bool CanBeCreatedBy(const TCollection_AsciiString& algoType ) const
+  { return myType2CreationMethod.find( algoType ) != myType2CreationMethod.end(); }
+  const TCollection_AsciiString& GetCreationMethod(const TCollection_AsciiString& algoType) const
+  { return myType2CreationMethod.find( algoType )->second; }
   bool IsWrappable(const _pyID& theMesh) { return !myIsWrapped && myMesh == theMesh; }
   virtual bool Addition2Creation( const Handle(_pyCommand)& theAdditionCmd,
                                   const _pyID&              theMesh);
   static Handle(_pyHypothesis) NewHypothesis( const Handle(_pyCommand)& theCreationCmd);
-  //     bool HasMesh() const { return !myMesh.IsEmpty(); }
-  //     void SetGeom( const _pyID& theGeomID ) { myGeom = theGeomID; }
   void Process( const Handle(_pyCommand)& theCommand);
   void Flush();
 
index e1079ebc7c43c54594303b4afef3a6e8923d8e9b..2d5d08883168734146f5a55a9443f1eac45c8865 100644 (file)
@@ -749,6 +749,53 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl
   if (aSeq->Value(aLen) < aScriptLength)
     anUpdatedScript += aScript.SubString(aSeq->Value(aLen) + 1, aScriptLength);
 
+
+  SMESH_Gen_i* aSMESHGenI = SMESH_Gen_i::GetSMESHGen();
+  SALOMEDS::Study_ptr aStudy = aSMESHGenI->GetCurrentStudy();
+  if( !CORBA::is_nil(aStudy) )
+  {
+    SALOMEDS::SObject_var aComp = aStudy->FindComponent(ComponentDataType());
+    if( !CORBA::is_nil(aComp) )
+    {
+      SALOMEDS::ChildIterator_var Itr = aStudy->NewChildIterator(aComp);
+      for( Itr->InitEx(true); Itr->More(); Itr->Next() )
+      {
+       SALOMEDS::SObject_var aSObj = Itr->Value();
+       CORBA::String_var aName = aSObj->GetName();
+
+       SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow( SMESH_Gen_i::SObjectToObject( aSObj ) );
+       if( !CORBA::is_nil(aMesh) )
+       {
+         bool isAutoColor = aMesh->GetAutoColor();
+         if( isAutoColor )
+         {
+           anUpdatedScript += "\n\t";
+           anUpdatedScript += (char*)aName.in();
+           anUpdatedScript += ".SetAutoColor(1)";
+         }
+       }
+       SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH_Gen_i::SObjectToObject( aSObj ) );
+       if( !CORBA::is_nil(aGroup) )
+       {
+         SALOMEDS::Color aColor = aGroup->GetColor();
+         if ( aColor.R > 0 || aColor.G > 0 || aColor.B > 0 )
+         {
+           anUpdatedScript += "\n\t";
+           anUpdatedScript += (char*)aName.in();
+           anUpdatedScript += ".SetColor(SALOMEDS.Color(";
+           anUpdatedScript += aColor.R;
+           anUpdatedScript += ",";
+           anUpdatedScript += aColor.G;
+           anUpdatedScript += ",";
+           anUpdatedScript += aColor.B;
+           anUpdatedScript += "))";
+         }
+       }
+      }
+    }
+  }
+
   // Remove removed objects
   if ( seqRemoved.Length() > 0 ) {
     anUpdatedScript += "\n\t## some objects were removed";
index d9c221ad70cc049c25b5d660099881a9056ec0a1..bfb52b21802a22e640e09a1d0ed9d5beb3f3811f 100644 (file)
 
 #include "SMESHDS_Mesh.hxx"
 
+#include <BRep_Tool.hxx>
+#include <Geom_CylindricalSurface.hxx>
+#include <Geom_Plane.hxx>
+#include <LDOMParser.hxx>
+#include <LDOMString.hxx>
 #include <LDOM_Document.hxx>
 #include <LDOM_Element.hxx>
 #include <LDOM_Node.hxx>
-#include <LDOMString.hxx>
-#include <LDOMParser.hxx>
 #include <LDOM_XmlWriter.hxx>
-#include <TCollection_HAsciiString.hxx>
+#include <Precision.hxx>
 #include <TColStd_ListIteratorOfListOfInteger.hxx>
+#include <TColStd_ListIteratorOfListOfReal.hxx>
 #include <TColStd_ListOfInteger.hxx>
 #include <TColStd_ListOfReal.hxx>
-#include <TColStd_MapOfInteger.hxx>
 #include <TColStd_SequenceOfHAsciiString.hxx>
-#include <TColStd_ListIteratorOfListOfReal.hxx>
-#include <Precision.hxx>
-#include <BRep_Tool.hxx>
-#include <TopoDS_Shape.hxx>
+#include <TCollection_HAsciiString.hxx>
+#include <TopExp.hxx>
+#include <TopExp_Explorer.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Face.hxx>
-#include <Geom_Plane.hxx>
-#include <Geom_CylindricalSurface.hxx>
-#include <TopExp_Explorer.hxx>
-#include <OSD_Path.hxx>
-#include <OSD_File.hxx>
+#include <TopoDS_Shape.hxx>
 
 using namespace SMESH;
 using namespace SMESH::Controls;
@@ -386,7 +384,7 @@ static TopoDS_Shape getShapeByName( const char* theName )
         GEOM::GEOM_Object_var aGeomObj = GEOM::GEOM_Object::_narrow( aList[ 0 ]->GetObject() );
         if ( !aGeomObj->_is_nil() )
         {
-          GEOM::GEOM_Gen_var aGEOMGen = SMESH_Gen_i::GetGeomEngine();
+          GEOM::GEOM_Gen_ptr aGEOMGen = SMESH_Gen_i::GetGeomEngine();
           TopoDS_Shape aLocShape = aSMESHGen->GetShapeReader()->GetShape( aGEOMGen, aGeomObj );
           return aLocShape;
         }
@@ -396,48 +394,49 @@ static TopoDS_Shape getShapeByName( const char* theName )
   return TopoDS_Shape();
 }
 
-static TopoDS_Shape getShapeByID( const char* theID )
+static TopoDS_Shape getShapeByID (const char* theID)
 {
-  if ( theID != 0 && theID!="" )
-  {
+  if (theID != 0 && theID != "") {
     SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
     SALOMEDS::Study_ptr aStudy = aSMESHGen->GetCurrentStudy();
-    if ( aStudy != 0 )
-    {
-      CORBA::Object_var obj = aStudy->ConvertIORToObject(theID);
-      GEOM::GEOM_Object_var aGeomObj = GEOM::GEOM_Object::_narrow( obj );
+    if (aStudy != 0) {
+      SALOMEDS::SObject_var aSObj = aStudy->FindObjectID(theID);
+      SALOMEDS::GenericAttribute_var anAttr;
+      if (!aSObj->_is_nil() && aSObj->FindAttribute(anAttr, "AttributeIOR")) {
+        SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
+        CORBA::String_var aVal = anIOR->Value();
+        CORBA::Object_var obj = aStudy->ConvertIORToObject(aVal);
+        GEOM::GEOM_Object_var aGeomObj = GEOM::GEOM_Object::_narrow(obj);
       
-      if ( !aGeomObj->_is_nil() )
-        {
-         GEOM::GEOM_Gen_var aGEOMGen = SMESH_Gen_i::GetGeomEngine();
+        if (!aGeomObj->_is_nil()) {
+          GEOM::GEOM_Gen_ptr aGEOMGen = SMESH_Gen_i::GetGeomEngine();
           TopoDS_Shape aLocShape = aSMESHGen->GetShapeReader()->GetShape( aGEOMGen, aGeomObj );
           return aLocShape;
         }
+      }
     }
   }
   return TopoDS_Shape();
 }
 
-static char* getShapeNameByID ( const char* theID )
+static char* getShapeNameByID (const char* theID)
 {
   char* aName = "";
 
-  if ( theID != 0 && theID!="" )
-    {
-      SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-      SALOMEDS::Study_ptr aStudy = aSMESHGen->GetCurrentStudy();
-      if ( aStudy != 0 )
-       {
-         SALOMEDS::SObject_var aSObj = aStudy->FindObjectIOR( theID );
-         SALOMEDS::GenericAttribute_var anAttr;
-         if ( !aSObj->_is_nil() && aSObj->FindAttribute( anAttr, "AttributeName") )
-           {
-             SALOMEDS::AttributeName_var aNameAttr = SALOMEDS::AttributeName::_narrow( anAttr );
-             aName = aNameAttr->Value();        
-           }
-       }
+  if (theID != 0 && theID != "") {
+    SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
+    SALOMEDS::Study_ptr aStudy = aSMESHGen->GetCurrentStudy();
+    if (aStudy != 0) {
+      //SALOMEDS::SObject_var aSObj = aStudy->FindObjectIOR( theID );
+      SALOMEDS::SObject_var aSObj = aStudy->FindObjectID(theID);
+      SALOMEDS::GenericAttribute_var anAttr;
+      if (!aSObj->_is_nil() && aSObj->FindAttribute(anAttr, "AttributeName")) {
+        SALOMEDS::AttributeName_var aNameAttr = SALOMEDS::AttributeName::_narrow(anAttr);
+        aName = aNameAttr->Value();
+      }
     }
-  
+  }
+
   return aName;
 }
 
@@ -793,7 +792,7 @@ void BelongToGeom_i::SetGeom( GEOM::GEOM_Object_ptr theGeom )
   if ( theGeom->_is_nil() )
     return;
   SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  GEOM::GEOM_Gen_var aGEOMGen = SMESH_Gen_i::GetGeomEngine();
+  GEOM::GEOM_Gen_ptr aGEOMGen = SMESH_Gen_i::GetGeomEngine();
   TopoDS_Shape aLocShape = aSMESHGen->GetShapeReader()->GetShape( aGEOMGen, theGeom );
   myBelongToGeomPtr->SetGeom( aLocShape );
   TPythonDump()<<this<<".SetGeom("<<theGeom<<")";
@@ -872,7 +871,7 @@ void BelongToSurface_i::SetSurface( GEOM::GEOM_Object_ptr theGeom, ElementType t
   if ( theGeom->_is_nil() )
     return;
   SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  GEOM::GEOM_Gen_var aGEOMGen = SMESH_Gen_i::GetGeomEngine();
+  GEOM::GEOM_Gen_ptr aGEOMGen = SMESH_Gen_i::GetGeomEngine();
   TopoDS_Shape aLocShape = aSMESHGen->GetShapeReader()->GetShape( aGEOMGen, theGeom );
 
   if ( aLocShape.ShapeType() == TopAbs_FACE )
@@ -1037,7 +1036,7 @@ void LyingOnGeom_i::SetGeom( GEOM::GEOM_Object_ptr theGeom )
   if ( theGeom->_is_nil() )
     return;
   SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  GEOM::GEOM_Gen_var aGEOMGen = SMESH_Gen_i::GetGeomEngine();
+  GEOM::GEOM_Gen_ptr aGEOMGen = SMESH_Gen_i::GetGeomEngine();
   TopoDS_Shape aLocShape = aSMESHGen->GetShapeReader()->GetShape( aGEOMGen, theGeom );
   myLyingOnGeomPtr->SetGeom( aLocShape );
   TPythonDump()<<this<<".SetGeom("<<theGeom<<")";
@@ -2057,9 +2056,18 @@ CORBA::Boolean Filter_i::SetCriteria( const SMESH::Filter::Criteria& theCriteria
     ElementType aTypeOfElem   = theCriteria[ i ].TypeOfElement;
     long        aPrecision    = theCriteria[ i ].Precision;
 
-    TPythonDump()<<"aCriterion = SMESH.Filter.Criterion("<<
-      aCriterion<<","<<aCompare<<","<<aThreshold<<",'"<<aThresholdStr<<"','"<<aThresholdID<<"',"<<
-      aUnary<<","<<aBinary<<","<<aTolerance<<","<<aTypeOfElem<<","<<aPrecision<<"))";
+    {
+      TPythonDump pd;
+      pd << "aCriterion = SMESH.Filter.Criterion(" << aCriterion << "," << aCompare
+         << "," << aThreshold << ",'" << aThresholdStr;
+      if (strlen(aThresholdID) > 0)
+        pd << "',salome.ObjectToID(" << aThresholdID
+           << ")," << aUnary << "," << aBinary << "," << aTolerance
+           << "," << aTypeOfElem << "," << aPrecision << ")";
+      else
+        pd << "',''," << aUnary << "," << aBinary << "," << aTolerance
+           << "," << aTypeOfElem << "," << aPrecision << ")";
+    }
 
     SMESH::Predicate_ptr aPredicate = SMESH::Predicate::_nil();
     SMESH::NumericalFunctor_ptr aFunctor = SMESH::NumericalFunctor::_nil();
index e3b8630d84d1f51fa358c810e84e6ebdf11bc0f1..4b0f6971d6f26b22770c276ae54138b2093cfb08 100644 (file)
@@ -126,6 +126,7 @@ static int MYDEBUG = 0;
 #endif
 
 // Static variables definition
+GEOM::GEOM_Gen_var      SMESH_Gen_i::myGeomGen = GEOM::GEOM_Gen::_nil();
 CORBA::ORB_var          SMESH_Gen_i::myOrb;
 PortableServer::POA_var SMESH_Gen_i::myPoa;
 SALOME_NamingService*   SMESH_Gen_i::myNS  = NULL;
@@ -223,9 +224,15 @@ SALOME_LifeCycleCORBA*  SMESH_Gen_i::GetLCC() {
  */
 //=============================================================================     
 GEOM::GEOM_Gen_ptr SMESH_Gen_i::GetGeomEngine() {
-  GEOM::GEOM_Gen_var aGeomEngine =
-    GEOM::GEOM_Gen::_narrow( GetLCC()->FindOrLoad_Component("FactoryServer","GEOM") );
-  return aGeomEngine._retn();
+  //CCRT GEOM::GEOM_Gen_var aGeomEngine =
+  //CCRT   GEOM::GEOM_Gen::_narrow( GetLCC()->FindOrLoad_Component("FactoryServer","GEOM") );
+  //CCRT return aGeomEngine._retn();
+  if(CORBA::is_nil(myGeomGen))
+  {
+    Engines::Component_ptr temp=GetLCC()->FindOrLoad_Component("FactoryServer","GEOM");
+    myGeomGen=GEOM::GEOM_Gen::_narrow(temp);
+  }
+  return myGeomGen;
 }
 
 //=============================================================================
@@ -320,41 +327,41 @@ SMESH::SMESH_Hypothesis_ptr SMESH_Gen_i::createHypothesis(const char* theHypName
   {
     int libNameLen = strlen(theLibName);
     //check for old format "libXXXXXXX.so"
-    if( libNameLen > 7 && !strncmp( theLibName, "lib", 3 ) && !strcmp( theLibName+libNameLen-3, ".so" ) )
-      {
-       //the old format
+    if (libNameLen > 7 &&
+        !strncmp( theLibName, "lib", 3 ) &&
+        !strcmp( theLibName+libNameLen-3, ".so" ))
+    {
+      //the old format
 #ifdef WNT
-       aPlatformLibName = new char[libNameLen - 1];
-       aPlatformLibName[0] = '\0';
-       aPlatformLibName = strncat( aPlatformLibName, theLibName+3, libNameLen-6  );
-       aPlatformLibName = strcat( aPlatformLibName, ".dll" );
-  aPlatformLibName[libNameLen - 2] = '\0';
+      aPlatformLibName = new char[libNameLen - 1];
+      aPlatformLibName[0] = '\0';
+      aPlatformLibName = strncat( aPlatformLibName, theLibName+3, libNameLen-6  );
+      aPlatformLibName = strcat( aPlatformLibName, ".dll" );
+      aPlatformLibName[libNameLen - 2] = '\0';
 #else
-       aPlatformLibName = new char[ libNameLen + 1];
-       aPlatformLibName[0] = '\0';
-       aPlatformLibName = strcat( aPlatformLibName, theLibName );
-  aPlatformLibName[libNameLen] = '\0';
+      aPlatformLibName = new char[ libNameLen + 1];
+      aPlatformLibName[0] = '\0';
+      aPlatformLibName = strcat( aPlatformLibName, theLibName );
+      aPlatformLibName[libNameLen] = '\0';
 #endif
-
-      }
+    }
     else
-      {
-       //try to use new format 
+    {
+      //try to use new format 
 #ifdef WNT
-       aPlatformLibName = new char[ libNameLen + 5 ];
-       aPlatformLibName[0] = '\0';
-       aPlatformLibName = strcat( aPlatformLibName, theLibName );
-       aPlatformLibName = strcat( aPlatformLibName, ".dll" );
+      aPlatformLibName = new char[ libNameLen + 5 ];
+      aPlatformLibName[0] = '\0';
+      aPlatformLibName = strcat( aPlatformLibName, theLibName );
+      aPlatformLibName = strcat( aPlatformLibName, ".dll" );
 #else
-       aPlatformLibName = new char[ libNameLen + 7 ];
-       aPlatformLibName[0] = '\0';
-       aPlatformLibName = strcat( aPlatformLibName, "lib" );
-       aPlatformLibName = strcat( aPlatformLibName, theLibName );
-       aPlatformLibName = strcat( aPlatformLibName, ".so" );
+      aPlatformLibName = new char[ libNameLen + 7 ];
+      aPlatformLibName[0] = '\0';
+      aPlatformLibName = strcat( aPlatformLibName, "lib" );
+      aPlatformLibName = strcat( aPlatformLibName, theLibName );
+      aPlatformLibName = strcat( aPlatformLibName, ".so" );
 #endif
-      }
+    }
   }
-  
 
 
   Unexpect aCatch(SALOME_SalomeException);
@@ -409,7 +416,7 @@ SMESH::SMESH_Hypothesis_ptr SMESH_Gen_i::createHypothesis(const char* theHypName
     // create a new hypothesis object, store its ref. in studyContext
     if(MYDEBUG) MESSAGE("Create Hypothesis " << theHypName);
     myHypothesis_i =
-      myHypCreatorMap[string(theHypName)]->Create (myPoa, GetCurrentStudyID(), &myGen);
+      myHypCreatorMap[string(theHypName)]->Create(myPoa, GetCurrentStudyID(), &myGen);
     myHypothesis_i->SetLibName(aPlatformLibName/*theLibName*/); // for persistency assurance
   }
   catch (SALOME_Exception& S_ex)
@@ -430,7 +437,7 @@ SMESH::SMESH_Hypothesis_ptr SMESH_Gen_i::createHypothesis(const char* theHypName
 
   return hypothesis_i._retn();
 }
-  
+
 //=============================================================================
 /*!
  *  SMESH_Gen_i::createMesh
@@ -479,6 +486,22 @@ GEOM_Client* SMESH_Gen_i::GetShapeReader()
   return myShapeReader;
 }
 
+//=============================================================================
+/*!
+ *  SMESH_Gen_i::SetGeomEngine
+ *
+ *  Set GEOM::GEOM_Gen reference
+ */
+//=============================================================================
+//GEOM::GEOM_Gen_ptr SMESH_Gen_i::SetGeomEngine( const char* containerLoc )
+void SMESH_Gen_i::SetGeomEngine( GEOM::GEOM_Gen_ptr geomcompo )
+{
+  //Engines::Component_ptr temp=GetLCC()->FindOrLoad_Component(containerLoc,"GEOM");
+  //myGeomGen=GEOM::GEOM_Gen::_narrow(temp);
+  myGeomGen=GEOM::GEOM_Gen::_duplicate(geomcompo);
+  //return myGeomGen;
+}
+
 //=============================================================================
 /*!
  *  SMESH_Gen_i::SetEmbeddedMode
@@ -1007,7 +1030,7 @@ SMESH::compute_error_array* SMESH_Gen_i::GetComputeErrors( SMESH::SMESH_Mesh_ptr
   Unexpect aCatch(SALOME_SalomeException);
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::GetComputeErrors()" );
 
-  if ( CORBA::is_nil( theSubObject ) )
+  if ( CORBA::is_nil( theSubObject ) && theMesh->HasShapeToMesh())
     THROW_SALOME_CORBA_EXCEPTION( "bad shape object reference", SALOME::BAD_PARAM );
 
   if ( CORBA::is_nil( theMesh ) )
@@ -1017,7 +1040,12 @@ SMESH::compute_error_array* SMESH_Gen_i::GetComputeErrors( SMESH::SMESH_Mesh_ptr
   try {
     if ( SMESH_Mesh_i* meshServant = SMESH::DownCast<SMESH_Mesh_i*>( theMesh ))
     {
-      TopoDS_Shape shape = GeomObjectToShape( theSubObject );
+      TopoDS_Shape shape;
+      if(theMesh->HasShapeToMesh())
+        shape = GeomObjectToShape( theSubObject );
+      else
+        shape = SMESH_Mesh::PseudoShape();
+      
       ::SMESH_Mesh& mesh = meshServant->GetImpl();
 
       error_array->length( mesh.GetMeshDS()->MaxShapeIndex() );
@@ -1072,7 +1100,7 @@ SMESH::algo_error_array* SMESH_Gen_i::GetAlgoState( SMESH::SMESH_Mesh_ptr theMes
   Unexpect aCatch(SALOME_SalomeException);
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::GetAlgoState()" );
 
-  if ( CORBA::is_nil( theSubObject ) )
+  if ( CORBA::is_nil( theSubObject ) && theMesh->HasShapeToMesh())
     THROW_SALOME_CORBA_EXCEPTION( "bad shape object reference", SALOME::BAD_PARAM );
 
   if ( CORBA::is_nil( theMesh ) )
@@ -1083,7 +1111,12 @@ SMESH::algo_error_array* SMESH_Gen_i::GetAlgoState( SMESH::SMESH_Mesh_ptr theMes
     SMESH_Mesh_i* meshServant = SMESH::DownCast<SMESH_Mesh_i*>( theMesh );
     ASSERT( meshServant );
     if ( meshServant ) {
-      TopoDS_Shape myLocShape = GeomObjectToShape( theSubObject );
+      TopoDS_Shape myLocShape;
+      if(theMesh->HasShapeToMesh())
+        myLocShape = GeomObjectToShape( theSubObject );
+      else
+        myLocShape = SMESH_Mesh::PseudoShape();
+      
       ::SMESH_Mesh& myLocMesh = meshServant->GetImpl();
       list< ::SMESH_Gen::TAlgoStateError > error_list;
       list< ::SMESH_Gen::TAlgoStateError >::iterator error;
@@ -1201,7 +1234,7 @@ CORBA::Boolean SMESH_Gen_i::Compute( SMESH::SMESH_Mesh_ptr theMesh,
   Unexpect aCatch(SALOME_SalomeException);
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::Compute" );
 
-  if ( CORBA::is_nil( theShapeObject ) )
+  if ( CORBA::is_nil( theShapeObject ) && theMesh->HasShapeToMesh())
     THROW_SALOME_CORBA_EXCEPTION( "bad shape object reference", 
                                   SALOME::BAD_PARAM );
 
@@ -1212,23 +1245,27 @@ CORBA::Boolean SMESH_Gen_i::Compute( SMESH::SMESH_Mesh_ptr theMesh,
   // Update Python script
   TPythonDump() << "isDone = " << this << ".Compute( "
                 << theMesh << ", " << theShapeObject << ")";
-  TPythonDump() << "if not isDone: print 'Mesh', " << theMesh << ", ': computation failed'";
 
   try {
     // get mesh servant
     SMESH_Mesh_i* meshServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( theMesh ).in() );
     ASSERT( meshServant );
     if ( meshServant ) {
+      // NPAL16168: "geometrical group edition from a submesh don't modifiy mesh computation"
+      meshServant->CheckGeomGroupModif();
       // get local TopoDS_Shape
-      TopoDS_Shape myLocShape = GeomObjectToShape( theShapeObject );
+      TopoDS_Shape myLocShape;
+      if(theMesh->HasShapeToMesh())
+        myLocShape = GeomObjectToShape( theShapeObject );
+      else
+        myLocShape = SMESH_Mesh::PseudoShape();
       // call implementation compute
       ::SMESH_Mesh& myLocMesh = meshServant->GetImpl();
       return myGen.Compute( myLocMesh, myLocShape);
     }
   }
-  catch ( std::bad_alloc& exc ) {
-    THROW_SALOME_CORBA_EXCEPTION( "Memory allocation problem",
-                                  SALOME::INTERNAL_ERROR );
+  catch ( std::bad_alloc ) {
+    INFOS( "Compute(): lack of memory" );
   }
   catch ( SALOME_Exception& S_ex ) {
     INFOS( "Compute(): catch exception "<< S_ex.what() );
@@ -1260,7 +1297,7 @@ SMESH_Gen_i::GetGeometryByMeshElement( SMESH::SMESH_Mesh_ptr  theMesh,
   GEOM::GEOM_Object_var geom = FindGeometryByMeshElement(theMesh, theElementID);
   if ( !geom->_is_nil() ) {
     GEOM::GEOM_Object_var mainShape = theMesh->GetShapeToMesh();
-    GEOM::GEOM_Gen_var    geomGen   = GetGeomEngine();
+    GEOM::GEOM_Gen_ptr    geomGen   = GetGeomEngine();
 
     // try to find the corresponding SObject
     SALOMEDS::SObject_var SObj = ObjectToSObject( myCurrentStudy, geom.in() );
@@ -1317,7 +1354,7 @@ SMESH_Gen_i::FindGeometryByMeshElement( SMESH::SMESH_Mesh_ptr  theMesh,
     THROW_SALOME_CORBA_EXCEPTION( "bad Mesh reference", SALOME::BAD_PARAM );
 
   GEOM::GEOM_Object_var mainShape = theMesh->GetShapeToMesh();
-  GEOM::GEOM_Gen_var    geomGen   = GetGeomEngine();
+  GEOM::GEOM_Gen_ptr    geomGen   = GetGeomEngine();
 
   // get a core mesh DS
   SMESH_Mesh_i* meshServant = SMESH::DownCast<SMESH_Mesh_i*>( theMesh );
@@ -1326,12 +1363,33 @@ SMESH_Gen_i::FindGeometryByMeshElement( SMESH::SMESH_Mesh_ptr  theMesh,
     ::SMESH_Mesh & mesh = meshServant->GetImpl();
     SMESHDS_Mesh* meshDS = mesh.GetMeshDS();
     // find the element in mesh
-    if ( const SMDS_MeshElement * elem = meshDS->FindElement( theElementID ) )
+    if ( const SMDS_MeshElement * elem = meshDS->FindElement( theElementID ) ) {
       // find a shape id by the element
       if ( int shapeID = ::SMESH_MeshEditor( &mesh ).FindShape( elem )) {
         // get a geom object by the shape id
         GEOM::GEOM_Object_var geom = ShapeToGeomObject( meshDS->IndexToShape( shapeID ));
         if ( geom->_is_nil() ) {
+          // try to find a published sub-shape
+          SALOMEDS::SObject_var mainSO = ObjectToSObject( myCurrentStudy, mainShape );
+          SALOMEDS::ChildIterator_var it;
+          if ( !mainSO->_is_nil() )
+            it = myCurrentStudy->NewChildIterator( mainSO );
+          if ( !it->_is_nil() ) {
+            for ( it->InitEx(true); it->More(); it->Next() ) {
+              GEOM::GEOM_Object_var subGeom =
+                GEOM::GEOM_Object::_narrow( SObjectToObject( it->Value() ));
+              if ( !subGeom->_is_nil() ) {
+                GEOM::ListOfLong_var subList = subGeom->GetSubShapeIndices();
+                if ( subList->length() == 1 && shapeID == subList[0] ) {
+                  geom = subGeom;
+                  break;
+                }
+              }
+            }
+          }
+        }
+        if ( geom->_is_nil() ) {
+          // explode
           GEOM::GEOM_IShapesOperations_var op =
             geomGen->GetIShapesOperations( GetCurrentStudyID() );
           if ( !op->_is_nil() )
@@ -1342,6 +1400,7 @@ SMESH_Gen_i::FindGeometryByMeshElement( SMESH::SMESH_Mesh_ptr  theMesh,
          return geom._retn();
         }
       }
+    }
   }
   return GEOM::GEOM_Object::_nil();
 }
@@ -1646,8 +1705,12 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
               if( libname_len > 4 )
                 libname.resize( libname_len - 4 );
 #else
-              if( libname_len > 3 )
-                libname.resize( libname_len - 3 );
+              // PAL17753 (Regresion: missing hypothesis in restored study)
+              // "lib" also should be removed from the beginning
+              //if( libname_len > 3 )
+                //libname.resize( libname_len - 3 );
+              if( libname_len > 6 )
+                libname = libname.substr( 3, libname_len - 3 - 3 );
 #endif
               CORBA::String_var objStr = GetORB()->object_to_string( anObject );
               int    id      = myStudyContext->findId( string( objStr.in() ) );
@@ -1711,8 +1774,12 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
               if( libname_len > 4 )
                 libname.resize( libname_len - 4 );
 #else
-              if( libname_len > 3 )
-                libname.resize( libname_len - 3 );
+              // PAL17753 (Regresion: missing hypothesis in restored study)
+              // "lib" also should be removed from the beginning
+              //if( libname_len > 3 )
+                //libname.resize( libname_len - 3 );
+              if( libname_len > 6 )
+                libname = libname.substr( 3, libname_len - 3 - 3 );
 #endif
               CORBA::String_var objStr = GetORB()->object_to_string( anObject );
               int    id      = myStudyContext->findId( string( objStr.in() ) );
@@ -1762,6 +1829,7 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
             int id = myStudyContext->findId( string( objStr.in() ) );
             ::SMESH_Mesh& myLocMesh = myImpl->GetImpl();
             SMESHDS_Mesh* mySMESHDSMesh = myLocMesh.GetMeshDS();
+            bool hasShape = myLocMesh.HasShapeToMesh();
 
             // for each mesh open the HDF group basing on its id
             char meshGrpName[ 30 ];
@@ -1784,6 +1852,18 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
             aDataset->WriteOnDisk( ( char* )( strHasData.c_str() ) );
             aDataset->CloseOnDisk();
 
+           // ouv : NPAL12872
+            // for each mesh open the HDF group basing on its auto color parameter
+           char meshAutoColorName[ 30 ];
+           sprintf( meshAutoColorName, "AutoColorMesh %d", id );
+           int anAutoColor[1];
+           anAutoColor[0] = myImpl->GetAutoColor();
+           aSize[ 0 ] = 1;
+           aDataset = new HDFdataset( meshAutoColorName, aTopGroup, HDF_INT32, aSize, 1 );
+           aDataset->CreateOnDisk();
+           aDataset->WriteOnDisk( anAutoColor );
+           aDataset->CloseOnDisk();
+
             // write reference on a shape if exists
             SALOMEDS::SObject_var myRef;
             bool shapeRefFound = false;
@@ -1807,10 +1887,10 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
             // write applied hypotheses if exist
             SALOMEDS::SObject_var myHypBranch;
             found = gotBranch->FindSubObject( GetRefOnAppliedHypothesisTag(), myHypBranch );
-            if ( found && !shapeRefFound ) { // remove applied hyps
+            if ( found && !shapeRefFound && hasShape) { // remove applied hyps
               myCurrentStudy->NewBuilder()->RemoveObjectWithChildren( myHypBranch );
             }
-            if ( found && shapeRefFound ) {
+            if ( found && (shapeRefFound || !hasShape) ) {
               aGroup = new HDFgroup( "Applied Hypotheses", aTopGroup );
               aGroup->CreateOnDisk();
 
@@ -1850,10 +1930,10 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
             // write applied algorithms if exist
             SALOMEDS::SObject_var myAlgoBranch;
             found = gotBranch->FindSubObject( GetRefOnAppliedAlgorithmsTag(), myAlgoBranch );
-            if ( found && !shapeRefFound ) { // remove applied algos
+            if ( found && !shapeRefFound && hasShape) { // remove applied algos
               myCurrentStudy->NewBuilder()->RemoveObjectWithChildren( myAlgoBranch );
             }
-            if ( found && shapeRefFound ) {
+            if ( found && (shapeRefFound || !hasShape)) {
               aGroup = new HDFgroup( "Applied Algorithms", aTopGroup );
               aGroup->CreateOnDisk();
 
@@ -2109,6 +2189,22 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
                    aDataset->WriteOnDisk( aUserName );
                    aDataset->CloseOnDisk();
 
+                   // ouv : NPAL12872
+                   // For each group, create a dataset named "Group <group_persistent_id> Color"
+                   // and store the group's color into it
+                   char grpColorName[ 30 ];
+                   sprintf( grpColorName, "ColorGroup %d", anId );
+                   SALOMEDS::Color aColor = myGroupImpl->GetColor();
+                   double anRGB[3];
+                   anRGB[ 0 ] = aColor.R;
+                   anRGB[ 1 ] = aColor.G;
+                   anRGB[ 2 ] = aColor.B;
+                   aSize[ 0 ] = 3;
+                   aDataset = new HDFdataset( grpColorName, aGroup, HDF_FLOAT64, aSize, 1 );
+                   aDataset->CreateOnDisk();
+                   aDataset->WriteOnDisk( anRGB );
+                   aDataset->CloseOnDisk();
+
                    // Store the group contents into MED file
                    if ( myLocMesh.GetGroup( myGroupImpl->GetLocalID() ) ) {
                      
@@ -2162,7 +2258,7 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
              myWriter.Perform();
              
              // maybe a shape was deleted in the study
-             if ( !shapeRefFound && !mySMESHDSMesh->ShapeToMesh().IsNull() ) {
+             if ( !shapeRefFound && !mySMESHDSMesh->ShapeToMesh().IsNull() && hasShape) {
                TopoDS_Shape nullShape;
                myLocMesh.ShapeToMesh( nullShape ); // remove shape referring data
              }
@@ -2649,6 +2745,7 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
       }
       // close hypotheses root HDF group
       aTopGroup->CloseOnDisk();
+      aTopGroup = 0;
     }
 
     // --> then we should read&create algorithms
@@ -2748,6 +2845,7 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
       }
       // close algorithms root HDF group
       aTopGroup->CloseOnDisk();
+      aTopGroup = 0;
     }
 
     // --> the rest groups should be meshes
@@ -2781,6 +2879,21 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
          int newId = myStudyContext->findId( iorString );
          myStudyContext->mapOldToNew( id, newId );
 
+         // ouv : NPAL12872
+         // try to read and set auto color flag
+         char aMeshAutoColorName[ 30 ];
+         sprintf( aMeshAutoColorName, "AutoColorMesh %d", id);
+         if( aTopGroup->ExistInternalObject( aMeshAutoColorName ) )
+         {
+           aDataset = new HDFdataset( aMeshAutoColorName, aTopGroup );
+           aDataset->OpenOnDisk();
+           size = aDataset->GetSize();
+           int* anAutoColor = new int[ size ];
+           aDataset->ReadFromDisk( anAutoColor );
+           aDataset->CloseOnDisk();
+           myNewMeshImpl->SetAutoColor( (bool)anAutoColor[0] );
+         }
+
           // try to read and set reference to shape
           GEOM::GEOM_Object_var aShapeObject;
           if ( aTopGroup->ExistInternalObject( "Ref on shape" ) ) {
@@ -2886,7 +2999,8 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
               CORBA::Object_var hypObject = GetORB()->string_to_object( anIOR.c_str() );
               if ( !CORBA::is_nil( hypObject ) ) {
                 SMESH::SMESH_Hypothesis_var anHyp = SMESH::SMESH_Hypothesis::_narrow( hypObject );
-                if ( !anHyp->_is_nil() && !aShapeObject->_is_nil() )
+                if ( !anHyp->_is_nil() && (!aShapeObject->_is_nil()
+                                           || !myNewMeshImpl->HasShapeToMesh()) )
                   myNewMeshImpl->addHypothesis( aShapeObject, anHyp );
               }
             }
@@ -2923,7 +3037,8 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
               CORBA::Object_var hypObject = GetORB()->string_to_object( anIOR.c_str() );
               if ( !CORBA::is_nil( hypObject ) ) {
                 SMESH::SMESH_Hypothesis_var anHyp = SMESH::SMESH_Hypothesis::_narrow( hypObject );
-                if ( !anHyp->_is_nil() && !aShapeObject->_is_nil() )
+                if ( !anHyp->_is_nil() && (!aShapeObject->_is_nil()
+                                           || !myNewMeshImpl->HasShapeToMesh()) )
                   myNewMeshImpl->addHypothesis( aShapeObject, anHyp );
               }
             }
@@ -3289,9 +3404,14 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
       } // if ( hasData )
 
       // Recompute State (as computed sub-meshes are restored from MED)
-      if ( !aShapeObject->_is_nil() ) {
+      if ( !aShapeObject->_is_nil() || !myNewMeshImpl->HasShapeToMesh()) {
         MESSAGE("Compute State Engine ...");
-        TopoDS_Shape myLocShape = GeomObjectToShape( aShapeObject );
+        TopoDS_Shape myLocShape;
+        if(myNewMeshImpl->HasShapeToMesh())
+          myLocShape = GeomObjectToShape( aShapeObject );
+        else
+          myLocShape = SMESH_Mesh::PseudoShape();
+        
         myNewMeshImpl->GetImpl().GetSubMesh(myLocShape)->ComputeStateEngine
           (SMESH_subMesh::SUBMESH_RESTORED);
         MESSAGE("Compute State Engine finished");
@@ -3378,6 +3498,22 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
               SMESHDS_GroupBase* aGroupBaseDS = aLocalGroup->GetGroupDS();
               aGroupBaseDS->SetStoreName( name_dataset );
 
+             // ouv : NPAL12872
+             // Read color of the group
+              char aGroupColorName[ 30 ];
+              sprintf( aGroupColorName, "ColorGroup %d", subid);
+              if ( aGroup->ExistInternalObject( aGroupColorName ) )
+             {
+               aDataset = new HDFdataset( aGroupColorName, aGroup );
+               aDataset->OpenOnDisk();
+               size = aDataset->GetSize();
+               double* anRGB = new double[ size ];
+               aDataset->ReadFromDisk( anRGB );
+               aDataset->CloseOnDisk();
+               Quantity_Color aColor( anRGB[0], anRGB[1], anRGB[2], Quantity_TOC_RGB );
+               aGroupBaseDS->SetColor( aColor );
+             }
+
               // Fill group with contents from MED file
               SMESHDS_Group* aGrp = dynamic_cast<SMESHDS_Group*>( aGroupBaseDS );
               if ( aGrp )
@@ -3389,7 +3525,8 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
       }
     }
     // close mesh group
-    aTopGroup->CloseOnDisk();   
+    if(aTopGroup)
+      aTopGroup->CloseOnDisk();   
   }
   // close HDF file
   aFile->CloseOnDisk();
@@ -3454,12 +3591,29 @@ void SMESH_Gen_i::Close( SALOMEDS::SComponent_ptr theComponent )
 {
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::Close" );
 
+  // set correct current study
+  if (theComponent->GetStudy()->StudyId() != GetCurrentStudyID())
+    SetCurrentStudy(theComponent->GetStudy());
+
   // Clear study contexts data
   int studyId = GetCurrentStudyID();
   if ( myStudyContextMap.find( studyId ) != myStudyContextMap.end() ) {
     delete myStudyContextMap[ studyId ];
     myStudyContextMap.erase( studyId );
   }
+
+  // delete SMESH_Mesh's
+  StudyContextStruct* context = myGen.GetStudyContext( studyId );
+  map< int, SMESH_Mesh* >::iterator i_mesh = context->mapMesh.begin();
+  for ( ; i_mesh != context->mapMesh.end(); ++i_mesh )
+    delete i_mesh->second;
+  // delete SMESHDS_Mesh's
+  // it's too long on big meshes
+//   if ( context->myDocument ) {
+//     delete context->myDocument;
+//     context->myDocument = 0;
+//   }
+  
   return;
 }
 
@@ -3552,7 +3706,7 @@ int SMESH_Gen_i::RegisterObject(CORBA::Object_ptr theObject)
  */
 //================================================================================
 
-int SMESH_Gen_i::GetObjectId(CORBA::Object_ptr theObject)
+CORBA::Long SMESH_Gen_i::GetObjectId(CORBA::Object_ptr theObject)
 {
   StudyContext* myStudyContext = GetCurrentStudyContext();
   if ( myStudyContext && !CORBA::is_nil( theObject )) {
index e87780cf2ae6b1f87366e9cc40d48fab2b4c7b51..d97b6fbf92ff41b3ba3671240e07f32b919e445e 100644 (file)
@@ -17,7 +17,7 @@
 //  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
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -172,10 +172,12 @@ public:
                const char*               interfaceName );
   // Destructor
   virtual ~SMESH_Gen_i();
-  
+
   // *****************************************
   // Interface methods
   // *****************************************
+  //GEOM::GEOM_Gen_ptr SetGeomEngine( const char* containerLoc );
+  void SetGeomEngine( GEOM::GEOM_Gen_ptr geomcompo );
 
   // Set current study
   void SetEmbeddedMode( CORBA::Boolean theMode );
@@ -425,7 +427,7 @@ public:
   int RegisterObject(CORBA::Object_ptr theObject);
 
   // Return id of registered object
-  int GetObjectId(CORBA::Object_ptr theObject);
+  CORBA::Long GetObjectId(CORBA::Object_ptr theObject);
 
   // Return an object that previously had an oldID
   template<class TInterface> 
@@ -461,7 +463,7 @@ private:
   static void loadGeomData( SALOMEDS::SComponent_ptr theCompRoot );
   
 private:
-
+  static GEOM::GEOM_Gen_var      myGeomGen;
   static CORBA::ORB_var          myOrb;         // ORB reference
   static PortableServer::POA_var myPoa;         // POA reference
   static SALOME_NamingService*   myNS;          // Naming Service
index 2ff4d88747cf9de337bd22c014ff4fdf9120cafc..515de42180c5845bc4bfcaab57d4719c2682749e 100644 (file)
@@ -32,8 +32,7 @@
 #include "SMESH_Hypothesis_i.hxx"
 #include "SMESH_Algo_i.hxx"
 #include "SMESH_Group_i.hxx"
-
-#include "SMESH.hxx"
+#include "SMESH_subMesh_i.hxx"
 
 #include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog)
 
@@ -58,82 +57,82 @@ static int MYDEBUG = 0;
 
 long SMESH_Gen_i::GetHypothesisRootTag()
 {
-  return Tag_HypothesisRoot;
+  return SMESH::Tag_HypothesisRoot;
 }
 
 long SMESH_Gen_i::GetAlgorithmsRootTag()
 {
-  return Tag_AlgorithmsRoot;
+  return SMESH::Tag_AlgorithmsRoot;
 }
 
 long SMESH_Gen_i::GetRefOnShapeTag()
 {
-  return Tag_RefOnShape;
+  return SMESH::Tag_RefOnShape;
 }
 
 long SMESH_Gen_i::GetRefOnAppliedHypothesisTag()
 {
-  return Tag_RefOnAppliedHypothesis;
+  return SMESH::Tag_RefOnAppliedHypothesis;
 }
 
 long SMESH_Gen_i::GetRefOnAppliedAlgorithmsTag()
 {
-  return Tag_RefOnAppliedAlgorithms;
+  return SMESH::Tag_RefOnAppliedAlgorithms;
 }
 
 long SMESH_Gen_i::GetSubMeshOnVertexTag()
 {
-  return Tag_SubMeshOnVertex;
+  return SMESH::Tag_SubMeshOnVertex;
 }
 
 long SMESH_Gen_i::GetSubMeshOnEdgeTag()
 {
-  return Tag_SubMeshOnEdge;
+  return SMESH::Tag_SubMeshOnEdge;
 }
 
 long SMESH_Gen_i::GetSubMeshOnFaceTag()
 {
-  return Tag_SubMeshOnFace;
+  return SMESH::Tag_SubMeshOnFace;
 }
 
 long SMESH_Gen_i::GetSubMeshOnSolidTag()
 {
-  return Tag_SubMeshOnSolid;
+  return SMESH::Tag_SubMeshOnSolid;
 }
 
 long SMESH_Gen_i::GetSubMeshOnCompoundTag()
 {
-  return Tag_SubMeshOnCompound;
+  return SMESH::Tag_SubMeshOnCompound;
 }
 
 long SMESH_Gen_i::GetSubMeshOnWireTag()
 {
-  return Tag_SubMeshOnWire;
+  return SMESH::Tag_SubMeshOnWire;
 }
 
 long SMESH_Gen_i::GetSubMeshOnShellTag()
 {
-  return Tag_SubMeshOnShell;
+  return SMESH::Tag_SubMeshOnShell;
 }
 
 long SMESH_Gen_i::GetNodeGroupsTag()
 {
-  return Tag_NodeGroups;
+  return SMESH::Tag_NodeGroups;
 }
 
 long SMESH_Gen_i::GetEdgeGroupsTag()
 {
-  return Tag_EdgeGroups;
+  return SMESH::Tag_EdgeGroups;
 }
 
 long SMESH_Gen_i::GetFaceGroupsTag()
 {
-  return Tag_FaceGroups;
+  return SMESH::Tag_FaceGroups;
 }
 
 long SMESH_Gen_i::GetVolumeGroupsTag()
 {
-  return Tag_VolumeGroups;
+  return SMESH::Tag_VolumeGroups;
 }
 
 //=============================================================================
@@ -225,7 +224,7 @@ TopoDS_Shape SMESH_Gen_i::GeomObjectToShape(GEOM::GEOM_Object_ptr theGeomObject)
   TopoDS_Shape S;
   if ( !theGeomObject->_is_nil() ) {
     GEOM_Client* aClient = GetShapeReader();
-    GEOM::GEOM_Gen_var aGeomEngine = GetGeomEngine();
+    GEOM::GEOM_Gen_ptr aGeomEngine = GetGeomEngine();
     if ( aClient && !aGeomEngine->_is_nil () )
       S = aClient->GetShape( aGeomEngine, theGeomObject );
   }
@@ -739,10 +738,15 @@ SALOMEDS::SObject_ptr
 {
   if(MYDEBUG) MESSAGE("GetMeshOrSubmeshByShape")
   SALOMEDS::SObject_var aMeshOrSubMesh;
-  if ( theShape->_is_nil() || theMesh->_is_nil() )
+  if (theMesh->_is_nil() || ( theShape->_is_nil() && theMesh->HasShapeToMesh()))
     return aMeshOrSubMesh._retn();
+  
+  TopoDS_Shape aShape;
+  if(theMesh->HasShapeToMesh())
+    aShape = GeomObjectToShape( theShape );
+  else
+    aShape = SMESH_Mesh::PseudoShape();
 
-  TopoDS_Shape aShape = GeomObjectToShape( theShape );
   SMESH_Mesh_i* mesh_i = objectToServant<SMESH_Mesh_i>( theMesh );
 
   if ( !aShape.IsNull() && mesh_i && mesh_i->GetImpl().GetMeshDS() ) {
@@ -772,7 +776,8 @@ bool SMESH_Gen_i::AddHypothesisToShape(SALOMEDS::Study_ptr         theStudy,
 {
   if(MYDEBUG) MESSAGE("AddHypothesisToShape")
   if (theStudy->_is_nil() || theMesh->_is_nil() ||
-      theHyp->_is_nil() || theShape->_is_nil() )
+      theHyp->_is_nil() || (theShape->_is_nil()
+                            && theMesh->HasShapeToMesh()) )
     return false;
 
   SALOMEDS::SObject_var aMeshSO = ObjectToSObject( theStudy, theMesh );
@@ -826,7 +831,8 @@ bool SMESH_Gen_i::RemoveHypothesisFromShape(SALOMEDS::Study_ptr         theStudy
                                             SMESH::SMESH_Hypothesis_ptr theHyp)
 {
   if (theStudy->_is_nil() || theMesh->_is_nil() ||
-      theHyp->_is_nil() || theShape->_is_nil() )
+      theHyp->_is_nil() || (theShape->_is_nil()
+                            && theMesh->HasShapeToMesh()))
     return false;
 
   SALOMEDS::SObject_var aHypSO = ObjectToSObject( theStudy, theHyp );
index 7a75b310be55a430c394341c1e546a0483eb31c0..9f4c705f3aadbe423ed1258ec8420e4b540d51ad 100644 (file)
@@ -419,6 +419,45 @@ GEOM::GEOM_Object_ptr SMESH_GroupOnGeom_i::GetShape()
   return aGeomObj._retn();
 }
 
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+SALOMEDS::Color SMESH_GroupBase_i::GetColor()
+{
+  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+  if (aGroupDS)
+  {
+    Quantity_Color aQColor = aGroupDS->GetColor();
+    SALOMEDS::Color aColor;
+    aColor.R = aQColor.Red();
+    aColor.G = aQColor.Green();
+    aColor.B = aQColor.Blue();
+
+    return aColor;
+  }
+  MESSAGE("get color of a group");
+  return SALOMEDS::Color();
+}
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+void SMESH_GroupBase_i::SetColor(const SALOMEDS::Color& color)
+{
+  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+  if (aGroupDS)
+  {
+    Quantity_Color aQColor( color.R, color.G, color.B, Quantity_TOC_RGB );
+    return aGroupDS->SetColor(aQColor);
+  }
+  MESSAGE("set color of a group");
+  return ;
+}
+
 //=============================================================================
 /*!
  *
@@ -429,7 +468,7 @@ CORBA::Long SMESH_GroupBase_i::GetColorNumber()
   SMESHDS_GroupBase* aGroupDS = GetGroupDS();
   if (aGroupDS)
     return aGroupDS->GetColorGroup();
-  MESSAGE("get color number of a vague group");
+  MESSAGE("get color number of a group");
   return 0;
 }
 
@@ -443,9 +482,6 @@ void SMESH_GroupBase_i::SetColorNumber(CORBA::Long color)
   SMESHDS_GroupBase* aGroupDS = GetGroupDS();
   if (aGroupDS)
     return aGroupDS->SetColorGroup(color);
-  MESSAGE("set color number of a vague group");
+  MESSAGE("set color number of a group");
   return ;
 }
-
-
-
index e6b1813773257fa1161553ddc4f06afcb2fa9085..2ed372adb13d1a151131acd9937598e457ea7e81 100644 (file)
@@ -75,8 +75,11 @@ class SMESH_I_EXPORT SMESH_GroupBase_i:
   SMESH_Group* GetSmeshGroup() const;
   SMESHDS_GroupBase* GetGroupDS() const;
 
-   void SetColorNumber(CORBA::Long color);
-   CORBA::Long GetColorNumber();
+  void SetColor(const SALOMEDS::Color& color);
+  SALOMEDS::Color GetColor();
+
+  void SetColorNumber(CORBA::Long color);
+  CORBA::Long GetColorNumber();
 
 private:
   SMESH_Mesh_i* myMeshServant;
index fedc0772290249a70a320aa3298f59f6d6831f12..28eda61b2c79e63ab5d8da7c4119772dcb340d57 100644 (file)
@@ -131,7 +131,7 @@ CORBA::Long SMESH_Hypothesis_i::GetId()
 
 ::SMESH_Hypothesis* SMESH_Hypothesis_i::GetImpl()
 {
-  MESSAGE( "SMESH_Hypothesis_i::GetImpl" );
+  //MESSAGE( "SMESH_Hypothesis_i::GetImpl" );
   return myBaseImpl;
 }
 
index ff3eed5e8eedafd07c8b472ab3b852e5fee815d4..c9f00811c2ba18111b6b757fcf8933d8c2a206c1 100644 (file)
 #include "SMESH_Gen_i.hxx"
 #include "SMESH_Filter_i.hxx"
 #include "SMESH_PythonDump.hxx"
-#include "CASCatch.hxx"
 
 #include "utilities.h"
-
+#include "Utils_ExceptHandlers.hxx"
+#include "Utils_CorbaException.hxx"
+
+#include <BRepAdaptor_Surface.hxx>
+#include <BRep_Tool.hxx>
+#include <TopExp_Explorer.hxx>
+#include <TopoDS.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS_Face.hxx>
 #include <gp_Ax1.hxx>
 #include <gp_Ax2.hxx>
 #include <gp_Vec.hxx>
@@ -53,8 +60,6 @@
 
 #ifdef NO_CAS_CATCH
 #include <Standard_ErrorHandler.hxx>
-#else
-#include "CASCatch.hxx"
 #endif
 
 #include <sstream>
@@ -198,6 +203,22 @@ namespace {
       }
     }
   };
+
+  TCollection_AsciiString mirrorTypeName( SMESH::SMESH_MeshEditor::MirrorType theMirrorType )
+  {
+    TCollection_AsciiString typeStr;
+    switch ( theMirrorType ) {
+    case  SMESH::SMESH_MeshEditor::POINT:
+      typeStr = "SMESH.SMESH_MeshEditor.POINT";
+      break;
+    case  SMESH::SMESH_MeshEditor::AXIS:
+      typeStr = "SMESH.SMESH_MeshEditor.AXIS";
+      break;
+    default:
+      typeStr = "SMESH.SMESH_MeshEditor.PLANE";
+    }
+    return typeStr;
+  }
 }
 
 //=============================================================================
@@ -206,9 +227,10 @@ namespace {
  */
 //=============================================================================
 
-SMESH_MeshEditor_i::SMESH_MeshEditor_i(SMESH_Mesh* theMesh, bool isPreview)
+SMESH_MeshEditor_i::SMESH_MeshEditor_i(SMESH_Mesh_i* theMesh, bool isPreview)
 {
-  myMesh = theMesh;
+  myMesh_i = theMesh;
+  myMesh = & theMesh->GetImpl();
   myPreviewMode = isPreview;
 }
 
@@ -548,6 +570,185 @@ CORBA::Long SMESH_MeshEditor_i::AddPolyhedralVolumeByFaces
   return 0;
 }
 
+//=============================================================================
+/*!
+ * \brief Bind a node to a vertex
+ * \param NodeID - node ID
+ * \param VertexID - vertex ID available through GEOM_Object.GetSubShapeIndices()[0]
+ * \retval boolean - false if NodeID or VertexID is invalid
+ */
+//=============================================================================
+
+void SMESH_MeshEditor_i::SetNodeOnVertex(CORBA::Long NodeID, CORBA::Long VertexID)
+  throw (SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+
+  SMESHDS_Mesh * mesh = GetMeshDS();
+  SMDS_MeshNode* node = const_cast<SMDS_MeshNode*>( mesh->FindNode(NodeID) );
+  if ( !node )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid NodeID", SALOME::BAD_PARAM);
+
+  if ( mesh->MaxShapeIndex() < VertexID )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid VertexID", SALOME::BAD_PARAM);
+
+  TopoDS_Shape shape = mesh->IndexToShape( VertexID );
+  if ( shape.ShapeType() != TopAbs_VERTEX )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid VertexID", SALOME::BAD_PARAM);
+
+  mesh->SetNodeOnVertex( node, VertexID );
+}
+
+//=============================================================================
+/*!
+ * \brief Store node position on an edge
+ * \param NodeID - node ID
+ * \param EdgeID - edge ID available through GEOM_Object.GetSubShapeIndices()[0]
+ * \param paramOnEdge - parameter on edge where the node is located
+ * \retval boolean - false if any parameter is invalid
+ */
+//=============================================================================
+
+void SMESH_MeshEditor_i::SetNodeOnEdge(CORBA::Long NodeID, CORBA::Long EdgeID,
+                                       CORBA::Double paramOnEdge)
+  throw (SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+
+  SMESHDS_Mesh * mesh = GetMeshDS();
+  SMDS_MeshNode* node = const_cast<SMDS_MeshNode*>( mesh->FindNode(NodeID) );
+  if ( !node )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid NodeID", SALOME::BAD_PARAM);
+
+  if ( mesh->MaxShapeIndex() < EdgeID )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid EdgeID", SALOME::BAD_PARAM);
+
+  TopoDS_Shape shape = mesh->IndexToShape( EdgeID );
+  if ( shape.ShapeType() != TopAbs_EDGE )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid EdgeID", SALOME::BAD_PARAM);
+
+  Standard_Real f,l;
+  BRep_Tool::Range( TopoDS::Edge( shape ), f,l);
+  if ( paramOnEdge < f || paramOnEdge > l )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid paramOnEdge", SALOME::BAD_PARAM);
+
+  mesh->SetNodeOnEdge( node, EdgeID, paramOnEdge );
+}
+
+//=============================================================================
+/*!
+ * \brief Store node position on a face
+ * \param NodeID - node ID
+ * \param FaceID - face ID available through GEOM_Object.GetSubShapeIndices()[0]
+ * \param u - U parameter on face where the node is located
+ * \param v - V parameter on face where the node is located
+ * \retval boolean - false if any parameter is invalid
+ */
+//=============================================================================
+
+void SMESH_MeshEditor_i::SetNodeOnFace(CORBA::Long NodeID, CORBA::Long FaceID,
+                                       CORBA::Double u, CORBA::Double v)
+  throw (SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+
+  SMESHDS_Mesh * mesh = GetMeshDS();
+  SMDS_MeshNode* node = const_cast<SMDS_MeshNode*>( mesh->FindNode(NodeID) );
+  if ( !node )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid NodeID", SALOME::BAD_PARAM);
+
+  if ( mesh->MaxShapeIndex() < FaceID )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid FaceID", SALOME::BAD_PARAM);
+
+  TopoDS_Shape shape = mesh->IndexToShape( FaceID );
+  if ( shape.ShapeType() != TopAbs_FACE )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid FaceID", SALOME::BAD_PARAM);
+
+  BRepAdaptor_Surface surf( TopoDS::Face( shape ));
+  bool isOut = ( u < surf.FirstUParameter() ||
+                 u > surf.LastUParameter()  ||
+                 v < surf.FirstVParameter() ||
+                 v > surf.LastVParameter() );
+
+  if ( isOut ) {
+#ifdef _DEBUG_
+    cout << "FACE " << FaceID << " (" << u << "," << v << ") out of "
+         << " u( " <<  surf.FirstUParameter() 
+         << "," <<  surf.LastUParameter()  
+         << ") v( " <<  surf.FirstVParameter() 
+         << "," <<  surf.LastVParameter()
+         << ")" << endl;
+#endif    
+    THROW_SALOME_CORBA_EXCEPTION("Invalid UV", SALOME::BAD_PARAM);
+  }
+
+  mesh->SetNodeOnFace( node, FaceID, u, v );
+}
+
+//=============================================================================
+/*!
+ * \brief Bind a node to a solid
+ * \param NodeID - node ID
+ * \param SolidID - vertex ID available through GEOM_Object.GetSubShapeIndices()[0]
+ * \retval boolean - false if NodeID or SolidID is invalid
+ */
+//=============================================================================
+
+void SMESH_MeshEditor_i::SetNodeInVolume(CORBA::Long NodeID, CORBA::Long SolidID)
+  throw (SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+
+  SMESHDS_Mesh * mesh = GetMeshDS();
+  SMDS_MeshNode* node = const_cast<SMDS_MeshNode*>( mesh->FindNode(NodeID) );
+  if ( !node )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid NodeID", SALOME::BAD_PARAM);
+
+  if ( mesh->MaxShapeIndex() < SolidID )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid SolidID", SALOME::BAD_PARAM);
+
+  TopoDS_Shape shape = mesh->IndexToShape( SolidID );
+  if ( shape.ShapeType() != TopAbs_SOLID &&
+       shape.ShapeType() != TopAbs_SHELL)
+    THROW_SALOME_CORBA_EXCEPTION("Invalid SolidID", SALOME::BAD_PARAM);
+
+  mesh->SetNodeInVolume( node, SolidID );
+}
+
+//=============================================================================
+/*!
+ * \brief Bind an element to a shape
+ * \param ElementID - element ID
+ * \param ShapeID - shape ID available through GEOM_Object.GetSubShapeIndices()[0]
+ * \retval boolean - false if ElementID or ShapeID is invalid
+ */
+//=============================================================================
+
+void SMESH_MeshEditor_i::SetMeshElementOnShape(CORBA::Long ElementID,
+                                               CORBA::Long ShapeID)
+  throw (SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+
+  SMESHDS_Mesh * mesh = GetMeshDS();
+  SMDS_MeshElement* elem = const_cast<SMDS_MeshElement*>(mesh->FindElement(ElementID));
+  if ( !elem )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid ElementID", SALOME::BAD_PARAM);
+
+  if ( mesh->MaxShapeIndex() < ShapeID )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid ShapeID", SALOME::BAD_PARAM);
+
+  TopoDS_Shape shape = mesh->IndexToShape( ShapeID );
+  if ( shape.ShapeType() != TopAbs_EDGE &&
+       shape.ShapeType() != TopAbs_FACE &&
+       shape.ShapeType() != TopAbs_SOLID &&
+       shape.ShapeType() != TopAbs_SHELL )
+    THROW_SALOME_CORBA_EXCEPTION("Invalid shape type", SALOME::BAD_PARAM);
+
+  mesh->SetMeshElementOnShape( elem, ShapeID );
+}
+
+
 //=============================================================================
 /*!
  *
@@ -622,7 +823,7 @@ CORBA::Boolean SMESH_MeshEditor_i::DeleteDiag(CORBA::Long NodeID1,
 
   bool stat = aMeshEditor.DeleteDiag ( n1, n2 );
 
-  StoreResult(aMeshEditor);
+  storeResult(aMeshEditor);
 
   return stat;
 }
@@ -687,10 +888,10 @@ namespace
    */
   //================================================================================
 
-  void ToMap(const SMESH::long_array & IDs,
-             const SMESHDS_Mesh*       aMesh,
-             TIDSortedElemSet&         aMap,
-             const SMDSAbs_ElementType aType = SMDSAbs_All )
+  void arrayToSet(const SMESH::long_array & IDs,
+                  const SMESHDS_Mesh*       aMesh,
+                  TIDSortedElemSet&         aMap,
+                  const SMDSAbs_ElementType aType = SMDSAbs_All )
   { 
     for (int i=0; i<IDs.length(); i++) {
       CORBA::Long ind = IDs[i];
@@ -714,7 +915,7 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuad (const SMESH::long_array &   IDsOfE
 
   SMESHDS_Mesh* aMesh = GetMeshDS();
   TIDSortedElemSet faces;
-  ToMap(IDsOfElements, aMesh, faces, SMDSAbs_Face);
+  arrayToSet(IDsOfElements, aMesh, faces, SMDSAbs_Face);
 
   SMESH::NumericalFunctor_i* aNumericalFunctor =
     dynamic_cast<SMESH::NumericalFunctor_i*>( SMESH_Gen_i::GetServant( Criterion ).in() );
@@ -735,7 +936,7 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuad (const SMESH::long_array &   IDsOfE
 
   bool stat = anEditor.TriToQuad( faces, aCrit, MaxAngle );
 
-  StoreResult(anEditor);
+  storeResult(anEditor);
 
   return stat;
 }
@@ -788,7 +989,7 @@ CORBA::Boolean SMESH_MeshEditor_i::QuadToTri (const SMESH::long_array &   IDsOfE
 
   SMESHDS_Mesh* aMesh = GetMeshDS();
   TIDSortedElemSet faces;
-  ToMap(IDsOfElements, aMesh, faces, SMDSAbs_Face);
+  arrayToSet(IDsOfElements, aMesh, faces, SMDSAbs_Face);
 
   SMESH::NumericalFunctor_i* aNumericalFunctor =
     dynamic_cast<SMESH::NumericalFunctor_i*>( SMESH_Gen_i::GetServant( Criterion ).in() );
@@ -808,7 +1009,7 @@ CORBA::Boolean SMESH_MeshEditor_i::QuadToTri (const SMESH::long_array &   IDsOfE
   ::SMESH_MeshEditor anEditor( myMesh );
   CORBA::Boolean stat = anEditor.QuadToTri( faces, aCrit );
 
-  StoreResult(anEditor);
+  storeResult(anEditor);
 
   return stat;
 }
@@ -859,7 +1060,7 @@ CORBA::Boolean SMESH_MeshEditor_i::SplitQuad (const SMESH::long_array & IDsOfEle
 
   SMESHDS_Mesh* aMesh = GetMeshDS();
   TIDSortedElemSet faces;
-  ToMap(IDsOfElements, aMesh, faces, SMDSAbs_Face);
+  arrayToSet(IDsOfElements, aMesh, faces, SMDSAbs_Face);
 
   // Update Python script
   TPythonDump() << "isDone = " << this << ".SplitQuad( "
@@ -871,7 +1072,7 @@ CORBA::Boolean SMESH_MeshEditor_i::SplitQuad (const SMESH::long_array & IDsOfEle
   ::SMESH_MeshEditor anEditor( myMesh );
   CORBA::Boolean stat = anEditor.QuadToTri( faces, Diag13 );
 
-  StoreResult(anEditor);
+  storeResult(anEditor);
 
   return stat;
 }
@@ -1021,7 +1222,7 @@ CORBA::Boolean
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
   TIDSortedElemSet elements;
-  ToMap(IDsOfElements, aMesh, elements, SMDSAbs_Face);
+  arrayToSet(IDsOfElements, aMesh, elements, SMDSAbs_Face);
 
   set<const SMDS_MeshNode*> fixedNodes;
   for (int i = 0; i < IDsOfFixedNodes.length(); i++) {
@@ -1038,7 +1239,7 @@ CORBA::Boolean
   anEditor.Smooth(elements, fixedNodes, method,
                   MaxNbOfIterations, MaxAspectRatio, IsParametric );
 
-  StoreResult(anEditor);
+  storeResult(anEditor);
 
   // Update Python script
   TPythonDump() << "isDone = " << this << "."
@@ -1128,22 +1329,37 @@ void SMESH_MeshEditor_i::RenumberElements()
   GetMeshDS()->Renumber( false );
 }
 
+//=======================================================================
+  /*!
+   * \brief Return groups by their IDs
+   */
+//=======================================================================
+
+SMESH::ListOfGroups* SMESH_MeshEditor_i::getGroups(const std::list<int>* groupIDs)
+{
+  if ( !groupIDs )
+    return 0;
+  myMesh_i->CreateGroupServants();
+  return myMesh_i->GetGroups( *groupIDs );
+}
 
 //=======================================================================
-//function : RotationSweep
-//purpose  :
+//function : rotationSweep
+//purpose  : 
 //=======================================================================
 
-void SMESH_MeshEditor_i::RotationSweep(const SMESH::long_array & theIDsOfElements,
-                                       const SMESH::AxisStruct & theAxis,
-                                       CORBA::Double             theAngleInRadians,
-                                       CORBA::Long               theNbOfSteps,
-                                       CORBA::Double             theTolerance)
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::rotationSweep(const SMESH::long_array & theIDsOfElements,
+                                  const SMESH::AxisStruct & theAxis,
+                                  CORBA::Double             theAngleInRadians,
+                                  CORBA::Long               theNbOfSteps,
+                                  CORBA::Double             theTolerance,
+                                  const bool                theMakeGroups)
 {
   initData();
 
   TIDSortedElemSet inElements, copyElements;
-  ToMap(theIDsOfElements, GetMeshDS(), inElements);
+  arrayToSet(theIDsOfElements, GetMeshDS(), inElements);
 
   TIDSortedElemSet* workElements = & inElements;
   TPreviewMesh      tmpMesh( SMDSAbs_Face );
@@ -1166,13 +1382,26 @@ void SMESH_MeshEditor_i::RotationSweep(const SMESH::long_array & theIDsOfElement
               gp_Vec( theAxis.vx, theAxis.vy, theAxis.vz ));
 
   ::SMESH_MeshEditor anEditor( mesh );
-  anEditor.RotationSweep (*workElements, Ax1, theAngleInRadians,
-                          theNbOfSteps, theTolerance, makeWalls);
+  ::SMESH_MeshEditor::PGroupIDs groupIds =
+    anEditor.RotationSweep (*workElements, Ax1, theAngleInRadians,
+                            theNbOfSteps, theTolerance, theMakeGroups, makeWalls);
+  storeResult(anEditor);
+
+  return theMakeGroups ? getGroups(groupIds.get()) : 0;
+}
 
-  StoreResult(anEditor);
+//=======================================================================
+//function : RotationSweep
+//purpose  :
+//=======================================================================
 
+void SMESH_MeshEditor_i::RotationSweep(const SMESH::long_array & theIDsOfElements,
+                                       const SMESH::AxisStruct & theAxis,
+                                       CORBA::Double             theAngleInRadians,
+                                       CORBA::Long               theNbOfSteps,
+                                       CORBA::Double             theTolerance)
+{
   if ( !myPreviewMode ) {
-    // Update Python script
     TPythonDump() << "axis = " << theAxis;
     TPythonDump() << this << ".RotationSweep( "
                   << theIDsOfElements
@@ -1181,6 +1410,41 @@ void SMESH_MeshEditor_i::RotationSweep(const SMESH::long_array & theIDsOfElement
                   << theNbOfSteps << ", "
                   << theTolerance << " )";
   }
+  rotationSweep(theIDsOfElements,
+                theAxis,
+                theAngleInRadians,
+                theNbOfSteps,
+                theTolerance,
+                false);
+}
+
+//=======================================================================
+//function : RotationSweepMakeGroups
+//purpose  : 
+//=======================================================================
+
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::RotationSweepMakeGroups(const SMESH::long_array& theIDsOfElements,
+                                            const SMESH::AxisStruct& theAxis,
+                                            CORBA::Double            theAngleInRadians,
+                                            CORBA::Long              theNbOfSteps,
+                                            CORBA::Double            theTolerance)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "axis = " << theAxis;
+    TPythonDump() << this << ".RotationSweepMakeGroups( "
+                  << theIDsOfElements
+                  << ", axis, "
+                  << theAngleInRadians << ", "
+                  << theNbOfSteps << ", "
+                  << theTolerance << " )";
+  }
+  return rotationSweep(theIDsOfElements,
+                       theAxis,
+                       theAngleInRadians,
+                       theNbOfSteps,
+                       theTolerance,
+                       true);
 }
 
 //=======================================================================
@@ -1194,68 +1458,110 @@ void SMESH_MeshEditor_i::RotationSweepObject(SMESH::SMESH_IDSource_ptr theObject
                                             CORBA::Long               theNbOfSteps,
                                             CORBA::Double             theTolerance)
 {
-  initData();
-
+  if ( !myPreviewMode ) {
+    TPythonDump() << "axis = " << theAxis;
+    TPythonDump() << this << ".RotationSweepObject( "
+                  << theObject
+                  << ", axis, "
+                  << theAngleInRadians << ", "
+                  << theNbOfSteps << ", "
+                  << theTolerance << " )";
+  }
   SMESH::long_array_var anElementsId = theObject->GetIDs();
-  RotationSweep(anElementsId, theAxis, theAngleInRadians, theNbOfSteps, theTolerance);
+  rotationSweep(anElementsId,
+                theAxis,
+                theAngleInRadians,
+                theNbOfSteps,
+                theTolerance,
+                false);
+}
 
-  // Clear python line, created by RotationSweep()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
+//=======================================================================
+//function : RotationSweepObjectMakeGroups
+//purpose  : 
+//=======================================================================
 
-  // Update Python script
-  TPythonDump() << this << ".RotationSweepObject( "
-                << theObject
-                << ", axis, "
-                << theAngleInRadians << ", "
-                << theNbOfSteps << ", "
-                << theTolerance << " )";
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::RotationSweepObjectMakeGroups(SMESH::SMESH_IDSource_ptr theObject,
+                                                  const SMESH::AxisStruct&  theAxis,
+                                                  CORBA::Double             theAngleInRadians,
+                                                  CORBA::Long               theNbOfSteps,
+                                                  CORBA::Double             theTolerance)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "axis = " << theAxis;
+    TPythonDump() << this << ".RotationSweepObjectMakeGroups( "
+                  << theObject
+                  << ", axis, "
+                  << theAngleInRadians << ", "
+                  << theNbOfSteps << ", "
+                  << theTolerance << " )";
+  }
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  return rotationSweep(anElementsId,
+                       theAxis,
+                       theAngleInRadians,
+                       theNbOfSteps,
+                       theTolerance,
+                       true);
 }
 
+
 //=======================================================================
-//function : ExtrusionSweep
-//purpose  :
+//function : extrusionSweep
+//purpose  : 
 //=======================================================================
 
-void SMESH_MeshEditor_i::ExtrusionSweep(const SMESH::long_array & theIDsOfElements,
-                                        const SMESH::DirStruct &  theStepVector,
-                                        CORBA::Long               theNbOfSteps)
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::extrusionSweep(const SMESH::long_array & theIDsOfElements,
+                                   const SMESH::DirStruct &  theStepVector,
+                                   CORBA::Long               theNbOfSteps,
+                                   const bool                theMakeGroups,
+                                   const SMDSAbs_ElementType theElementType)
 {
   initData();
 
-#ifdef NO_CAS_CATCH
   try {   
+#ifdef NO_CAS_CATCH
     OCC_CATCH_SIGNALS;
-#else
-  CASCatch_TRY {
 #endif
-    SMESHDS_Mesh* aMesh = GetMeshDS();
-
     TIDSortedElemSet elements;
-    ToMap(theIDsOfElements, aMesh, elements);
+    arrayToSet(theIDsOfElements, GetMeshDS(), elements, theElementType);
 
     const SMESH::PointStruct * P = &theStepVector.PS;
     gp_Vec stepVec( P->x, P->y, P->z );
 
     TElemOfElemListMap aHystory;
     ::SMESH_MeshEditor anEditor( myMesh );
-    anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory);
+    ::SMESH_MeshEditor::PGroupIDs groupIds =
+        anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory, theMakeGroups);
 
-    StoreResult(anEditor);
+    storeResult(anEditor);
 
-    // Update Python script
-    TPythonDump() << "stepVector = " << theStepVector;
-    TPythonDump() << this << ".ExtrusionSweep( "
-                  << theIDsOfElements << ", stepVector, " << theNbOfSteps << " )";
+    return theMakeGroups ? getGroups(groupIds.get()) : 0;
 
-#ifdef NO_CAS_CATCH
   } catch(Standard_Failure) {
-#else
-  } CASCatch_CATCH(Standard_Failure) {
-#endif
     Handle(Standard_Failure) aFail = Standard_Failure::Caught();          
     INFOS( "SMESH_MeshEditor_i::ExtrusionSweep fails - "<< aFail->GetMessageString() );
   }
+  return 0;
+}
+
+//=======================================================================
+//function : ExtrusionSweep
+//purpose  :
+//=======================================================================
+
+void SMESH_MeshEditor_i::ExtrusionSweep(const SMESH::long_array & theIDsOfElements,
+                                        const SMESH::DirStruct &  theStepVector,
+                                        CORBA::Long               theNbOfSteps)
+{
+  extrusionSweep (theIDsOfElements, theStepVector, theNbOfSteps, false );
+  if ( !myPreviewMode ) {
+    TPythonDump() << "stepVector = " << theStepVector;
+    TPythonDump() << this << ".ExtrusionSweep( "
+                  << theIDsOfElements << ", stepVector, " << theNbOfSteps << " )";
+  }
 }
 
 
@@ -1268,18 +1574,13 @@ void SMESH_MeshEditor_i::ExtrusionSweepObject(SMESH::SMESH_IDSource_ptr theObjec
                                              const SMESH::DirStruct &  theStepVector,
                                              CORBA::Long               theNbOfSteps)
 {
-  initData();
-
   SMESH::long_array_var anElementsId = theObject->GetIDs();
-  ExtrusionSweep(anElementsId, theStepVector, theNbOfSteps);
-
-  // Clear python line, created by ExtrusionSweep()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
-
-  // Update Python script
-  TPythonDump() << this << ".ExtrusionSweepObject( "
-                << theObject << ", stepVector, " << theNbOfSteps << " )";
+  extrusionSweep (anElementsId, theStepVector, theNbOfSteps, false );
+  if ( !myPreviewMode ) {
+    TPythonDump() << "stepVector = " << theStepVector;
+    TPythonDump() << this << ".ExtrusionSweepObject( "
+                  << theObject << ", stepVector, " << theNbOfSteps << " )";
+  }
 }
 
 //=======================================================================
@@ -1291,66 +1592,139 @@ void SMESH_MeshEditor_i::ExtrusionSweepObject1D(SMESH::SMESH_IDSource_ptr theObj
                                                 const SMESH::DirStruct &  theStepVector,
                                                 CORBA::Long               theNbOfSteps)
 {
-  initData();
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  extrusionSweep (anElementsId, theStepVector, theNbOfSteps, false, SMDSAbs_Edge );
+  if ( !myPreviewMode ) {
+    TPythonDump() << "stepVector = " << theStepVector;
+    TPythonDump() << this << ".ExtrusionSweepObject1D( "
+                  << theObject << ", stepVector, " << theNbOfSteps << " )";
+  }
+}
 
-  SMESHDS_Mesh* aMesh = GetMeshDS();
+//=======================================================================
+//function : ExtrusionSweepObject2D
+//purpose  :
+//=======================================================================
 
-  SMESH::long_array_var allElementsId = theObject->GetIDs();
+void SMESH_MeshEditor_i::ExtrusionSweepObject2D(SMESH::SMESH_IDSource_ptr theObject,
+                                                const SMESH::DirStruct &  theStepVector,
+                                                CORBA::Long               theNbOfSteps)
+{
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  extrusionSweep (anElementsId, theStepVector, theNbOfSteps, false, SMDSAbs_Face );
+  if ( !myPreviewMode ) {
+    TPythonDump() << "stepVector = " << theStepVector;
+    TPythonDump() << this << ".ExtrusionSweepObject2D( "
+                  << theObject << ", stepVector, " << theNbOfSteps << " )";
+  }
+}
 
-  TIDSortedElemSet elements;
-  ToMap(allElementsId, aMesh, elements);
+//=======================================================================
+//function : ExtrusionSweepMakeGroups
+//purpose  : 
+//=======================================================================
 
-  const SMESH::PointStruct * P = &theStepVector.PS;
-  gp_Vec stepVec( P->x, P->y, P->z );
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::ExtrusionSweepMakeGroups(const SMESH::long_array& theIDsOfElements,
+                                             const SMESH::DirStruct&  theStepVector,
+                                             CORBA::Long              theNbOfSteps)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "stepVector = " << theStepVector;
+    TPythonDump() << this << ".ExtrusionSweepMakeGroups( "
+                  << theIDsOfElements << ", stepVector, " << theNbOfSteps << " )";
+  }
+  return extrusionSweep (theIDsOfElements, theStepVector, theNbOfSteps, true );
+}
+//=======================================================================
+//function : ExtrusionSweepObjectMakeGroups
+//purpose  : 
+//=======================================================================
 
-  ::SMESH_MeshEditor anEditor( myMesh );
-  //anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps);
-  TElemOfElemListMap aHystory;
-  anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory);
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::ExtrusionSweepObjectMakeGroups(SMESH::SMESH_IDSource_ptr theObject,
+                                                   const SMESH::DirStruct&   theStepVector,
+                                                   CORBA::Long               theNbOfSteps)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "stepVector = " << theStepVector;
+    TPythonDump() << this << ".ExtrusionSweepObjectMakeGroups( "
+                  << theObject << ", stepVector, " << theNbOfSteps << " )";
+  }
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  return extrusionSweep (anElementsId, theStepVector, theNbOfSteps, true );
+}
 
-  StoreResult(anEditor);
+//=======================================================================
+//function : ExtrusionSweepObject1DMakeGroups
+//purpose  : 
+//=======================================================================
 
-  // Update Python script
-  TPythonDump() << "stepVector = " << theStepVector;
-  TPythonDump() << this << ".ExtrusionSweepObject1D( "
-                << theObject << ", stepVector, " << theNbOfSteps << " )";
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::ExtrusionSweepObject1DMakeGroups(SMESH::SMESH_IDSource_ptr theObject,
+                                                     const SMESH::DirStruct&   theStepVector,
+                                                     CORBA::Long               theNbOfSteps)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "stepVector = " << theStepVector;
+    TPythonDump() << this << ".ExtrusionSweepObject1DMakeGroups( "
+                  << theObject << ", stepVector, " << theNbOfSteps << " )";
+  }
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  return extrusionSweep (anElementsId, theStepVector, theNbOfSteps, true, SMDSAbs_Edge );
 }
 
 //=======================================================================
-//function : ExtrusionSweepObject2D
-//purpose  :
+//function : ExtrusionSweepObject2DMakeGroups
+//purpose  : 
 //=======================================================================
 
-void SMESH_MeshEditor_i::ExtrusionSweepObject2D(SMESH::SMESH_IDSource_ptr theObject,
-                                                const SMESH::DirStruct &  theStepVector,
-                                                CORBA::Long               theNbOfSteps)
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::ExtrusionSweepObject2DMakeGroups(SMESH::SMESH_IDSource_ptr theObject,
+                                                     const SMESH::DirStruct&   theStepVector,
+                                                     CORBA::Long               theNbOfSteps)
 {
-  initData();
+  if ( !myPreviewMode ) {
+    TPythonDump() << "stepVector = " << theStepVector;
+    TPythonDump() << this << ".ExtrusionSweepObject2DMakeGroups( "
+                  << theObject << ", stepVector, " << theNbOfSteps << " )";
+  }
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  return extrusionSweep (anElementsId, theStepVector, theNbOfSteps, true, SMDSAbs_Face );
+}
 
-  SMESHDS_Mesh* aMesh = GetMeshDS();
 
-  SMESH::long_array_var allElementsId = theObject->GetIDs();
+//=======================================================================
+//function : advancedExtrusion
+//purpose  : 
+//=======================================================================
+
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::advancedExtrusion(const SMESH::long_array & theIDsOfElements,
+                                      const SMESH::DirStruct &  theStepVector,
+                                      CORBA::Long               theNbOfSteps,
+                                      CORBA::Long               theExtrFlags,
+                                      CORBA::Double             theSewTolerance,
+                                      const bool                theMakeGroups)
+{
+  initData();
 
   TIDSortedElemSet elements;
-  ToMap(allElementsId, aMesh, elements);
+  arrayToSet(theIDsOfElements, GetMeshDS(), elements);
 
   const SMESH::PointStruct * P = &theStepVector.PS;
   gp_Vec stepVec( P->x, P->y, P->z );
 
   ::SMESH_MeshEditor anEditor( myMesh );
-  //anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps);
   TElemOfElemListMap aHystory;
-  anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory);
-
-  StoreResult(anEditor);
+  ::SMESH_MeshEditor::PGroupIDs groupIds =
+      anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory,
+                               theMakeGroups, theExtrFlags, theSewTolerance);
+  storeResult(anEditor);
 
-  // Update Python script
-  TPythonDump() << "stepVector = " << theStepVector;
-  TPythonDump() << this << ".ExtrusionSweepObject2D( "
-                << theObject << ", stepVector, " << theNbOfSteps << " )";
+  return theMakeGroups ? getGroups(groupIds.get()) : 0;
 }
 
-
 //=======================================================================
 //function : AdvancedExtrusion
 //purpose  :
@@ -1362,34 +1736,59 @@ void SMESH_MeshEditor_i::AdvancedExtrusion(const SMESH::long_array & theIDsOfEle
                                           CORBA::Long               theExtrFlags,
                                           CORBA::Double             theSewTolerance)
 {
-  initData();
-
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
-  TIDSortedElemSet elements;
-  ToMap(theIDsOfElements, aMesh, elements);
-
-  const SMESH::PointStruct * P = &theStepVector.PS;
-  gp_Vec stepVec( P->x, P->y, P->z );
-
-  ::SMESH_MeshEditor anEditor( myMesh );
-  TElemOfElemListMap aHystory;
-  anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory,
-                          theExtrFlags, theSewTolerance);
+  if ( !myPreviewMode ) {
+    TPythonDump() << "stepVector = " << theStepVector;
+    TPythonDump() << this << ".AdvancedExtrusion("
+                  << theIDsOfElements
+                  << ", stepVector, "
+                  << theNbOfSteps << ","
+                  << theExtrFlags << ", "
+                  << theSewTolerance <<  " )";
+  }
+  advancedExtrusion( theIDsOfElements,
+                     theStepVector,
+                     theNbOfSteps,
+                     theExtrFlags,
+                     theSewTolerance,
+                     false);
+}
 
-  StoreResult(anEditor);
+//=======================================================================
+//function : AdvancedExtrusionMakeGroups
+//purpose  : 
+//=======================================================================
 
-  // Update Python script
-  TPythonDump() << "stepVector = " << theStepVector;
-  TPythonDump() << this << ".AdvancedExtrusion("
-                << theIDsOfElements
-                << ", stepVector, "
-                << theNbOfSteps << ","
-                << theExtrFlags << ", "
-                << theSewTolerance <<  " )";
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::AdvancedExtrusionMakeGroups(const SMESH::long_array& theIDsOfElements,
+                                                const SMESH::DirStruct&  theStepVector,
+                                                CORBA::Long              theNbOfSteps,
+                                                CORBA::Long              theExtrFlags,
+                                                CORBA::Double            theSewTolerance)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "stepVector = " << theStepVector;
+    TPythonDump() << this << ".AdvancedExtrusionMakeGroups("
+                  << theIDsOfElements
+                  << ", stepVector, "
+                  << theNbOfSteps << ","
+                  << theExtrFlags << ", "
+                  << theSewTolerance <<  " )";
+  }
+  return advancedExtrusion( theIDsOfElements,
+                            theStepVector,
+                            theNbOfSteps,
+                            theExtrFlags,
+                            theSewTolerance,
+                            true);
 }
 
 
+//================================================================================
+/*!
+ * \brief Convert extrusion error to IDL enum
+ */
+//================================================================================
+
 #define RETCASE(enm) case ::SMESH_MeshEditor::enm: return SMESH::SMESH_MeshEditor::enm;
 
 static SMESH::SMESH_MeshEditor::Extrusion_Error convExtrError( const::SMESH_MeshEditor::Extrusion_Error e )
@@ -1406,41 +1805,48 @@ static SMESH::SMESH_MeshEditor::Extrusion_Error convExtrError( const::SMESH_Mesh
   return SMESH::SMESH_MeshEditor::EXTR_OK;
 }
 
+
 //=======================================================================
-//function : ExtrusionAlongPath
-//purpose  :
+//function : extrusionAlongPath
+//purpose  : 
 //=======================================================================
 
-SMESH::SMESH_MeshEditor::Extrusion_Error
-  SMESH_MeshEditor_i::ExtrusionAlongPath(const SMESH::long_array &   theIDsOfElements,
-                                        SMESH::SMESH_Mesh_ptr       thePathMesh,
-                                        GEOM::GEOM_Object_ptr       thePathShape,
-                                        CORBA::Long                 theNodeStart,
-                                        CORBA::Boolean              theHasAngles,
-                                        const SMESH::double_array & theAngles,
-                                        CORBA::Boolean              theHasRefPoint,
-                                        const SMESH::PointStruct &  theRefPoint)
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::extrusionAlongPath(const SMESH::long_array &   theIDsOfElements,
+                                       SMESH::SMESH_Mesh_ptr       thePathMesh,
+                                       GEOM::GEOM_Object_ptr       thePathShape,
+                                       CORBA::Long                 theNodeStart,
+                                       CORBA::Boolean              theHasAngles,
+                                       const SMESH::double_array & theAngles,
+                                       CORBA::Boolean              theHasRefPoint,
+                                       const SMESH::PointStruct &  theRefPoint,
+                                       const bool                  theMakeGroups,
+                                       SMESH::SMESH_MeshEditor::Extrusion_Error & theError)
 {
   initData();
 
-  SMESHDS_Mesh*  aMesh = GetMeshDS();
-
-  if ( thePathMesh->_is_nil() || thePathShape->_is_nil() )
-    return SMESH::SMESH_MeshEditor::EXTR_BAD_PATH_SHAPE;
+  if ( thePathMesh->_is_nil() || thePathShape->_is_nil() ) {
+    theError = SMESH::SMESH_MeshEditor::EXTR_BAD_PATH_SHAPE;
+    return 0;
+  }
+  SMESH_Mesh_i* aMeshImp = SMESH::DownCast<SMESH_Mesh_i*>( thePathMesh );
 
-  SMESH_Mesh_i* aMeshImp = dynamic_cast<SMESH_Mesh_i*>( SMESH_Gen_i::GetServant( thePathMesh ).in() );
   TopoDS_Shape aShape = SMESH_Gen_i::GetSMESHGen()->GeomObjectToShape( thePathShape );
   SMESH_subMesh* aSubMesh = aMeshImp->GetImpl().GetSubMesh( aShape );
 
-  if ( !aSubMesh || !aSubMesh->GetSubMeshDS())
-    return SMESH::SMESH_MeshEditor::EXTR_BAD_PATH_SHAPE;
+  if ( !aSubMesh || !aSubMesh->GetSubMeshDS()) {
+    theError = SMESH::SMESH_MeshEditor::EXTR_BAD_PATH_SHAPE;
+    return 0;
+  }
 
   SMDS_MeshNode* nodeStart = (SMDS_MeshNode*)aMeshImp->GetImpl().GetMeshDS()->FindNode(theNodeStart);
-  if ( !nodeStart )
-    return SMESH::SMESH_MeshEditor::EXTR_BAD_STARTING_NODE;
+  if ( !nodeStart ) {
+    theError = SMESH::SMESH_MeshEditor::EXTR_BAD_STARTING_NODE;
+    return 0;
+  }
 
   TIDSortedElemSet elements;
-  ToMap(theIDsOfElements, aMesh, elements);
+  arrayToSet(theIDsOfElements, GetMeshDS(), elements);
 
   list<double> angles;
   for (int i = 0; i < theAngles.length(); i++) {
@@ -1449,35 +1855,73 @@ SMESH::SMESH_MeshEditor::Extrusion_Error
 
   gp_Pnt refPnt( theRefPoint.x, theRefPoint.y, theRefPoint.z );
 
-  // Update Python script
-  TPythonDump() << "rotAngles = " << theAngles;
-
-  if ( theHasRefPoint )
-    TPythonDump() << "refPoint = SMESH.PointStruct( "
-                  << refPnt.X() << ", "
-                  << refPnt.Y() << ", "
-                  << refPnt.Z() << " )";
-  else
-    TPythonDump() << "refPoint = SMESH.PointStruct( 0,0,0 )";
-
-  TPythonDump() << "error = " << this << ".ExtrusionAlongPath( "
-                << theIDsOfElements << ", "
-                << thePathMesh      << ", "
-                << thePathShape     << ", "
-                << theNodeStart     << ", "
-                << theHasAngles     << ", "
-                << "rotAngles"      << ", "
-                << theHasRefPoint   << ", refPoint )";
+  int nbOldGroups = myMesh->NbGroup();
 
   ::SMESH_MeshEditor anEditor( myMesh );
-  SMESH::SMESH_MeshEditor::Extrusion_Error error = 
-    convExtrError( anEditor.ExtrusionAlongTrack( elements, aSubMesh, nodeStart,
-                                                theHasAngles, angles,
-                                                theHasRefPoint, refPnt ) );
+  ::SMESH_MeshEditor::Extrusion_Error error =
+      anEditor.ExtrusionAlongTrack( elements, aSubMesh, nodeStart,
+                                    theHasAngles, angles,
+                                    theHasRefPoint, refPnt, theMakeGroups );
+  storeResult(anEditor);
+  theError = convExtrError( error );
+
+  if ( theMakeGroups ) {
+    list<int> groupIDs = myMesh->GetGroupIds();
+    list<int>::iterator newBegin = groupIDs.begin();
+    std::advance( newBegin, nbOldGroups ); // skip old groups
+    groupIDs.erase( groupIDs.begin(), newBegin );
+    return getGroups( & groupIDs );
+  }
+  return 0;
+}
 
-  StoreResult(anEditor);
+//=======================================================================
+//function : ExtrusionAlongPath
+//purpose  :
+//=======================================================================
 
-  return error;
+SMESH::SMESH_MeshEditor::Extrusion_Error
+  SMESH_MeshEditor_i::ExtrusionAlongPath(const SMESH::long_array &   theIDsOfElements,
+                                        SMESH::SMESH_Mesh_ptr       thePathMesh,
+                                        GEOM::GEOM_Object_ptr       thePathShape,
+                                        CORBA::Long                 theNodeStart,
+                                        CORBA::Boolean              theHasAngles,
+                                        const SMESH::double_array & theAngles,
+                                        CORBA::Boolean              theHasRefPoint,
+                                        const SMESH::PointStruct &  theRefPoint)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "rotAngles = " << theAngles;
+
+    if ( theHasRefPoint )
+      TPythonDump() << "refPoint = SMESH.PointStruct( "
+                    << theRefPoint.x << ", "
+                    << theRefPoint.y << ", "
+                    << theRefPoint.z << " )";
+    else
+      TPythonDump() << "refPoint = SMESH.PointStruct( 0,0,0 )";
+
+    TPythonDump() << "error = " << this << ".ExtrusionAlongPath( "
+                  << theIDsOfElements << ", "
+                  << thePathMesh      << ", "
+                  << thePathShape     << ", "
+                  << theNodeStart     << ", "
+                  << theHasAngles     << ", "
+                  << "rotAngles"      << ", "
+                  << theHasRefPoint   << ", refPoint )";
+  }
+  SMESH::SMESH_MeshEditor::Extrusion_Error anError;
+  extrusionAlongPath( theIDsOfElements,
+                      thePathMesh,
+                      thePathShape,
+                      theNodeStart,
+                      theHasAngles,
+                      theAngles,
+                      theHasRefPoint,
+                      theRefPoint,
+                      false,
+                      anError);
+  return anError;
 }
 
 //=======================================================================
@@ -1495,29 +1939,137 @@ SMESH_MeshEditor_i::ExtrusionAlongPathObject(SMESH::SMESH_IDSource_ptr   theObje
                                              CORBA::Boolean              theHasRefPoint,
                                              const SMESH::PointStruct &  theRefPoint)
 {
-  initData();
+  if ( !myPreviewMode ) {
+    TPythonDump() << "rotAngles = " << theAngles;
 
+    if ( theHasRefPoint )
+      TPythonDump() << "refPoint = SMESH.PointStruct( "
+                    << theRefPoint.x << ", "
+                    << theRefPoint.y << ", "
+                    << theRefPoint.z << " )";
+    else
+      TPythonDump() << "refPoint = SMESH.PointStruct( 0,0,0 )";
+
+    TPythonDump() << "error = " << this << ".ExtrusionAlongPathObject( "
+                  << theObject        << ", "
+                  << thePathMesh      << ", "
+                  << thePathShape     << ", "
+                  << theNodeStart     << ", "
+                  << theHasAngles     << ", "
+                  << "rotAngles"      << ", "
+                  << theHasRefPoint   << ", refPoint )";
+  }
+  SMESH::SMESH_MeshEditor::Extrusion_Error anError;
   SMESH::long_array_var anElementsId = theObject->GetIDs();
-  SMESH::SMESH_MeshEditor::Extrusion_Error error = ExtrusionAlongPath
-    (anElementsId, thePathMesh, thePathShape, theNodeStart,
-     theHasAngles, theAngles, theHasRefPoint, theRefPoint);
+  extrusionAlongPath( anElementsId,
+                      thePathMesh,
+                      thePathShape,
+                      theNodeStart,
+                      theHasAngles,
+                      theAngles,
+                      theHasRefPoint,
+                      theRefPoint,
+                      false,
+                      anError);
+  return anError;
+}
 
-  // Clear python line, created by ExtrusionAlongPath()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
 
-  // Update Python script
-  TPythonDump() << "rotAngles = " << theAngles;
-  TPythonDump() << "error = " << this << ".ExtrusionAlongPathObject( "
-                << theObject    << ", "
-                << thePathMesh  << ", "
-                << thePathShape << ", "
-                << theNodeStart << ", "
-                << theHasAngles << ", "
-                << "rotAngles"     << ", "
-                << theHasRefPoint<<", refPoint )";
+//=======================================================================
+//function : ExtrusionAlongPathMakeGroups
+//purpose  : 
+//=======================================================================
 
-  return error;
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::ExtrusionAlongPathMakeGroups(const SMESH::long_array&   theIDsOfElements,
+                                                 SMESH::SMESH_Mesh_ptr      thePathMesh,
+                                                 GEOM::GEOM_Object_ptr      thePathShape,
+                                                 CORBA::Long                theNodeStart,
+                                                 CORBA::Boolean             theHasAngles,
+                                                 const SMESH::double_array& theAngles,
+                                                 CORBA::Boolean             theHasRefPoint,
+                                                 const SMESH::PointStruct&  theRefPoint,
+                                                 SMESH::SMESH_MeshEditor::Extrusion_Error& Error)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "rotAngles = " << theAngles;
+
+    if ( theHasRefPoint )
+      TPythonDump() << "refPoint = SMESH.PointStruct( "
+                    << theRefPoint.x << ", "
+                    << theRefPoint.y << ", "
+                    << theRefPoint.z << " )";
+    else
+      TPythonDump() << "refPoint = SMESH.PointStruct( 0,0,0 )";
+
+    TPythonDump() << "groups = " << this << ".ExtrusionAlongPathMakeGroups( "
+                  << theIDsOfElements << ", "
+                  << thePathMesh      << ", "
+                  << thePathShape     << ", "
+                  << theNodeStart     << ", "
+                  << theHasAngles     << ", "
+                  << "rotAngles"      << ", "
+                  << theHasRefPoint   << ", refPoint )";
+  }
+  return extrusionAlongPath( theIDsOfElements,
+                             thePathMesh,
+                             thePathShape,
+                             theNodeStart,
+                             theHasAngles,
+                             theAngles,
+                             theHasRefPoint,
+                             theRefPoint,
+                             true,
+                             Error);
+}
+
+//=======================================================================
+//function : ExtrusionAlongPathObjectMakeGroups
+//purpose  : 
+//=======================================================================
+
+SMESH::ListOfGroups* SMESH_MeshEditor_i::
+ExtrusionAlongPathObjectMakeGroups(SMESH::SMESH_IDSource_ptr  theObject,
+                                   SMESH::SMESH_Mesh_ptr      thePathMesh,
+                                   GEOM::GEOM_Object_ptr      thePathShape,
+                                   CORBA::Long                theNodeStart,
+                                   CORBA::Boolean             theHasAngles,
+                                   const SMESH::double_array& theAngles,
+                                   CORBA::Boolean             theHasRefPoint,
+                                   const SMESH::PointStruct&  theRefPoint,
+                                   SMESH::SMESH_MeshEditor::Extrusion_Error& Error)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "rotAngles = " << theAngles;
+
+    if ( theHasRefPoint )
+      TPythonDump() << "refPoint = SMESH.PointStruct( "
+                    << theRefPoint.x << ", "
+                    << theRefPoint.y << ", "
+                    << theRefPoint.z << " )";
+    else
+      TPythonDump() << "refPoint = SMESH.PointStruct( 0,0,0 )";
+
+    TPythonDump() << "groups = " << this << ".ExtrusionAlongPathObjectMakeGroups( "
+                  << theObject << ", "
+                  << thePathMesh      << ", "
+                  << thePathShape     << ", "
+                  << theNodeStart     << ", "
+                  << theHasAngles     << ", "
+                  << "rotAngles"      << ", "
+                  << theHasRefPoint   << ", refPoint )";
+  }
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  return extrusionAlongPath( anElementsId,
+                             thePathMesh,
+                             thePathShape,
+                             theNodeStart,
+                             theHasAngles,
+                             theAngles,
+                             theHasRefPoint,
+                             theRefPoint,
+                             true,
+                             Error);
 }
 
 //================================================================================
@@ -1540,55 +2092,68 @@ SMESH_MeshEditor_i::LinearAnglesVariation(SMESH::SMESH_Mesh_ptr       thePathMes
   return aResult._retn();
 }
 
+
 //=======================================================================
-//function : Mirror
-//purpose  :
+//function : mirror
+//purpose  : 
 //=======================================================================
 
-void SMESH_MeshEditor_i::Mirror(const SMESH::long_array &           theIDsOfElements,
-                                const SMESH::AxisStruct &           theAxis,
-                                SMESH::SMESH_MeshEditor::MirrorType theMirrorType,
-                                CORBA::Boolean                      theCopy)
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::mirror(const SMESH::long_array &           theIDsOfElements,
+                           const SMESH::AxisStruct &           theAxis,
+                           SMESH::SMESH_MeshEditor::MirrorType theMirrorType,
+                           CORBA::Boolean                      theCopy,
+                           const bool                          theMakeGroups,
+                           ::SMESH_Mesh*                       theTargetMesh)
 {
   initData();
 
-  SMESHDS_Mesh* aMesh = GetMeshDS();
-
   TIDSortedElemSet elements;
-  ToMap(theIDsOfElements, aMesh, elements);
+  arrayToSet(theIDsOfElements, GetMeshDS(), elements);
 
   gp_Pnt P ( theAxis.x, theAxis.y, theAxis.z );
   gp_Vec V ( theAxis.vx, theAxis.vy, theAxis.vz );
 
   gp_Trsf aTrsf;
-  TCollection_AsciiString typeStr;
   switch ( theMirrorType ) {
   case  SMESH::SMESH_MeshEditor::POINT:
     aTrsf.SetMirror( P );
-    typeStr = "SMESH.SMESH_MeshEditor.POINT";
     break;
   case  SMESH::SMESH_MeshEditor::AXIS:
     aTrsf.SetMirror( gp_Ax1( P, V ));
-    typeStr = "SMESH.SMESH_MeshEditor.AXIS";
     break;
   default:
     aTrsf.SetMirror( gp_Ax2( P, V ));
-    typeStr = "SMESH.SMESH_MeshEditor.PLANE";
   }
 
-  // Update Python script
-  TPythonDump() << this << ".Mirror( "
-                << theIDsOfElements << ", "
-                << theAxis           << ", "
-                << typeStr           << ", "
-                << theCopy           << " )";
-
   ::SMESH_MeshEditor anEditor( myMesh );
-  anEditor.Transform (elements, aTrsf, theCopy);
+  ::SMESH_MeshEditor::PGroupIDs groupIds =
+      anEditor.Transform (elements, aTrsf, theCopy, theMakeGroups, theTargetMesh);
 
   if(theCopy) {
-    StoreResult(anEditor);
+    storeResult(anEditor);
+  }
+  return theMakeGroups ? getGroups(groupIds.get()) : 0;
+}
+
+//=======================================================================
+//function : Mirror
+//purpose  :
+//=======================================================================
+
+void SMESH_MeshEditor_i::Mirror(const SMESH::long_array &           theIDsOfElements,
+                                const SMESH::AxisStruct &           theAxis,
+                                SMESH::SMESH_MeshEditor::MirrorType theMirrorType,
+                                CORBA::Boolean                      theCopy)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << this << ".Mirror( "
+                  << theIDsOfElements << ", "
+                  << theAxis          << ", "
+                  << mirrorTypeName(theMirrorType) << ", "
+                  << theCopy          << " )";
   }
+  mirror(theIDsOfElements, theAxis, theMirrorType, theCopy, false);
 }
 
 
@@ -1602,68 +2167,173 @@ void SMESH_MeshEditor_i::MirrorObject(SMESH::SMESH_IDSource_ptr           theObj
                                      SMESH::SMESH_MeshEditor::MirrorType theMirrorType,
                                      CORBA::Boolean                      theCopy)
 {
-  initData();
+  if ( !myPreviewMode ) {
+    TPythonDump() << this << ".MirrorObject( "
+                  << theObject << ", "
+                  << theAxis   << ", "
+                  << mirrorTypeName(theMirrorType) << ", "
+                  << theCopy   << " )";
+  }
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  mirror(anElementsId, theAxis, theMirrorType, theCopy, false);
+}
+
+//=======================================================================
+//function : MirrorMakeGroups
+//purpose  : 
+//=======================================================================
+
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::MirrorMakeGroups(const SMESH::long_array&            theIDsOfElements,
+                                     const SMESH::AxisStruct&            theMirror,
+                                     SMESH::SMESH_MeshEditor::MirrorType theMirrorType)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << this << ".MirrorMakeGroups( "
+                  << theIDsOfElements << ", "
+                  << theMirror          << ", "
+                  << mirrorTypeName(theMirrorType) << " )";
+  }
+  return mirror(theIDsOfElements, theMirror, theMirrorType, true, true);
+}
 
+//=======================================================================
+//function : MirrorObjectMakeGroups
+//purpose  : 
+//=======================================================================
+
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::MirrorObjectMakeGroups(SMESH::SMESH_IDSource_ptr           theObject,
+                                           const SMESH::AxisStruct&            theMirror,
+                                           SMESH::SMESH_MeshEditor::MirrorType theMirrorType)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << this << ".MirrorObjectMakeGroups( "
+                  << theObject << ", "
+                  << theMirror   << ", "
+                  << mirrorTypeName(theMirrorType) << " )";
+  }
   SMESH::long_array_var anElementsId = theObject->GetIDs();
-  Mirror(anElementsId, theAxis, theMirrorType, theCopy);
+  return mirror(anElementsId, theMirror, theMirrorType, true, true);
+}
 
-  // Clear python line, created by Mirror()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
+//=======================================================================
+//function : MirrorMakeMesh
+//purpose  : 
+//=======================================================================
 
-  // Update Python script
-  TCollection_AsciiString typeStr;
-  switch ( theMirrorType ) {
-  case  SMESH::SMESH_MeshEditor::POINT:
-    typeStr = "SMESH.SMESH_MeshEditor.POINT";
-    break;
-  case  SMESH::SMESH_MeshEditor::AXIS:
-    typeStr = "SMESH.SMESH_MeshEditor.AXIS";
-    break;
-  default:
-    typeStr = "SMESH.SMESH_MeshEditor.PLANE";
+SMESH::SMESH_Mesh_ptr
+SMESH_MeshEditor_i::MirrorMakeMesh(const SMESH::long_array&            theIDsOfElements,
+                                   const SMESH::AxisStruct&            theMirror,
+                                   SMESH::SMESH_MeshEditor::MirrorType theMirrorType,
+                                   CORBA::Boolean                      theCopyGroups,
+                                   const char*                         theMeshName)
+{
+  TPythonDump pydump; // to prevent dump at mesh creation
+
+  SMESH::SMESH_Mesh_var mesh = makeMesh( theMeshName );
+  if ( SMESH_Mesh_i* mesh_i = SMESH::DownCast<SMESH_Mesh_i*>( mesh ))
+  {
+    mirror(theIDsOfElements, theMirror, theMirrorType,
+           false, theCopyGroups, & mesh_i->GetImpl());
+    mesh_i->CreateGroupServants();
+  }
+
+  if ( !myPreviewMode ) {
+    pydump << mesh << " = " << this << ".MirrorMakeMesh( "
+           << theIDsOfElements << ", "
+           << theMirror   << ", "
+           << mirrorTypeName(theMirrorType) << ", "
+           << theCopyGroups << ", '"
+           << theMeshName << "' )";
   }
-  TPythonDump() << "axis = " << theAxis;
-  TPythonDump() << this << ".MirrorObject( "
-                << theObject << ", "
-                << "axis, "
-                << typeStr << ", "
-                << theCopy << " )";
+  return mesh._retn();
 }
 
 //=======================================================================
-//function : Translate
-//purpose  :
+//function : MirrorObjectMakeMesh
+//purpose  : 
 //=======================================================================
 
-void SMESH_MeshEditor_i::Translate(const SMESH::long_array & theIDsOfElements,
-                                   const SMESH::DirStruct &  theVector,
-                                   CORBA::Boolean            theCopy)
+SMESH::SMESH_Mesh_ptr
+SMESH_MeshEditor_i::MirrorObjectMakeMesh(SMESH::SMESH_IDSource_ptr           theObject,
+                                         const SMESH::AxisStruct&            theMirror,
+                                         SMESH::SMESH_MeshEditor::MirrorType theMirrorType,
+                                         CORBA::Boolean                      theCopyGroups,
+                                         const char*                         theMeshName)
 {
-  initData();
+  TPythonDump pydump; // to prevent dump at mesh creation
 
-  SMESHDS_Mesh* aMesh = GetMeshDS();
+  SMESH::SMESH_Mesh_var mesh = makeMesh( theMeshName );
+  if ( SMESH_Mesh_i* mesh_i = SMESH::DownCast<SMESH_Mesh_i*>( mesh ))
+  {
+    SMESH::long_array_var anElementsId = theObject->GetIDs();
+    mirror(anElementsId, theMirror, theMirrorType,
+           false, theCopyGroups, & mesh_i->GetImpl());
+    mesh_i->CreateGroupServants();
+  }
+  if ( !myPreviewMode ) {
+    pydump << mesh << " = " << this << ".MirrorObjectMakeMesh( "
+           << theObject << ", "
+           << theMirror   << ", "
+           << mirrorTypeName(theMirrorType) << ", "
+           << theCopyGroups << ", '"
+           << theMeshName << "' )";
+  }
+  return mesh._retn();
+}
+
+//=======================================================================
+//function : translate
+//purpose  : 
+//=======================================================================
+
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::translate(const SMESH::long_array & theIDsOfElements,
+                              const SMESH::DirStruct &  theVector,
+                              CORBA::Boolean            theCopy,
+                              const bool                theMakeGroups,
+                              ::SMESH_Mesh*             theTargetMesh)
+{
+  initData();
 
   TIDSortedElemSet elements;
-  ToMap(theIDsOfElements, aMesh, elements);
+  arrayToSet(theIDsOfElements, GetMeshDS(), elements);
 
   gp_Trsf aTrsf;
   const SMESH::PointStruct * P = &theVector.PS;
   aTrsf.SetTranslation( gp_Vec( P->x, P->y, P->z ));
 
   ::SMESH_MeshEditor anEditor( myMesh );
-  anEditor.Transform (elements, aTrsf, theCopy);
+  ::SMESH_MeshEditor::PGroupIDs groupIds =
+      anEditor.Transform (elements, aTrsf, theCopy, theMakeGroups, theTargetMesh);
 
-  if(theCopy) {
-    StoreResult(anEditor);
-  }
+  if(theCopy)
+    storeResult(anEditor);
 
-  // Update Python script
-  TPythonDump() << "vector = " << theVector;
-  TPythonDump() << this << ".Translate( "
-                << theIDsOfElements
-                << ", vector, "
-                << theCopy << " )";
+  return theMakeGroups ? getGroups(groupIds.get()) : 0;
+}
+
+//=======================================================================
+//function : Translate
+//purpose  :
+//=======================================================================
+
+void SMESH_MeshEditor_i::Translate(const SMESH::long_array & theIDsOfElements,
+                                   const SMESH::DirStruct &  theVector,
+                                   CORBA::Boolean            theCopy)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "vector = " << theVector;
+    TPythonDump() << this << ".Translate( "
+                  << theIDsOfElements
+                  << ", vector, "
+                  << theCopy << " )";
+  }
+  translate(theIDsOfElements,
+            theVector,
+            theCopy,
+            false);
 }
 
 //=======================================================================
@@ -1675,38 +2345,132 @@ void SMESH_MeshEditor_i::TranslateObject(SMESH::SMESH_IDSource_ptr theObject,
                                         const SMESH::DirStruct &  theVector,
                                         CORBA::Boolean            theCopy)
 {
-  initData();
+  if ( !myPreviewMode ) {
+    TPythonDump() << this << ".TranslateObject( "
+                  << theObject
+                  << ", vector, "
+                  << theCopy << " )";
+  }
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  translate(anElementsId,
+            theVector,
+            theCopy,
+            false);
+}
+
+//=======================================================================
+//function : TranslateMakeGroups
+//purpose  : 
+//=======================================================================
+
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::TranslateMakeGroups(const SMESH::long_array& theIDsOfElements,
+                                        const SMESH::DirStruct&  theVector)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "vector = " << theVector;
+    TPythonDump() << this << ".TranslateMakeGroups( "
+                  << theIDsOfElements
+                  << ", vector )";
+  }
+  return translate(theIDsOfElements,theVector,true,true);
+}
+
+//=======================================================================
+//function : TranslateObjectMakeGroups
+//purpose  : 
+//=======================================================================
 
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::TranslateObjectMakeGroups(SMESH::SMESH_IDSource_ptr theObject,
+                                              const SMESH::DirStruct&   theVector)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "vector = " << theVector;
+    TPythonDump() << this << ".TranslateObjectMakeGroups( "
+                  << theObject
+                  << ", vector )";
+  }
   SMESH::long_array_var anElementsId = theObject->GetIDs();
-  Translate(anElementsId, theVector, theCopy);
+  return translate(anElementsId, theVector, true, true);
+}
 
-  // Clear python line, created by Translate()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
+//=======================================================================
+//function : TranslateMakeMesh
+//purpose  : 
+//=======================================================================
 
-  // Update Python script
-  TPythonDump() << this << ".TranslateObject( "
-                << theObject
-                << ", vector, "
-                << theCopy << " )";
+SMESH::SMESH_Mesh_ptr
+SMESH_MeshEditor_i::TranslateMakeMesh(const SMESH::long_array& theIDsOfElements,
+                                      const SMESH::DirStruct&  theVector,
+                                      CORBA::Boolean           theCopyGroups,
+                                      const char*              theMeshName)
+{
+  TPythonDump pydump; // to prevent dump at mesh creation
+  SMESH::SMESH_Mesh_var mesh = makeMesh( theMeshName );
+
+  if ( SMESH_Mesh_i* mesh_i = SMESH::DownCast<SMESH_Mesh_i*>( mesh )) {
+    translate(theIDsOfElements, theVector,
+              false, theCopyGroups, & mesh_i->GetImpl());
+    mesh_i->CreateGroupServants();
+  }
+  if ( !myPreviewMode ) {
+    pydump << mesh << " = " << this << ".TranslateMakeMesh( "
+           << theIDsOfElements << ", "
+           << theVector   << ", "
+           << theCopyGroups << ", '"
+           << theMeshName << "' )";
+  }
+  return mesh._retn();
 }
 
 //=======================================================================
-//function : Rotate
-//purpose  :
+//function : TranslateObjectMakeMesh
+//purpose  : 
 //=======================================================================
 
-void SMESH_MeshEditor_i::Rotate(const SMESH::long_array & theIDsOfElements,
-                                const SMESH::AxisStruct & theAxis,
-                                CORBA::Double             theAngle,
-                                CORBA::Boolean            theCopy)
+SMESH::SMESH_Mesh_ptr
+SMESH_MeshEditor_i::TranslateObjectMakeMesh(SMESH::SMESH_IDSource_ptr theObject,
+                                            const SMESH::DirStruct&   theVector,
+                                            CORBA::Boolean            theCopyGroups,
+                                            const char*               theMeshName)
 {
-  initData();
+  TPythonDump pydump; // to prevent dump at mesh creation
+  SMESH::SMESH_Mesh_var mesh = makeMesh( theMeshName );
 
-  SMESHDS_Mesh* aMesh = GetMeshDS();
+  if ( SMESH_Mesh_i* mesh_i = SMESH::DownCast<SMESH_Mesh_i*>( mesh )) {
+    SMESH::long_array_var anElementsId = theObject->GetIDs();
+    translate(anElementsId, theVector,
+              false, theCopyGroups, & mesh_i->GetImpl());
+    mesh_i->CreateGroupServants();
+  }
+  if ( !myPreviewMode ) {
+    pydump << mesh << " = " << this << ".TranslateObjectMakeMesh( "
+           << theObject << ", "
+           << theVector   << ", "
+           << theCopyGroups << ", '"
+           << theMeshName << "' )";
+  }
+  return mesh._retn();
+}
+
+//=======================================================================
+//function : rotate
+//purpose  : 
+//=======================================================================
+
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::rotate(const SMESH::long_array & theIDsOfElements,
+                           const SMESH::AxisStruct & theAxis,
+                           CORBA::Double             theAngle,
+                           CORBA::Boolean            theCopy,
+                           const bool                theMakeGroups,
+                           ::SMESH_Mesh*             theTargetMesh)
+{
+  initData();
 
   TIDSortedElemSet elements;
-  ToMap(theIDsOfElements, aMesh, elements);
+  arrayToSet(theIDsOfElements, GetMeshDS(), elements);
 
   gp_Pnt P ( theAxis.x, theAxis.y, theAxis.z );
   gp_Vec V ( theAxis.vx, theAxis.vy, theAxis.vz );
@@ -1715,19 +2479,38 @@ void SMESH_MeshEditor_i::Rotate(const SMESH::long_array & theIDsOfElements,
   aTrsf.SetRotation( gp_Ax1( P, V ), theAngle);
 
   ::SMESH_MeshEditor anEditor( myMesh );
-  anEditor.Transform (elements, aTrsf, theCopy);
+  ::SMESH_MeshEditor::PGroupIDs groupIds =
+      anEditor.Transform (elements, aTrsf, theCopy, theMakeGroups, theTargetMesh);
 
   if(theCopy) {
-    StoreResult(anEditor);
+    storeResult(anEditor);
   }
+  return theMakeGroups ? getGroups(groupIds.get()) : 0;
+}
 
-  // Update Python script
-  TPythonDump() << "axis = " << theAxis;
-  TPythonDump() << this << ".Rotate( "
-                << theIDsOfElements
-                << ", axis, "
-                << theAngle << ", "
-                << theCopy << " )";
+//=======================================================================
+//function : Rotate
+//purpose  :
+//=======================================================================
+
+void SMESH_MeshEditor_i::Rotate(const SMESH::long_array & theIDsOfElements,
+                                const SMESH::AxisStruct & theAxis,
+                                CORBA::Double             theAngle,
+                                CORBA::Boolean            theCopy)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "axis = " << theAxis;
+    TPythonDump() << this << ".Rotate( "
+                  << theIDsOfElements
+                  << ", axis, "
+                  << theAngle << ", "
+                  << theCopy << " )";
+  }
+  rotate(theIDsOfElements,
+         theAxis,
+         theAngle,
+         theCopy,
+         false);
 }
 
 //=======================================================================
@@ -1740,21 +2523,124 @@ void SMESH_MeshEditor_i::RotateObject(SMESH::SMESH_IDSource_ptr theObject,
                                      CORBA::Double             theAngle,
                                      CORBA::Boolean            theCopy)
 {
-  initData();
+  if ( !myPreviewMode ) {
+    TPythonDump() << "axis = " << theAxis;
+    TPythonDump() << this << ".RotateObject( "
+                  << theObject
+                  << ", axis, "
+                  << theAngle << ", "
+                  << theCopy << " )";
+  }
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  rotate(anElementsId,
+         theAxis,
+         theAngle,
+         theCopy,
+         false);
+}
+
+//=======================================================================
+//function : RotateMakeGroups
+//purpose  : 
+//=======================================================================
+
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::RotateMakeGroups(const SMESH::long_array& theIDsOfElements,
+                                     const SMESH::AxisStruct& theAxis,
+                                     CORBA::Double            theAngle)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "axis = " << theAxis;
+    TPythonDump() << this << ".RotateMakeGroups( "
+                  << theIDsOfElements
+                  << ", axis, "
+                  << theAngle << " )";
+  }
+  return rotate(theIDsOfElements,theAxis,theAngle,true,true);
+}
+
+//=======================================================================
+//function : RotateObjectMakeGroups
+//purpose  : 
+//=======================================================================
 
+SMESH::ListOfGroups*
+SMESH_MeshEditor_i::RotateObjectMakeGroups(SMESH::SMESH_IDSource_ptr theObject,
+                                           const SMESH::AxisStruct&  theAxis,
+                                           CORBA::Double             theAngle)
+{
+  if ( !myPreviewMode ) {
+    TPythonDump() << "axis = " << theAxis;
+    TPythonDump() << this << ".RotateObjectMakeGroups( "
+                  << theObject
+                  << ", axis, "
+                  << theAngle << " )";
+  }
   SMESH::long_array_var anElementsId = theObject->GetIDs();
-  Rotate(anElementsId, theAxis, theAngle, theCopy);
+  return rotate(anElementsId,theAxis,theAngle,true,true);
+}
 
-  // Clear python line, created by Rotate()
-  SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen();
-  aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
+//=======================================================================
+//function : RotateMakeMesh
+//purpose  : 
+//=======================================================================
 
-  // Update Python script
-  TPythonDump() << this << ".RotateObject( "
-                << theObject
-                << ", axis, "
-                << theAngle << ", "
-                << theCopy << " )";
+SMESH::SMESH_Mesh_ptr 
+SMESH_MeshEditor_i::RotateMakeMesh(const SMESH::long_array& theIDsOfElements,
+                                   const SMESH::AxisStruct& theAxis,
+                                   CORBA::Double            theAngleInRadians,
+                                   CORBA::Boolean           theCopyGroups,
+                                   const char*              theMeshName)
+{
+  TPythonDump pydump; // to prevent dump at mesh creation
+  SMESH::SMESH_Mesh_var mesh = makeMesh( theMeshName );
+
+  if ( SMESH_Mesh_i* mesh_i = SMESH::DownCast<SMESH_Mesh_i*>( mesh )) {
+    rotate(theIDsOfElements, theAxis, theAngleInRadians,
+           false, theCopyGroups, & mesh_i->GetImpl());
+    mesh_i->CreateGroupServants();
+  }
+  if ( !myPreviewMode ) {
+    pydump << mesh << " = " << this << ".RotateMakeMesh( "
+           << theIDsOfElements << ", "
+           << theAxis << ", "
+           << theAngleInRadians   << ", "
+           << theCopyGroups << ", '"
+           << theMeshName << "' )";
+  }
+  return mesh._retn();
+}
+
+//=======================================================================
+//function : RotateObjectMakeMesh
+//purpose  : 
+//=======================================================================
+
+SMESH::SMESH_Mesh_ptr 
+SMESH_MeshEditor_i::RotateObjectMakeMesh(SMESH::SMESH_IDSource_ptr theObject,
+                                         const SMESH::AxisStruct&  theAxis,
+                                         CORBA::Double             theAngleInRadians,
+                                         CORBA::Boolean            theCopyGroups,
+                                         const char*               theMeshName)
+{
+  TPythonDump pydump; // to prevent dump at mesh creation
+  SMESH::SMESH_Mesh_var mesh = makeMesh( theMeshName );
+
+  if ( SMESH_Mesh_i* mesh_i = SMESH::DownCast<SMESH_Mesh_i*>( mesh )) {
+    SMESH::long_array_var anElementsId = theObject->GetIDs();
+    rotate(anElementsId, theAxis, theAngleInRadians,
+           false, theCopyGroups, & mesh_i->GetImpl());
+    mesh_i->CreateGroupServants();
+  }
+  if ( !myPreviewMode ) {
+    pydump << mesh << " = " << this << ".RotateObjectMakeMesh( "
+           << theObject << ", "
+           << theAxis << ", "
+           << theAngleInRadians   << ", "
+           << theCopyGroups << ", '"
+           << theMeshName << "' )";
+  }
+  return mesh._retn();
 }
 
 //=======================================================================
@@ -1778,12 +2664,11 @@ void SMESH_MeshEditor_i::FindCoincidentNodes (CORBA::Double                  Tol
   for ( CORBA::Long i = 0; llIt != aListOfListOfNodes.end(); llIt++, i++ ) {
     list< const SMDS_MeshNode* >& aListOfNodes = *llIt;
     list< const SMDS_MeshNode* >::iterator lIt = aListOfNodes.begin();;
-    SMESH::long_array& aGroup = (*GroupsOfNodes)[i];
+    SMESH::long_array& aGroup = (*GroupsOfNodes)[ i ];
     aGroup.length( aListOfNodes.size() );
     for ( int j = 0; lIt != aListOfNodes.end(); lIt++, j++ )
       aGroup[ j ] = (*lIt)->GetID();
   }
-  // Update Python script
   TPythonDump() << "coincident_nodes = " << this << ".FindCoincidentNodes( "
                 << Tolerance << " )";
 }
@@ -1835,12 +2720,11 @@ void SMESH_MeshEditor_i::FindCoincidentNodesOnPart(SMESH::SMESH_IDSource_ptr
   for ( CORBA::Long i = 0; llIt != aListOfListOfNodes.end(); llIt++, i++ ) {
     list< const SMDS_MeshNode* >& aListOfNodes = *llIt;
     list< const SMDS_MeshNode* >::iterator lIt = aListOfNodes.begin();;
-    SMESH::long_array& aGroup = GroupsOfNodes[ i ];
+    SMESH::long_array& aGroup = (*GroupsOfNodes)[ i ];
     aGroup.length( aListOfNodes.size() );
     for ( int j = 0; lIt != aListOfNodes.end(); lIt++, j++ )
       aGroup[ j ] = (*lIt)->GetID();
   }
-  // Update Python script
   TPythonDump() << "coincident_nodes_on_part = " << this << ".FindCoincidentNodesOnPart( "
                 <<theObject<<", "
                 << Tolerance << " )";
@@ -1881,7 +2765,6 @@ void SMESH_MeshEditor_i::MergeNodes (const SMESH::array_of_long_array& GroupsOfN
   ::SMESH_MeshEditor anEditor( myMesh );
   anEditor.MergeNodes( aListOfListOfNodes );
 
-  // Update Python script
   aTPythonDump <<  "])";
 }
 
@@ -1917,7 +2800,7 @@ void SMESH_MeshEditor_i::FindEqualElements(SMESH::SMESH_IDSource_ptr      theObj
 
     ::SMESH_MeshEditor::TListOfListOfElementsID::iterator arraysIt = aListOfListOfElementsID.begin();
     for (CORBA::Long j = 0; arraysIt != aListOfListOfElementsID.end(); ++arraysIt, ++j) {
-      SMESH::long_array& aGroup = GroupsOfElementsID[ j ];
+      SMESH::long_array& aGroup = (*GroupsOfElementsID)[ j ];
       TListOfIDs& listOfIDs = *arraysIt;
       aGroup.length( listOfIDs.size() );
       TListOfIDs::iterator idIt = listOfIDs.begin();
@@ -1926,7 +2809,6 @@ void SMESH_MeshEditor_i::FindEqualElements(SMESH::SMESH_IDSource_ptr      theObj
       }
     }
 
-  // Update Python script
   TPythonDump() << "equal_elements = " << this << ".FindEqualElements( "
                 <<theObject<<" )";
   }
@@ -1963,7 +2845,6 @@ void SMESH_MeshEditor_i::MergeElements(const SMESH::array_of_long_array& GroupsO
   ::SMESH_MeshEditor anEditor( myMesh );
   anEditor.MergeElements(aListOfListOfElementsID);
 
-  // Update Python script
   aTPythonDump << "] )";
 }
 
@@ -1979,7 +2860,6 @@ void SMESH_MeshEditor_i::MergeEqualElements()
   ::SMESH_MeshEditor anEditor( myMesh );
   anEditor.MergeEqualElements();
 
-  // Update Python script
   TPythonDump() << this << ".MergeEqualElements()";
 }
 
@@ -2034,7 +2914,7 @@ CORBA::Long SMESH_MeshEditor_i::MoveClosestNodeToPoint(CORBA::Double x,
         tmpMesh.GetMeshDS()->MoveNode(node, x, y, z);
       // fill preview data
       ::SMESH_MeshEditor anEditor( & tmpMesh );
-      StoreResult( anEditor );
+      storeResult( anEditor );
     }
     else
     {
@@ -2043,7 +2923,6 @@ CORBA::Long SMESH_MeshEditor_i::MoveClosestNodeToPoint(CORBA::Double x,
   }
 
   if ( !myPreviewMode ) {
-    // Update Python script
     TPythonDump() << "nodeID = " << this
                   << ".MoveClosestNodeToPoint( "<< x << ", " << y << ", " << z << " )";
   }
@@ -2110,7 +2989,6 @@ SMESH::SMESH_MeshEditor::Sew_Error
       !aSide2ThirdNode)
     return SMESH::SMESH_MeshEditor::SEW_BORDER2_NOT_FOUND;
 
-  // Update Python script
   TPythonDump() << "error = " << this << ".SewFreeBorders( "
                 << FirstNodeID1  << ", "
                 << SecondNodeID1 << ", "
@@ -2133,7 +3011,7 @@ SMESH::SMESH_MeshEditor::Sew_Error
                                        CreatePolygons,
                                        CreatePolyedrs) );
 
-  StoreResult(anEditor);
+  storeResult(anEditor);
 
   return error;
 }
@@ -2170,7 +3048,6 @@ SMESH_MeshEditor_i::SewConformFreeBorders(CORBA::Long FirstNodeID1,
       !aSide2SecondNode)
     return SMESH::SMESH_MeshEditor::SEW_BORDER2_NOT_FOUND;
 
-  // Update Python script
   TPythonDump() << "error = " << this << ".SewConformFreeBorders( "
                 << FirstNodeID1  << ", "
                 << SecondNodeID1 << ", "
@@ -2189,7 +3066,7 @@ SMESH_MeshEditor_i::SewConformFreeBorders(CORBA::Long FirstNodeID1,
                                        true,
                                        false, false) );
 
-  StoreResult(anEditor);
+  storeResult(anEditor);
 
   return error;
 }
@@ -2228,7 +3105,6 @@ SMESH_MeshEditor_i::SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
       !aSide2SecondNode)
     return SMESH::SMESH_MeshEditor::SEW_BAD_SIDE_NODES;
 
-  // Update Python script
   TPythonDump() << "error = " << this << ".SewBorderToSide( "
                 << FirstNodeIDOnFreeBorder  << ", "
                 << SecondNodeIDOnFreeBorder << ", "
@@ -2250,7 +3126,7 @@ SMESH_MeshEditor_i::SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
                                        CreatePolygons,
                                        CreatePolyedrs) );
 
-  StoreResult(anEditor);
+  storeResult(anEditor);
 
   return error;
 }
@@ -2286,10 +3162,9 @@ SMESH_MeshEditor_i::SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
     return SMESH::SMESH_MeshEditor::SEW_BAD_SIDE2_NODES;
 
   TIDSortedElemSet aSide1Elems, aSide2Elems;
-  ToMap(IDsOfSide1Elements, aMesh, aSide1Elems);
-  ToMap(IDsOfSide2Elements, aMesh, aSide2Elems);
+  arrayToSet(IDsOfSide1Elements, aMesh, aSide1Elems);
+  arrayToSet(IDsOfSide2Elements, aMesh, aSide2Elems);
 
-  // Update Python script
   TPythonDump() << "error = " << this << ".SewSideElements( "
                 << IDsOfSide1Elements << ", "
                 << IDsOfSide2Elements << ", "
@@ -2306,7 +3181,7 @@ SMESH_MeshEditor_i::SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
                                          aSecondNode1ToMerge,
                                          aSecondNode2ToMerge));
 
-  StoreResult(anEditor);
+  storeResult(anEditor);
 
   return error;
 }
@@ -2330,7 +3205,7 @@ CORBA::Boolean SMESH_MeshEditor_i::ChangeElemNodes(CORBA::Long ide,
 
   int nbn = newIDs.length();
   int i=0;
-  vector<const SMDS_MeshNode*> aNodes (nbn);
+  vector<const SMDS_MeshNode*> aNodes(nbn);
   int nbn1=-1;
   for(; i<nbn; i++) {
     const SMDS_MeshNode* aNode = GetMeshDS()->FindNode(newIDs[i]);
@@ -2339,14 +3214,13 @@ CORBA::Boolean SMESH_MeshEditor_i::ChangeElemNodes(CORBA::Long ide,
       aNodes[nbn1] = aNode;
     }
   }
-  // Update Python script
   TPythonDump() << "isDone = " << this << ".ChangeElemNodes( "
                 << ide << ", " << newIDs << " )";
 #ifdef _DEBUG_
   TPythonDump() << "print 'ChangeElemNodes: ', isDone";
 #endif
 
-  return GetMeshDS()->ChangeElementNodes( elem, &aNodes[0], nbn1+1 );
+  return GetMeshDS()->ChangeElementNodes( elem, & aNodes[0], nbn1+1 );
 }
   
 //================================================================================
@@ -2356,7 +3230,7 @@ CORBA::Boolean SMESH_MeshEditor_i::ChangeElemNodes(CORBA::Long ide,
  */
 //================================================================================
 
-void SMESH_MeshEditor_i::StoreResult(::SMESH_MeshEditor& anEditor)
+void SMESH_MeshEditor_i::storeResult(::SMESH_MeshEditor& anEditor)
 {
   if ( myPreviewMode ) { // --- MeshPreviewStruct filling --- 
 
@@ -2493,20 +3367,39 @@ void SMESH_MeshEditor_i::ConvertToQuadratic(CORBA::Boolean theForce3d)
 {
   ::SMESH_MeshEditor anEditor( myMesh );
   anEditor.ConvertToQuadratic(theForce3d);
- // Update Python script
   TPythonDump() << this << ".ConvertToQuadratic( " << theForce3d << " )";
 }
 
 //=======================================================================
 //function : ConvertFromQuadratic
-//purpose  :
+//purpose  : 
 //=======================================================================
 
 CORBA::Boolean SMESH_MeshEditor_i::ConvertFromQuadratic()
 {
   ::SMESH_MeshEditor anEditor( myMesh );
   CORBA::Boolean isDone = anEditor.ConvertFromQuadratic();
-  // Update Python script
   TPythonDump() << this << ".ConvertFromQuadratic()";
   return isDone;
 }
+
+//=======================================================================
+//function : makeMesh
+//purpose  : create a named imported mesh 
+//=======================================================================
+
+SMESH::SMESH_Mesh_ptr SMESH_MeshEditor_i::makeMesh(const char* theMeshName)
+{
+  SMESH_Gen_i* gen = SMESH_Gen_i::GetSMESHGen();
+  SMESH::SMESH_Mesh_var mesh = gen->CreateEmptyMesh();
+  SALOMEDS::Study_var study = gen->GetCurrentStudy();
+  SALOMEDS::SObject_var meshSO = gen->ObjectToSObject( study, mesh );
+  gen->SetName( meshSO, theMeshName, "Mesh" );
+
+  SALOMEDS::StudyBuilder_var builder = study->NewBuilder();
+  SALOMEDS::GenericAttribute_var anAttr
+    = builder->FindOrCreateAttribute( meshSO, "AttributePixMap" );
+  SALOMEDS::AttributePixMap::_narrow( anAttr )->SetPixMap( "ICON_SMESH_TREE_MESH_IMPORTED" );
+
+  return mesh._retn();
+}
index 52ba2d7766592675b0dfadb2499657a995964dc5..85d7b6cfdf6d2de7182ffc550aa5327dfc01c062 100644 (file)
 
 #include "SMESH_Mesh.hxx"
 
+#include <list>
+
 class SMESH_MeshEditor;
+class SMESH_Mesh_i;
 
-class SMESH_I_EXPORT SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
+class SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
 {
  public:
-  SMESH_MeshEditor_i(SMESH_Mesh * theMesh, bool isPreview);
+  SMESH_MeshEditor_i(SMESH_Mesh_i * theMesh, bool isPreview);
 
   virtual ~ SMESH_MeshEditor_i();
 
@@ -62,6 +65,48 @@ class SMESH_I_EXPORT SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
                                   const SMESH::long_array & Quantities);
   CORBA::Long AddPolyhedralVolumeByFaces(const SMESH::long_array & IdsOfFaces);
 
+  /*!
+   * \brief Bind a node to a vertex
+   * \param NodeID - node ID
+   * \param VertexID - vertex ID available through GEOM_Object.GetSubShapeIndices()[0]
+   */
+  void SetNodeOnVertex(CORBA::Long NodeID, CORBA::Long VertexID)
+    throw (SALOME::SALOME_Exception);
+  /*!
+   * \brief Store node position on an edge
+   * \param NodeID - node ID
+   * \param EdgeID - edge ID available through GEOM_Object.GetSubShapeIndices()[0]
+   * \param paramOnEdge - parameter on edge where the node is located
+   */
+  void SetNodeOnEdge(CORBA::Long NodeID, CORBA::Long EdgeID,
+                     CORBA::Double paramOnEdge)
+    throw (SALOME::SALOME_Exception);
+  /*!
+   * \brief Store node position on a face
+   * \param NodeID - node ID
+   * \param FaceID - face ID available through GEOM_Object.GetSubShapeIndices()[0]
+   * \param u - U parameter on face where the node is located
+   * \param v - V parameter on face where the node is located
+   */
+  void SetNodeOnFace(CORBA::Long NodeID, CORBA::Long FaceID,
+                     CORBA::Double u, CORBA::Double v)
+    throw (SALOME::SALOME_Exception);
+  /*!
+   * \brief Bind a node to a solid
+   * \param NodeID - node ID
+   * \param SolidID - vertex ID available through GEOM_Object.GetSubShapeIndices()[0]
+   */
+  void SetNodeInVolume(CORBA::Long NodeID, CORBA::Long SolidID)
+    throw (SALOME::SALOME_Exception);
+  /*!
+   * \brief Bind an element to a shape
+   * \param ElementID - element ID
+   * \param ShapeID - shape ID available through GEOM_Object.GetSubShapeIndices()[0]
+   */
+  void SetMeshElementOnShape(CORBA::Long ElementID, CORBA::Long ShapeID)
+    throw (SALOME::SALOME_Exception);
+
+
   CORBA::Boolean MoveNode(CORBA::Long NodeID,
                           CORBA::Double x, CORBA::Double y, CORBA::Double z);
 
@@ -204,14 +249,105 @@ class SMESH_I_EXPORT SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
                    CORBA::Double              Angle,
                    CORBA::Boolean             Copy);
 
+  SMESH::ListOfGroups* RotationSweepMakeGroups(const SMESH::long_array& IDsOfElements,
+                                               const SMESH::AxisStruct& Axix,
+                                               CORBA::Double            AngleInRadians,
+                                               CORBA::Long              NbOfSteps,
+                                               CORBA::Double            Tolerance);
+  SMESH::ListOfGroups* RotationSweepObjectMakeGroups(SMESH::SMESH_IDSource_ptr Object,
+                                                     const SMESH::AxisStruct&  Axix,
+                                                     CORBA::Double             AngleInRadians,
+                                                     CORBA::Long               NbOfSteps,
+                                                     CORBA::Double             Tolerance);
+  SMESH::ListOfGroups* ExtrusionSweepMakeGroups(const SMESH::long_array& IDsOfElements,
+                                                const SMESH::DirStruct&  StepVector,
+                                                CORBA::Long              NbOfSteps);
+  SMESH::ListOfGroups* AdvancedExtrusionMakeGroups(const SMESH::long_array& IDsOfElements,
+                                                   const SMESH::DirStruct&  StepVector,
+                                                   CORBA::Long              NbOfSteps,
+                                                   CORBA::Long              ExtrFlags,
+                                                   CORBA::Double            SewTolerance);
+  SMESH::ListOfGroups* ExtrusionSweepObjectMakeGroups(SMESH::SMESH_IDSource_ptr Object,
+                                                      const SMESH::DirStruct&   StepVector,
+                                                      CORBA::Long               NbOfSteps);
+  SMESH::ListOfGroups* ExtrusionSweepObject1DMakeGroups(SMESH::SMESH_IDSource_ptr Object,
+                                                        const SMESH::DirStruct&   StepVector,
+                                                        CORBA::Long               NbOfSteps);
+  SMESH::ListOfGroups* ExtrusionSweepObject2DMakeGroups(SMESH::SMESH_IDSource_ptr Object,
+                                                        const SMESH::DirStruct&   StepVector,
+                                                        CORBA::Long               NbOfSteps);
+  SMESH::ListOfGroups* ExtrusionAlongPathMakeGroups(const SMESH::long_array&   IDsOfElements,
+                                                    SMESH::SMESH_Mesh_ptr      PathMesh,
+                                                    GEOM::GEOM_Object_ptr      PathShape,
+                                                    CORBA::Long                NodeStart,
+                                                    CORBA::Boolean             HasAngles,
+                                                    const SMESH::double_array& Angles,
+                                                    CORBA::Boolean             HasRefPoint,
+                                                    const SMESH::PointStruct&  RefPoint,
+                                                    SMESH::SMESH_MeshEditor::Extrusion_Error& Error);
+  SMESH::ListOfGroups* ExtrusionAlongPathObjectMakeGroups(SMESH::SMESH_IDSource_ptr  Object,
+                                                          SMESH::SMESH_Mesh_ptr      PathMesh,
+                                                          GEOM::GEOM_Object_ptr      PathShape,
+                                                          CORBA::Long                NodeStart,
+                                                          CORBA::Boolean             HasAngles,
+                                                          const SMESH::double_array& Angles,
+                                                          CORBA::Boolean             HasRefPoint,
+                                                          const SMESH::PointStruct&  RefPoint,
+                                                          SMESH::SMESH_MeshEditor::Extrusion_Error& Error);
+  SMESH::ListOfGroups* MirrorMakeGroups(const SMESH::long_array&            IDsOfElements,
+                                        const SMESH::AxisStruct&            Mirror,
+                                        SMESH::SMESH_MeshEditor::MirrorType MirrorType);
+  SMESH::ListOfGroups* MirrorObjectMakeGroups(SMESH::SMESH_IDSource_ptr           Object,
+                                              const SMESH::AxisStruct&            Mirror,
+                                              SMESH::SMESH_MeshEditor::MirrorType MirrorType);
+  SMESH::ListOfGroups* TranslateMakeGroups(const SMESH::long_array& IDsOfElements,
+                                           const SMESH::DirStruct&  Vector);
+  SMESH::ListOfGroups* TranslateObjectMakeGroups(SMESH::SMESH_IDSource_ptr Object,
+                                                 const SMESH::DirStruct&   Vector);
+  SMESH::ListOfGroups* RotateMakeGroups(const SMESH::long_array& IDsOfElements,
+                                        const SMESH::AxisStruct& Axis,
+                                        CORBA::Double            AngleInRadians);
+  SMESH::ListOfGroups* RotateObjectMakeGroups(SMESH::SMESH_IDSource_ptr Object,
+                                              const SMESH::AxisStruct&  Axis,
+                                              CORBA::Double             AngleInRadians);
+
+  SMESH::SMESH_Mesh_ptr MirrorMakeMesh(const SMESH::long_array&            IDsOfElements,
+                                       const SMESH::AxisStruct&            Mirror,
+                                       SMESH::SMESH_MeshEditor::MirrorType MirrorType,
+                                       CORBA::Boolean                      CopyGroups,
+                                       const char*                         MeshName);
+  SMESH::SMESH_Mesh_ptr MirrorObjectMakeMesh(SMESH::SMESH_IDSource_ptr           Object,
+                                             const SMESH::AxisStruct&            Mirror,
+                                             SMESH::SMESH_MeshEditor::MirrorType MirrorType,
+                                             CORBA::Boolean                      CopyGroups,
+                                             const char*                         MeshName);
+  SMESH::SMESH_Mesh_ptr TranslateMakeMesh(const SMESH::long_array& IDsOfElements,
+                                          const SMESH::DirStruct&  Vector,
+                                          CORBA::Boolean           CopyGroups,
+                                          const char*              MeshName);
+  SMESH::SMESH_Mesh_ptr TranslateObjectMakeMesh(SMESH::SMESH_IDSource_ptr Object,
+                                                const SMESH::DirStruct&   Vector,
+                                                CORBA::Boolean            CopyGroups,
+                                                const char*               MeshName);
+  SMESH::SMESH_Mesh_ptr RotateMakeMesh(const SMESH::long_array& IDsOfElements,
+                                       const SMESH::AxisStruct& Axis,
+                                       CORBA::Double            AngleInRadians,
+                                       CORBA::Boolean           CopyGroups,
+                                       const char*              MeshName);
+  SMESH::SMESH_Mesh_ptr RotateObjectMakeMesh(SMESH::SMESH_IDSource_ptr Object,
+                                             const SMESH::AxisStruct&  Axis,
+                                             CORBA::Double             AngleInRadians,
+                                             CORBA::Boolean            CopyGroups,
+                                             const char*               MeshName);
+
   void FindCoincidentNodes (CORBA::Double                  Tolerance,
                             SMESH::array_of_long_array_out GroupsOfNodes);
-  void FindCoincidentNodesOnPart(SMESH::SMESH_IDSource_ptr      theObject,
+  void FindCoincidentNodesOnPart(SMESH::SMESH_IDSource_ptr      Object,
                                  CORBA::Double                  Tolerance,
                                  SMESH::array_of_long_array_out GroupsOfNodes);
   void MergeNodes (const SMESH::array_of_long_array& GroupsOfNodes);
-  void FindEqualElements(SMESH::SMESH_IDSource_ptr      theObject,
-                        SMESH::array_of_long_array_out GroupsOfElementsID);
+  void FindEqualElements(SMESH::SMESH_IDSource_ptr      Object,
+                         SMESH::array_of_long_array_out GroupsOfElementsID);
   void MergeElements(const SMESH::array_of_long_array& GroupsOfElementsID);
   void MergeEqualElements();
   CORBA::Long MoveClosestNodeToPoint(CORBA::Double x,
@@ -222,35 +358,35 @@ class SMESH_I_EXPORT SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
 
 
   SMESH::SMESH_MeshEditor::Sew_Error
-    SewFreeBorders(CORBA::Long FirstNodeID1,
-                   CORBA::Long SecondNodeID1,
-                   CORBA::Long LastNodeID1,
-                   CORBA::Long FirstNodeID2,
-                   CORBA::Long SecondNodeID2,
-                   CORBA::Long LastNodeID2,
-                   CORBA::Boolean CreatePolygons,
-                   CORBA::Boolean CreatePolyedrs);
+  SewFreeBorders(CORBA::Long FirstNodeID1,
+                 CORBA::Long SecondNodeID1,
+                 CORBA::Long LastNodeID1,
+                 CORBA::Long FirstNodeID2,
+                 CORBA::Long SecondNodeID2,
+                 CORBA::Long LastNodeID2,
+                 CORBA::Boolean CreatePolygons,
+                 CORBA::Boolean CreatePolyedrs);
   SMESH::SMESH_MeshEditor::Sew_Error
-    SewConformFreeBorders(CORBA::Long FirstNodeID1,
-                          CORBA::Long SecondNodeID1,
-                          CORBA::Long LastNodeID1,
-                          CORBA::Long FirstNodeID2,
-                          CORBA::Long SecondNodeID2);
+  SewConformFreeBorders(CORBA::Long FirstNodeID1,
+                        CORBA::Long SecondNodeID1,
+                        CORBA::Long LastNodeID1,
+                        CORBA::Long FirstNodeID2,
+                        CORBA::Long SecondNodeID2);
   SMESH::SMESH_MeshEditor::Sew_Error
-    SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
-                    CORBA::Long SecondNodeIDOnFreeBorder,
-                    CORBA::Long LastNodeIDOnFreeBorder,
-                    CORBA::Long FirstNodeIDOnSide,
-                    CORBA::Long LastNodeIDOnSide,
-                    CORBA::Boolean CreatePolygons,
-                    CORBA::Boolean CreatePolyedrs);
+  SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
+                  CORBA::Long SecondNodeIDOnFreeBorder,
+                  CORBA::Long LastNodeIDOnFreeBorder,
+                  CORBA::Long FirstNodeIDOnSide,
+                  CORBA::Long LastNodeIDOnSide,
+                  CORBA::Boolean CreatePolygons,
+                  CORBA::Boolean CreatePolyedrs);
   SMESH::SMESH_MeshEditor::Sew_Error
-    SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
-                    const SMESH::long_array& IDsOfSide2Elements,
-                    CORBA::Long NodeID1OfSide1ToMerge,
-                    CORBA::Long NodeID1OfSide2ToMerge,
-                    CORBA::Long NodeID2OfSide1ToMerge,
-                    CORBA::Long NodeID2OfSide2ToMerge);
+  SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
+                  const SMESH::long_array& IDsOfSide2Elements,
+                  CORBA::Long NodeID1OfSide1ToMerge,
+                  CORBA::Long NodeID1OfSide2ToMerge,
+                  CORBA::Long NodeID2OfSide1ToMerge,
+                  CORBA::Long NodeID2OfSide2ToMerge);
 
   /*!
    * Set new nodes for given element.
@@ -278,27 +414,82 @@ class SMESH_I_EXPORT SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
    */
   SMESH::long_array* GetLastCreatedElems();
 
-  //
-  // Internal methods
-  //
-
-  /*!
-   * \brief Update myLastCreated* or myPreviewData
-    * \param anEditor - it contains edition results
-   */
-  void StoreResult(::SMESH_MeshEditor& anEditor);
-
   /*!
    * \brief Return edited mesh ID
     * \retval int - mesh ID
    */
   int GetMeshId() const { return myMesh->GetId(); }
 
- private:
+
+private: //!< private methods
 
   SMESHDS_Mesh * GetMeshDS() { return myMesh->GetMeshDS(); }
+
+  /*!
+   * \brief Update myLastCreated* or myPreviewData
+    * \param anEditor - it contains edition results
+   */
+  void storeResult(::SMESH_MeshEditor& anEditor);
+  /*!
+   * \brief Clear myLastCreated* or myPreviewData
+   */
   void initData();
 
+  /*!
+   * \brief Return groups by their IDs
+   */
+  SMESH::ListOfGroups* getGroups(const std::list<int>* groupIDs);
+
+  SMESH::ListOfGroups* rotationSweep(const SMESH::long_array & IDsOfElements,
+                                     const SMESH::AxisStruct & Axis,
+                                     CORBA::Double             AngleInRadians,
+                                     CORBA::Long               NbOfSteps,
+                                     CORBA::Double             Tolerance,
+                                     const bool                MakeGroups);
+  SMESH::ListOfGroups* extrusionSweep(const SMESH::long_array & IDsOfElements,
+                                      const SMESH::DirStruct &  StepVector,
+                                      CORBA::Long               NbOfSteps,
+                                      const bool                MakeGroups,
+                                      const SMDSAbs_ElementType ElementType=SMDSAbs_All);
+  SMESH::ListOfGroups* advancedExtrusion(const SMESH::long_array & theIDsOfElements,
+                                         const SMESH::DirStruct &  theStepVector,
+                                         CORBA::Long               theNbOfSteps,
+                                         CORBA::Long               theExtrFlags,
+                                         CORBA::Double             theSewTolerance,
+                                         const bool                MakeGroups);
+  SMESH::ListOfGroups* extrusionAlongPath(const SMESH::long_array &   IDsOfElements,
+                                          SMESH::SMESH_Mesh_ptr       PathMesh,
+                                          GEOM::GEOM_Object_ptr       PathShape,
+                                          CORBA::Long                 NodeStart,
+                                          CORBA::Boolean              HasAngles,
+                                          const SMESH::double_array & Angles,
+                                          CORBA::Boolean              HasRefPoint,
+                                          const SMESH::PointStruct &  RefPoint,
+                                          const bool                  MakeGroups,
+                                          SMESH::SMESH_MeshEditor::Extrusion_Error & Error);
+  SMESH::ListOfGroups* mirror(const SMESH::long_array &           IDsOfElements,
+                              const SMESH::AxisStruct &           Axis,
+                              SMESH::SMESH_MeshEditor::MirrorType MirrorType,
+                              CORBA::Boolean                      Copy,
+                              const bool                          MakeGroups,
+                              ::SMESH_Mesh*                       TargetMesh=0);
+  SMESH::ListOfGroups* translate(const SMESH::long_array & IDsOfElements,
+                                 const SMESH::DirStruct &  Vector,
+                                 CORBA::Boolean            Copy,
+                                 const bool                MakeGroups,
+                                 ::SMESH_Mesh*             TargetMesh=0);
+  SMESH::ListOfGroups* rotate(const SMESH::long_array & IDsOfElements,
+                              const SMESH::AxisStruct &  Axis,
+                              CORBA::Double             Angle,
+                              CORBA::Boolean            Copy,
+                              const bool                MakeGroups,
+                              ::SMESH_Mesh*             TargetMesh=0);
+
+  SMESH::SMESH_Mesh_ptr makeMesh(const char* theMeshName);
+
+private: //!< fields
+
+  SMESH_Mesh_i*         myMesh_i;
   SMESH_Mesh *          myMesh;
 
   SMESH::long_array_var myLastCreatedElems;
index 76e5a982179c651bdd6ca5b1f42b610154bb5f60..32e8ee2bc15be6d9e36a7b8a6eef3b84bd38fab3 100644 (file)
 //  $Header$
 
 #include "SMESH_Mesh_i.hxx"
-#include "SMESH_subMesh_i.hxx"
-#include "SMESH_MEDMesh_i.hxx"
-#include "SMESH_Group_i.hxx"
+
 #include "SMESH_Filter_i.hxx"
+#include "SMESH_Gen_i.hxx"
+#include "SMESH_Group_i.hxx"
+#include "SMESH_MEDMesh_i.hxx"
+#include "SMESH_MeshEditor_i.hxx"
 #include "SMESH_PythonDump.hxx"
+#include "SMESH_subMesh_i.hxx"
 
-#include "Utils_CorbaException.hxx"
-#include "Utils_ExceptHandlers.hxx"
-#include "utilities.h"
-
-#include "SALOME_NamingService.hxx"
-#include "Utils_SINGLETON.hxx"
-#include "OpUtil.hxx"
-
-#include "SMESHDS_Command.hxx"
-#include "SMESHDS_CommandType.hxx"
-#include "SMESH_MeshEditor_i.hxx"
-#include "SMESH_Gen_i.hxx"
 #include "DriverMED_R_SMESHDS_Mesh.h"
-//#include "SMDS_ElemIterator.hxx"
+#include "DriverMED_W_SMESHDS_Mesh.h"
 #include "SMDS_VolumeTool.hxx"
-#include "SMESH_MesherHelper.hxx"
+#include "SMESHDS_Command.hxx"
+#include "SMESHDS_CommandType.hxx"
+#include "SMESHDS_GroupOnGeom.hxx"
+#include "SMESH_Group.hxx"
 #include "SMESH_MeshEditor.hxx"
+#include "SMESH_MesherHelper.hxx"
+#include "SMDS_EdgePosition.hxx"
+#include "SMDS_FacePosition.hxx"
+
+#include "OpUtil.hxx"
+#include "SALOME_NamingService.hxx"
+#include "Utils_CorbaException.hxx"
+#include "Utils_ExceptHandlers.hxx"
+#include "Utils_SINGLETON.hxx"
+#include "utilities.h"
 
 // OCCT Includes
-#include <OSD_Path.hxx>
-#include <OSD_File.hxx>
+#include <BRep_Builder.hxx>
 #include <OSD_Directory.hxx>
+#include <OSD_File.hxx>
+#include <OSD_Path.hxx>
 #include <OSD_Protection.hxx>
-#include <TColStd_MapOfInteger.hxx>
 #include <TColStd_MapIteratorOfMapOfInteger.hxx>
+#include <TColStd_MapOfInteger.hxx>
 #include <TColStd_SequenceOfInteger.hxx>
-#include "TCollection_AsciiString.hxx"
+#include <TCollection_AsciiString.hxx>
+#include <TopExp_Explorer.hxx>
+#include <TopoDS_Compound.hxx>
 
 // STL Includes
 #include <string>
@@ -224,7 +231,7 @@ SMESH_Mesh_i::ImportMEDFile( const char* theFileName, const char* theMeshName )
   Unexpect aCatch(SALOME_SalomeException);
   int status;
   try {
-    status = importMEDFile( theFileName, theMeshName );
+    status = _impl->MEDToMesh( theFileName, theMeshName );
   }
   catch( SALOME_Exception& S_ex ) {
     THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
@@ -233,19 +240,24 @@ SMESH_Mesh_i::ImportMEDFile( const char* theFileName, const char* theMeshName )
     THROW_SALOME_CORBA_EXCEPTION("ImportMEDFile(): unknown exception", SALOME::BAD_PARAM);
   }
 
-  SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-  if ( !aStudy->_is_nil() ) {
-    // publishing of the groups in the study (sub-meshes are out of scope of MED import)
-    map<int, SMESH::SMESH_GroupBase_ptr>::iterator it = _mapGroups.begin();
-    for (; it != _mapGroups.end(); it++ ) {
-      SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_duplicate( it->second );
-      _gen_i->PublishGroup( aStudy, _this(), aGroup,
-                           GEOM::GEOM_Object::_nil(), aGroup->GetName());
-    }
-  }
+  CreateGroupServants();
+
   return ConvertDriverMEDReadStatus(status);
 }
 
+//================================================================================
+/*!
+ * \brief Return string representation of a MED file version comprising nbDigits
+ */
+//================================================================================
+
+char* SMESH_Mesh_i::GetVersionString(SMESH::MED_VERSION version, CORBA::Short nbDigits)
+{
+  std::string ver = DriverMED_W_SMESHDS_Mesh::GetVersionString(MED::EVersion(version),
+                                                               nbDigits);
+  return CORBA::string_dup( ver.c_str() );
+}
+
 //=============================================================================
 /*!
  *  ImportUNVFile
@@ -262,16 +274,6 @@ int SMESH_Mesh_i::ImportUNVFile( const char* theFileName )
 
   CreateGroupServants();
 
-  SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-  if ( !aStudy->_is_nil() ) {
-    // publishing of the groups in the study (sub-meshes are out of scope of UNV import)
-    map<int, SMESH::SMESH_GroupBase_ptr>::iterator it = _mapGroups.begin();
-    for (; it != _mapGroups.end(); it++ ) {
-      SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_duplicate( it->second );
-      _gen_i->PublishGroup( aStudy, _this(), aGroup,
-                           GEOM::GEOM_Object::_nil(), aGroup->GetName());
-    }
-  }
   return 1;
 }
 
@@ -299,14 +301,14 @@ int SMESH_Mesh_i::ImportSTLFile( const char* theFileName )
  */
 //=============================================================================
 
-int SMESH_Mesh_i::importMEDFile( const char* theFileName, const char* theMeshName )
-{
-  // Read mesh with name = <theMeshName> and all its groups into SMESH_Mesh
-  int status = _impl->MEDToMesh( theFileName, theMeshName );
-  CreateGroupServants();
+// int SMESH_Mesh_i::importMEDFile( const char* theFileName, const char* theMeshName )
+// {
+//   // Read mesh with name = <theMeshName> and all its groups into SMESH_Mesh
+//   int status = _impl->MEDToMesh( theFileName, theMeshName );
+//   CreateGroupServants();
 
-  return status;
-}
+//   return status;
+// }
 
 //=============================================================================
 /*!
@@ -362,9 +364,14 @@ SMESH::Hypothesis_Status SMESH_Mesh_i::AddHypothesis(GEOM::GEOM_Object_ptr aSubS
   if(MYDEBUG) MESSAGE( " AddHypothesis(): status = " << status );
 
   // Update Python script
-  TPythonDump() << "status = " << _this() << ".AddHypothesis( "
-                << aSubShapeObject << ", " << anHyp << " )";
-
+  if(_impl->HasShapeToMesh()) {
+    TPythonDump() << "status = " << _this() << ".AddHypothesis( "
+                  << aSubShapeObject << ", " << anHyp << " )";
+  }
+  else {
+    TPythonDump() << "status = " << _this() << ".AddHypothesis( "<< anHyp << " )";
+  }
+  
   return ConvertHypothesisStatus(status);
 }
 
@@ -380,7 +387,7 @@ SMESH_Hypothesis::Hypothesis_Status
 {
   if(MYDEBUG) MESSAGE("addHypothesis");
 
-  if (CORBA::is_nil(aSubShapeObject))
+  if (CORBA::is_nil(aSubShapeObject) && HasShapeToMesh())
     THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
                                  SALOME::BAD_PARAM);
 
@@ -392,7 +399,13 @@ SMESH_Hypothesis::Hypothesis_Status
   SMESH_Hypothesis::Hypothesis_Status status = SMESH_Hypothesis::HYP_OK;
   try
   {
-    TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape( aSubShapeObject);
+    TopoDS_Shape myLocSubShape;
+    //use PseudoShape in case if mesh has no shape
+    if(HasShapeToMesh())
+      myLocSubShape = _gen_i->GeomObjectToShape( aSubShapeObject);
+    else              
+      myLocSubShape = _impl->GetShapeToMesh();
+    
     int hypId = myHyp->GetId();
     status = _impl->AddHypothesis(myLocSubShape, hypId);
     if ( !SMESH_Hypothesis::IsStatusFatal(status) ) {
@@ -430,8 +443,15 @@ SMESH::Hypothesis_Status SMESH_Mesh_i::RemoveHypothesis(GEOM::GEOM_Object_ptr aS
                                       aSubShapeObject, anHyp );
 
   // Update Python script
+    // Update Python script
+  if(_impl->HasShapeToMesh()) {
   TPythonDump() << "status = " << _this() << ".RemoveHypothesis( "
                 << aSubShapeObject << ", " << anHyp << " )";
+  }
+  else {
+    TPythonDump() << "status = " << _this() << ".RemoveHypothesis( "
+                  << anHyp << " )";
+  }
 
   return ConvertHypothesisStatus(status);
 }
@@ -448,7 +468,7 @@ SMESH_Hypothesis::Hypothesis_Status SMESH_Mesh_i::removeHypothesis(GEOM::GEOM_Ob
        if(MYDEBUG) MESSAGE("removeHypothesis()");
        // **** proposer liste de subShape (selection multiple)
 
-       if (CORBA::is_nil(aSubShapeObject))
+       if (CORBA::is_nil(aSubShapeObject) && HasShapeToMesh())
                THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
                        SALOME::BAD_PARAM);
 
@@ -460,8 +480,14 @@ SMESH_Hypothesis::Hypothesis_Status SMESH_Mesh_i::removeHypothesis(GEOM::GEOM_Ob
        SMESH_Hypothesis::Hypothesis_Status status = SMESH_Hypothesis::HYP_OK;
        try
        {
-               TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape(aSubShapeObject);
-               int hypId = myHyp->GetId();
+                TopoDS_Shape myLocSubShape;
+                //use PseudoShape in case if mesh has no shape
+                if(HasShapeToMesh())
+                  myLocSubShape = _gen_i->GeomObjectToShape( aSubShapeObject);
+                else
+                  myLocSubShape = _impl->GetShapeToMesh();
+                
+                int hypId = myHyp->GetId();
                status = _impl->RemoveHypothesis(myLocSubShape, hypId);
                 if ( !SMESH_Hypothesis::IsStatusFatal(status) )
                   _mapHypo.erase( hypId );
@@ -785,6 +811,17 @@ SMESH::ListOfGroups * SMESH_Mesh_i::GetGroups() throw(SALOME::SALOME_Exception)
 
   return aList._retn();
 }
+//=============================================================================
+/*!
+ *  Get number of groups existing in the mesh
+ */
+//=============================================================================
+
+CORBA::Long SMESH_Mesh_i::NbGroups() throw (SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  return _mapGroups.size();
+}
 
 //=============================================================================
 /*! UnionGroups
@@ -956,6 +993,139 @@ SMESH::SMESH_Group_ptr SMESH_Mesh_i::CutGroups( SMESH::SMESH_GroupBase_ptr theGr
   return aResGrp._retn();
 }
 
+//================================================================================
+/*!
+ * \brief Return group items of a group present in a study
+ */
+//================================================================================
+
+static GEOM::GEOM_Object_ptr getGroupItemsFromStudy(CORBA::Object_ptr    theMesh,
+                                                    SMESH_Gen_i*         theGen,
+                                                    list<TopoDS_Shape> & theItems)
+{
+  GEOM::GEOM_Object_var groupObj;
+  SALOMEDS::Study_var  study = theGen->GetCurrentStudy();
+  GEOM::GEOM_Gen_var geomGen = theGen->GetGeomEngine();
+  if ( study->_is_nil() || geomGen->_is_nil() )
+    return groupObj._retn();
+  
+  GEOM::GEOM_IGroupOperations_var groupOp =
+    geomGen->GetIGroupOperations( theGen->GetCurrentStudyID() );
+  GEOM::GEOM_IShapesOperations_var shapeOp =
+    geomGen->GetIShapesOperations( theGen->GetCurrentStudyID() );
+
+  SALOMEDS::SObject_var meshOS = theGen->ObjectToSObject(study, theMesh);
+  if ( meshOS->_is_nil() || groupOp->_is_nil() || shapeOp->_is_nil() )
+    return groupObj._retn();
+  SALOMEDS::SObject_var fatherSO = meshOS->GetFather();
+  if ( fatherSO->_is_nil() || fatherSO->Tag() != theGen->GetSubMeshOnCompoundTag() )
+    return groupObj._retn(); // keep only submeshes on groups
+
+  SALOMEDS::ChildIterator_var anIter = study->NewChildIterator(meshOS);
+  if ( anIter->_is_nil() ) return groupObj._retn();
+  for ( ; anIter->More(); anIter->Next())
+  {
+    SALOMEDS::SObject_var aSObject = anIter->Value();
+    SALOMEDS::SObject_var aRefSO;
+    if ( !aSObject->_is_nil() && aSObject->ReferencedObject(aRefSO) )
+    {
+      groupObj = GEOM::GEOM_Object::_narrow(aRefSO->GetObject());
+      if ( groupObj->_is_nil() ) break;
+      GEOM::ListOfLong_var  ids = groupOp->GetObjects( groupObj );
+      GEOM::GEOM_Object_var mainShape = groupObj->GetMainShape();
+      for ( int i = 0; i < ids->length(); ++i ) {
+        GEOM::GEOM_Object_var subShape = shapeOp->GetSubShape( mainShape, ids[i] );
+        TopoDS_Shape S = theGen->GeomObjectToShape( subShape );
+        if ( !S.IsNull() )
+          theItems.push_back( S );
+      }
+      break;
+    }
+  }
+  return groupObj._retn();
+}
+
+//=============================================================================
+/*!
+ * \brief Update hypotheses assigned to geom groups if the latter change
+ * 
+ * NPAL16168: "geometrical group edition from a submesh don't modifiy mesh computation"
+ */
+//=============================================================================
+
+void SMESH_Mesh_i::CheckGeomGroupModif()
+{
+  if ( !_impl->HasShapeToMesh() ) return;
+
+  SALOMEDS::Study_var study = _gen_i->GetCurrentStudy();
+  if ( study->_is_nil() ) return;
+
+  // check if items of groups changed
+  map<int, ::SMESH_subMesh*>::iterator i_sm = _mapSubMesh.begin();
+  for ( ; i_sm != _mapSubMesh.end(); ++i_sm )
+  {
+    const TopoDS_Shape & oldGroupShape = i_sm->second->GetSubShape();
+    SMESHDS_SubMesh * oldDS = i_sm->second->GetSubMeshDS();
+    if ( !oldDS /*|| !oldDS->IsComplexSubmesh()*/ )
+      continue;
+    int oldID = i_sm->first;
+    map<int, SMESH::SMESH_subMesh_ptr>::iterator i_smIor = _mapSubMeshIor.find( oldID );
+    if ( i_smIor == _mapSubMeshIor.end() )
+      continue;
+    list< TopoDS_Shape> newItems;
+    GEOM::GEOM_Object_var groupObj = getGroupItemsFromStudy ( i_smIor->second, _gen_i, newItems );
+    if ( groupObj->_is_nil() )
+      continue;
+
+    int nbOldItems = oldDS->IsComplexSubmesh() ? oldDS->NbSubMeshes() : 1;
+    int nbNewItems = newItems.size();
+    bool groupChanged = ( nbOldItems != nbNewItems);
+    if ( !groupChanged ) {
+      if ( !oldDS->IsComplexSubmesh() ) { // old group has one item
+        groupChanged = ( oldGroupShape != newItems.front() );
+      }
+      else {
+        list<TopoDS_Shape>::iterator item = newItems.begin();
+        for ( ; item != newItems.end() && !groupChanged; ++item )
+        {
+          SMESHDS_SubMesh * itemDS = _impl->GetMeshDS()->MeshElements( *item );
+          groupChanged = ( !itemDS || !oldDS->ContainsSubMesh( itemDS ));
+        }
+      }
+    }
+    // update hypotheses and submeshes if necessary
+    if ( groupChanged )
+    {
+      // get a new group shape
+      GEOM_Client* geomClient = _gen_i->GetShapeReader();
+      if ( !geomClient ) continue;
+      TCollection_AsciiString groupIOR = _gen_i->GetGeomEngine()->GetStringFromIOR( groupObj );
+      geomClient->RemoveShapeFromBuffer( groupIOR );
+      TopoDS_Shape newGroupShape = _gen_i->GeomObjectToShape( groupObj );
+      // update hypotheses
+      list <const SMESHDS_Hypothesis * > hyps = _impl->GetHypothesisList(oldGroupShape);
+      list <const SMESHDS_Hypothesis * >::iterator hypIt;
+      for ( hypIt = hyps.begin(); hypIt != hyps.end(); ++hypIt )
+      {
+        _impl->RemoveHypothesis( oldGroupShape, (*hypIt)->GetID());
+        _impl->AddHypothesis   ( newGroupShape, (*hypIt)->GetID());
+      }
+      // care of submeshes
+      SMESH_subMesh* newSubmesh = _impl->GetSubMesh( newGroupShape );
+      int newID = newSubmesh->GetId();
+      if ( newID != oldID ) {
+        _mapSubMesh   [ newID ] = newSubmesh;
+        _mapSubMesh_i [ newID ] = _mapSubMesh_i [ oldID ];
+        _mapSubMeshIor[ newID ] = _mapSubMeshIor[ oldID ];
+        _mapSubMesh.erase   (oldID);
+        _mapSubMesh_i.erase (oldID);
+        _mapSubMeshIor.erase(oldID);
+        _mapSubMesh_i [ newID ]->changeLocalId( newID );
+      }
+    }
+  }
+}
+
 //=============================================================================
 /*!
  *
@@ -1211,7 +1381,7 @@ void SMESH_Mesh_i::SetImpl(::SMESH_Mesh * impl)
 SMESH::SMESH_MeshEditor_ptr SMESH_Mesh_i::GetMeshEditor()
 {
   // Create MeshEditor
-  SMESH_MeshEditor_i *aMeshEditor = new SMESH_MeshEditor_i( _impl, false );
+  SMESH_MeshEditor_i *aMeshEditor = new SMESH_MeshEditor_i( this, false );
   SMESH::SMESH_MeshEditor_var aMesh = aMeshEditor->_this();
 
   // Update Python script
@@ -1228,11 +1398,34 @@ SMESH::SMESH_MeshEditor_ptr SMESH_Mesh_i::GetMeshEditor()
 
 SMESH::SMESH_MeshEditor_ptr SMESH_Mesh_i::GetMeshEditPreviewer()
 {
-  SMESH_MeshEditor_i *aMeshEditor = new SMESH_MeshEditor_i( _impl, true );
+  SMESH_MeshEditor_i *aMeshEditor = new SMESH_MeshEditor_i( this, true );
   SMESH::SMESH_MeshEditor_var aMesh = aMeshEditor->_this();
   return aMesh._retn();
 }
 
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+void SMESH_Mesh_i::SetAutoColor(CORBA::Boolean theAutoColor) throw(SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  _impl->SetAutoColor(theAutoColor);
+}
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+CORBA::Boolean SMESH_Mesh_i::GetAutoColor() throw(SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  return _impl->GetAutoColor();
+}
+
+
 //=============================================================================
 /*!
  *  Export in different formats
@@ -1426,7 +1619,7 @@ CORBA::Long SMESH_Mesh_i::NbEdgesOfOrder(SMESH::ElementOrder order)
   throw(SALOME::SALOME_Exception)
 {
   Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbEdges( (::SMESH_Mesh::ElementOrder) order);
+  return _impl->NbEdges( (SMDSAbs_ElementOrder) order);
 }
 
 //=============================================================================
@@ -1462,21 +1655,21 @@ CORBA::Long SMESH_Mesh_i::NbFacesOfOrder(SMESH::ElementOrder order)
   throw(SALOME::SALOME_Exception)
 {
   Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbFaces( (::SMESH_Mesh::ElementOrder) order);
+  return _impl->NbFaces( (SMDSAbs_ElementOrder) order);
 }
 
 CORBA::Long SMESH_Mesh_i::NbTrianglesOfOrder(SMESH::ElementOrder order)
   throw(SALOME::SALOME_Exception)
 {
   Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbTriangles( (::SMESH_Mesh::ElementOrder) order);
+  return _impl->NbTriangles( (SMDSAbs_ElementOrder) order);
 }
 
 CORBA::Long SMESH_Mesh_i::NbQuadranglesOfOrder(SMESH::ElementOrder order)
   throw(SALOME::SALOME_Exception)
 {
   Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbQuadrangles( (::SMESH_Mesh::ElementOrder) order);
+  return _impl->NbQuadrangles( (SMDSAbs_ElementOrder) order);
 }
 
 //=============================================================================
@@ -1524,35 +1717,35 @@ CORBA::Long SMESH_Mesh_i::NbVolumesOfOrder(SMESH::ElementOrder order)
   throw(SALOME::SALOME_Exception)
 {
   Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbVolumes( (::SMESH_Mesh::ElementOrder) order);
+  return _impl->NbVolumes( (SMDSAbs_ElementOrder) order);
 }
 
 CORBA::Long SMESH_Mesh_i::NbTetrasOfOrder(SMESH::ElementOrder order)
   throw(SALOME::SALOME_Exception)
 {
   Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbTetras( (::SMESH_Mesh::ElementOrder) order);
+  return _impl->NbTetras( (SMDSAbs_ElementOrder) order);
 }
 
 CORBA::Long SMESH_Mesh_i::NbHexasOfOrder(SMESH::ElementOrder order)
   throw(SALOME::SALOME_Exception)
 {
   Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbHexas( (::SMESH_Mesh::ElementOrder) order);
+  return _impl->NbHexas( (SMDSAbs_ElementOrder) order);
 }
 
 CORBA::Long SMESH_Mesh_i::NbPyramidsOfOrder(SMESH::ElementOrder order)
   throw(SALOME::SALOME_Exception)
 {
   Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbPyramids( (::SMESH_Mesh::ElementOrder) order);
+  return _impl->NbPyramids( (SMDSAbs_ElementOrder) order);
 }
 
 CORBA::Long SMESH_Mesh_i::NbPrismsOfOrder(SMESH::ElementOrder order)
   throw(SALOME::SALOME_Exception)
 {
   Unexpect aCatch(SALOME_SalomeException);
-  return _impl->NbPrisms( (::SMESH_Mesh::ElementOrder) order);
+  return _impl->NbPrisms( (SMDSAbs_ElementOrder) order);
 }
 
 //=============================================================================
@@ -1884,6 +2077,56 @@ SMESH::long_array* SMESH_Mesh_i::GetNodeInverseElements(const CORBA::Long id)
   return aResult._retn();
 }
 
+//=============================================================================
+/*!
+ * \brief Return position of a node on shape
+ */
+//=============================================================================
+
+SMESH::NodePosition* SMESH_Mesh_i::GetNodePosition(CORBA::Long NodeID)
+{
+  SMESH::NodePosition* aNodePosition = new SMESH::NodePosition();
+  aNodePosition->shapeID = 0;
+  aNodePosition->shapeType = GEOM::SHAPE;
+
+  SMESHDS_Mesh* mesh = _impl->GetMeshDS();
+  if ( !mesh ) return aNodePosition;
+
+  if ( const SMDS_MeshNode* aNode = mesh->FindNode(NodeID) )
+  {
+    if ( SMDS_PositionPtr pos = aNode->GetPosition() )
+    {
+      aNodePosition->shapeID = pos->GetShapeId();
+      switch ( pos->GetTypeOfPosition() ) {
+      case SMDS_TOP_EDGE:
+        aNodePosition->shapeType = GEOM::EDGE;
+        aNodePosition->params.length(1);
+        aNodePosition->params[0] =
+          static_cast<SMDS_EdgePosition*>( pos.get() )->GetUParameter();
+        break;
+      case SMDS_TOP_FACE:
+        aNodePosition->shapeType = GEOM::FACE;
+        aNodePosition->params.length(2);
+        aNodePosition->params[0] =
+          static_cast<SMDS_FacePosition*>( pos.get() )->GetUParameter();
+        aNodePosition->params[1] =
+          static_cast<SMDS_FacePosition*>( pos.get() )->GetVParameter();
+        break;
+      case SMDS_TOP_VERTEX:
+        aNodePosition->shapeType = GEOM::VERTEX;
+        break;
+      case SMDS_TOP_3DSPACE:
+        if ( TopExp_Explorer(_impl->GetShapeToMesh(), TopAbs_SOLID).More() )
+          aNodePosition->shapeType = GEOM::SOLID;
+        else if ( TopExp_Explorer(_impl->GetShapeToMesh(), TopAbs_SHELL).More() )
+          aNodePosition->shapeType = GEOM::SHELL;
+        break;
+      default:;
+      }
+    }
+  }
+  return aNodePosition;
+}
 
 //=============================================================================
 /*!
@@ -2131,17 +2374,11 @@ SMESH::double_array* SMESH_Mesh_i::BaryCenter(const CORBA::Long id)
     return aResult._retn();
 
   if(elem->GetType()==SMDSAbs_Volume) {
-    // use SMDS_VolumeTool
     SMDS_VolumeTool aTool;
     if(aTool.Set(elem)) {
-      double x=0., y=0., z=0.;
-      if(aTool.GetBaryCenter(x,y,z)) {
-        // add coordinates
-        aResult->length(3);
-        aResult[0] = x;
-        aResult[1] = y;
-        aResult[2] = z;
-      }
+      aResult->length(3);
+      if (!aTool.GetBaryCenter( aResult[0], aResult[1], aResult[2]) )
+        aResult->length(0);
     }
   }
   else {
@@ -2170,27 +2407,75 @@ SMESH::double_array* SMESH_Mesh_i::BaryCenter(const CORBA::Long id)
 
 //=============================================================================
 /*!
- *
+ * Create and publish group servants if any groups were imported or created anyhow
  */
 //=============================================================================
+
 void SMESH_Mesh_i::CreateGroupServants() 
 {
-  // Create group servants, if any groups were imported
-  list<int> aGroupIds = _impl->GetGroupIds();
-  for ( list<int>::iterator it = aGroupIds.begin(); it != aGroupIds.end(); it++ ) {
-    SMESH_Group_i* aGroupImpl     = new SMESH_Group_i( SMESH_Gen_i::GetPOA(), this, *it );
+  SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
 
-    // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i
+  ::SMESH_Mesh::GroupIteratorPtr groupIt = _impl->GetGroups();
+  while ( groupIt->more() )
+  {
+    ::SMESH_Group* group = groupIt->next();
+    int            anId = group->GetGroupDS()->GetID();
+
+    map<int, SMESH::SMESH_GroupBase_ptr>::iterator it = _mapGroups.find(anId);
+    if ( it != _mapGroups.end() && !CORBA::is_nil( it->second ))
+      continue;
+
+    SMESH_GroupBase_i* aGroupImpl;
+    TopoDS_Shape       shape;
+    if ( SMESHDS_GroupOnGeom* groupOnGeom =
+         dynamic_cast<SMESHDS_GroupOnGeom*>( group->GetGroupDS() ))
+    {
+      aGroupImpl = new SMESH_GroupOnGeom_i( SMESH_Gen_i::GetPOA(), this, anId );
+      shape      = groupOnGeom->GetShape();
+    }
+    else {
+      aGroupImpl = new SMESH_Group_i( SMESH_Gen_i::GetPOA(), this, anId );
+    }
+
+    // To ensure correct mapping of servant and correct reference counting in GenericObj_i
     SMESH_Gen_i::GetPOA()->activate_object( aGroupImpl );
     aGroupImpl->Register();
-    // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i
 
-    SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow( aGroupImpl->_this() );
-    _mapGroups[*it]               = SMESH::SMESH_Group::_duplicate( aGroup );
+    SMESH::SMESH_GroupBase_var groupVar =
+      SMESH::SMESH_GroupBase::_narrow( aGroupImpl->_this() );
+    _mapGroups[anId] = SMESH::SMESH_GroupBase::_duplicate( groupVar );
 
     // register CORBA object for persistence
-    int nextId = _gen_i->RegisterObject( aGroup );
+    int nextId = _gen_i->RegisterObject( groupVar );
     if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId);
+
+    // publishing of the groups in the study
+    if ( !aStudy->_is_nil() ) {
+      GEOM::GEOM_Object_var shapeVar = _gen_i->ShapeToGeomObject( shape );
+      _gen_i->PublishGroup( aStudy, _this(), groupVar, shapeVar, groupVar->GetName());
+    }
   }
 }
 
+//=============================================================================
+/*!
+ * \brief Return groups cantained in _mapGroups by their IDs
+ */
+//=============================================================================
+
+SMESH::ListOfGroups* SMESH_Mesh_i::GetGroups(const list<int>& groupIDs) const
+{
+  int nbGroups = groupIDs.size();
+  SMESH::ListOfGroups_var aList = new SMESH::ListOfGroups();
+  aList->length( nbGroups );
+
+  list<int>::const_iterator ids = groupIDs.begin();
+  for ( nbGroups = 0; ids != groupIDs.end(); ++ids )
+  {
+    map<int, SMESH::SMESH_GroupBase_ptr>::const_iterator it = _mapGroups.find( *ids );
+    if ( it != _mapGroups.end() && !CORBA::is_nil( it->second ))
+      aList[nbGroups++] = SMESH::SMESH_GroupBase::_duplicate( it->second );
+  }
+  aList->length( nbGroups );
+  return aList._retn();
+}
index af50b569bc6f7973efc9942aa92884915de57666..d76ade836c5f56686a17555236a6802b090975e7 100644 (file)
 
 #include "SMESH_Hypothesis.hxx"
 #include "SMESH_Mesh.hxx"
-#include "SMESH_subMesh_i.hxx"
+//#include "SMESH_subMesh_i.hxx"
 #include "SMESH_subMesh.hxx"
 
 #include "SALOME_GenericObj_i.hh"
 
 class SMESH_Gen_i;
 class SMESH_GroupBase_i;
+class SMESH_subMesh_i;
 
 #include <map>
 
@@ -107,6 +108,9 @@ public:
   SMESH::ListOfGroups* GetGroups()
     throw (SALOME::SALOME_Exception);
 
+  CORBA::Long NbGroups()
+    throw (SALOME::SALOME_Exception);
+
   SMESH::SMESH_Group_ptr UnionGroups( SMESH::SMESH_GroupBase_ptr theGroup1, 
                                       SMESH::SMESH_GroupBase_ptr theGroup2, 
                                       const char* theName )
@@ -159,10 +163,23 @@ public:
   SMESH::DriverMED_ReadStatus ImportMEDFile( const char* theFileName, const char* theMeshName )
     throw (SALOME::SALOME_Exception);
 
+  /*!
+   *  Auto color
+   */
+  void SetAutoColor(CORBA::Boolean theAutoColor)
+    throw (SALOME::SALOME_Exception);
+
+  CORBA::Boolean GetAutoColor()
+    throw (SALOME::SALOME_Exception);
+
   /*! Check group names for duplications.
    *  Consider maximum group name length stored in MED file.
    */
   CORBA::Boolean HasDuplicatedGroupNamesMED();
+  /*!
+   * Return string representation of a MED file version comprising nbDigits
+   */
+  char* GetVersionString(SMESH::MED_VERSION version, CORBA::Short nbDigits);
 
   void ExportToMED( const char* file, CORBA::Boolean auto_groups, SMESH::MED_VERSION theVersion )
     throw (SALOME::SALOME_Exception);
@@ -293,7 +310,7 @@ public:
   static SMESH::Hypothesis_Status
   ConvertHypothesisStatus (SMESH_Hypothesis::Hypothesis_Status theStatus);
 
-  int importMEDFile( const char* theFileName, const char* theMeshName );
+  //int importMEDFile( const char* theFileName, const char* theMeshName );
 
   SMESH::SMESH_subMesh_ptr createSubMesh( GEOM::GEOM_Object_ptr theSubShapeObject );
 
@@ -312,10 +329,26 @@ public:
   const map<int, SMESH::SMESH_GroupBase_ptr>& getGroups() { return _mapGroups; }
   // return an existing group object.
 
+  /*!
+   * \brief Update hypotheses assigned to geom groups if the latter change
+   * 
+   * NPAL16168: "geometrical group edition from a submesh don't modifiy mesh computation"
+   */
+  void CheckGeomGroupModif();
+
   virtual SMESH::long_array* GetIDs();
 
   CORBA::LongLong GetMeshPtr();
 
+  /*!
+   * \brief Assure that all groups are published
+   */
+  void CreateGroupServants();
+
+  /*!
+   * \brief Return groups cantained in _mapGroups by their IDs
+   */
+  SMESH::ListOfGroups* GetGroups(const std::list<int>& groupIDs) const;
 
   /*!
    * Get XYZ coordinates of node as list of double
@@ -329,6 +362,11 @@ public:
    */
   SMESH::long_array* GetNodeInverseElements(CORBA::Long id);
 
+  /*!
+   * \brief Return position of a node on shape
+   */
+  SMESH::NodePosition* GetNodePosition(CORBA::Long NodeID);
+
   /*!
    * If given element is node returns IDs of shape from position
    * If there is not node for given ID - returns -1
@@ -403,7 +441,6 @@ public:
   map<int, ::SMESH_subMesh*> _mapSubMesh;   //NRI
 
 private:
-  void CreateGroupServants();
 
   static int myIdGenerator;
   ::SMESH_Mesh* _impl;  // :: force no namespace here
index 13ed3ac891d890c147c9a0742bb93a2253c0faa5..4f730b3874abf276c3f99be4bab1cda2f4d6529a 100644 (file)
@@ -40,6 +40,9 @@
 #include <TopoDS.hxx>
 #include <TopoDS_Face.hxx>
 
+#include <Standard_Failure.hxx>
+#include <Standard_ErrorHandler.hxx>
+
 #include <sstream>
 #include <set>
 
@@ -286,8 +289,24 @@ SMESH::point_array*
     if ( elem && elem->GetType() == SMDSAbs_Face )
       fset.insert( static_cast<const SMDS_MeshFace *>( elem ));
   }
-  if (myPattern.Apply( fset, theNodeIndexOnKeyPoint1, theReverse ) &&
-      myPattern.GetMappedPoints( xyzList ))
+  bool ok = false;
+  try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+    OCC_CATCH_SIGNALS;
+#endif
+    ok = myPattern.Apply( aMesh, fset, theNodeIndexOnKeyPoint1, theReverse );
+  }
+  catch (Standard_Failure& exc) {
+    MESSAGE("OCCT Exception in SMESH_Pattern: " << exc.GetMessageString());
+  }
+  catch ( std::exception& exc ) {
+    MESSAGE("STD Exception in SMESH_Pattern: << exc.what()");
+  }
+  catch ( ... ) {
+    MESSAGE("Unknown Exception in SMESH_Pattern");
+  }
+
+  if ( ok && myPattern.GetMappedPoints( xyzList ))
   {
     points->length( xyzList.size() );
     list<const gp_XYZ *>::iterator xyzIt = xyzList.begin();
index 6e65a3d4149dbc15a4c23c669641f0e3efb55da6..518e1be9220ca88703e8707d5aea712a20ac264f 100644 (file)
 class SMESH_Gen_i;
 class SMESH_MeshEditor_i;
 class TCollection_AsciiString;
+class Resource_DataMapOfAsciiStringAsciiString;
+
+// ===========================================================================================
+/*!
+ * \brief Tool converting SMESH engine calls into commands defined in smesh.py
+ *
+ * Implementation is in SMESH_2smeshpy.cxx
+ */
+// ===========================================================================================
+
+class SMESH_2smeshpy
+{
+public:
+  /*!
+   * \brief Convert a python script using commands of smesh.py
+   * \param theScript - Input script
+   * \param theEntry2AccessorMethod - The returning method names to access to
+   *        objects wrapped with python class
+   * \retval TCollection_AsciiString - Convertion result
+   */
+  static TCollection_AsciiString
+  ConvertScript(const TCollection_AsciiString& theScript,
+                Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod);
+
+  /*!
+   * \brief Return the name of the python file wrapping IDL API
+    * \retval TCollection_AsciiString - The file name
+   */
+  static char* SmeshpyName() { return "smesh"; }
+  static char* GenName() { return "smesh.smesh"; }
+};
 
 namespace SMESH
 {
@@ -39,6 +70,12 @@ namespace SMESH
   class Filter_i;
   class Functor_i;
 
+// ===========================================================================================
+/*!
+ * \brief Utility helping in storing SMESH engine calls as python commands
+ */
+// ===========================================================================================
+
   class SMESH_I_EXPORT TPythonDump
   {
     std::ostringstream myStream;
@@ -144,5 +181,4 @@ namespace SMESH
   };
 }
 
-
 #endif
index 4df569cb6ba46c1461f203ee2cdb73fe8365b7ce..f0fbc25b306185e5ac0be43e28f409038c31d389 100644 (file)
@@ -35,9 +35,8 @@
 #include "OpUtil.hxx"
 #include "Utils_ExceptHandlers.hxx"
 
-#include <BRepTools.hxx>
-#include <TopoDS.hxx>
 #include <TopoDS_Iterator.hxx>
+#include <TopExp_Explorer.hxx>
 
 using namespace std;
 
@@ -458,8 +457,14 @@ GEOM::GEOM_Object_ptr SMESH_subMesh_i::GetSubShape()
   try {
     if ( _mesh_i->_mapSubMesh.find( _localId ) != _mesh_i->_mapSubMesh.end()) {
       TopoDS_Shape S = _mesh_i->_mapSubMesh[ _localId ]->GetSubShape();
-      if ( !S.IsNull() )
+      if ( !S.IsNull() ) {
         aShapeObj = _gen_i->ShapeToGeomObject( S );
+       //mzn: N7PAL16232, N7PAL16233
+       //In some cases it's possible that GEOM_Client contains the shape same to S, but
+       //with another orientation.
+       if (aShapeObj->_is_nil())
+         aShapeObj = _gen_i->ShapeToGeomObject( S.Reversed() );
+      }
     }
   }
   catch(SALOME_Exception & S_ex) {
index 808b07cb68d21dad3197e91aebb8dbf8e3f0e47e..154ffd7a2c5fdd6d9faa4a08c9dc85b609bd60ba 100644 (file)
@@ -38,6 +38,7 @@
 #include CORBA_CLIENT_HEADER(MED)
 
 #include "SALOME_GenericObj_i.hh"
+#include "SMESH_Mesh_i.hxx"
 
 class SMESH_Gen_i;
 class SMESH_Mesh_i;
@@ -91,8 +92,11 @@ public:
   SMESH_Mesh_i* _mesh_i; //NRI
 
 protected:
+  void changeLocalId(int localId) { _localId = localId; }
   SMESH_Gen_i* _gen_i;
   int _localId;
+
+  friend void SMESH_Mesh_i::CheckGeomGroupModif();
 };
 
 #endif
index 232e1882b6472c0a66e124f80d3e595b8723df6d..dc8d2a32c0b03fe81464fdf4d8fe05ed56707886 100644 (file)
 
 include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
-# ===============================================================
-# Swig targets
-# ===============================================================
-# (cf. http://www.geocities.com/foetsch/python/swig_linux.htm)
-#
-# Step 1: build the wrapping source files with swig
-#
-# libSALOME_LifeCycleCORBA.i -- swig --> swig_wrap.cpp
-#                                        libSALOME_Swig.py
-#
-# Step 2: build the dynamic library from cpp built source files and
-#         dependant libraries.
-#
-# swig_wrap.cpp -- gcc --> swig_wrap.o    |-- link --> _libSALOME_Swig.la
-#                          +              |
-#                          dependant libs |
-#
-# The file libSALOME_Swigcmodule.py will be installed in
-# <prefix>/lib/python<version>/site-package/salome.
-# The library will be installed in the same place.
-#
-
-# this option puts it to dist
-#BUILT_SOURCES = swig_wrap.cpp
-
-SWIG_FLAGS    = \
-       @SWIG_FLAGS@ \
-       -I$(srcdir) \
-       -I$(srcdir)/../SMESHGUI
-
-SWIG_SOURCES  = libSMESH_Swig.i
-
-# Libraries targets
-
-lib_LTLIBRARIES = libSMESH_Swigcmodule.la
-
-nodist_pkgpython_DATA = libSMESH_Swig.py
-libSMESH_Swig.py: swig_wrap.cpp
-
-libSMESH_Swigcmodule_la_SOURCES = \
-       $(BUILT_SOURCES) \
-       $(SWIG_SOURCES) \
-       ../SMESHGUI/SMESHGUI_Swig.cxx
-
-nodist_libSMESH_Swigcmodule_la_SOURCES = \
-       swig_wrap.cpp
-
-libSMESH_Swigcmodule_la_CPPFLAGS = \
-       $(QT_INCLUDES) \
-       $(PYTHON_INCLUDES) \
-       $(CAS_CPPFLAGS) \
-       $(VTK_INCLUDES) \
-       $(OGL_INCLUDES) \
-       $(KERNEL_CXXFLAGS) \
-       $(GUI_CXXFLAGS) \
-       $(MED_CXXFLAGS) \
-       $(GEOM_CXXFLAGS) \
-       $(CORBA_CXXFLAGS) \
-       $(CORBA_INCLUDES) \
-       $(BOOST_CPPFLAGS) \
-       -I$(srcdir)/../SMESHGUI \
-       -I$(top_builddir)/idl \
-       -I$(top_builddir)/salome_adm/unix
-
-libSMESH_Swigcmodule_la_LDFLAGS  = \
-       ../SMESHGUI/libSMESH.la \
-       $(KERNEL_LDFLAGS) -lSalomeGenericObj -lSALOMELocalTrace \
-       $(GUI_LDFLAGS) -lCAM -lsuit -lqtx -lSalomeApp -lstd -lEvent \
-       $(PYTHON_LIBS) \
-       $(QT_MT_LIBS)
-
-
-swig_wrap.cpp : $(SWIG_SOURCES)
-       $(SWIG) $(SWIG_FLAGS) -o $@ $<
-
-CLEANFILES = \
-       swig_wrap.cpp
 
 # Scripts to be installed.
 dist_salomescript_DATA= \
-       libSMESH_Swig.py \
        smesh.py \
+       smeshDC.py \
        batchmode_smesh.py \
        batchmode_mefisto.py \
        ex00_all.py \
@@ -132,6 +55,7 @@ dist_salomescript_DATA= \
        ex18_dome2.py \
        ex19_sphereINcube.py \
        ex21_lamp.py \
+       ex24_cylinder.py \
        SMESH_test.py\
        SMESH_test0.py\
        SMESH_test1.py \
@@ -165,6 +89,7 @@ dist_salomescript_DATA= \
        SMESH_GroupFromGeom.py \
        SMESH_Nut.py \
        SMESH_GroupLyingOnGeom.py \
+       SMESH_AdvancedEditor.py \
        PAL_MESH_041_mesh.py \
        PAL_MESH_043_2D.py \
        PAL_MESH_043_3D.py \
@@ -172,8 +97,3 @@ dist_salomescript_DATA= \
 
 EXPORT_SHAREDPYSCRIPTS = \
        SMESH_shared_modules.py
-
-install-exec-hook: $(libdir)/_libSMESH_Swig.so
-
-$(libdir)/_libSMESH_Swig.so:
-       ( cd $(libdir); ln -sf libSMESH_Swigcmodule.so _libSMESH_Swig.so; )
diff --git a/src/SMESH_SWIG/ex24_cylinder.py b/src/SMESH_SWIG/ex24_cylinder.py
new file mode 100644 (file)
index 0000000..25a1e96
--- /dev/null
@@ -0,0 +1,104 @@
+# CEA/LGLS 2007, Francis KLOSS (OCC)
+# ==================================
+
+import math
+
+import geompy
+import smesh
+
+geo = geompy
+
+# Parameters
+# ----------
+
+radius =  50
+height = 200
+
+# Build a cylinder
+# ----------------
+
+base = geo.MakeVertex(0, 0, 0)
+direction = geo.MakeVectorDXDYDZ(0, 0, 1)
+
+cylinder = geo.MakeCylinder(base, direction, radius, height)
+
+geo.addToStudy(cylinder, "cylinder")
+
+# Build blocks
+# ------------
+
+size = radius/2.0
+
+box_rot = geo.MakeBox(-size, -size, 0,  +size, +size, height)
+box_axis = geo.MakeLine(base, direction)
+box = geo.MakeRotation(box_rot, box_axis, math.pi/4)
+
+hole = geo.MakeCut(cylinder, box)
+
+plane_trim = 2000
+
+plane_a = geo.MakePlane(base, geo.MakeVectorDXDYDZ(1, 0, 0), plane_trim)
+plane_b = geo.MakePlane(base, geo.MakeVectorDXDYDZ(0, 1, 0), plane_trim)
+
+blocks_part = geo.MakePartition([hole], [plane_a, plane_b], [], [], geo.ShapeType["SOLID"])
+blocks_list = [box] + geo.SubShapeAll(blocks_part, geo.ShapeType["SOLID"])
+blocks_all = geo.MakeCompound(blocks_list)
+blocks = geo.MakeGlueFaces(blocks_all, 0.0001)
+
+geo.addToStudy(blocks, "cylinder:blocks")
+
+# Build geometric groups
+# ----------------------
+
+def group(name, shape, type, base=None, direction=None):
+    t = geo.ShapeType[type]
+    g = geo.CreateGroup(shape, t)
+
+    geo.addToStudy(g, name)
+    g.SetName(name)
+
+    if base!=None:
+        l = geo.GetShapesOnPlaneWithLocationIDs(shape, t, direction, base, geo.GEOM.ST_ON)
+        geo.UnionIDs(g, l)
+
+    return g
+
+group_a = group("baseA", blocks, "FACE", base, direction)
+
+base_b  = geo.MakeVertex(0, 0, height)
+group_b = group("baseB", blocks, "FACE", base_b, direction)
+
+group_1 = group("limit", blocks, "SOLID")
+group_1_all = geo.SubShapeAllIDs(blocks, geo.ShapeType["SOLID"])
+geo.UnionIDs(group_1, group_1_all)
+group_1_box = geo.GetBlockNearPoint(blocks, base)
+geo.DifferenceList(group_1, [group_1_box])
+
+# Mesh the blocks with hexahedral
+# -------------------------------
+
+def discretize(x, y, z,  n, s=blocks):
+    p = geo.MakeVertex(x, y, z)
+    e = geo.GetEdgeNearPoint(s, p)
+    a = hexa.Segment(e)
+    a.NumberOfSegments(n)
+    a.Propagation()
+
+hexa = smesh.Mesh(blocks)
+
+hexa_1d = hexa.Segment()
+hexa_1d.NumberOfSegments(1)
+
+discretize(+radius        , +radius,        0,   5)
+discretize(-radius        , +radius,        0,   8)
+discretize((radius+size)/2,       0,        0,  10)
+discretize(        +radius,       0, height/2,  20)
+
+hexa.Quadrangle()
+hexa.Hexahedron()
+
+hexa.Compute()
+
+hexa.Group(group_a)
+hexa.Group(group_b)
+hexa.Group(group_1)
diff --git a/src/SMESH_SWIG/libSMESH_Swig.i b/src/SMESH_SWIG/libSMESH_Swig.i
deleted file mode 100644 (file)
index 247c0fc..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-//  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   : libGeometry_Swig.i
-//  Author : Nicolas REJNERI, Paul RASCLE
-//  Module : SMESH
-//  $Header$
-
-%module libSMESH_Swig
-
-%include "SMESHGUI_Swig.i"
-
index 5b0607531d4b9ef45cf8a8f65d75fdc03e59cd5e..c8cadff0f262b05980b072990d93d075340a2665 100644 (file)
 #  Author : Francis KLOSS, OCC
 #  Module : SMESH
 
-"""
- \namespace smesh
+"""@package smesh
  \brief Module smesh
 """
 
 import salome
-import geompy
-
-import SMESH
-from   SMESH import *
-
-import StdMeshers
-
-import SALOME
-
-# import NETGENPlugin module if possible
-noNETGENPlugin = 0
-try:
-    import NETGENPlugin
-except ImportError:
-    noNETGENPlugin = 1
-    pass
-    
-# Types of algo
-REGULAR    = 1
-PYTHON     = 2
-COMPOSITE  = 3
-
-MEFISTO = 3
-NETGEN  = 4
-GHS3D   = 5
-FULL_NETGEN = 6
-Hexa    = 7
-Hexotic = 8
-BLSURF  = 9
-
-# MirrorType enumeration
-POINT = SMESH_MeshEditor.POINT
-AXIS =  SMESH_MeshEditor.AXIS 
-PLANE = SMESH_MeshEditor.PLANE
-
-# Smooth_Method enumeration
-LAPLACIAN_SMOOTH = SMESH_MeshEditor.LAPLACIAN_SMOOTH
-CENTROIDAL_SMOOTH = SMESH_MeshEditor.CENTROIDAL_SMOOTH
-
-# Fineness enumeration(for NETGEN)
-VeryCoarse = 0
-Coarse = 1
-Moderate = 2
-Fine = 3
-VeryFine = 4
-Custom = 5
-
-
-NO_NAME = "NoName"
+from salome import *
 
+import geompy
+import smeshDC
+from smeshDC import *
 
 smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
-smesh.SetCurrentStudy(salome.myStudy)
-
-# Global functions
-
-## Gets object name
-def GetName(obj):
-    ior  = salome.orb.object_to_string(obj)
-    sobj = salome.myStudy.FindObjectIOR(ior)
-    if sobj is None:
-        return NO_NAME
-    else:
-        attr = sobj.FindAttribute("AttributeName")[1]
-        return attr.Value()
-
-## Sets name to object
-def SetName(obj, name):
-    ior  = salome.orb.object_to_string(obj)
-    sobj = salome.myStudy.FindObjectIOR(ior)
-    if not sobj is None:
-        attr = sobj.FindAttribute("AttributeName")[1]
-        attr.SetValue(name)
-        
-## Returns long value from enumeration
-#  Uses for SMESH.FunctorType enumeration
-def EnumToLong(theItem):
-    return theItem._v
-
-## Get PointStruct from vertex
-#  @param theVertex is GEOM object(vertex)
-#  @return SMESH.PointStruct
-def GetPointStruct(theVertex):
-    [x, y, z] = geompy.PointCoordinates(theVertex)
-    return PointStruct(x,y,z)
-
-## Get DirStruct from vector
-#  @param theVector is GEOM object(vector)
-#  @return SMESH.DirStruct
-def GetDirStruct(theVector):
-    vertices = geompy.SubShapeAll( theVector, geompy.ShapeType["VERTEX"] )
-    if(len(vertices) != 2):
-        print "Error: vector object is incorrect."
-        return None
-    p1 = geompy.PointCoordinates(vertices[0])
-    p2 = geompy.PointCoordinates(vertices[1])
-    pnt = PointStruct(p2[0]-p1[0], p2[1]-p1[1], p2[2]-p1[2])
-    dir = DirStruct(pnt)
-    return dir
-
-## Get AxisStruct from object
-#  @param theObj is GEOM object(line or plane)
-#  @return SMESH.AxisStruct
-def GetAxisStruct(theObj):
-    edges = geompy.SubShapeAll( theObj, geompy.ShapeType["EDGE"] )
-    if len(edges) > 1:
-        vertex1, vertex2 = geompy.SubShapeAll( edges[0], geompy.ShapeType["VERTEX"] )
-        vertex3, vertex4 = geompy.SubShapeAll( edges[1], geompy.ShapeType["VERTEX"] )
-        vertex1 = geompy.PointCoordinates(vertex1)
-        vertex2 = geompy.PointCoordinates(vertex2)
-        vertex3 = geompy.PointCoordinates(vertex3)
-        vertex4 = geompy.PointCoordinates(vertex4)
-        v1 = [vertex2[0]-vertex1[0], vertex2[1]-vertex1[1], vertex2[2]-vertex1[2]]
-        v2 = [vertex4[0]-vertex3[0], vertex4[1]-vertex3[1], vertex4[2]-vertex3[2]]
-        normal = [ v1[1]*v2[2]-v2[1]*v1[2], v1[2]*v2[0]-v2[2]*v1[0], v1[0]*v2[1]-v2[0]*v1[1] ]
-        axis = AxisStruct(vertex1[0], vertex1[1], vertex1[2], normal[0], normal[1], normal[2])
-        return axis
-    elif len(edges) == 1:
-        vertex1, vertex2 = geompy.SubShapeAll( edges[0], geompy.ShapeType["VERTEX"] )
-        p1 = geompy.PointCoordinates( vertex1 )
-        p2 = geompy.PointCoordinates( vertex2 )
-        axis = AxisStruct(p1[0], p1[1], p1[2], p2[0]-p1[0], p2[1]-p1[1], p2[2]-p1[2])
-        return axis
-    return None
-
-# From SMESH_Gen interface:
-# ------------------------
-
-## Set the current mode
-def SetEmbeddedMode( theMode ):
-    smesh.SetEmbeddedMode(theMode)
-
-## Get the current mode
-def IsEmbeddedMode():
-    return smesh.IsEmbeddedMode()
-
-## Set the current study
-def SetCurrentStudy( theStudy ):
-    smesh.SetCurrentStudy(theStudy)
-
-## Get the current study
-def GetCurrentStudy():
-    return smesh.GetCurrentStudy()
-
-## Create Mesh object importing data from given UNV file
-#  @return an instance of Mesh class
-def CreateMeshesFromUNV( theFileName ):
-    aSmeshMesh = smesh.CreateMeshesFromUNV(theFileName)
-    aMesh = Mesh(aSmeshMesh)
-    return aMesh
-
-## Create Mesh object(s) importing data from given MED file
-#  @return a list of Mesh class instances
-def CreateMeshesFromMED( theFileName ):
-    aSmeshMeshes, aStatus = smesh.CreateMeshesFromMED(theFileName)
-    aMeshes = []
-    for iMesh in range(len(aSmeshMeshes)) :
-        aMesh = Mesh(aSmeshMeshes[iMesh])
-        aMeshes.append(aMesh)
-    return aMeshes, aStatus
-
-## Create Mesh object importing data from given STL file
-#  @return an instance of Mesh class
-def CreateMeshesFromSTL( theFileName ):
-    aSmeshMesh = smesh.CreateMeshesFromSTL(theFileName)
-    aMesh = Mesh(aSmeshMesh)
-    return aMesh
-
-## From SMESH_Gen interface
-def GetSubShapesId( theMainObject, theListOfSubObjects ):
-    return smesh.GetSubShapesId(theMainObject, theListOfSubObjects)
-
-## From SMESH_Gen interface. Creates pattern
-def GetPattern():
-    return smesh.GetPattern()
-
-
-
-# Filtering. Auxiliary functions:
-# ------------------------------
-
-## Creates an empty criterion
-#  @return SMESH.Filter.Criterion
-def GetEmptyCriterion():
-    Type = EnumToLong(FT_Undefined)
-    Compare = EnumToLong(FT_Undefined)
-    Threshold = 0
-    ThresholdStr = ""
-    ThresholdID = ""
-    UnaryOp = EnumToLong(FT_Undefined)
-    BinaryOp = EnumToLong(FT_Undefined)
-    Tolerance = 1e-07
-    TypeOfElement = ALL
-    Precision = -1 ##@1e-07
-    return Filter.Criterion(Type, Compare, Threshold, ThresholdStr, ThresholdID,
-                            UnaryOp, BinaryOp, Tolerance, TypeOfElement, Precision)
-      
-## Creates a criterion by given parameters
-#  @param elementType is the type of elements(NODE, EDGE, FACE, VOLUME)
-#  @param CritType is type of criterion( FT_Taper, FT_Area, FT_RangeOfIds, FT_LyingOnGeom etc. )
-#  @param Compare belong to {FT_LessThan, FT_MoreThan, FT_EqualTo}
-#  @param Treshold is threshold value (range of ids as string, shape, numeric)
-#  @param UnaryOp is FT_LogicalNOT or FT_Undefined
-#  @param BinaryOp is binary logical operation FT_LogicalAND, FT_LogicalOR or
-#                  FT_Undefined(must be for the last criterion in criteria)
-#  @return SMESH.Filter.Criterion
-def GetCriterion(elementType,
-                 CritType,
-                 Compare = FT_EqualTo,
-                 Treshold="",
-                 UnaryOp=FT_Undefined,
-                 BinaryOp=FT_Undefined):
-    aCriterion = GetEmptyCriterion()
-    aCriterion.TypeOfElement = elementType
-    aCriterion.Type = EnumToLong(CritType)
-        
-    aTreshold = Treshold
-        
-    if Compare in [FT_LessThan, FT_MoreThan, FT_EqualTo]:
-        aCriterion.Compare = EnumToLong(Compare)
-    elif Compare == "=" or Compare == "==":
-        aCriterion.Compare = EnumToLong(FT_EqualTo)
-    elif Compare == "<":
-        aCriterion.Compare = EnumToLong(FT_LessThan)
-    elif Compare == ">":
-        aCriterion.Compare = EnumToLong(FT_MoreThan)
-    else:
-        aCriterion.Compare = EnumToLong(FT_EqualTo)
-        aTreshold = Compare
-
-    if CritType in [FT_BelongToGeom,     FT_BelongToPlane, FT_BelongToGenSurface, 
-                    FT_BelongToCylinder, FT_LyingOnGeom]:
-        # Check treshold
-        if isinstance(aTreshold, geompy.GEOM._objref_GEOM_Object):
-            aCriterion.ThresholdStr = GetName(aTreshold)
-            aCriterion.ThresholdID = salome.ObjectToID(aTreshold)
-        else:
-            print "Error: Treshold should be a shape."
-            return None
-    elif CritType == FT_RangeOfIds:
-        # Check treshold
-        if isinstance(aTreshold, str):
-            aCriterion.ThresholdStr = aTreshold
-        else:
-            print "Error: Treshold should be a string."
-            return None
-    elif CritType in [FT_FreeBorders, FT_FreeEdges, FT_BadOrientedVolume]:
-        # Here we don't need treshold
-        if aTreshold ==  FT_LogicalNOT:
-            aCriterion.UnaryOp = EnumToLong(FT_LogicalNOT)
-        elif aTreshold in [FT_LogicalAND, FT_LogicalOR]:
-            aCriterion.BinaryOp = aTreshold
-    else:
-        # Check treshold
-        try:
-            aTreshold = float(aTreshold)
-            aCriterion.Threshold = aTreshold
-        except:
-            print "Error: Treshold should be a number."
-            return None
-
-    if Treshold ==  FT_LogicalNOT or UnaryOp ==  FT_LogicalNOT:
-        aCriterion.UnaryOp = EnumToLong(FT_LogicalNOT)
-
-    if Treshold in [FT_LogicalAND, FT_LogicalOR]:
-        aCriterion.BinaryOp = EnumToLong(Treshold)
-
-    if UnaryOp in [FT_LogicalAND, FT_LogicalOR]:
-        aCriterion.BinaryOp = EnumToLong(UnaryOp)
-
-    if BinaryOp in [FT_LogicalAND, FT_LogicalOR]:
-        aCriterion.BinaryOp = EnumToLong(BinaryOp)
-
-    return aCriterion
-
-## Creates filter by given parameters of criterion
-#  @param elementType is the type of elements in the group
-#  @param CritType is type of criterion( FT_Taper, FT_Area, FT_RangeOfIds, FT_LyingOnGeom etc. )
-#  @param Compare belong to {FT_LessThan, FT_MoreThan, FT_EqualTo}
-#  @param Treshold is threshold value (range of id ids as string, shape, numeric)
-#  @param UnaryOp is FT_LogicalNOT or FT_Undefined
-#  @return SMESH_Filter
-def GetFilter(elementType,
-              CritType=FT_Undefined,
-              Compare=FT_EqualTo,
-              Treshold="",
-              UnaryOp=FT_Undefined):
-    aCriterion = GetCriterion(elementType, CritType, Compare, Treshold, UnaryOp, FT_Undefined)
-    aFilterMgr = smesh.CreateFilterManager()
-    aFilter = aFilterMgr.CreateFilter()
-    aCriteria = []
-    aCriteria.append(aCriterion)
-    aFilter.SetCriteria(aCriteria)
-    return aFilter
-
-## Creates numerical functor by its type
-#  @param theCrierion is FT_...; functor type
-#  @return SMESH_NumericalFunctor
-def GetFunctor(theCriterion):
-    aFilterMgr = smesh.CreateFilterManager()
-    if theCriterion == FT_AspectRatio:
-        return aFilterMgr.CreateAspectRatio()
-    elif theCriterion == FT_AspectRatio3D:
-        return aFilterMgr.CreateAspectRatio3D()
-    elif theCriterion == FT_Warping:
-        return aFilterMgr.CreateWarping()
-    elif theCriterion == FT_MinimumAngle:
-        return aFilterMgr.CreateMinimumAngle()
-    elif theCriterion == FT_Taper:
-        return aFilterMgr.CreateTaper()
-    elif theCriterion == FT_Skew:
-        return aFilterMgr.CreateSkew()
-    elif theCriterion == FT_Area:
-        return aFilterMgr.CreateArea()
-    elif theCriterion == FT_Volume3D:
-        return aFilterMgr.CreateVolume3D()
-    elif theCriterion == FT_MultiConnection:
-        return aFilterMgr.CreateMultiConnection()
-    elif theCriterion == FT_MultiConnection2D:
-        return aFilterMgr.CreateMultiConnection2D()
-    elif theCriterion == FT_Length:
-        return aFilterMgr.CreateLength()
-    elif theCriterion == FT_Length2D:
-        return aFilterMgr.CreateLength2D()
-    else:
-        print "Error: given parameter is not numerucal functor type."
-
-
-## Print error message if a hypothesis was not assigned.
-def TreatHypoStatus(status, hypName, geomName, isAlgo):
-    if isAlgo:
-        hypType = "algorithm"
-    else:
-        hypType = "hypothesis"
-        pass
-    if status == HYP_UNKNOWN_FATAL :
-        reason = "for unknown reason"
-    elif status == HYP_INCOMPATIBLE :
-        reason = "this hypothesis mismatches algorithm"
-    elif status == HYP_NOTCONFORM :
-        reason = "not conform mesh would be built"
-    elif status == HYP_ALREADY_EXIST :
-        reason = hypType + " of the same dimension already assigned to this shape"
-    elif status == HYP_BAD_DIM :
-        reason = hypType + " mismatches shape"
-    elif status == HYP_CONCURENT :
-        reason = "there are concurrent hypotheses on sub-shapes"
-    elif status == HYP_BAD_SUBSHAPE :
-        reason = "shape is neither the main one, nor its subshape, nor a valid group"
-    elif status == HYP_BAD_GEOMETRY:
-        reason = "geometry mismatches algorithm's expectation"
-    elif status == HYP_HIDDEN_ALGO:
-        reason = "it is hidden by an algorithm of upper dimension generating all-dimensions elements"
-    elif status == HYP_HIDING_ALGO:
-        reason = "it hides algorithm(s) of lower dimension by generating all-dimensions elements"
-    else:
-        return
-    hypName = '"' + hypName + '"'
-    geomName= '"' + geomName+ '"'
-    if status < HYP_UNKNOWN_FATAL:
-        print hypName, "was assigned to",    geomName,"but", reason
-    else:
-        print hypName, "was not assigned to",geomName,":", reason
-        pass
-
-    
-    
-## Mother class to define algorithm, recommended to don't use directly.
-#
-#  More details.
-class Mesh_Algorithm:
-    #  @class Mesh_Algorithm
-    #  @brief Class Mesh_Algorithm
-
-    mesh = 0
-    geom = 0
-    subm = 0
-    algo = 0
-
-    ## If the algorithm is global, return 0; \n
-    #  else return the submesh associated to this algorithm.
-    def GetSubMesh(self):
-        return self.subm
-
-    ## Return the wrapped mesher.
-    def GetAlgorithm(self):
-        return self.algo
-
-    ## Get list of hypothesis that can be used with this algorithm
-    def GetCompatibleHypothesis(self):
-        list = []
-        if self.algo:
-            list = self.algo.GetCompatibleHypothesis()
-        return list
-
-    ## Get name of algo
-    def GetName(self):
-        GetName(self.algo)
-
-    ## Set name to algo
-    def SetName(self, name):
-        SetName(self.algo, name)
-
-    ## Get id of algo
-    def GetId(self):
-        return self.algo.GetId()
-    
-    ## Private method.
-    def Create(self, mesh, geom, hypo, so="libStdMeshersEngine.so"):
-        if geom is None:
-            raise RuntimeError, "Attemp to create " + hypo + " algoritm on None shape"
-        self.mesh = mesh
-        piece = mesh.geom
-        if geom==0:
-            self.geom = piece
-            name = GetName(piece)
-        else:
-            self.geom = geom
-            name = GetName(geom)
-            if name==NO_NAME:
-                name = geompy.SubShapeName(geom, piece)
-                geompy.addToStudyInFather(piece, geom, name)
-            self.subm = mesh.mesh.GetSubMesh(geom, hypo)
-
-        self.algo = smesh.CreateHypothesis(hypo, so)
-        SetName(self.algo, name + "/" + hypo)
-        status = mesh.mesh.AddHypothesis(self.geom, self.algo)
-        TreatHypoStatus( status, hypo, name, 1 )
-        
-    ## Private method
-    def Hypothesis(self, hyp, args=[], so="libStdMeshersEngine.so"):
-        hypo = smesh.CreateHypothesis(hyp, so)
-        a = ""
-        s = "="
-        i = 0
-        n = len(args)
-        while i<n:
-            a = a + s + str(args[i])
-            s = ","
-            i = i + 1
-        name = GetName(self.geom)
-        SetName(hypo, name + "/" + hyp + a)
-        status = self.mesh.mesh.AddHypothesis(self.geom, hypo)
-        TreatHypoStatus( status, hyp, name, 0 )
-        return hypo
-
-
-# Public class: Mesh_Segment
-# --------------------------
-
-## Class to define a segment 1D algorithm for discretization
-#
-#  More details.
-class Mesh_Segment(Mesh_Algorithm):
-
-    ## Private constructor.
-    def __init__(self, mesh, geom=0):
-        self.Create(mesh, geom, "Regular_1D")
-        
-    ## Define "LocalLength" hypothesis to cut an edge in several segments with the same length
-    #  @param l for the length of segments that cut an edge
-    def LocalLength(self, l):
-        hyp = self.Hypothesis("LocalLength", [l])
-        hyp.SetLength(l)
-        return hyp
-        
-    ## Define "NumberOfSegments" hypothesis to cut an edge in several fixed number of segments
-    #  @param n for the number of segments that cut an edge
-    #  @param s for the scale factor (optional)
-    def NumberOfSegments(self, n, s=[]):
-        if s == []:
-            hyp = self.Hypothesis("NumberOfSegments", [n])
-        else:
-            hyp = self.Hypothesis("NumberOfSegments", [n,s])
-            hyp.SetDistrType( 1 )
-            hyp.SetScaleFactor(s)
-        hyp.SetNumberOfSegments(n)
-        return hyp
-        
-    ## Define "Arithmetic1D" hypothesis to cut an edge in several segments with arithmetic length increasing
-    #  @param start for the length of the first segment
-    #  @param end   for the length of the last  segment
-    def Arithmetic1D(self, start, end):
-        hyp = self.Hypothesis("Arithmetic1D", [start, end])
-        hyp.SetLength(start, 1)
-        hyp.SetLength(end  , 0)
-        return hyp
-        
-    ## Define "StartEndLength" hypothesis to cut an edge in several segments with geometric length increasing
-    #  @param start for the length of the first segment
-    #  @param end   for the length of the last  segment
-    def StartEndLength(self, start, end):
-        hyp = self.Hypothesis("StartEndLength", [start, end])
-        hyp.SetLength(start, 1)
-        hyp.SetLength(end  , 0)
-        return hyp
-        
-    ## Define "Deflection1D" hypothesis
-    #  @param d for the deflection
-    def Deflection1D(self, d):
-        hyp = self.Hypothesis("Deflection1D", [d])
-        hyp.SetDeflection(d)
-        return hyp
-        
-    ## Define "Propagation" hypothesis that propagate all other hypothesis on all others edges that are in
-    #  the opposite side in the case of quadrangular faces
-    def Propagation(self):
-        return self.Hypothesis("Propagation")
-
-    ## Define "AutomaticLength" hypothesis
-    #  @param fineness for the fineness [0-1]
-    def AutomaticLength(self, fineness=0):
-        hyp = self.Hypothesis("AutomaticLength")
-        hyp.SetFineness( fineness )
-        return hyp
-
-    ## Define "SegmentLengthAroundVertex" hypothesis
-    #  @param length for the segment length
-    #  @param vertex for the length localization: vertex index [0,1] | verext object
-    def LengthNearVertex(self, length, vertex=0):
-        import types
-        store_geom = self.geom
-        if vertex:
-            if type(vertex) is types.IntType:
-                vertex = geompy.SubShapeAllSorted(self.geom,geompy.ShapeType["VERTEX"])[vertex]
-                pass
-            self.geom = vertex
-            pass
-        hyp = self.Hypothesis("SegmentAroundVertex_0D")
-        hyp = self.Hypothesis("SegmentLengthAroundVertex")
-        self.geom = store_geom
-        hyp.SetLength( length )
-        return hyp
-
-    ## Define "QuadraticMesh" hypothesis, 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.
-    def QuadraticMesh(self):
-        hyp = self.Hypothesis("QuadraticMesh")
-        return hyp
-
-# Public class: Mesh_CompositeSegment
-# --------------------------
-
-## Class to define a segment 1D algorithm for discretization
-#
-#  More details.
-class Mesh_CompositeSegment(Mesh_Segment):
-
-    ## Private constructor.
-    def __init__(self, mesh, geom=0):
-        self.Create(mesh, geom, "CompositeSegment_1D")
-        
-
-# Public class: Mesh_Segment_Python
-# ---------------------------------
-
-## Class to define a segment 1D algorithm for discretization with python function
-#
-#  More details.
-class Mesh_Segment_Python(Mesh_Segment):
-
-    ## Private constructor.
-    def __init__(self, mesh, geom=0):
-        import Python1dPlugin
-        self.Create(mesh, geom, "Python_1D", "libPython1dEngine.so")
-    
-    ## Define "PythonSplit1D" hypothesis based on the Erwan Adam patch, awaiting equivalent SALOME functionality
-    #  @param n for the number of segments that cut an edge
-    #  @param func for the python function that calculate the length of all segments
-    def PythonSplit1D(self, n, func):
-        hyp = self.Hypothesis("PythonSplit1D", [n], "libPython1dEngine.so")
-        hyp.SetNumberOfSegments(n)
-        hyp.SetPythonLog10RatioFunction(func)
-        return hyp
-        
-# Public class: Mesh_Triangle
-# ---------------------------
-
-## Class to define a triangle 2D algorithm
-#
-#  More details.
-class Mesh_Triangle(Mesh_Algorithm):
-
-    algoType = 0
-    params = 0
-    _angleMeshS = 8
-    _gradation  = 1.1
-
-    ## Private constructor.
-    def __init__(self, mesh, algoType, geom=0):
-        self.algoType = algoType
-        if algoType == MEFISTO:
-            self.Create(mesh, geom, "MEFISTO_2D")
-        elif algoType == BLSURF:
-            import BLSURFPlugin
-            self.Create(mesh, geom, "BLSURF", "libBLSURFEngine.so")
-            self.SetPhysicalMesh()
-        elif algoType == NETGEN:
-            if noNETGENPlugin:
-                print "Warning: NETGENPlugin module has not been imported."
-            self.Create(mesh, geom, "NETGEN_2D", "libNETGENEngine.so")
-
-    ## Define "MaxElementArea" hypothesis to give the maximun area of each triangles
-    #  @param area for the maximum area of each triangles
-    def MaxElementArea(self, area):
-        if self.algoType == MEFISTO:
-            hyp = self.Hypothesis("MaxElementArea", [area])
-            hyp.SetMaxElementArea(area)
-            return hyp
-        elif self.algoType == NETGEN:
-            print "Netgen 1D-2D algo doesn't support this hypothesis"
-            return None
-            
-    ## Define "LengthFromEdges" hypothesis to build triangles based on the length of the edges taken from the wire
-    def LengthFromEdges(self):
-        if self.algoType == MEFISTO:
-            hyp = self.Hypothesis("LengthFromEdges")
-            return hyp
-        elif self.algoType == NETGEN:
-            print "Netgen 1D-2D algo doesn't support this hypothesis"
-            return None
-        
-    ## Define "Netgen 2D Parameters" hypothesis
-    def Parameters(self):
-        if self.algoType == NETGEN:
-            self.params = self.Hypothesis("NETGEN_Parameters_2D", [], "libNETGENEngine.so")
-            return self.params
-        elif self.algoType == MEFISTO:
-            print "Mefisto algo doesn't support this hypothesis"
-            return None
-        elif self.algoType == BLSURF:
-            self.params = self.Hypothesis("BLSURF_Parameters", [], "libBLSURFEngine.so")
-            return self.params
-
-    ## Set MaxSize
-    def SetMaxSize(self, theSize):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetMaxSize(theSize)
-        
-    ## Set SecondOrder flag
-    def SetSecondOrder(seld, theVal):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetSecondOrder(theVal)
-
-    ## Set Optimize flag
-    def SetOptimize(self, theVal):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetOptimize(theVal)
-
-    ## Set Fineness
-    #  @param theFineness is:
-    #  VeryCoarse, Coarse, Moderate, Fine, VeryFine or Custom
-    def SetFineness(self, theFineness):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetFineness(theFineness)
-        
-    ## Set GrowthRate  
-    def SetGrowthRate(self, theRate):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetGrowthRate(theRate)
-
-    ## Set NbSegPerEdge
-    def SetNbSegPerEdge(self, theVal):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetNbSegPerEdge(theVal)
-
-    ## Set NbSegPerRadius
-    def SetNbSegPerRadius(self, theVal):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetNbSegPerRadius(theVal)
-
-    ## Set PhysicalMesh
-    #  @param thePhysicalMesh is:
-    #  DefaultSize or Custom
-    def SetPhysicalMesh(self, thePhysicalMesh=1):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetPhysicalMesh(thePhysicalMesh)
-
-    ## Set PhySize flag
-    def SetPhySize(self, theVal):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetPhySize(theVal)
-
-    ## Set GeometricMesh
-    #  @param theGeometricMesh is:
-    #  DefaultGeom or Custom
-    def SetGeometricMesh(self, theGeometricMesh=0):
-        if self.params == 0:
-            self.Parameters()
-        if self.params.GetPhysicalMesh() == 0: theGeometricMesh = 1
-        self.params.SetGeometricMesh(theGeometricMesh)
-
-    ## Set AngleMeshS flag
-    def SetAngleMeshS(self, theVal=_angleMeshS):
-        if self.params == 0:
-            self.Parameters()
-        if self.params.GetGeometricMesh() == 0: theVal = self._angleMeshS
-        self.params.SetAngleMeshS(theVal)
-
-    ## Set Gradation flag
-    def SetGradation(self, theVal=_gradation):
-        if self.params == 0:
-            self.Parameters()
-        if self.params.GetGeometricMesh() == 0: theVal = self._gradation
-        self.params.SetGradation(theVal)
-
-    ## Set QuadAllowed flag
-    def SetQuadAllowed(self, toAllow=False):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetQuadAllowed(toAllow)
-
-    ## Set Decimesh flag
-    def SetDecimesh(self, toAllow=False):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetDecimesh(toAllow)
-
-# Public class: Mesh_Quadrangle
-# -----------------------------
-
-## Class to define a quadrangle 2D algorithm
-#
-#  More details.
-class Mesh_Quadrangle(Mesh_Algorithm):
-
-    ## Private constructor.
-    def __init__(self, mesh, geom=0):
-        self.Create(mesh, geom, "Quadrangle_2D")
-    
-    ## 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
-    def QuadranglePreference(self):
-        hyp = self.Hypothesis("QuadranglePreference")
-        return hyp
-    
-# Public class: Mesh_Tetrahedron
-# ------------------------------
-
-## Class to define a tetrahedron 3D algorithm
-#
-#  More details.
-class Mesh_Tetrahedron(Mesh_Algorithm):
-
-    params = 0
-    algoType = 0
-
-    ## Private constructor.
-    def __init__(self, mesh, algoType, geom=0):
-        if algoType == NETGEN:
-            self.Create(mesh, geom, "NETGEN_3D", "libNETGENEngine.so")
-        elif algoType == GHS3D:
-            import GHS3DPlugin
-            self.Create(mesh, geom, "GHS3D_3D" , "libGHS3DEngine.so")
-        elif algoType == FULL_NETGEN:
-            if noNETGENPlugin:
-                print "Warning: NETGENPlugin module has not been imported."
-            self.Create(mesh, geom, "NETGEN_2D3D", "libNETGENEngine.so")
-        self.algoType = algoType
-
-    ## Define "MaxElementVolume" hypothesis to give the maximun volume of each tetrahedral
-    #  @param vol for the maximum volume of each tetrahedral
-    def MaxElementVolume(self, vol):
-        hyp = self.Hypothesis("MaxElementVolume", [vol])
-        hyp.SetMaxElementVolume(vol)
-        return hyp
-
-    ## Define "Netgen 3D Parameters" hypothesis
-    def Parameters(self):
-        if (self.algoType == FULL_NETGEN):
-            self.params = self.Hypothesis("NETGEN_Parameters", [], "libNETGENEngine.so")
-            return self.params
-        else:
-            print "Algo doesn't support this hypothesis"
-            return None 
-            
-    ## Set MaxSize
-    def SetMaxSize(self, theSize):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetMaxSize(theSize)
-        
-    ## Set SecondOrder flag
-    def SetSecondOrder(self, theVal):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetSecondOrder(theVal)
-
-    ## Set Optimize flag
-    def SetOptimize(self, theVal):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetOptimize(theVal)
-
-    ## Set Fineness
-    #  @param theFineness is:
-    #  VeryCoarse, Coarse, Moderate, Fine, VeryFine or Custom
-    def SetFineness(self, theFineness):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetFineness(theFineness)
-        
-    ## Set GrowthRate  
-    def SetGrowthRate(self, theRate):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetGrowthRate(theRate)
-
-    ## Set NbSegPerEdge
-    def SetNbSegPerEdge(self, theVal):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetNbSegPerEdge(theVal)
-
-    ## Set NbSegPerRadius
-    def SetNbSegPerRadius(self, theVal):
-        if self.params == 0:
-            self.Parameters()
-        self.params.SetNbSegPerRadius(theVal)
-
-# Public class: Mesh_Hexahedron
-# ------------------------------
-
-## Class to define a hexahedron 3D algorithm
-#
-#  More details.
-class Mesh_Hexahedron(Mesh_Algorithm):
-
-    ## Private constructor.
-    ## def __init__(self, mesh, geom=0):
-    ##    self.Create(mesh, geom, "Hexa_3D")
-    def __init__(self, mesh, algo, geom):
-        if algo == Hexa:
-            self.Create(mesh, geom, "Hexa_3D")
-        elif algo == Hexotic:
-            import HexoticPlugin
-            self.Create(mesh, geom, "Hexotic_3D" , "libHexoticEngine.so")
-
-    ## Define "MinMaxQuad" hypothesis to give the three hexotic parameters
-    def MinMaxQuad(self, min=3, max=8, quad=True):
-        hyp = self.Hypothesis("Hexotic_Parameters", [], "libHexoticEngine.so")
-        hyp.SetHexesMinLevel(min)
-        hyp.SetHexesMaxLevel(max)
-        hyp.SetHexoticQuadrangles(quad)
-        return hyp
-
-# Deprecated, only for compatibility!
-# Public class: Mesh_Netgen
-# ------------------------------
-
-## Class to define a NETGEN-based 2D or 3D algorithm
-#  that need no discrete boundary (i.e. independent)
-#
-#  This class is deprecated, only for compatibility!
-#
-#  More details.
-class Mesh_Netgen(Mesh_Algorithm):
-
-    is3D = 0
-
-    ## Private constructor.
-    def __init__(self, mesh, is3D, geom=0):
-        if noNETGENPlugin:
-            print "Warning: NETGENPlugin module has not been imported."
-            
-        self.is3D = is3D
-        if is3D:
-            self.Create(mesh, geom, "NETGEN_2D3D", "libNETGENEngine.so")
-        else:
-            self.Create(mesh, geom, "NETGEN_2D", "libNETGENEngine.so")
-
-    ## Define hypothesis containing parameters of the algorithm
-    def Parameters(self):
-        if self.is3D:
-            hyp = self.Hypothesis("NETGEN_Parameters", [], "libNETGENEngine.so")
-        else:
-            hyp = self.Hypothesis("NETGEN_Parameters_2D", [], "libNETGENEngine.so")
-        return hyp
-
-# Public class: Mesh_Projection1D
-# ------------------------------
-
-## Class to define a projection 1D algorithm
-#
-#  More details.
-class Mesh_Projection1D(Mesh_Algorithm):
-
-    ## Private constructor.
-    def __init__(self, mesh, geom=0):
-        self.Create(mesh, geom, "Projection_1D")
-
-    ## Define "Source Edge" hypothesis, specifying a meshed edge to
-    #  take a mesh pattern from, and optionally association of vertices
-    #  between the source edge and a target one (where a hipothesis is assigned to)
-    #  @param edge to take nodes distribution from
-    #  @param mesh to take nodes distribution from (optional)
-    #  @param srcV is vertex of \a edge to associate with \a tgtV (optional)
-    #  @param tgtV is vertex of \a the edge where the algorithm is assigned,
-    #  to associate with \a srcV (optional)
-    def SourceEdge(self, edge, mesh=None, srcV=None, tgtV=None):
-        hyp = self.Hypothesis("ProjectionSource1D")
-        hyp.SetSourceEdge( edge )
-        if not mesh is None and isinstance(mesh, Mesh):
-            mesh = mesh.GetMesh()
-        hyp.SetSourceMesh( mesh )
-        hyp.SetVertexAssociation( srcV, tgtV )
-        return hyp
-
-
-# Public class: Mesh_Projection2D
-# ------------------------------
-
-## Class to define a projection 2D algorithm
-#
-#  More details.
-class Mesh_Projection2D(Mesh_Algorithm):
-
-    ## Private constructor.
-    def __init__(self, mesh, geom=0):
-        self.Create(mesh, geom, "Projection_2D")
-
-    ## Define "Source Face" hypothesis, specifying a meshed face to
-    #  take a mesh pattern from, and optionally association of vertices
-    #  between the source face and a target one (where a hipothesis is assigned to)
-    #  @param face to take mesh pattern from
-    #  @param mesh to take mesh pattern from (optional)
-    #  @param srcV1 is vertex of \a face to associate with \a tgtV1 (optional)
-    #  @param tgtV1 is vertex of \a the face where the algorithm is assigned,
-    #  to associate with \a srcV1 (optional)
-    #  @param srcV2 is vertex of \a face to associate with \a tgtV1 (optional)
-    #  @param tgtV2 is vertex of \a the face where the algorithm is assigned,
-    #  to associate with \a srcV2 (optional)
-    #
-    #  Note: association vertices must belong to one edge of a face
-    def SourceFace(self, face, mesh=None, srcV1=None, tgtV1=None, srcV2=None, tgtV2=None):
-        hyp = self.Hypothesis("ProjectionSource2D")
-        hyp.SetSourceFace( face )
-        if not mesh is None and isinstance(mesh, Mesh):
-            mesh = mesh.GetMesh()
-        hyp.SetSourceMesh( mesh )
-        hyp.SetVertexAssociation( srcV1, srcV2, tgtV1, tgtV2 )
-        return hyp
-
-# Public class: Mesh_Projection3D
-# ------------------------------
-
-## Class to define a projection 3D algorithm
-#
-#  More details.
-class Mesh_Projection3D(Mesh_Algorithm):
-
-    ## Private constructor.
-    def __init__(self, mesh, geom=0):
-        self.Create(mesh, geom, "Projection_3D")
-
-    ## Define "Source Shape 3D" hypothesis, specifying a meshed solid to
-    #  take a mesh pattern from, and optionally association of vertices
-    #  between the source solid and a target one (where a hipothesis is assigned to)
-    #  @param solid to take mesh pattern from
-    #  @param mesh to take mesh pattern from (optional)
-    #  @param srcV1 is vertex of \a solid to associate with \a tgtV1 (optional)
-    #  @param tgtV1 is vertex of \a the solid where the algorithm is assigned,
-    #  to associate with \a srcV1 (optional)
-    #  @param srcV2 is vertex of \a solid to associate with \a tgtV1 (optional)
-    #  @param tgtV2 is vertex of \a the solid where the algorithm is assigned,
-    #  to associate with \a srcV2 (optional)
-    #
-    #  Note: association vertices must belong to one edge of a solid
-    def SourceShape3D(self, solid, mesh=0, srcV1=0, tgtV1=0, srcV2=0, tgtV2=0):
-        hyp = self.Hypothesis("ProjectionSource3D")
-        hyp.SetSource3DShape( solid )
-        if not mesh is None and isinstance(mesh, Mesh):
-            mesh = mesh.GetMesh()
-        hyp.SetSourceMesh( mesh )
-        hyp.SetVertexAssociation( srcV1, srcV2, tgtV1, tgtV2 )
-        return hyp
-
-
-# Public class: Mesh_Prism
-# ------------------------
-
-## Class to define a 3D extrusion algorithm
-#
-#  More details.
-class Mesh_Prism3D(Mesh_Algorithm):
-
-    ## Private constructor.
-    def __init__(self, mesh, geom=0):
-        self.Create(mesh, geom, "Prism_3D")
-
-# Public class: Mesh_RadialPrism
-# -------------------------------
-
-## Class to define a Radial Prism 3D algorithm
-#
-#  More details.
-class Mesh_RadialPrism3D(Mesh_Algorithm):
-
-    ## Private constructor.
-    def __init__(self, mesh, geom=0):
-        self.Create(mesh, geom, "RadialPrism_3D")
-        self.distribHyp = self.Hypothesis( "LayerDistribution" )
-        self.nbLayers = None
-
-    ## Return 3D hypothesis holding the 1D one
-    def Get3DHypothesis(self):
-        return self.distribHyp
-
-    ## Private method creating 1D hypothes and storing it in the LayerDistribution
-    #  hypothes. Returns the created hypothes
-    def OwnHypothesis(self, hypType, args=[], so="libStdMeshersEngine.so"):
-        if not self.nbLayers is None:
-            self.mesh.GetMesh().RemoveHypothesis( self.geom, self.nbLayers )
-            self.mesh.GetMesh().AddHypothesis( self.geom, self.distribHyp )
-        study = GetCurrentStudy() # prevent publishing of own 1D hypothesis
-        hyp = smesh.CreateHypothesis(hypType, so)
-        SetCurrentStudy( study ) # anable publishing
-        self.distribHyp.SetLayerDistribution( hyp )
-        return hyp
-
-    ## Define "NumberOfLayers" hypothesis, specifying a number of layers of
-    #  prisms to build between the inner and outer shells
-    def NumberOfLayers(self, n ):
-        self.mesh.GetMesh().RemoveHypothesis( self.geom, self.distribHyp )
-        self.nbLayers = self.Hypothesis("NumberOfLayers")
-        self.nbLayers.SetNumberOfLayers( n )
-        return self.nbLayers
-
-    ## Define "LocalLength" hypothesis, specifying segment length
-    #  to build between the inner and outer shells
-    #  @param l for the length of segments
-    def LocalLength(self, l):
-        hyp = self.OwnHypothesis("LocalLength", [l])
-        hyp.SetLength(l)
-        return hyp
-        
-    ## Define "NumberOfSegments" hypothesis, specifying a number of layers of
-    #  prisms to build between the inner and outer shells
-    #  @param n for the number of segments
-    #  @param s for the scale factor (optional)
-    def NumberOfSegments(self, n, s=[]):
-        if s == []:
-            hyp = self.OwnHypothesis("NumberOfSegments", [n])
-        else:
-            hyp = self.OwnHypothesis("NumberOfSegments", [n,s])
-            hyp.SetDistrType( 1 )
-            hyp.SetScaleFactor(s)
-        hyp.SetNumberOfSegments(n)
-        return hyp
-        
-    ## Define "Arithmetic1D" hypothesis, specifying distribution of segments
-    #  to build between the inner and outer shells as arithmetic length increasing
-    #  @param start for the length of the first segment
-    #  @param end   for the length of the last  segment
-    def Arithmetic1D(self, start, end):
-        hyp = self.OwnHypothesis("Arithmetic1D", [start, end])
-        hyp.SetLength(start, 1)
-        hyp.SetLength(end  , 0)
-        return hyp
-        
-    ## Define "StartEndLength" hypothesis, specifying distribution of segments
-    #  to build between the inner and outer shells as geometric length increasing
-    #  @param start for the length of the first segment
-    #  @param end   for the length of the last  segment
-    def StartEndLength(self, start, end):
-        hyp = self.OwnHypothesis("StartEndLength", [start, end])
-        hyp.SetLength(start, 1)
-        hyp.SetLength(end  , 0)
-        return hyp
-        
-    ## Define "AutomaticLength" hypothesis, specifying number of segments
-    #  to build between the inner and outer shells
-    #  @param fineness for the fineness [0-1]
-    def AutomaticLength(self, fineness=0):
-        hyp = self.OwnHypothesis("AutomaticLength")
-        hyp.SetFineness( fineness )
-        return hyp
-
-
-# Public class: Mesh
-# ==================
-
-## Class to define a mesh
-#
-#  The class contains mesh shape, SMESH_Mesh, SMESH_MeshEditor
-#  More details.
-class Mesh:
-
-    geom = 0
-    mesh = 0
-    editor = 0
-
-    ## Constructor
-    #
-    #  Creates mesh on the shape \a geom(or the empty mesh if geom equal to 0),
-    #  sets GUI name of this mesh to \a name.
-    #  @param obj Shape to be meshed or SMESH_Mesh object
-    #  @param name Study name of the mesh
-    def __init__(self, obj=0, name=0):
-        if obj is None:
-            obj = 0
-        if obj != 0:
-            if isinstance(obj, geompy.GEOM._objref_GEOM_Object):
-                self.geom = obj
-                self.mesh = smesh.CreateMesh(self.geom)
-            elif isinstance(obj, SMESH._objref_SMESH_Mesh):
-                self.SetMesh(obj)
-        else:
-            self.mesh = smesh.CreateEmptyMesh()
-        if name != 0:
-            SetName(self.mesh, name)
-        elif obj != 0:
-            SetName(self.mesh, GetName(obj))
-
-        self.editor = self.mesh.GetMeshEditor()
-
-    ## Method that inits the Mesh object from SMESH_Mesh interface
-    #  @param theMesh is SMESH_Mesh object
-    def SetMesh(self, theMesh):
-        self.mesh = theMesh
-        self.geom = self.mesh.GetShapeToMesh()
-            
-    ## Method that returns the mesh
-    #  @return SMESH_Mesh object
-    def GetMesh(self):
-        return self.mesh
-
-    ## Get mesh name
-    def GetName(self):
-        name = GetName(self.GetMesh())
-        return name
-
-    ## Set name to mesh
-    def SetName(self, name):
-        SetName(self.GetMesh(), name)
-    
-    ## Get the subMesh object associated to a subShape. The subMesh object
-    #  gives access to nodes and elements IDs.
-    #  \n SubMesh will be used instead of SubShape in a next idl version to
-    #  adress a specific subMesh...
-    def GetSubMesh(self, theSubObject, name):
-        submesh = self.mesh.GetSubMesh(theSubObject, name)
-        return submesh
-        
-    ## Method that returns the shape associated to the mesh
-    #  @return GEOM_Object
-    def GetShape(self):
-        return self.geom
-
-    ## Method that associates given shape to the mesh(entails the mesh recreation)
-    #  @param geom shape to be meshed(GEOM_Object)
-    def SetShape(self, geom):
-        self.mesh = smesh.CreateMesh(geom)  
-                
-    ## Return true if hypotheses are defined well
-    #  @param theMesh is an instance of Mesh class
-    #  @param theSubObject subshape of a mesh shape
-    def IsReadyToCompute(self, theSubObject):
-        return smesh.IsReadyToCompute(self.mesh, theSubObject)
-
-    ## Return errors of hypotheses definintion
-    #  error list is empty if everything is OK
-    #  @param theMesh is an instance of Mesh class
-    #  @param theSubObject subshape of a mesh shape
-    #  @return a list of errors
-    def GetAlgoState(self, theSubObject):
-        return smesh.GetAlgoState(self.mesh, theSubObject)
-    
-    ## Return geometrical object the given element is built on.
-    #  The returned geometrical object, if not nil, is either found in the 
-    #  study or is published by this method with the given name
-    #  @param theMesh is an instance of Mesh class
-    #  @param theElementID an id of the mesh element
-    #  @param theGeomName user defined name of geometrical object
-    #  @return GEOM::GEOM_Object instance
-    def GetGeometryByMeshElement(self, theElementID, theGeomName):
-        return smesh.GetGeometryByMeshElement( self.mesh, theElementID, theGeomName )
-        
-    ## Returns mesh dimension depending on shape one
-    def MeshDimension(self):
-        shells = geompy.SubShapeAllIDs( self.geom, geompy.ShapeType["SHELL"] )
-        if len( shells ) > 0 :
-            return 3
-        elif geompy.NumberOfFaces( self.geom ) > 0 :
-            return 2
-        elif geompy.NumberOfEdges( self.geom ) > 0 :
-            return 1
-        else:
-            return 0;
-        pass
-        
-    ## Creates a segment discretization 1D algorithm.
-    #  If the optional \a algo parameter is not sets, this algorithm is REGULAR.
-    #  If the optional \a geom parameter is not sets, this algorithm is global.
-    #  \n Otherwise, this algorithm define a submesh based on \a geom subshape.
-    #  @param algo values are smesh.REGULAR or smesh.PYTHON for discretization via python function
-    #  @param geom If defined, subshape to be meshed
-    def Segment(self, algo=REGULAR, geom=0):
-        ## if Segment(geom) is called by mistake
-        if ( isinstance( algo, geompy.GEOM._objref_GEOM_Object)):
-            algo, geom = geom, algo
-            pass
-        if algo == REGULAR:
-            return Mesh_Segment(self, geom)
-        elif algo == PYTHON:
-            return Mesh_Segment_Python(self, geom)
-        elif algo == COMPOSITE:
-            return Mesh_CompositeSegment(self, geom)
-        else:
-            return Mesh_Segment(self, geom)
-        
-    ## Creates a triangle 2D algorithm for faces.
-    #  If the optional \a geom parameter is not sets, this algorithm is global.
-    #  \n Otherwise, this algorithm define a submesh based on \a geom subshape.
-    #  @param algo values are: smesh.MEFISTO or smesh.NETGEN
-    #  @param geom If defined, subshape to be meshed
-    def Triangle(self, algo=MEFISTO, geom=0):
-        ## if Triangle(geom) is called by mistake
-        if ( isinstance( algo, geompy.GEOM._objref_GEOM_Object)):
-            geom = algo
-            algo = MEFISTO
-        
-        return Mesh_Triangle(self, algo, geom)
-        
-    ## Creates a quadrangle 2D algorithm for faces.
-    #  If the optional \a geom parameter is not sets, this algorithm is global.
-    #  \n Otherwise, this algorithm define a submesh based on \a geom subshape.
-    #  @param geom If defined, subshape to be meshed
-    def Quadrangle(self, geom=0):
-        return Mesh_Quadrangle(self, geom)
-
-    ## Creates a tetrahedron 3D algorithm for solids.
-    #  The parameter \a algo permits to choice the algorithm: NETGEN or GHS3D
-    #  If the optional \a geom parameter is not sets, this algorithm is global.
-    #  \n Otherwise, this algorithm define a submesh based on \a geom subshape.
-    #  @param algo values are: smesh.NETGEN, smesh.GHS3D, smesh.FULL_NETGEN
-    #  @param geom If defined, subshape to be meshed
-    def Tetrahedron(self, algo=NETGEN, geom=0):
-        ## if Tetrahedron(geom) is called by mistake
-        if ( isinstance( algo, geompy.GEOM._objref_GEOM_Object)):
-            algo, geom = geom, algo
-            pass
-        return Mesh_Tetrahedron(self, algo, geom)
-        
-    ## Creates a hexahedron 3D algorithm for solids.
-    #  If the optional \a geom parameter is not sets, this algorithm is global.
-    #  \n Otherwise, this algorithm define a submesh based on \a geom subshape.
-    #  @param geom If defined, subshape to be meshed
-    ## def Hexahedron(self, geom=0):
-    ##     return Mesh_Hexahedron(self, geom)
-    def Hexahedron(self, algo=Hexa, geom=0):
-        ## if Hexahedron(geom, algo) or Hexahedron(geom) is called by mistake
-        if ( isinstance(algo, geompy.GEOM._objref_GEOM_Object) ):
-            if   geom in [Hexa, Hexotic]: algo, geom = geom, algo
-            elif geom == 0:               algo, geom = Hexa, algo
-        return Mesh_Hexahedron(self, algo, geom)
-
-    ## Deprecated, only for compatibility!
-    def Netgen(self, is3D, geom=0):
-        return Mesh_Netgen(self, is3D, geom)
-
-    ## Creates a projection 1D algorithm for edges.
-    #  If the optional \a geom parameter is not sets, this algorithm is global.
-    #  Otherwise, this algorithm define a submesh based on \a geom subshape.
-    #  @param geom If defined, subshape to be meshed
-    def Projection1D(self, geom=0):
-        return Mesh_Projection1D(self, geom)
-
-    ## Creates a projection 2D algorithm for faces.
-    #  If the optional \a geom parameter is not sets, this algorithm is global.
-    #  Otherwise, this algorithm define a submesh based on \a geom subshape.
-    #  @param geom If defined, subshape to be meshed
-    def Projection2D(self, geom=0):
-        return Mesh_Projection2D(self, geom)
-
-    ## Creates a projection 3D algorithm for solids.
-    #  If the optional \a geom parameter is not sets, this algorithm is global.
-    #  Otherwise, this algorithm define a submesh based on \a geom subshape.
-    #  @param geom If defined, subshape to be meshed
-    def Projection3D(self, geom=0):
-        return Mesh_Projection3D(self, geom)
-
-    ## Creates a 3D extrusion (Prism 3D) or RadialPrism 3D algorithm for solids.
-    #  If the optional \a geom parameter is not sets, this algorithm is global.
-    #  Otherwise, this algorithm define a submesh based on \a geom subshape.
-    #  @param geom If defined, subshape to be meshed
-    def Prism(self, geom=0):
-        shape = geom
-        if shape==0:
-            shape = self.geom
-        nbSolids = len( geompy.SubShapeAll( shape, geompy.ShapeType["SOLID"] ))
-        nbShells = len( geompy.SubShapeAll( shape, geompy.ShapeType["SHELL"] ))
-        if nbSolids == 0 or nbSolids == nbShells:
-            return Mesh_Prism3D(self, geom)
-        return Mesh_RadialPrism3D(self, geom)
-
-    ## Compute the mesh and return the status of the computation
-    def Compute(self, geom=0):
-        if geom == 0 or not isinstance(geom, geompy.GEOM._objref_GEOM_Object):
-            if self.geom == 0:
-                print "Compute impossible: mesh is not constructed on geom shape."
-                return 0
-            else:
-                geom = self.geom
-        ok = False
-        try:
-            ok = smesh.Compute(self.mesh, geom)
-        except SALOME.SALOME_Exception, ex:
-            print "Mesh computation failed, exception cought:"
-            print "    ", ex.details.text
-        except:
-            import traceback
-            print "Mesh computation failed, exception cought:"
-            traceback.print_exc()
-        if not ok:
-            errors = smesh.GetAlgoState( self.mesh, geom )
-            allReasons = ""
-            for err in errors:
-                if err.isGlobalAlgo:
-                    glob = " global "
-                else:
-                    glob = " local "
-                    pass
-                dim = str(err.algoDim)
-                if err.name == MISSING_ALGO:
-                    reason = glob + dim + "D algorithm is missing"
-                elif err.name == MISSING_HYPO:
-                    name = '"' + err.algoName + '"'
-                    reason = glob + dim + "D algorithm " + name + " misses " + dim + "D hypothesis"
-                elif err.name == NOT_CONFORM_MESH:
-                    reason = "Global \"Not Conform mesh allowed\" hypothesis is missing"
-                elif err.name == BAD_PARAM_VALUE:
-                    name = '"' + err.algoName + '"'
-                    reason = "Hypothesis of" + glob + dim + "D algorithm " + name +\
-                             " has a bad parameter value"
-                else:
-                    reason = "For unknown reason."+\
-                             " Revise Mesh.Compute() implementation in smesh.py!"
-                    pass
-                if allReasons != "":
-                    allReasons += "\n"
-                    pass
-                allReasons += reason
-                pass
-            if allReasons != "":
-                print '"' + GetName(self.mesh) + '"',"has not been computed:"
-                print allReasons
-            else:
-                print '"' + GetName(self.mesh) + '"',"has not been computed."
-                pass
-            pass
-        if salome.sg.hasDesktop():
-            smeshgui = salome.ImportComponentGUI("SMESH")
-            smeshgui.Init(salome.myStudyId)
-            smeshgui.SetMeshIcon( salome.ObjectToID( self.mesh ), ok, (self.NbNodes()==0) )
-            salome.sg.updateObjBrowser(1)
-            pass
-        return ok
-
-    ## Compute tetrahedral mesh using AutomaticLength + MEFISTO + NETGEN
-    #  The parameter \a fineness [0,-1] defines mesh fineness
-    def AutomaticTetrahedralization(self, fineness=0):
-        dim = self.MeshDimension()
-        # assign hypotheses
-        self.RemoveGlobalHypotheses()
-        self.Segment().AutomaticLength(fineness)
-        if dim > 1 :
-            self.Triangle().LengthFromEdges()
-            pass
-        if dim > 2 :
-            self.Tetrahedron(NETGEN)
-            pass
-        return self.Compute()
-        
-    ## Compute hexahedral mesh using AutomaticLength + Quadrangle + Hexahedron
-    #  The parameter \a fineness [0,-1] defines mesh fineness
-    def AutomaticHexahedralization(self, fineness=0):
-        dim = self.MeshDimension()
-        # assign hypotheses
-        self.RemoveGlobalHypotheses()
-        self.Segment().AutomaticLength(fineness)
-        if dim > 1 :
-            self.Quadrangle()
-            pass
-        if dim > 2 :
-            self.Hexahedron()            
-            pass
-        return self.Compute()
-
-    ## Assign hypothesis
-    #  @param hyp is a hypothesis to assign
-    #  @param geom is subhape of mesh geometry
-    def AddHypothesis(self, hyp, geom=0 ):
-        if isinstance( hyp, Mesh_Algorithm ):
-            hyp = hyp.GetAlgorithm()
-            pass
-        if not geom:
-            geom = self.geom
-            pass
-        status = self.mesh.AddHypothesis(geom, hyp)
-        isAlgo = ( hyp._narrow( SMESH.SMESH_Algo ) is not None )
-        TreatHypoStatus( status, GetName( hyp ), GetName( geom ), isAlgo )
-        return status
-    
-    ## Get the list of hypothesis added on a geom
-    #  @param geom is subhape of mesh geometry
-    def GetHypothesisList(self, geom):
-        return self.mesh.GetHypothesisList( geom )
-                
-    ## Removes all global hypotheses
-    def RemoveGlobalHypotheses(self):
-        current_hyps = self.mesh.GetHypothesisList( self.geom )
-        for hyp in current_hyps:
-            self.mesh.RemoveHypothesis( self.geom, hyp )
-            pass
-        pass
-        
-    ## Create a mesh group based on geometric object \a grp
-    #  and give a \a name, \n if this parameter is not defined
-    #  the name is the same as the geometric group name \n
-    #  Note: Works like GroupOnGeom(). 
-    #  @param grp  is a geometric group, a vertex, an edge, a face or a solid
-    #  @param name is the name of the mesh group
-    #  @return SMESH_GroupOnGeom
-    def Group(self, grp, name=""):
-        return self.GroupOnGeom(grp, name)
-       
-    ## Deprecated, only for compatibility! Please, use ExportMED() method instead.
-    #  Export the mesh in a file with the MED format and choice the \a version of MED format
-    #  @param f is the file name
-    #  @param version values are SMESH.MED_V2_1, SMESH.MED_V2_2
-    def ExportToMED(self, f, version, opt=0):
-        self.mesh.ExportToMED(f, opt, version)
-        
-    ## Export the mesh in a file with the MED format
-    #  @param f is the file name
-    #  @param auto_groups boolean parameter for creating/not creating
-    #  the groups Group_On_All_Nodes, Group_On_All_Faces, ... ;
-    #  the typical use is auto_groups=false.
-    #  @param version MED format version(MED_V2_1 or MED_V2_2)
-    def ExportMED(self, f, auto_groups=0, version=MED_V2_2):
-        self.mesh.ExportToMED(f, auto_groups, version)
-        
-    ## Export the mesh in a file with the DAT format
-    #  @param f is the file name
-    def ExportDAT(self, f):
-        self.mesh.ExportDAT(f)
-        
-    ## Export the mesh in a file with the UNV format
-    #  @param f is the file name
-    def ExportUNV(self, f):
-        self.mesh.ExportUNV(f)
-        
-    ## Export the mesh in a file with the STL format
-    #  @param f is the file name
-    #  @param ascii defined the kind of file contents
-    def ExportSTL(self, f, ascii=1):
-        self.mesh.ExportSTL(f, ascii)
-   
-        
-    # Operations with groups:
-    # ----------------------
-
-    ## Creates an empty mesh group
-    #  @param elementType is the type of elements in the group
-    #  @param name is the name of the mesh group
-    #  @return SMESH_Group
-    def CreateEmptyGroup(self, elementType, name):
-        return self.mesh.CreateGroup(elementType, name)
-    
-    ## Creates a mesh group based on geometric object \a grp
-    #  and give a \a name, \n if this parameter is not defined
-    #  the name is the same as the geometric group name
-    #  @param grp  is a geometric group, a vertex, an edge, a face or a solid
-    #  @param name is the name of the mesh group
-    #  @return SMESH_GroupOnGeom
-    def GroupOnGeom(self, grp, name="", type=None):
-        if name == "":
-            name = grp.GetName()
-
-        if type == None:
-            tgeo = str(grp.GetShapeType())
-            if tgeo == "VERTEX":
-                type = NODE
-            elif tgeo == "EDGE":
-                type = EDGE
-            elif tgeo == "FACE":
-                type = FACE
-            elif tgeo == "SOLID":
-                type = VOLUME
-            elif tgeo == "SHELL":
-                type = VOLUME
-            elif tgeo == "COMPOUND":
-                if len( geompy.GetObjectIDs( grp )) == 0:
-                    print "Mesh.Group: empty geometric group", GetName( grp )
-                    return 0
-                tgeo = geompy.GetType(grp)
-                if tgeo == geompy.ShapeType["VERTEX"]:
-                    type = NODE
-                elif tgeo == geompy.ShapeType["EDGE"]:
-                    type = EDGE
-                elif tgeo == geompy.ShapeType["FACE"]:
-                    type = FACE
-                elif tgeo == geompy.ShapeType["SOLID"]:
-                    type = VOLUME
-
-        if type == None:
-            print "Mesh.Group: bad first argument: expected a group, a vertex, an edge, a face or a solid"
-            return 0
-        else:
-            return self.mesh.CreateGroupFromGEOM(type, name, grp)
-
-    ## Create a mesh group by the given ids of elements
-    #  @param groupName is the name of the mesh group
-    #  @param elementType is the type of elements in the group
-    #  @param elemIDs is the list of ids
-    #  @return SMESH_Group
-    def MakeGroupByIds(self, groupName, elementType, elemIDs):
-        group = self.mesh.CreateGroup(elementType, groupName)
-        group.Add(elemIDs)
-        return group
-    
-    ## Create a mesh group by the given conditions
-    #  @param groupName is the name of the mesh group
-    #  @param elementType is the type of elements in the group
-    #  @param CritType is type of criterion( FT_Taper, FT_Area, FT_RangeOfIds, FT_LyingOnGeom etc. )
-    #  @param Compare belong to {FT_LessThan, FT_MoreThan, FT_EqualTo}
-    #  @param Treshold is threshold value (range of id ids as string, shape, numeric)
-    #  @param UnaryOp is FT_LogicalNOT or FT_Undefined
-    #  @return SMESH_Group
-    def MakeGroup(self,
-                  groupName,
-                  elementType,
-                  CritType=FT_Undefined,
-                  Compare=FT_EqualTo,
-                  Treshold="",
-                  UnaryOp=FT_Undefined):
-        aCriterion = GetCriterion(elementType, CritType, Compare, Treshold, UnaryOp, FT_Undefined)
-        group = self.MakeGroupByCriterion(groupName, aCriterion)
-        return group
-
-    ## Create a mesh group by the given criterion
-    #  @param groupName is the name of the mesh group
-    #  @param Criterion is the instance of Criterion class
-    #  @return SMESH_Group
-    def MakeGroupByCriterion(self, groupName, Criterion):
-        aFilterMgr = smesh.CreateFilterManager()
-        aFilter = aFilterMgr.CreateFilter()
-        aCriteria = []
-        aCriteria.append(Criterion)
-        aFilter.SetCriteria(aCriteria)
-        group = self.MakeGroupByFilter(groupName, aFilter)
-        return group
-    
-    ## Create a mesh group by the given criteria(list of criterions)
-    #  @param groupName is the name of the mesh group
-    #  @param Criteria is the list of criterions
-    #  @return SMESH_Group
-    def MakeGroupByCriteria(self, groupName, theCriteria):
-        aFilterMgr = smesh.CreateFilterManager()
-        aFilter = aFilterMgr.CreateFilter()
-        aFilter.SetCriteria(theCriteria)
-        group = self.MakeGroupByFilter(groupName, aFilter)
-        return group
-    
-    ## Create a mesh group by the given filter
-    #  @param groupName is the name of the mesh group
-    #  @param Criterion is the instance of Filter class
-    #  @return SMESH_Group
-    def MakeGroupByFilter(self, groupName, theFilter):
-        anIds = theFilter.GetElementsId(self.mesh)
-        anElemType = theFilter.GetElementType()
-        group = self.MakeGroupByIds(groupName, anElemType, anIds)
-        return group
-
-    ## Pass mesh elements through the given filter and return ids
-    #  @param theFilter is SMESH_Filter
-    #  @return list of ids
-    def GetIdsFromFilter(self, theFilter):
-        return theFilter.GetElementsId(self.mesh)
-
-    ## Verify whether 2D mesh element has free edges(edges connected to one face only)\n
-    #  Returns list of special structures(borders).
-    #  @return list of SMESH.FreeEdges.Border structure: edge id and two its nodes ids.
-    def GetFreeBorders(self):
-        aFilterMgr = smesh.CreateFilterManager()
-        aPredicate = aFilterMgr.CreateFreeEdges()
-        aPredicate.SetMesh(self.mesh)
-        aBorders = aPredicate.GetBorders()
-        return aBorders
-                
-    ## Remove a group
-    def RemoveGroup(self, group):
-        self.mesh.RemoveGroup(group)
-
-    ## Remove group with its contents
-    def RemoveGroupWithContents(self, group):
-        self.mesh.RemoveGroupWithContents(group)
-        
-    ## Get the list of groups existing in the mesh
-    def GetGroups(self):
-        return self.mesh.GetGroups()
-
-    ## Get the list of names of groups existing in the mesh
-    def GetGroupNames(self):
-        groups = self.GetGroups()
-        names = []
-        for group in groups:
-            names.append(group.GetName())
-        return names
-
-    ## Union of two groups
-    #  New group is created. All mesh elements that are
-    #  present in initial groups are added to the new one
-    def UnionGroups(self, group1, group2, name):
-        return self.mesh.UnionGroups(group1, group2, name)
-
-    ## Intersection of two groups
-    #  New group is created. All mesh elements that are
-    #  present in both initial groups are added to the new one.
-    def IntersectGroups(self, group1, group2, name):
-        return self.mesh.IntersectGroups(group1, group2, name)
-    
-    ## Cut of two groups
-    #  New group is created. All mesh elements that are present in
-    #  main group but do not present in tool group are added to the new one
-    def CutGroups(self, mainGroup, toolGroup, name):
-        return self.mesh.CutGroups(mainGroup, toolGroup, name)
-         
-    
-    # Get some info about mesh:
-    # ------------------------
-
-    ## Get the log of nodes and elements added or removed since previous
-    #  clear of the log.
-    #  @param clearAfterGet log is emptied after Get (safe if concurrents access)
-    #  @return list of log_block structures:
-    #                                        commandType
-    #                                        number
-    #                                        coords
-    #                                        indexes
-    def GetLog(self, clearAfterGet):
-        return self.mesh.GetLog(clearAfterGet)
-
-    ## Clear the log of nodes and elements added or removed since previous
-    #  clear. Must be used immediately after GetLog if clearAfterGet is false.
-    def ClearLog(self):
-        self.mesh.ClearLog()
-
-    ## Get the internal Id
-    def GetId(self):
-        return self.mesh.GetId()
-
-    ## Get the study Id
-    def GetStudyId(self):
-        return self.mesh.GetStudyId()
-
-    ## Check group names for duplications.
-    #  Consider maximum group name length stored in MED file.
-    def HasDuplicatedGroupNamesMED(self):
-        return self.mesh.GetStudyId()
-        
-    ## Obtain instance of SMESH_MeshEditor
-    def GetMeshEditor(self):
-        return self.mesh.GetMeshEditor()
-
-    ## Get MED Mesh
-    def GetMEDMesh(self):
-        return self.mesh.GetMEDMesh()
-    
-    
-    # Get informations about mesh contents:
-    # ------------------------------------
-
-    ## Returns number of nodes in mesh
-    def NbNodes(self):
-        return self.mesh.NbNodes()
-
-    ## Returns number of elements in mesh
-    def NbElements(self):
-        return self.mesh.NbElements()
-
-    ## Returns number of edges in mesh
-    def NbEdges(self):
-        return self.mesh.NbEdges()
-
-    ## Returns number of edges with given order in mesh
-    #  @param elementOrder is order of elements:
-    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
-    def NbEdgesOfOrder(self, elementOrder):
-        return self.mesh.NbEdgesOfOrder(elementOrder)
-    
-    ## Returns number of faces in mesh
-    def NbFaces(self):
-        return self.mesh.NbFaces()
-
-    ## Returns number of faces with given order in mesh
-    #  @param elementOrder is order of elements:
-    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
-    def NbFacesOfOrder(self, elementOrder):
-        return self.mesh.NbFacesOfOrder(elementOrder)
-
-    ## Returns number of triangles in mesh
-    def NbTriangles(self):
-        return self.mesh.NbTriangles()
-
-    ## Returns number of triangles with given order in mesh
-    #  @param elementOrder is order of elements:
-    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
-    def NbTrianglesOfOrder(self, elementOrder):
-        return self.mesh.NbTrianglesOfOrder(elementOrder)
-
-    ## Returns number of quadrangles in mesh
-    def NbQuadrangles(self):
-        return self.mesh.NbQuadrangles()
-
-    ## Returns number of quadrangles with given order in mesh
-    #  @param elementOrder is order of elements:
-    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
-    def NbQuadranglesOfOrder(self, elementOrder):
-        return self.mesh.NbQuadranglesOfOrder(elementOrder)
-
-    ## Returns number of polygons in mesh
-    def NbPolygons(self):
-        return self.mesh.NbPolygons()
-
-    ## Returns number of volumes in mesh
-    def NbVolumes(self):
-        return self.mesh.NbVolumes()
-
-    ## Returns number of volumes with given order in mesh
-    #  @param elementOrder is order of elements:
-    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
-    def NbVolumesOfOrder(self, elementOrder):
-        return self.mesh.NbVolumesOfOrder(elementOrder)
-
-    ## Returns number of tetrahedrons in mesh
-    def NbTetras(self):
-        return self.mesh.NbTetras()
-
-    ## Returns number of tetrahedrons with given order in mesh
-    #  @param elementOrder is order of elements:
-    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
-    def NbTetrasOfOrder(self, elementOrder):
-        return self.mesh.NbTetrasOfOrder(elementOrder)
-
-    ## Returns number of hexahedrons in mesh
-    def NbHexas(self):
-        return self.mesh.NbHexas()
-
-    ## Returns number of hexahedrons with given order in mesh
-    #  @param elementOrder is order of elements:
-    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
-    def NbHexasOfOrder(self, elementOrder):
-        return self.mesh.NbHexasOfOrder(elementOrder)
-
-    ## Returns number of pyramids in mesh
-    def NbPyramids(self):
-        return self.mesh.NbPyramids()
-
-    ## Returns number of pyramids with given order in mesh
-    #  @param elementOrder is order of elements:
-    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
-    def NbPyramidsOfOrder(self, elementOrder):
-        return self.mesh.NbPyramidsOfOrder(elementOrder)
-
-    ## Returns number of prisms in mesh
-    def NbPrisms(self):
-        return self.mesh.NbPrisms()
-
-    ## Returns number of prisms with given order in mesh
-    #  @param elementOrder is order of elements:
-    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
-    def NbPrismsOfOrder(self, elementOrder):
-        return self.mesh.NbPrismsOfOrder(elementOrder)
-
-    ## Returns number of polyhedrons in mesh
-    def NbPolyhedrons(self):
-        return self.mesh.NbPolyhedrons()
-
-    ## Returns number of submeshes in mesh
-    def NbSubMesh(self):
-        return self.mesh.NbSubMesh()
-
-    ## Returns list of mesh elements ids
-    def GetElementsId(self):
-        return self.mesh.GetElementsId()
-
-    ## Returns list of ids of mesh elements with given type
-    #  @param elementType is required type of elements
-    def GetElementsByType(self, elementType):
-        return self.mesh.GetElementsByType(elementType)
-
-    ## Returns list of mesh nodes ids
-    def GetNodesId(self):
-        return self.mesh.GetNodesId()
-    
-    # Get informations about mesh elements:
-    # ------------------------------------
-    
-    ## Returns type of mesh element
-    def GetElementType(self, id, iselem):
-        return self.mesh.GetElementType(id, iselem)
-
-    ## Returns list of submesh elements ids
-    #  @param shapeID is geom object(subshape) IOR
-    def GetSubMeshElementsId(self, shapeID):
-        return self.mesh.GetSubMeshElementsId(shapeID)
-
-    ## Returns list of submesh nodes ids
-    #  @param shapeID is geom object(subshape) IOR
-    def GetSubMeshNodesId(self, shapeID, all):
-        return self.mesh.GetSubMeshNodesId(shapeID, all)
-    
-    ## Returns list of ids of submesh elements with given type
-    #  @param shapeID is geom object(subshape) IOR
-    def GetSubMeshElementType(self, shapeID):
-        return self.mesh.GetSubMeshElementType(shapeID)
-      
-    ## Get mesh description
-    def Dump(self):
-        return self.mesh.Dump()
-
-    
-    # Get information about nodes and elements of mesh by its ids:
-    # -----------------------------------------------------------
-
-    ## Get XYZ coordinates of node as list of double
-    #  \n If there is not node for given ID - returns empty list
-    def GetNodeXYZ(self, id):
-        return self.mesh.GetNodeXYZ(id)
-
-    ## For given node returns list of IDs of inverse elements
-    #  \n If there is not node for given ID - returns empty list
-    def GetNodeInverseElements(self, id):
-        return self.mesh.GetNodeInverseElements(id)
-
-    ## If given element is node returns IDs of shape from position
-    #  \n If there is not node for given ID - returns -1
-    def GetShapeID(self, id):
-        return self.mesh.GetShapeID(id)
-
-    ## For given element returns ID of result shape after 
-    #  FindShape() from SMESH_MeshEditor
-    #  \n If there is not element for given ID - returns -1
-    def GetShapeIDForElem(id):
-        return self.mesh.GetShapeIDForElem(id)
-    
-    ## Returns number of nodes for given element
-    #  \n If there is not element for given ID - returns -1
-    def GetElemNbNodes(self, id):
-        return self.mesh.GetElemNbNodes(id)
-
-    ## Returns ID of node by given index for given element
-    #  \n If there is not element for given ID - returns -1
-    #  \n If there is not node for given index - returns -2
-    def GetElemNode(self, id, index):
-        return self.mesh.GetElemNode(id, index)
-
-    ## Returns true if given node is medium node
-    #  in given quadratic element
-    def IsMediumNode(self, elementID, nodeID):
-        return self.mesh.IsMediumNode(elementID, nodeID)
-    
-    ## Returns true if given node is medium node
-    #  in one of quadratic elements
-    def IsMediumNodeOfAnyElem(self, nodeID, elementType):
-        return self.mesh.IsMediumNodeOfAnyElem(nodeID, elementType)
-
-    ## Returns number of edges for given element
-    def ElemNbEdges(self, id):
-        return self.mesh.ElemNbEdges(id)
-        
-    ## Returns number of faces for given element
-    def ElemNbFaces(self, id):
-        return self.mesh.ElemNbFaces(id)
-
-    ## Returns true if given element is polygon
-    def IsPoly(self, id):
-        return self.mesh.IsPoly(id)
-
-    ## Returns true if given element is quadratic
-    def IsQuadratic(self, id):
-        return self.mesh.IsQuadratic(id)
-
-    ## Returns XYZ coordinates of bary center for given element
-    #  as list of double
-    #  \n If there is not element for given ID - returns empty list
-    def BaryCenter(self, id):
-        return self.mesh.BaryCenter(id)
-    
-    
-    # Mesh edition (SMESH_MeshEditor functionality):
-    # ---------------------------------------------
-
-    ## Removes elements from mesh by ids
-    #  @param IDsOfElements is list of ids of elements to remove
-    def RemoveElements(self, IDsOfElements):
-        return self.editor.RemoveElements(IDsOfElements)
-
-    ## Removes nodes from mesh by ids
-    #  @param IDsOfNodes is list of ids of nodes to remove
-    def RemoveNodes(self, IDsOfNodes):
-        return self.editor.RemoveNodes(IDsOfNodes)
-
-    ## Add node to mesh by coordinates
-    def AddNode(self, x, y, z):
-        return self.editor.AddNode( x, y, z)
-
-    
-    ## Create edge both similar and quadratic (this is determed
-    #  by number of given nodes).
-    #  @param IdsOfNodes List of node IDs for creation of element.
-    #  Needed order of nodes in this list corresponds to description
-    #  of MED. \n This description is located by the following link:
-    #  http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.
-    def AddEdge(self, IDsOfNodes):
-        return self.editor.AddEdge(IDsOfNodes)
-
-    ## Create face both similar and quadratic (this is determed
-    #  by number of given nodes).
-    #  @param IdsOfNodes List of node IDs for creation of element.
-    #  Needed order of nodes in this list corresponds to description
-    #  of MED. \n This description is located by the following link:
-    #  http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.
-    def AddFace(self, IDsOfNodes):
-        return self.editor.AddFace(IDsOfNodes)
-    
-    ## Add polygonal face to mesh by list of nodes ids
-    def AddPolygonalFace(self, IdsOfNodes):
-        return self.editor.AddPolygonalFace(IdsOfNodes)
-    
-    ## Create volume both similar and quadratic (this is determed
-    #  by number of given nodes).
-    #  @param IdsOfNodes List of node IDs for creation of element.
-    #  Needed order of nodes in this list corresponds to description
-    #  of MED. \n This description is located by the following link:
-    #  http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.
-    def AddVolume(self, IDsOfNodes):
-        return self.editor.AddVolume(IDsOfNodes)
-
-    ## Create volume of many faces, giving nodes for each face.
-    #  @param IdsOfNodes List of node IDs for volume creation face by face.
-    #  @param Quantities List of integer values, Quantities[i]
-    #         gives quantity of nodes in face number i.
-    def AddPolyhedralVolume (self, IdsOfNodes, Quantities):
-        return self.editor.AddPolyhedralVolume(IdsOfNodes, Quantities)
-
-    ## Create volume of many faces, giving IDs of existing faces.
-    #  @param IdsOfFaces List of face IDs for volume creation.
-    #
-    #  Note:  The created volume will refer only to nodes
-    #         of the given faces, not to the faces itself.
-    def AddPolyhedralVolumeByFaces (self, IdsOfFaces):
-        return self.editor.AddPolyhedralVolumeByFaces(IdsOfFaces)
-    
-    ## Move node with given id
-    #  @param NodeID id of the node
-    #  @param x new X coordinate
-    #  @param y new Y coordinate
-    #  @param z new Z coordinate
-    def MoveNode(self, NodeID, x, y, z):
-        return self.editor.MoveNode(NodeID, x, y, z)
-
-    ## Find a node closest to a point
-    #  @param x X coordinate of a point
-    #  @param y Y coordinate of a point
-    #  @param z Z coordinate of a point
-    #  @return id of a node
-    def FindNodeClosestTo(self, x, y, z):
-        preview = self.mesh.GetMeshEditPreviewer()
-        return preview.MoveClosestNodeToPoint(x, y, z, -1)
-
-    ## Find a node closest to a point and move it to a point location
-    #  @param x X coordinate of a point
-    #  @param y Y coordinate of a point
-    #  @param z Z coordinate of a point
-    #  @return id of a moved node
-    def MeshToPassThroughAPoint(self, x, y, z):
-        return self.editor.MoveClosestNodeToPoint(x, y, z, -1)
-
-    ## Replace two neighbour triangles sharing Node1-Node2 link
-    #  with ones built on the same 4 nodes but having other common link.
-    #  @param NodeID1 first node id
-    #  @param NodeID2 second node id
-    #  @return false if proper faces not found
-    def InverseDiag(self, NodeID1, NodeID2):
-        return self.editor.InverseDiag(NodeID1, NodeID2)
-
-    ## Replace two neighbour triangles sharing Node1-Node2 link
-    #  with a quadrangle built on the same 4 nodes.
-    #  @param NodeID1 first node id
-    #  @param NodeID2 second node id
-    #  @return false if proper faces not found
-    def DeleteDiag(self, NodeID1, NodeID2):
-        return self.editor.DeleteDiag(NodeID1, NodeID2)
-
-    ## Reorient elements by ids
-    #  @param IDsOfElements if undefined reorient all mesh elements
-    def Reorient(self, IDsOfElements=None):
-        if IDsOfElements == None:
-            IDsOfElements = self.GetElementsId()
-        return self.editor.Reorient(IDsOfElements)
-
-    ## Reorient all elements of the object
-    #  @param theObject is mesh, submesh or group
-    def ReorientObject(self, theObject):
-        return self.editor.ReorientObject(theObject)
-
-    ## Fuse neighbour triangles into quadrangles.
-    #  @param IDsOfElements The triangles to be fused,
-    #  @param theCriterion     is FT_...; used to choose a neighbour to fuse with.
-    #  @param MaxAngle      is a max angle between element normals at which fusion
-    #                       is still performed; theMaxAngle is mesured in radians.
-    #  @return TRUE in case of success, FALSE otherwise.
-    def TriToQuad(self, IDsOfElements, theCriterion, MaxAngle):
-        if IDsOfElements == []:
-            IDsOfElements = self.GetElementsId()
-        return self.editor.TriToQuad(IDsOfElements, GetFunctor(theCriterion), MaxAngle)
-
-    ## Fuse neighbour triangles of the object into quadrangles
-    #  @param theObject is mesh, submesh or group
-    #  @param theCriterion is FT_...; used to choose a neighbour to fuse with.
-    #  @param MaxAngle  is a max angle between element normals at which fusion
-    #                   is still performed; theMaxAngle is mesured in radians.
-    #  @return TRUE in case of success, FALSE otherwise.
-    def TriToQuadObject (self, theObject, theCriterion, MaxAngle):
-        return self.editor.TriToQuadObject(theObject, GetFunctor(theCriterion), MaxAngle)
-
-    ## Split quadrangles into triangles.
-    #  @param IDsOfElements the faces to be splitted.
-    #  @param theCriterion  is FT_...; used to choose a diagonal for splitting.
-    #  @param @return TRUE in case of success, FALSE otherwise.
-    def QuadToTri (self, IDsOfElements, theCriterion):
-        if IDsOfElements == []:
-            IDsOfElements = self.GetElementsId()
-        return self.editor.QuadToTri(IDsOfElements, GetFunctor(theCriterion))
-
-    ## Split quadrangles into triangles.
-    #  @param theObject object to taking list of elements from, is mesh, submesh or group
-    #  @param theCriterion  is FT_...; used to choose a diagonal for splitting.
-    def QuadToTriObject (self, theObject, theCriterion):
-        return self.editor.QuadToTriObject(theObject, GetFunctor(theCriterion))
-
-    ## Split quadrangles into triangles.
-    #  @param theElems  The faces to be splitted
-    #  @param the13Diag is used to choose a diagonal for splitting.
-    #  @return TRUE in case of success, FALSE otherwise.
-    def SplitQuad (self, IDsOfElements, Diag13):
-        if IDsOfElements == []:
-            IDsOfElements = self.GetElementsId()
-        return self.editor.SplitQuad(IDsOfElements, Diag13)
-
-    ## Split quadrangles into triangles.
-    #  @param theObject is object to taking list of elements from, is mesh, submesh or group
-    def SplitQuadObject (self, theObject, Diag13):
-        return self.editor.SplitQuadObject(theObject, Diag13)
-
-    ## Find better splitting of the given quadrangle.
-    #  @param IDOfQuad  ID of the quadrangle to be splitted.
-    #  @param theCriterion is FT_...; a criterion to choose a diagonal for splitting.
-    #  @return 1 if 1-3 diagonal is better, 2 if 2-4
-    #          diagonal is better, 0 if error occurs.
-    def BestSplit (self, IDOfQuad, theCriterion):
-        return self.editor.BestSplit(IDOfQuad, GetFunctor(theCriterion))
-
-    ## Split quafrangle faces near triangular facets of volumes
-    #
-    def SplitQuadsNearTriangularFacets(self):
-        faces_array = self.GetElementsByType(SMESH.FACE)
-        for face_id in faces_array:
-            if self.GetElemNbNodes(face_id) == 4: # quadrangle
-                quad_nodes = self.mesh.GetElemNodes(face_id)
-                node1_elems = self.GetNodeInverseElements(quad_nodes[1 -1])
-                isVolumeFound = False
-                for node1_elem in node1_elems:
-                    if not isVolumeFound:
-                        if self.GetElementType(node1_elem, True) == SMESH.VOLUME:
-                            nb_nodes = self.GetElemNbNodes(node1_elem)
-                            if 3 < nb_nodes and nb_nodes < 7: # tetra or penta, or prism
-                                volume_elem = node1_elem
-                                volume_nodes = self.mesh.GetElemNodes(volume_elem)
-                                if volume_nodes.count(quad_nodes[2 -1]) > 0: # 1,2
-                                    if volume_nodes.count(quad_nodes[4 -1]) > 0: # 1,2,4
-                                        isVolumeFound = True
-                                        if volume_nodes.count(quad_nodes[3 -1]) == 0: # 1,2,4 & !3
-                                            self.SplitQuad([face_id], False) # diagonal 2-4
-                                    elif volume_nodes.count(quad_nodes[3 -1]) > 0: # 1,2,3 & !4
-                                        isVolumeFound = True
-                                        self.SplitQuad([face_id], True) # diagonal 1-3
-                                elif volume_nodes.count(quad_nodes[4 -1]) > 0: # 1,4 & !2
-                                    if volume_nodes.count(quad_nodes[3 -1]) > 0: # 1,4,3 & !2
-                                        isVolumeFound = True
-                                        self.SplitQuad([face_id], True) # diagonal 1-3
-
-    ## @brief Split hexahedrons into tetrahedrons.
-    #
-    #  Use pattern mapping functionality for splitting.
-    #  @param theObject object to take list of hexahedrons from; is mesh, submesh or group.
-    #  @param theNode000,theNode001 is in range [0,7]; give an orientation of the
-    #         pattern relatively each hexahedron: the (0,0,0) key-point of pattern
-    #         will be mapped into <theNode000>-th node of each volume, the (0,0,1)
-    #         key-point will be mapped into <theNode001>-th node of each volume.
-    #         The (0,0,0) key-point of used pattern corresponds to not split corner.
-    #  @return TRUE in case of success, FALSE otherwise.
-    def SplitHexaToTetras (self, theObject, theNode000, theNode001):
-        # Pattern:     5.---------.6
-        #              /|#*      /|
-        #             / | #*    / |
-        #            /  |  # * /  |
-        #           /   |   # /*  |
-        # (0,0,1) 4.---------.7 * |
-        #          |#*  |1   | # *|
-        #          | # *.----|---#.2
-        #          |  #/ *   |   /
-        #          |  /#  *  |  /
-        #          | /   # * | /
-        #          |/      #*|/
-        # (0,0,0) 0.---------.3
-        pattern_tetra = "!!! Nb of points: \n 8 \n\
-        !!! Points: \n\
-        0 0 0  !- 0 \n\
-        0 1 0  !- 1 \n\
-        1 1 0  !- 2 \n\
-        1 0 0  !- 3 \n\
-        0 0 1  !- 4 \n\
-        0 1 1  !- 5 \n\
-        1 1 1  !- 6 \n\
-        1 0 1  !- 7 \n\
-        !!! Indices of points of 6 tetras: \n\
-        0 3 4 1 \n\
-        7 4 3 1 \n\
-        4 7 5 1 \n\
-        6 2 5 7 \n\
-        1 5 2 7 \n\
-        2 3 1 7 \n"
-
-        pattern = GetPattern()
-        isDone  = pattern.LoadFromFile(pattern_tetra)
-        if not isDone:
-            print 'Pattern.LoadFromFile :', pattern.GetErrorCode()
-            return isDone
-
-        pattern.ApplyToHexahedrons(self.mesh, theObject.GetIDs(), theNode000, theNode001)
-        isDone = pattern.MakeMesh(self.mesh, False, False)
-        if not isDone: print 'Pattern.MakeMesh :', pattern.GetErrorCode()
-
-        # split quafrangle faces near triangular facets of volumes
-        self.SplitQuadsNearTriangularFacets()
-
-        return isDone
-
-    ## @brief Split hexahedrons into prisms.
-    #
-    #  Use pattern mapping functionality for splitting.
-    #  @param theObject object to take list of hexahedrons from; is mesh, submesh or group.
-    #  @param theNode000,theNode001 is in range [0,7]; give an orientation of the
-    #         pattern relatively each hexahedron: the (0,0,0) key-point of pattern
-    #         will be mapped into <theNode000>-th node of each volume, the (0,0,1)
-    #         key-point will be mapped into <theNode001>-th node of each volume.
-    #         The edge (0,0,0)-(0,0,1) of used pattern connects two not split corners.
-    #  @param @return TRUE in case of success, FALSE otherwise.
-    def SplitHexaToPrisms (self, theObject, theNode000, theNode001):
-        # Pattern:     5.---------.6
-        #              /|#       /|
-        #             / | #     / |
-        #            /  |  #   /  |
-        #           /   |   # /   |
-        # (0,0,1) 4.---------.7   |
-        #          |    |    |    |
-        #          |   1.----|----.2
-        #          |   / *   |   /
-        #          |  /   *  |  /
-        #          | /     * | /
-        #          |/       *|/
-        # (0,0,0) 0.---------.3
-        pattern_prism = "!!! Nb of points: \n 8 \n\
-        !!! Points: \n\
-        0 0 0  !- 0 \n\
-        0 1 0  !- 1 \n\
-        1 1 0  !- 2 \n\
-        1 0 0  !- 3 \n\
-        0 0 1  !- 4 \n\
-        0 1 1  !- 5 \n\
-        1 1 1  !- 6 \n\
-        1 0 1  !- 7 \n\
-        !!! Indices of points of 2 prisms: \n\
-        0 1 3 4 5 7 \n\
-        2 3 1 6 7 5 \n"
-
-        pattern = GetPattern()
-        isDone  = pattern.LoadFromFile(pattern_prism)
-        if not isDone:
-            print 'Pattern.LoadFromFile :', pattern.GetErrorCode()
-            return isDone
-
-        pattern.ApplyToHexahedrons(self.mesh, theObject.GetIDs(), theNode000, theNode001)
-        isDone = pattern.MakeMesh(self.mesh, False, False)
-        if not isDone: print 'Pattern.MakeMesh :', pattern.GetErrorCode()
-
-        # split quafrangle faces near triangular facets of volumes
-        self.SplitQuadsNearTriangularFacets()
-
-        return isDone
-    
-    ## Smooth elements
-    #  @param IDsOfElements list if ids of elements to smooth
-    #  @param IDsOfFixedNodes list of ids of fixed nodes.
-    #  Note that nodes built on edges and boundary nodes are always fixed.
-    #  @param MaxNbOfIterations maximum number of iterations
-    #  @param MaxAspectRatio varies in range [1.0, inf]
-    #  @param Method is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH)
-    def Smooth(self, IDsOfElements, IDsOfFixedNodes,
-               MaxNbOfIterations, MaxAspectRatio, Method):
-        if IDsOfElements == []:
-            IDsOfElements = self.GetElementsId()
-        return self.editor.Smooth(IDsOfElements, IDsOfFixedNodes,
-                                  MaxNbOfIterations, MaxAspectRatio, Method)
-    
-    ## Smooth elements belong to given object
-    #  @param theObject object to smooth
-    #  @param IDsOfFixedNodes list of ids of fixed nodes.
-    #  Note that nodes built on edges and boundary nodes are always fixed.
-    #  @param MaxNbOfIterations maximum number of iterations
-    #  @param MaxAspectRatio varies in range [1.0, inf]
-    #  @param Method is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH)
-    def SmoothObject(self, theObject, IDsOfFixedNodes, 
-                     MaxNbOfIterations, MaxxAspectRatio, Method):
-        return self.editor.SmoothObject(theObject, IDsOfFixedNodes, 
-                                        MaxNbOfIterations, MaxxAspectRatio, Method)
-
-    ## Parametric smooth the given elements
-    #  @param IDsOfElements list if ids of elements to smooth
-    #  @param IDsOfFixedNodes list of ids of fixed nodes.
-    #  Note that nodes built on edges and boundary nodes are always fixed.
-    #  @param MaxNbOfIterations maximum number of iterations
-    #  @param MaxAspectRatio varies in range [1.0, inf]
-    #  @param Method is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH)
-    def SmoothParametric(IDsOfElements, IDsOfFixedNodes,
-                         MaxNbOfIterations, MaxAspectRatio, Method):
-        if IDsOfElements == []:
-            IDsOfElements = self.GetElementsId()
-        return self.editor.SmoothParametric(IDsOfElements, IDsOfFixedNodes,
-                                            MaxNbOfIterations, MaxAspectRatio, Method)
-    
-    ## Parametric smooth elements belong to given object
-    #  @param theObject object to smooth
-    #  @param IDsOfFixedNodes list of ids of fixed nodes.
-    #  Note that nodes built on edges and boundary nodes are always fixed.
-    #  @param MaxNbOfIterations maximum number of iterations
-    #  @param MaxAspectRatio varies in range [1.0, inf]
-    #  @param Method is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH)
-    def SmoothParametricObject(self, theObject, IDsOfFixedNodes,
-                               MaxNbOfIterations, MaxAspectRatio, Method):
-        return self.editor.SmoothParametricObject(theObject, IDsOfFixedNodes,
-                                                  MaxNbOfIterations, MaxAspectRatio, Method)
-
-    ## Converts all mesh to quadratic one, deletes old elements, replacing 
-    #  them with quadratic ones with the same id.
-    def ConvertToQuadratic(self, theForce3d):
-        self.editor.ConvertToQuadratic(theForce3d)
-
-    ## Converts all mesh from quadratic to ordinary ones,
-    #  deletes old quadratic elements, \n replacing 
-    #  them with ordinary mesh elements with the same id.
-    def ConvertFromQuadratic(self):
-        return self.editor.ConvertFromQuadratic()
-
-    ## Renumber mesh nodes
-    def RenumberNodes(self):
-        self.editor.RenumberNodes()
-
-    ## Renumber mesh elements
-    def RenumberElements(self):
-        self.editor.RenumberElements()
-
-    ## Generate new elements by rotation of the elements around the axis
-    #  @param IDsOfElements list of ids of elements to sweep
-    #  @param Axix axis of rotation, AxisStruct or line(geom object)
-    #  @param AngleInRadians angle of Rotation
-    #  @param NbOfSteps number of steps
-    #  @param Tolerance tolerance
-    def RotationSweep(self, IDsOfElements, Axix, AngleInRadians, NbOfSteps, Tolerance):
-        if IDsOfElements == []:
-            IDsOfElements = self.GetElementsId()
-        if ( isinstance( Axix, geompy.GEOM._objref_GEOM_Object)):
-            Axix = GetAxisStruct(Axix)
-        self.editor.RotationSweep(IDsOfElements, Axix, AngleInRadians, NbOfSteps, Tolerance)
-
-    ## Generate new elements by rotation of the elements of object around the axis
-    #  @param theObject object wich elements should be sweeped
-    #  @param Axix axis of rotation, AxisStruct or line(geom object)
-    #  @param AngleInRadians angle of Rotation
-    #  @param NbOfSteps number of steps
-    #  @param Tolerance tolerance
-    def RotationSweepObject(self, theObject, Axix, AngleInRadians, NbOfSteps, Tolerance):
-        if ( isinstance( Axix, geompy.GEOM._objref_GEOM_Object)):
-            Axix = GetAxisStruct(Axix)
-        self.editor.RotationSweepObject(theObject, Axix, AngleInRadians, NbOfSteps, Tolerance)
-
-    ## Generate new elements by extrusion of the elements with given ids
-    #  @param IDsOfElements list of elements ids for extrusion
-    #  @param StepVector vector, defining the direction and value of extrusion 
-    #  @param NbOfSteps the number of steps
-    def ExtrusionSweep(self, IDsOfElements, StepVector, NbOfSteps):
-        if IDsOfElements == []:
-            IDsOfElements = self.GetElementsId()
-        if ( isinstance( StepVector, geompy.GEOM._objref_GEOM_Object)):
-            StepVector = GetDirStruct(StepVector)
-        self.editor.ExtrusionSweep(IDsOfElements, StepVector, NbOfSteps)
-
-    ## Generate new elements by extrusion of the elements with given ids
-    #  @param IDsOfElements is ids of elements
-    #  @param StepVector vector, defining the direction and value of extrusion 
-    #  @param NbOfSteps the number of steps
-    #  @param ExtrFlags set flags for performing extrusion
-    #  @param SewTolerance uses for comparing locations of nodes if flag
-    #         EXTRUSION_FLAG_SEW is set
-    def AdvancedExtrusion(self, IDsOfElements, StepVector, NbOfSteps, ExtrFlags, SewTolerance):
-        if ( isinstance( StepVector, geompy.GEOM._objref_GEOM_Object)):
-            StepVector = GetDirStruct(StepVector)
-        self.editor.AdvancedExtrusion(IDsOfElements, StepVector, NbOfSteps, ExtrFlags, SewTolerance)
-
-    ## Generate new elements by extrusion of the elements belong to object
-    #  @param theObject object wich elements should be processed
-    #  @param StepVector vector, defining the direction and value of extrusion 
-    #  @param NbOfSteps the number of steps
-    def ExtrusionSweepObject(self, theObject, StepVector, NbOfSteps):
-        if ( isinstance( StepVector, geompy.GEOM._objref_GEOM_Object)):
-            StepVector = GetDirStruct(StepVector)
-        self.editor.ExtrusionSweepObject(theObject, StepVector, NbOfSteps)
-
-    ## Generate new elements by extrusion of the elements belong to object
-    #  @param theObject object wich elements should be processed
-    #  @param StepVector vector, defining the direction and value of extrusion 
-    #  @param NbOfSteps the number of steps
-    def ExtrusionSweepObject1D(self, theObject, StepVector, NbOfSteps):
-        if ( isinstance( StepVector, geompy.GEOM._objref_GEOM_Object)):
-            StepVector = GetDirStruct(StepVector)
-        self.editor.ExtrusionSweepObject1D(theObject, StepVector, NbOfSteps)
-    
-    ## Generate new elements by extrusion of the elements belong to object
-    #  @param theObject object wich elements should be processed
-    #  @param StepVector vector, defining the direction and value of extrusion 
-    #  @param NbOfSteps the number of steps    
-    def ExtrusionSweepObject2D(self, theObject, StepVector, NbOfSteps):
-        if ( isinstance( StepVector, geompy.GEOM._objref_GEOM_Object)):
-            StepVector = GetDirStruct(StepVector)
-        self.editor.ExtrusionSweepObject2D(theObject, StepVector, NbOfSteps)
-
-    ## Generate new elements by extrusion of the given elements
-    #  A path of extrusion must be a meshed edge.
-    #  @param IDsOfElements is ids of elements
-    #  @param PathMesh mesh containing a 1D sub-mesh on the edge, along which proceeds the extrusion
-    #  @param PathShape is shape(edge); as the mesh can be complex, the edge is used to define the sub-mesh for the path
-    #  @param NodeStart the first or the last node on the edge. It is used to define the direction of extrusion
-    #  @param HasAngles allows the shape to be rotated around the path to get the resulting mesh in a helical fashion
-    #  @param Angles list of angles
-    #  @param HasRefPoint allows to use base point 
-    #  @param RefPoint point around which the shape is rotated(the mass center of the shape by default).
-    #         User can specify any point as the Base Point and the shape will be rotated with respect to this point.
-    #  @param LinearVariation makes compute rotation angles as linear variation of given Angles along path steps
-    def ExtrusionAlongPath(self, IDsOfElements, PathMesh, PathShape, NodeStart,
-                           HasAngles, Angles, HasRefPoint, RefPoint, LinearVariation=False):
-        if IDsOfElements == []:
-            IDsOfElements = self.GetElementsId()
-        if ( isinstance( RefPoint, geompy.GEOM._objref_GEOM_Object)):
-            RefPoint = GetPointStruct(RefPoint)
-            pass
-        return self.editor.ExtrusionAlongPath(IDsOfElements, PathMesh.GetMesh(), PathShape, NodeStart,
-                                              HasAngles, Angles, HasRefPoint, RefPoint)
-
-    ## Generate new elements by extrusion of the elements belong to object
-    #  A path of extrusion must be a meshed edge.
-    #  @param IDsOfElements is ids of elements
-    #  @param PathMesh mesh containing a 1D sub-mesh on the edge, along which proceeds the extrusion
-    #  @param PathShape is shape(edge); as the mesh can be complex, the edge is used to define the sub-mesh for the path
-    #  @param NodeStart the first or the last node on the edge. It is used to define the direction of extrusion
-    #  @param HasAngles allows the shape to be rotated around the path to get the resulting mesh in a helical fashion
-    #  @param Angles list of angles
-    #  @param HasRefPoint allows to use base point 
-    #  @param RefPoint point around which the shape is rotated(the mass center of the shape by default).
-    #         User can specify any point as the Base Point and the shape will be rotated with respect to this point.
-    #  @param LinearVariation makes compute rotation angles as linear variation of given Angles along path steps
-    def ExtrusionAlongPathObject(self, theObject, PathMesh, PathShape, NodeStart,
-                                 HasAngles, Angles, HasRefPoint, RefPoint, LinearVariation=False):
-        if ( isinstance( RefPoint, geompy.GEOM._objref_GEOM_Object)):
-            RefPoint = GetPointStruct(RefPoint) 
-        return self.editor.ExtrusionAlongPathObject(theObject, PathMesh.GetMesh(), PathShape, NodeStart,
-                                                    HasAngles, Angles, HasRefPoint, RefPoint, LinearVariation)
-    
-    ## Symmetrical copy of mesh elements
-    #  @param IDsOfElements list of elements ids
-    #  @param Mirror is AxisStruct or geom object(point, line, plane)
-    #  @param theMirrorType is  POINT, AXIS or PLANE
-    #  If the Mirror is geom object this parameter is unnecessary
-    #  @param Copy allows to copy element(Copy is 1) or to replace with its mirroring(Copy is 0)
-    def Mirror(self, IDsOfElements, Mirror, theMirrorType, Copy=0):
-        if IDsOfElements == []:
-            IDsOfElements = self.GetElementsId()
-        if ( isinstance( Mirror, geompy.GEOM._objref_GEOM_Object)):
-            Mirror = GetAxisStruct(Mirror)
-        self.editor.Mirror(IDsOfElements, Mirror, theMirrorType, Copy)
-
-    ## Symmetrical copy of object
-    #  @param theObject mesh, submesh or group
-    #  @param Mirror is AxisStruct or geom object(point, line, plane)
-    #  @param theMirrorType is  POINT, AXIS or PLANE
-    #  If the Mirror is geom object this parameter is unnecessary
-    #  @param Copy allows to copy element(Copy is 1) or to replace with its mirroring(Copy is 0)
-    def MirrorObject (self, theObject, Mirror, theMirrorType, Copy=0):
-        if ( isinstance( Mirror, geompy.GEOM._objref_GEOM_Object)):
-            Mirror = GetAxisStruct(Mirror)
-        self.editor.MirrorObject(theObject, Mirror, theMirrorType, Copy)
-
-    ## Translates the elements
-    #  @param IDsOfElements list of elements ids
-    #  @param Vector direction of translation(DirStruct or vector)
-    #  @param Copy allows to copy the translated elements
-    def Translate(self, IDsOfElements, Vector, Copy):
-        if IDsOfElements == []:
-            IDsOfElements = self.GetElementsId()
-        if ( isinstance( Vector, geompy.GEOM._objref_GEOM_Object)):
-            Vector = GetDirStruct(Vector)
-        self.editor.Translate(IDsOfElements, Vector, Copy)
-
-    ## Translates the object
-    #  @param theObject object to translate(mesh, submesh, or group)
-    #  @param Vector direction of translation(DirStruct or geom vector)
-    #  @param Copy allows to copy the translated elements
-    def TranslateObject(self, theObject, Vector, Copy):
-        if ( isinstance( Vector, geompy.GEOM._objref_GEOM_Object)):
-            Vector = GetDirStruct(Vector)
-        self.editor.TranslateObject(theObject, Vector, Copy)
-
-    ## Rotates the elements
-    #  @param IDsOfElements list of elements ids
-    #  @param Axis axis of rotation(AxisStruct or geom line)
-    #  @param AngleInRadians angle of rotation(in radians)
-    #  @param Copy allows to copy the rotated elements   
-    def Rotate (self, IDsOfElements, Axis, AngleInRadians, Copy):
-        if IDsOfElements == []:
-            IDsOfElements = self.GetElementsId()
-        if ( isinstance( Axis, geompy.GEOM._objref_GEOM_Object)):
-            Axis = GetAxisStruct(Axis)
-        self.editor.Rotate(IDsOfElements, Axis, AngleInRadians, Copy)
-
-    ## Rotates the object
-    #  @param theObject object to rotate(mesh, submesh, or group)
-    #  @param Axis axis of rotation(AxisStruct or geom line)
-    #  @param AngleInRadians angle of rotation(in radians)
-    #  @param Copy allows to copy the rotated elements
-    def RotateObject (self, theObject, Axis, AngleInRadians, Copy):
-        self.editor.RotateObject(theObject, Axis, AngleInRadians, Copy)
-
-    ## Find group of nodes close to each other within Tolerance.
-    #  @param Tolerance tolerance value
-    #  @param list of group of nodes
-    def FindCoincidentNodes (self, Tolerance):
-        return self.editor.FindCoincidentNodes(Tolerance)
-
-    ## Find group of nodes close to each other within Tolerance.
-    #  @param Tolerance tolerance value
-    #  @param SubMeshOrGroup SubMesh or Group
-    #  @param list of group of nodes
-    def FindCoincidentNodesOnPart (self, SubMeshOrGroup, Tolerance):
-        return self.editor.FindCoincidentNodesOnPart(SubMeshOrGroup, Tolerance)
-
-    ## Merge nodes
-    #  @param list of group of nodes
-    def MergeNodes (self, GroupsOfNodes):
-        self.editor.MergeNodes(GroupsOfNodes)
-
-    ## Find elements built on the same nodes.
-    #  @param MeshOrSubMeshOrGroup Mesh or SubMesh, or Group of elements for searching
-    #  @return a list of groups of equal elements
-    def FindEqualElements (self, MeshOrSubMeshOrGroup):
-        return self.editor.FindEqualElements(MeshOrSubMeshOrGroup)
-
-    ## Merge elements in each given group.
-    #  @param GroupsOfElementsID groups of elements for merging
-    def MergeElements(self, GroupsOfElementsID):
-        self.editor.MergeElements(GroupsOfElementsID)
-
-    ## Remove all but one of elements built on the same nodes.
-    def MergeEqualElements(self):
-        self.editor.MergeEqualElements()
-        
-    ## Sew free borders
-    def SewFreeBorders (self, FirstNodeID1, SecondNodeID1, LastNodeID1,
-                        FirstNodeID2, SecondNodeID2, LastNodeID2,
-                        CreatePolygons, CreatePolyedrs):
-        return self.editor.SewFreeBorders(FirstNodeID1, SecondNodeID1, LastNodeID1,
-                                          FirstNodeID2, SecondNodeID2, LastNodeID2,
-                                          CreatePolygons, CreatePolyedrs)
-
-    ## Sew conform free borders
-    def SewConformFreeBorders (self, FirstNodeID1, SecondNodeID1, LastNodeID1,
-                               FirstNodeID2, SecondNodeID2):
-        return self.editor.SewConformFreeBorders(FirstNodeID1, SecondNodeID1, LastNodeID1,
-                                                 FirstNodeID2, SecondNodeID2)
-    
-    ## Sew border to side
-    def SewBorderToSide (self, FirstNodeIDOnFreeBorder, SecondNodeIDOnFreeBorder, LastNodeIDOnFreeBorder,
-                         FirstNodeIDOnSide, LastNodeIDOnSide, CreatePolygons, CreatePolyedrs):
-        return self.editor.SewBorderToSide(FirstNodeIDOnFreeBorder, SecondNodeIDOnFreeBorder, LastNodeIDOnFreeBorder,
-                                           FirstNodeIDOnSide, LastNodeIDOnSide, CreatePolygons, CreatePolyedrs)
-
-    ## Sew two sides of a mesh. Nodes belonging to Side1 are
-    #  merged with nodes of elements of Side2.
-    #  Number of elements in theSide1 and in theSide2 must be
-    #  equal and they should have similar node connectivity.
-    #  The nodes to merge should belong to sides borders and
-    #  the first node should be linked to the second.
-    def SewSideElements (self, IDsOfSide1Elements, IDsOfSide2Elements,
-                         NodeID1OfSide1ToMerge, NodeID1OfSide2ToMerge,
-                         NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge):
-        return self.editor.SewSideElements(IDsOfSide1Elements, IDsOfSide2Elements,
-                                           NodeID1OfSide1ToMerge, NodeID1OfSide2ToMerge,
-                                           NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge)
+smesh.init_smesh(salome.myStudy,geompy.geom)
 
-    ## Set new nodes for given element.
-    #  @param ide the element id
-    #  @param newIDs nodes ids
-    #  @return If number of nodes is not corresponded to type of element - returns false
-    def ChangeElemNodes(self, ide, newIDs):
-        return self.editor.ChangeElemNodes(ide, newIDs)
-    
-    ## If during last operation of MeshEditor some nodes were
-    #  created this method returns list of it's IDs, \n
-    #  if new nodes not created - returns empty list
-    def GetLastCreatedNodes(self):
-        return self.editor.GetLastCreatedNodes()
+# Export the methods of smeshD
+for k in dir(smesh):
+  if k[0] == '_':continue
+  globals()[k]=getattr(smesh,k)
+del k
 
-    ## If during last operation of MeshEditor some elements were
-    #  created this method returns list of it's IDs, \n
-    #  if new elements not creared - returns empty list
-    def GetLastCreatedElems(self):
-        return self.editor.GetLastCreatedElems()
diff --git a/src/SMESH_SWIG/smeshDC.py b/src/SMESH_SWIG/smeshDC.py
new file mode 100644 (file)
index 0000000..3715504
--- /dev/null
@@ -0,0 +1,3326 @@
+#  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.py
+#  Author : Francis KLOSS, OCC
+#  Module : SMESH
+
+"""
+ \namespace smesh
+ \brief Module smesh
+"""
+
+import salome
+import geompyDC
+
+import SMESH # necessary for back compatibility
+from   SMESH import *
+
+import StdMeshers
+
+import SALOME
+
+# import NETGENPlugin module if possible
+noNETGENPlugin = 0
+try:
+    import NETGENPlugin
+except ImportError:
+    noNETGENPlugin = 1
+    pass
+
+# Types of algo
+REGULAR    = 1
+PYTHON     = 2
+COMPOSITE  = 3
+
+MEFISTO       = 3
+NETGEN        = 4
+GHS3D         = 5
+FULL_NETGEN   = 6
+NETGEN_2D     = 7
+NETGEN_1D2D   = NETGEN
+NETGEN_1D2D3D = FULL_NETGEN
+NETGEN_FULL   = FULL_NETGEN
+Hexa    = 8
+Hexotic = 9
+BLSURF  = 10
+
+# MirrorType enumeration
+POINT = SMESH_MeshEditor.POINT
+AXIS =  SMESH_MeshEditor.AXIS
+PLANE = SMESH_MeshEditor.PLANE
+
+# Smooth_Method enumeration
+LAPLACIAN_SMOOTH = SMESH_MeshEditor.LAPLACIAN_SMOOTH
+CENTROIDAL_SMOOTH = SMESH_MeshEditor.CENTROIDAL_SMOOTH
+
+# Fineness enumeration(for NETGEN)
+VeryCoarse = 0
+Coarse = 1
+Moderate = 2
+Fine = 3
+VeryFine = 4
+Custom = 5
+
+PrecisionConfusion = 1e-07
+
+def IsEqual(val1, val2, tol=PrecisionConfusion):
+    if abs(val1 - val2) < tol:
+        return True
+    return False
+
+NO_NAME = "NoName"
+
+## Gets object name
+def GetName(obj):
+    ior  = salome.orb.object_to_string(obj)
+    sobj = salome.myStudy.FindObjectIOR(ior)
+    if sobj is None:
+        return NO_NAME
+    else:
+        attr = sobj.FindAttribute("AttributeName")[1]
+        return attr.Value()
+
+    ## Sets name to object
+def SetName(obj, name):
+    ior  = salome.orb.object_to_string(obj)
+    sobj = salome.myStudy.FindObjectIOR(ior)
+    if not sobj is None:
+        attr = sobj.FindAttribute("AttributeName")[1]
+        attr.SetValue(name)
+
+    ## Print error message if a hypothesis was not assigned.
+def TreatHypoStatus(status, hypName, geomName, isAlgo):
+    if isAlgo:
+        hypType = "algorithm"
+    else:
+        hypType = "hypothesis"
+        pass
+    if status == HYP_UNKNOWN_FATAL :
+        reason = "for unknown reason"
+    elif status == HYP_INCOMPATIBLE :
+        reason = "this hypothesis mismatches algorithm"
+    elif status == HYP_NOTCONFORM :
+        reason = "not conform mesh would be built"
+    elif status == HYP_ALREADY_EXIST :
+        reason = hypType + " of the same dimension already assigned to this shape"
+    elif status == HYP_BAD_DIM :
+        reason = hypType + " mismatches shape"
+    elif status == HYP_CONCURENT :
+        reason = "there are concurrent hypotheses on sub-shapes"
+    elif status == HYP_BAD_SUBSHAPE :
+        reason = "shape is neither the main one, nor its subshape, nor a valid group"
+    elif status == HYP_BAD_GEOMETRY:
+        reason = "geometry mismatches algorithm's expectation"
+    elif status == HYP_HIDDEN_ALGO:
+        reason = "it is hidden by an algorithm of upper dimension generating all-dimensions elements"
+    elif status == HYP_HIDING_ALGO:
+        reason = "it hides algorithm(s) of lower dimension by generating all-dimensions elements"
+    else:
+        return
+    hypName = '"' + hypName + '"'
+    geomName= '"' + geomName+ '"'
+    if status < HYP_UNKNOWN_FATAL:
+        print hypName, "was assigned to",    geomName,"but", reason
+    else:
+        print hypName, "was not assigned to",geomName,":", reason
+        pass
+
+class smeshDC(SMESH._objref_SMESH_Gen):
+
+    def init_smesh(self,theStudy,geompyD):
+        self.geompyD=geompyD
+        self.SetGeomEngine(geompyD)
+        self.SetCurrentStudy(theStudy)
+
+    def Mesh(self, obj=0, name=0):
+      return Mesh(self,self.geompyD,obj,name)
+
+    ## Returns long value from enumeration
+    #  Uses for SMESH.FunctorType enumeration
+    def EnumToLong(self,theItem):
+        return theItem._v
+
+    ## Get PointStruct from vertex
+    #  @param theVertex is GEOM object(vertex)
+    #  @return SMESH.PointStruct
+    def GetPointStruct(self,theVertex):
+        [x, y, z] = self.geompyD.PointCoordinates(theVertex)
+        return PointStruct(x,y,z)
+
+    ## Get DirStruct from vector
+    #  @param theVector is GEOM object(vector)
+    #  @return SMESH.DirStruct
+    def GetDirStruct(self,theVector):
+        vertices = self.geompyD.SubShapeAll( theVector, geompyDC.ShapeType["VERTEX"] )
+        if(len(vertices) != 2):
+            print "Error: vector object is incorrect."
+            return None
+        p1 = self.geompyD.PointCoordinates(vertices[0])
+        p2 = self.geompyD.PointCoordinates(vertices[1])
+        pnt = PointStruct(p2[0]-p1[0], p2[1]-p1[1], p2[2]-p1[2])
+        dirst = DirStruct(pnt)
+        return dirst
+
+    ## Make DirStruct from a triplet
+    #  @param x,y,z are vector components
+    #  @return SMESH.DirStruct
+    def MakeDirStruct(self,x,y,z):
+        pnt = PointStruct(x,y,z)
+        return DirStruct(pnt)
+
+    ## Get AxisStruct from object
+    #  @param theObj is GEOM object(line or plane)
+    #  @return SMESH.AxisStruct
+    def GetAxisStruct(self,theObj):
+        edges = self.geompyD.SubShapeAll( theObj, geompyDC.ShapeType["EDGE"] )
+        if len(edges) > 1:
+            vertex1, vertex2 = self.geompyD.SubShapeAll( edges[0], geompyDC.ShapeType["VERTEX"] )
+            vertex3, vertex4 = self.geompyD.SubShapeAll( edges[1], geompyDC.ShapeType["VERTEX"] )
+            vertex1 = self.geompyD.PointCoordinates(vertex1)
+            vertex2 = self.geompyD.PointCoordinates(vertex2)
+            vertex3 = self.geompyD.PointCoordinates(vertex3)
+            vertex4 = self.geompyD.PointCoordinates(vertex4)
+            v1 = [vertex2[0]-vertex1[0], vertex2[1]-vertex1[1], vertex2[2]-vertex1[2]]
+            v2 = [vertex4[0]-vertex3[0], vertex4[1]-vertex3[1], vertex4[2]-vertex3[2]]
+            normal = [ v1[1]*v2[2]-v2[1]*v1[2], v1[2]*v2[0]-v2[2]*v1[0], v1[0]*v2[1]-v2[0]*v1[1] ]
+            axis = AxisStruct(vertex1[0], vertex1[1], vertex1[2], normal[0], normal[1], normal[2])
+            return axis
+        elif len(edges) == 1:
+            vertex1, vertex2 = self.geompyD.SubShapeAll( edges[0], geompyDC.ShapeType["VERTEX"] )
+            p1 = self.geompyD.PointCoordinates( vertex1 )
+            p2 = self.geompyD.PointCoordinates( vertex2 )
+            axis = AxisStruct(p1[0], p1[1], p1[2], p2[0]-p1[0], p2[1]-p1[1], p2[2]-p1[2])
+            return axis
+        return None
+
+    # From SMESH_Gen interface:
+    # ------------------------
+
+    ## Set the current mode
+    def SetEmbeddedMode( self,theMode ):
+        #self.SetEmbeddedMode(theMode)
+        SMESH._objref_SMESH_Gen.SetEmbeddedMode(self,theMode)
+
+    ## Get the current mode
+    def IsEmbeddedMode(self):
+        #return self.IsEmbeddedMode()
+        return SMESH._objref_SMESH_Gen.IsEmbeddedMode(self)
+
+    ## Set the current study
+    def SetCurrentStudy( self, theStudy ):
+        #self.SetCurrentStudy(theStudy)
+        SMESH._objref_SMESH_Gen.SetCurrentStudy(self,theStudy)
+
+    ## Get the current study
+    def GetCurrentStudy(self):
+        #return self.GetCurrentStudy()
+        return SMESH._objref_SMESH_Gen.GetCurrentStudy(self)
+
+    ## Create Mesh object importing data from given UNV file
+    #  @return an instance of Mesh class
+    def CreateMeshesFromUNV( self,theFileName ):
+        aSmeshMesh = SMESH._objref_SMESH_Gen.CreateMeshesFromUNV(self,theFileName)
+        aMesh = Mesh(self, self.geompyD, aSmeshMesh)
+        return aMesh
+
+    ## Create Mesh object(s) importing data from given MED file
+    #  @return a list of Mesh class instances
+    def CreateMeshesFromMED( self,theFileName ):
+        aSmeshMeshes, aStatus = SMESH._objref_SMESH_Gen.CreateMeshesFromMED(self,theFileName)
+        aMeshes = []
+        for iMesh in range(len(aSmeshMeshes)) :
+            aMesh = Mesh(self, self.geompyD, aSmeshMeshes[iMesh])
+            aMeshes.append(aMesh)
+        return aMeshes, aStatus
+
+    ## Create Mesh object importing data from given STL file
+    #  @return an instance of Mesh class
+    def CreateMeshesFromSTL( self, theFileName ):
+        aSmeshMesh = SMESH._objref_SMESH_Gen.CreateMeshesFromSTL(self,theFileName)
+        aMesh = Mesh(self, self.geompyD, aSmeshMesh)
+        return aMesh
+
+    ## From SMESH_Gen interface
+    def GetSubShapesId( self, theMainObject, theListOfSubObjects ):
+        return SMESH._objref_SMESH_Gen.GetSubShapesId(self,theMainObject, theListOfSubObjects)
+
+    ## From SMESH_Gen interface. Creates pattern
+    def GetPattern(self):
+        return SMESH._objref_SMESH_Gen.GetPattern(self)
+
+
+
+    # Filtering. Auxiliary functions:
+    # ------------------------------
+
+    ## Creates an empty criterion
+    #  @return SMESH.Filter.Criterion
+    def GetEmptyCriterion(self):
+        Type = self.EnumToLong(FT_Undefined)
+        Compare = self.EnumToLong(FT_Undefined)
+        Threshold = 0
+        ThresholdStr = ""
+        ThresholdID = ""
+        UnaryOp = self.EnumToLong(FT_Undefined)
+        BinaryOp = self.EnumToLong(FT_Undefined)
+        Tolerance = 1e-07
+        TypeOfElement = ALL
+        Precision = -1 ##@1e-07
+        return Filter.Criterion(Type, Compare, Threshold, ThresholdStr, ThresholdID,
+                                UnaryOp, BinaryOp, Tolerance, TypeOfElement, Precision)
+
+    ## Creates a criterion by given parameters
+    #  @param elementType is the type of elements(NODE, EDGE, FACE, VOLUME)
+    #  @param CritType is type of criterion( FT_Taper, FT_Area, FT_RangeOfIds, FT_LyingOnGeom etc. )
+    #  @param Compare belong to {FT_LessThan, FT_MoreThan, FT_EqualTo}
+    #  @param Treshold is threshold value (range of ids as string, shape, numeric)
+    #  @param UnaryOp is FT_LogicalNOT or FT_Undefined
+    #  @param BinaryOp is binary logical operation FT_LogicalAND, FT_LogicalOR or
+    #                  FT_Undefined(must be for the last criterion in criteria)
+    #  @return SMESH.Filter.Criterion
+    def GetCriterion(self,elementType,
+                     CritType,
+                     Compare = FT_EqualTo,
+                     Treshold="",
+                     UnaryOp=FT_Undefined,
+                     BinaryOp=FT_Undefined):
+        aCriterion = self.GetEmptyCriterion()
+        aCriterion.TypeOfElement = elementType
+        aCriterion.Type = self.EnumToLong(CritType)
+
+        aTreshold = Treshold
+
+        if Compare in [FT_LessThan, FT_MoreThan, FT_EqualTo]:
+            aCriterion.Compare = self.EnumToLong(Compare)
+        elif Compare == "=" or Compare == "==":
+            aCriterion.Compare = self.EnumToLong(FT_EqualTo)
+        elif Compare == "<":
+            aCriterion.Compare = self.EnumToLong(FT_LessThan)
+        elif Compare == ">":
+            aCriterion.Compare = self.EnumToLong(FT_MoreThan)
+        else:
+            aCriterion.Compare = self.EnumToLong(FT_EqualTo)
+            aTreshold = Compare
+
+        if CritType in [FT_BelongToGeom,     FT_BelongToPlane, FT_BelongToGenSurface,
+                        FT_BelongToCylinder, FT_LyingOnGeom]:
+            # Check treshold
+            if isinstance(aTreshold, geompyDC.GEOM._objref_GEOM_Object):
+                aCriterion.ThresholdStr = GetName(aTreshold)
+                aCriterion.ThresholdID = salome.ObjectToID(aTreshold)
+            else:
+                print "Error: Treshold should be a shape."
+                return None
+        elif CritType == FT_RangeOfIds:
+            # Check treshold
+            if isinstance(aTreshold, str):
+                aCriterion.ThresholdStr = aTreshold
+            else:
+                print "Error: Treshold should be a string."
+                return None
+        elif CritType in [FT_FreeBorders, FT_FreeEdges, FT_BadOrientedVolume]:
+            # Here we do not need treshold
+            if aTreshold ==  FT_LogicalNOT:
+                aCriterion.UnaryOp = self.EnumToLong(FT_LogicalNOT)
+            elif aTreshold in [FT_LogicalAND, FT_LogicalOR]:
+                aCriterion.BinaryOp = aTreshold
+        else:
+            # Check treshold
+            try:
+                aTreshold = float(aTreshold)
+                aCriterion.Threshold = aTreshold
+            except:
+                print "Error: Treshold should be a number."
+                return None
+
+        if Treshold ==  FT_LogicalNOT or UnaryOp ==  FT_LogicalNOT:
+            aCriterion.UnaryOp = self.EnumToLong(FT_LogicalNOT)
+
+        if Treshold in [FT_LogicalAND, FT_LogicalOR]:
+            aCriterion.BinaryOp = self.EnumToLong(Treshold)
+
+        if UnaryOp in [FT_LogicalAND, FT_LogicalOR]:
+            aCriterion.BinaryOp = self.EnumToLong(UnaryOp)
+
+        if BinaryOp in [FT_LogicalAND, FT_LogicalOR]:
+            aCriterion.BinaryOp = self.EnumToLong(BinaryOp)
+
+        return aCriterion
+
+    ## Creates filter by given parameters of criterion
+    #  @param elementType is the type of elements in the group
+    #  @param CritType is type of criterion( FT_Taper, FT_Area, FT_RangeOfIds, FT_LyingOnGeom etc. )
+    #  @param Compare belong to {FT_LessThan, FT_MoreThan, FT_EqualTo}
+    #  @param Treshold is threshold value (range of id ids as string, shape, numeric)
+    #  @param UnaryOp is FT_LogicalNOT or FT_Undefined
+    #  @return SMESH_Filter
+    def GetFilter(self,elementType,
+                  CritType=FT_Undefined,
+                  Compare=FT_EqualTo,
+                  Treshold="",
+                  UnaryOp=FT_Undefined):
+        aCriterion = self.GetCriterion(elementType, CritType, Compare, Treshold, UnaryOp, FT_Undefined)
+        aFilterMgr = self.CreateFilterManager()
+        aFilter = aFilterMgr.CreateFilter()
+        aCriteria = []
+        aCriteria.append(aCriterion)
+        aFilter.SetCriteria(aCriteria)
+        return aFilter
+
+    ## Creates numerical functor by its type
+    #  @param theCrierion is FT_...; functor type
+    #  @return SMESH_NumericalFunctor
+    def GetFunctor(self,theCriterion):
+        aFilterMgr = self.CreateFilterManager()
+        if theCriterion == FT_AspectRatio:
+            return aFilterMgr.CreateAspectRatio()
+        elif theCriterion == FT_AspectRatio3D:
+            return aFilterMgr.CreateAspectRatio3D()
+        elif theCriterion == FT_Warping:
+            return aFilterMgr.CreateWarping()
+        elif theCriterion == FT_MinimumAngle:
+            return aFilterMgr.CreateMinimumAngle()
+        elif theCriterion == FT_Taper:
+            return aFilterMgr.CreateTaper()
+        elif theCriterion == FT_Skew:
+            return aFilterMgr.CreateSkew()
+        elif theCriterion == FT_Area:
+            return aFilterMgr.CreateArea()
+        elif theCriterion == FT_Volume3D:
+            return aFilterMgr.CreateVolume3D()
+        elif theCriterion == FT_MultiConnection:
+            return aFilterMgr.CreateMultiConnection()
+        elif theCriterion == FT_MultiConnection2D:
+            return aFilterMgr.CreateMultiConnection2D()
+        elif theCriterion == FT_Length:
+            return aFilterMgr.CreateLength()
+        elif theCriterion == FT_Length2D:
+            return aFilterMgr.CreateLength2D()
+        else:
+            print "Error: given parameter is not numerucal functor type."
+
+import omniORB
+#Register the new proxy for SMESH_Gen
+omniORB.registerObjref(SMESH._objref_SMESH_Gen._NP_RepositoryId, smeshDC)
+
+
+## Mother class to define algorithm, recommended to do not use directly.
+#
+#  More details.
+class Mesh_Algorithm:
+    #  @class Mesh_Algorithm
+    #  @brief Class Mesh_Algorithm
+
+    #def __init__(self,smesh):
+    #    self.smesh=smesh
+    def __init__(self):
+        self.mesh = None
+        self.geom = None
+        self.subm = None
+        self.algo = None
+
+    ## Find hypothesis in study by its type name and parameters.
+    #  Find only those hypothesis, which was created in smeshpyD engine.
+    def FindHypothesis (self, hypname, args, CompareMethod, smeshpyD):
+        study = smeshpyD.GetCurrentStudy()
+        #to do: find component by smeshpyD object, not by its data type
+        scomp = study.FindComponent(smeshpyD.ComponentDataType())
+        if scomp is not None:
+            res,hypRoot = scomp.FindSubObject(SMESH.Tag_HypothesisRoot)
+            # is hypotheses root label exists?
+            if res and hypRoot is not None:
+                iter = study.NewChildIterator(hypRoot)
+                # check all published hypotheses
+                while iter.More():
+                    hypo_so_i = iter.Value()
+                    attr = hypo_so_i.FindAttribute("AttributeIOR")[1]
+                    if attr is not None:
+                        anIOR = attr.Value()
+                        hypo_o_i = salome.orb.string_to_object(anIOR)
+                        if hypo_o_i is not None:
+                            # is hypothesis?
+                            hypo_i = hypo_o_i._narrow(SMESH.SMESH_Hypothesis)
+                            if hypo_i is not None:
+                                # belongs to this engine?
+                                if smeshpyD.GetObjectId(hypo_i) > 0:
+                                    # is it the needed hypothesis?
+                                    if hypo_i.GetName() == hypname:
+                                        # check args
+                                        if CompareMethod(hypo_i, args):
+                                            # found!!!
+                                            return hypo_i
+                                        pass
+                                    pass
+                                pass
+                            pass
+                        pass
+                    iter.Next()
+                    pass
+                pass
+            pass
+        return None
+
+    ## Find algorithm in study by its type name.
+    #  Find only those algorithm, which was created in smeshpyD engine.
+    def FindAlgorithm (self, algoname, smeshpyD):
+        study = smeshpyD.GetCurrentStudy()
+        #to do: find component by smeshpyD object, not by its data type
+        scomp = study.FindComponent(smeshpyD.ComponentDataType())
+        if scomp is not None:
+            res,hypRoot = scomp.FindSubObject(SMESH.Tag_AlgorithmsRoot)
+            # is algorithms root label exists?
+            if res and hypRoot is not None:
+                iter = study.NewChildIterator(hypRoot)
+                # check all published algorithms
+                while iter.More():
+                    algo_so_i = iter.Value()
+                    attr = algo_so_i.FindAttribute("AttributeIOR")[1]
+                    if attr is not None:
+                        anIOR = attr.Value()
+                        algo_o_i = salome.orb.string_to_object(anIOR)
+                        if algo_o_i is not None:
+                            # is algorithm?
+                            algo_i = algo_o_i._narrow(SMESH.SMESH_Algo)
+                            if algo_i is not None:
+                                # belongs to this engine?
+                                if smeshpyD.GetObjectId(algo_i) > 0:
+                                    # is it the needed algorithm?
+                                    if algo_i.GetName() == algoname:
+                                        # found!!!
+                                        return algo_i
+                                    pass
+                                pass
+                            pass
+                        pass
+                    iter.Next()
+                    pass
+                pass
+            pass
+        return None
+
+    ## If the algorithm is global, return 0; \n
+    #  else return the submesh associated to this algorithm.
+    def GetSubMesh(self):
+        return self.subm
+
+    ## Return the wrapped mesher.
+    def GetAlgorithm(self):
+        return self.algo
+
+    ## Get list of hypothesis that can be used with this algorithm
+    def GetCompatibleHypothesis(self):
+        mylist = []
+        if self.algo:
+            mylist = self.algo.GetCompatibleHypothesis()
+        return mylist
+
+    ## Get name of algo
+    def GetName(self):
+        GetName(self.algo)
+
+    ## Set name to algo
+    def SetName(self, name):
+        SetName(self.algo, name)
+
+    ## Get id of algo
+    def GetId(self):
+        return self.algo.GetId()
+
+    ## Private method.
+    def Create(self, mesh, geom, hypo, so="libStdMeshersEngine.so"):
+        if geom is None:
+            raise RuntimeError, "Attemp to create " + hypo + " algoritm on None shape"
+        algo = self.FindAlgorithm(hypo, mesh.smeshpyD)
+        if algo is None:
+            algo = mesh.smeshpyD.CreateHypothesis(hypo, so)
+            pass
+        self.Assign(algo, mesh, geom)
+        return self.algo
+
+    ## Private method
+    def Assign(self, algo, mesh, geom):
+        if geom is None:
+            raise RuntimeError, "Attemp to create " + algo + " algoritm on None shape"
+        self.mesh = mesh
+        piece = mesh.geom
+        if not geom:
+            self.geom = piece
+        else:
+            self.geom = geom
+            name = GetName(geom)
+            if name==NO_NAME:
+                name = mesh.geompyD.SubShapeName(geom, piece)
+                mesh.geompyD.addToStudyInFather(piece, geom, name)
+            self.subm = mesh.mesh.GetSubMesh(geom, algo.GetName())
+
+        self.algo = algo
+        status = mesh.mesh.AddHypothesis(self.geom, self.algo)
+        TreatHypoStatus( status, algo.GetName(), GetName(self.geom), True )
+
+    def CompareHyp (self, hyp, args):
+        print "CompareHyp is not implemented for ", self.__class__.__name__, ":", hyp.GetName()
+        return False
+
+    def CompareEqualHyp (self, hyp, args):
+        return True
+
+    ## Private method
+    def Hypothesis (self, hyp, args=[], so="libStdMeshersEngine.so",
+                    UseExisting=0, CompareMethod=""):
+        hypo = None
+        if UseExisting:
+            if CompareMethod == "": CompareMethod = self.CompareHyp
+            hypo = self.FindHypothesis(hyp, args, CompareMethod, self.mesh.smeshpyD)
+            pass
+        if hypo is None:
+            hypo = self.mesh.smeshpyD.CreateHypothesis(hyp, so)
+            a = ""
+            s = "="
+            i = 0
+            n = len(args)
+            while i<n:
+                a = a + s + str(args[i])
+                s = ","
+                i = i + 1
+                pass
+            SetName(hypo, hyp + a)
+            pass
+        status = self.mesh.mesh.AddHypothesis(self.geom, hypo)
+        TreatHypoStatus( status, GetName(hypo), GetName(self.geom), 0 )
+        return hypo
+
+
+# Public class: Mesh_Segment
+# --------------------------
+
+## Class to define a segment 1D algorithm for discretization
+#
+#  More details.
+class Mesh_Segment(Mesh_Algorithm):
+
+    ## Private constructor.
+    def __init__(self, mesh, geom=0):
+        Mesh_Algorithm.__init__(self)
+        self.Create(mesh, geom, "Regular_1D")
+
+    ## Define "LocalLength" hypothesis to cut an edge in several segments with the same length
+    #  @param l for the length of segments that cut an edge
+    #  @param UseExisting if ==true - search existing hypothesis created with
+    #                     same parameters, else (default) - create new
+    #  @param p precision, used for number of segments calculation.
+    #           It must be pozitive, meaningfull values are in range [0,1].
+    #           In general, number of segments is calculated with formula:
+    #           nb = ceil((edge_length / l) - p)
+    #           Function ceil rounds its argument to the higher integer.
+    #           So, p=0 means rounding of (edge_length / l) to the higher integer,
+    #               p=0.5 means rounding of (edge_length / l) to the nearest integer,
+    #               p=1 means rounding of (edge_length / l) to the lower integer.
+    #           Default value is 1e-07.
+    def LocalLength(self, l, UseExisting=0, p=1e-07):
+        hyp = self.Hypothesis("LocalLength", [l,p], UseExisting=UseExisting,
+                              CompareMethod=self.CompareLocalLength)
+        hyp.SetLength(l)
+        hyp.SetPrecision(p)
+        return hyp
+
+    ## Check if the given "LocalLength" hypothesis has the same parameters as given arguments
+    def CompareLocalLength(self, hyp, args):
+        if IsEqual(hyp.GetLength(), args[0]):
+            return IsEqual(hyp.GetPrecision(), args[1])
+        return False
+
+    ## Define "NumberOfSegments" hypothesis to cut an edge in several fixed number of segments
+    #  @param n for the number of segments that cut an edge
+    #  @param s for the scale factor (optional)
+    #  @param UseExisting if ==true - search existing hypothesis created with
+    #                     same parameters, else (default) - create new
+    def NumberOfSegments(self, n, s=[], UseExisting=0):
+        if s == []:
+            hyp = self.Hypothesis("NumberOfSegments", [n], UseExisting=UseExisting,
+                                  CompareMethod=self.CompareNumberOfSegments)
+        else:
+            hyp = self.Hypothesis("NumberOfSegments", [n,s], UseExisting=UseExisting,
+                                  CompareMethod=self.CompareNumberOfSegments)
+            hyp.SetDistrType( 1 )
+            hyp.SetScaleFactor(s)
+        hyp.SetNumberOfSegments(n)
+        return hyp
+
+    ## Check if the given "NumberOfSegments" hypothesis has the same parameters as given arguments
+    def CompareNumberOfSegments(self, hyp, args):
+        if hyp.GetNumberOfSegments() == args[0]:
+            if len(args) == 1:
+                return True
+            else:
+                if hyp.GetDistrType() == 1:
+                    if IsEqual(hyp.GetScaleFactor(), args[1]):
+                        return True
+        return False
+
+    ## Define "Arithmetic1D" hypothesis to cut an edge in several segments with arithmetic length increasing
+    #  @param start for the length of the first segment
+    #  @param end   for the length of the last  segment
+    #  @param UseExisting if ==true - search existing hypothesis created with
+    #                     same parameters, else (default) - create new
+    def Arithmetic1D(self, start, end, UseExisting=0):
+        hyp = self.Hypothesis("Arithmetic1D", [start, end], UseExisting=UseExisting,
+                              CompareMethod=self.CompareArithmetic1D)
+        hyp.SetLength(start, 1)
+        hyp.SetLength(end  , 0)
+        return hyp
+
+    ## Check if the given "Arithmetic1D" hypothesis has the same parameters as given arguments
+    def CompareArithmetic1D(self, hyp, args):
+        if IsEqual(hyp.GetLength(1), args[0]):
+            if IsEqual(hyp.GetLength(0), args[1]):
+                return True
+        return False
+
+    ## Define "StartEndLength" hypothesis to cut an edge in several segments with geometric length increasing
+    #  @param start for the length of the first segment
+    #  @param end   for the length of the last  segment
+    #  @param UseExisting if ==true - search existing hypothesis created with
+    #                     same parameters, else (default) - create new
+    def StartEndLength(self, start, end, UseExisting=0):
+        hyp = self.Hypothesis("StartEndLength", [start, end], UseExisting=UseExisting,
+                              CompareMethod=self.CompareStartEndLength)
+        hyp.SetLength(start, 1)
+        hyp.SetLength(end  , 0)
+        return hyp
+
+    ## Check if the given "StartEndLength" hypothesis has the same parameters as given arguments
+    def CompareStartEndLength(self, hyp, args):
+        if IsEqual(hyp.GetLength(1), args[0]):
+            if IsEqual(hyp.GetLength(0), args[1]):
+                return True
+        return False
+
+    ## Define "Deflection1D" hypothesis
+    #  @param d for the deflection
+    #  @param UseExisting if ==true - search existing hypothesis created with
+    #                     same parameters, else (default) - create new
+    def Deflection1D(self, d, UseExisting=0):
+        hyp = self.Hypothesis("Deflection1D", [d], UseExisting=UseExisting,
+                              CompareMethod=self.CompareDeflection1D)
+        hyp.SetDeflection(d)
+        return hyp
+
+    ## Check if the given "Deflection1D" hypothesis has the same parameters as given arguments
+    def CompareDeflection1D(self, hyp, args):
+        return IsEqual(hyp.GetDeflection(), args[0])
+
+    ## Define "Propagation" hypothesis that propagate all other hypothesis on all others edges that are in
+    #  the opposite side in the case of quadrangular faces
+    def Propagation(self):
+        return self.Hypothesis("Propagation", UseExisting=1, CompareMethod=self.CompareEqualHyp)
+
+    ## Define "AutomaticLength" hypothesis
+    #  @param fineness for the fineness [0-1]
+    #  @param UseExisting if ==true - search existing hypothesis created with
+    #                     same parameters, else (default) - create new
+    def AutomaticLength(self, fineness=0, UseExisting=0):
+        hyp = self.Hypothesis("AutomaticLength",[fineness],UseExisting=UseExisting,
+                              CompareMethod=self.CompareAutomaticLength)
+        hyp.SetFineness( fineness )
+        return hyp
+
+    ## Check if the given "AutomaticLength" hypothesis has the same parameters as given arguments
+    def CompareAutomaticLength(self, hyp, args):
+        return IsEqual(hyp.GetFineness(), args[0])
+
+    ## Define "SegmentLengthAroundVertex" hypothesis
+    #  @param length for the segment length
+    #  @param vertex for the length localization: vertex index [0,1] | vertex object.
+    #         Any other integer value means what hypo will be set on the
+    #         whole 1D shape, where Mesh_Segment algorithm is assigned.
+    #  @param UseExisting if ==true - search existing hypothesis created with
+    #                     same parameters, else (default) - create new
+    def LengthNearVertex(self, length, vertex=0, UseExisting=0):
+        import types
+        store_geom = self.geom
+        if type(vertex) is types.IntType:
+            if vertex == 0 or vertex == 1:
+                vertex = self.mesh.geompyD.SubShapeAllSorted(self.geom, geompyDC.ShapeType["VERTEX"])[vertex]
+                self.geom = vertex
+                pass
+            pass
+        else:
+            self.geom = vertex
+            pass
+        ### 0D algorithm
+        if self.geom is None:
+            raise RuntimeError, "Attemp to create SegmentAroundVertex_0D algoritm on None shape"
+        name = GetName(self.geom)
+        if name == NO_NAME:
+            piece = self.mesh.geom
+            name = self.mesh.geompyD.SubShapeName(self.geom, piece)
+            self.mesh.geompyD.addToStudyInFather(piece, self.geom, name)
+        algo = self.FindAlgorithm("SegmentAroundVertex_0D", self.mesh.smeshpyD)
+        if algo is None:
+            algo = self.mesh.smeshpyD.CreateHypothesis("SegmentAroundVertex_0D", "libStdMeshersEngine.so")
+            pass
+        status = self.mesh.mesh.AddHypothesis(self.geom, algo)
+        TreatHypoStatus(status, "SegmentAroundVertex_0D", name, True)
+        ###
+        hyp = self.Hypothesis("SegmentLengthAroundVertex", [length], UseExisting=UseExisting,
+                              CompareMethod=self.CompareLengthNearVertex)
+        self.geom = store_geom
+        hyp.SetLength( length )
+        return hyp
+
+    ## Check if the given "LengthNearVertex" hypothesis has the same parameters as given arguments
+    def CompareLengthNearVertex(self, hyp, args):
+        return IsEqual(hyp.GetLength(), args[0])
+
+    ## Define "QuadraticMesh" hypothesis, 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.
+    def QuadraticMesh(self):
+        hyp = self.Hypothesis("QuadraticMesh", UseExisting=1, CompareMethod=self.CompareEqualHyp)
+        return hyp
+
+# Public class: Mesh_CompositeSegment
+# --------------------------
+
+## Class to define a segment 1D algorithm for discretization
+#
+#  More details.
+class Mesh_CompositeSegment(Mesh_Segment):
+
+    ## Private constructor.
+    def __init__(self, mesh, geom=0):
+        self.Create(mesh, geom, "CompositeSegment_1D")
+
+
+# Public class: Mesh_Segment_Python
+# ---------------------------------
+
+## Class to define a segment 1D algorithm for discretization with python function
+#
+#  More details.
+class Mesh_Segment_Python(Mesh_Segment):
+
+    ## Private constructor.
+    def __init__(self, mesh, geom=0):
+        import Python1dPlugin
+        self.Create(mesh, geom, "Python_1D", "libPython1dEngine.so")
+
+    ## Define "PythonSplit1D" hypothesis based on the Erwan Adam patch, awaiting equivalent SALOME functionality
+    #  @param n for the number of segments that cut an edge
+    #  @param func for the python function that calculate the length of all segments
+    #  @param UseExisting if ==true - search existing hypothesis created with
+    #                     same parameters, else (default) - create new
+    def PythonSplit1D(self, n, func, UseExisting=0):
+        hyp = self.Hypothesis("PythonSplit1D", [n], "libPython1dEngine.so",
+                              UseExisting=UseExisting, CompareMethod=self.ComparePythonSplit1D)
+        hyp.SetNumberOfSegments(n)
+        hyp.SetPythonLog10RatioFunction(func)
+        return hyp
+
+    ## Check if the given "PythonSplit1D" hypothesis has the same parameters as given arguments
+    def ComparePythonSplit1D(self, hyp, args):
+        #if hyp.GetNumberOfSegments() == args[0]:
+        #    if hyp.GetPythonLog10RatioFunction() == args[1]:
+        #        return True
+        return False
+
+# Public class: Mesh_Triangle
+# ---------------------------
+
+## Class to define a triangle 2D algorithm
+#
+#  More details.
+class Mesh_Triangle(Mesh_Algorithm):
+
+    # default values
+    algoType = 0
+    params = 0
+
+    _angleMeshS = 8
+    _gradation  = 1.1
+
+    ## Private constructor.
+    def __init__(self, mesh, algoType, geom=0):
+        Mesh_Algorithm.__init__(self)
+
+        self.algoType = algoType
+        if algoType == MEFISTO:
+            self.Create(mesh, geom, "MEFISTO_2D")
+            pass
+        elif algoType == BLSURF:
+            import BLSURFPlugin
+            self.Create(mesh, geom, "BLSURF", "libBLSURFEngine.so")
+            self.SetPhysicalMesh()
+        elif algoType == NETGEN:
+            if noNETGENPlugin:
+                print "Warning: NETGENPlugin module unavailable"
+                pass
+            self.Create(mesh, geom, "NETGEN_2D", "libNETGENEngine.so")
+            pass
+        elif algoType == NETGEN_2D:
+            if noNETGENPlugin:
+                print "Warning: NETGENPlugin module unavailable"
+                pass
+            self.Create(mesh, geom, "NETGEN_2D_ONLY", "libNETGENEngine.so")
+            pass
+
+    ## Define "MaxElementArea" hypothesis to give the maximum area of each triangle
+    #  @param area for the maximum area of each triangle
+    #  @param UseExisting if ==true - search existing hypothesis created with
+    #                     same parameters, else (default) - create new
+    #
+    #  Only for algoType == MEFISTO || NETGEN_2D
+    def MaxElementArea(self, area, UseExisting=0):
+        if self.algoType == MEFISTO or self.algoType == NETGEN_2D:
+            hyp = self.Hypothesis("MaxElementArea", [area], UseExisting=UseExisting,
+                                  CompareMethod=self.CompareMaxElementArea)
+            hyp.SetMaxElementArea(area)
+            return hyp
+        elif self.algoType == NETGEN:
+            print "Netgen 1D-2D algo doesn't support this hypothesis"
+            return None
+
+    ## Check if the given "MaxElementArea" hypothesis has the same parameters as given arguments
+    def CompareMaxElementArea(self, hyp, args):
+        return IsEqual(hyp.GetMaxElementArea(), args[0])
+
+    ## Define "LengthFromEdges" hypothesis to build triangles
+    #  based on the length of the edges taken from the wire
+    #
+    #  Only for algoType == MEFISTO || NETGEN_2D
+    def LengthFromEdges(self):
+        if self.algoType == MEFISTO or self.algoType == NETGEN_2D:
+            hyp = self.Hypothesis("LengthFromEdges", UseExisting=1, CompareMethod=self.CompareEqualHyp)
+            return hyp
+        elif self.algoType == NETGEN:
+            print "Netgen 1D-2D algo doesn't support this hypothesis"
+            return None
+
+    ## Set PhysicalMesh
+    #  @param thePhysicalMesh is:
+    #  DefaultSize or Custom
+    def SetPhysicalMesh(self, thePhysicalMesh=1):
+        if self.params == 0:
+            self.Parameters()
+        self.params.SetPhysicalMesh(thePhysicalMesh)
+
+    ## Set PhySize flag
+    def SetPhySize(self, theVal):
+        if self.params == 0:
+            self.Parameters()
+        self.params.SetPhySize(theVal)
+
+    ## Set GeometricMesh
+    #  @param theGeometricMesh is:
+    #  DefaultGeom or Custom
+    def SetGeometricMesh(self, theGeometricMesh=0):
+        if self.params == 0:
+            self.Parameters()
+        if self.params.GetPhysicalMesh() == 0: theGeometricMesh = 1
+        self.params.SetGeometricMesh(theGeometricMesh)
+
+    ## Set AngleMeshS flag
+    def SetAngleMeshS(self, theVal=_angleMeshS):
+        if self.params == 0:
+            self.Parameters()
+        if self.params.GetGeometricMesh() == 0: theVal = self._angleMeshS
+        self.params.SetAngleMeshS(theVal)
+
+    ## Set Gradation flag
+    def SetGradation(self, theVal=_gradation):
+        if self.params == 0:
+            self.Parameters()
+        if self.params.GetGeometricMesh() == 0: theVal = self._gradation
+        self.params.SetGradation(theVal)
+
+    ## Set QuadAllowed flag
+    #
+    #  Only for algoType == NETGEN || NETGEN_2D
+    def SetQuadAllowed(self, toAllow=True):
+        if self.algoType == NETGEN_2D:
+            if toAllow: # add QuadranglePreference
+                self.Hypothesis("QuadranglePreference", UseExisting=1, CompareMethod=self.CompareEqualHyp)
+            else:       # remove QuadranglePreference
+                for hyp in self.mesh.GetHypothesisList( self.geom ):
+                    if hyp.GetName() == "QuadranglePreference":
+                        self.mesh.RemoveHypothesis( self.geom, hyp )
+                        pass
+                    pass
+                pass
+            return
+        if self.params == 0:
+            self.Parameters()
+        if self.params:
+            self.params.SetQuadAllowed(toAllow)
+            return
+
+    ## Define "Netgen 2D Parameters" hypothesis
+    #
+    #  Only for algoType == NETGEN
+    def Parameters(self):
+        if self.algoType == NETGEN:
+            self.params = self.Hypothesis("NETGEN_Parameters_2D", [],
+                                          "libNETGENEngine.so", UseExisting=0)
+            return self.params
+        elif self.algoType == MEFISTO:
+            print "Mefisto algo doesn't support NETGEN_Parameters_2D hypothesis"
+            return None
+        elif self.algoType == NETGEN_2D:
+            print "NETGEN_2D_ONLY algo doesn't support 'NETGEN_Parameters_2D' hypothesis"
+            print "NETGEN_2D_ONLY uses 'MaxElementArea' and 'LengthFromEdges' ones"
+            return None
+        elif self.algoType == BLSURF:
+            self.params = self.Hypothesis("BLSURF_Parameters", [],
+                                          "libBLSURFEngine.so", UseExisting=0)
+            return self.params
+        return None
+
+    ## Set MaxSize
+    #
+    #  Only for algoType == NETGEN
+    def SetMaxSize(self, theSize):
+        if self.params == 0:
+            self.Parameters()
+        if self.params is not None:
+            self.params.SetMaxSize(theSize)
+
+    ## Set SecondOrder flag
+    #
+    #  Only for algoType == NETGEN
+    def SetSecondOrder(self, theVal):
+        if self.params == 0:
+            self.Parameters()
+        if self.params is not None:
+            self.params.SetSecondOrder(theVal)
+
+    ## Set Optimize flag
+    #
+    #  Only for algoType == NETGEN
+    def SetOptimize(self, theVal):
+        if self.params == 0:
+            self.Parameters()
+        if self.params is not None:
+            self.params.SetOptimize(theVal)
+
+    ## Set Fineness
+    #  @param theFineness is:
+    #  VeryCoarse, Coarse, Moderate, Fine, VeryFine or Custom
+    #
+    #  Only for algoType == NETGEN
+    def SetFineness(self, theFineness):
+        if self.params == 0:
+            self.Parameters()
+        if self.params is not None:
+            self.params.SetFineness(theFineness)
+
+    ## Set GrowthRate
+    #
+    #  Only for algoType == NETGEN
+    def SetGrowthRate(self, theRate):
+        if self.params == 0:
+            self.Parameters()
+        if self.params is not None:
+            self.params.SetGrowthRate(theRate)
+
+    ## Set NbSegPerEdge
+    #
+    #  Only for algoType == NETGEN
+    def SetNbSegPerEdge(self, theVal):
+        if self.params == 0:
+            self.Parameters()
+        if self.params is not None:
+            self.params.SetNbSegPerEdge(theVal)
+
+    ## Set NbSegPerRadius
+    #
+    #  Only for algoType == NETGEN
+    def SetNbSegPerRadius(self, theVal):
+        if self.params == 0:
+            self.Parameters()
+        if self.params is not None:
+            self.params.SetNbSegPerRadius(theVal)
+
+    ## Set Decimesh flag
+    def SetDecimesh(self, toAllow=False):
+        if self.params == 0:
+            self.Parameters()
+        self.params.SetDecimesh(toAllow)
+
+    pass
+
+
+# Public class: Mesh_Quadrangle
+# -----------------------------
+
+## Class to define a quadrangle 2D algorithm
+#
+#  More details.
+class Mesh_Quadrangle(Mesh_Algorithm):
+
+    ## Private constructor.
+    def __init__(self, mesh, geom=0):
+        Mesh_Algorithm.__init__(self)
+        self.Create(mesh, geom, "Quadrangle_2D")
+
+    ## 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
+    def QuadranglePreference(self):
+        hyp = self.Hypothesis("QuadranglePreference", UseExisting=1,
+                              CompareMethod=self.CompareEqualHyp)
+        return hyp
+
+# Public class: Mesh_Tetrahedron
+# ------------------------------
+
+## Class to define a tetrahedron 3D algorithm
+#
+#  More details.
+class Mesh_Tetrahedron(Mesh_Algorithm):
+
+    params = 0
+    algoType = 0
+
+    ## Private constructor.
+    def __init__(self, mesh, algoType, geom=0):
+        Mesh_Algorithm.__init__(self)
+
+        if algoType == NETGEN:
+            self.Create(mesh, geom, "NETGEN_3D", "libNETGENEngine.so")
+            pass
+
+        elif algoType == GHS3D:
+            import GHS3DPlugin
+            self.Create(mesh, geom, "GHS3D_3D" , "libGHS3DEngine.so")
+            pass
+
+        elif algoType == FULL_NETGEN:
+            if noNETGENPlugin:
+                print "Warning: NETGENPlugin module has not been imported."
+            self.Create(mesh, geom, "NETGEN_2D3D", "libNETGENEngine.so")
+            pass
+
+        self.algoType = algoType
+
+    ## Define "MaxElementVolume" hypothesis to give the maximun volume of each tetrahedral
+    #  @param vol for the maximum volume of each tetrahedral
+    #  @param UseExisting if ==true - search existing hypothesis created with
+    #                     same parameters, else (default) - create new
+    def MaxElementVolume(self, vol, UseExisting=0):
+        hyp = self.Hypothesis("MaxElementVolume", [vol], UseExisting=UseExisting,
+                              CompareMethod=self.CompareMaxElementVolume)
+        hyp.SetMaxElementVolume(vol)
+        return hyp
+
+    ## Check if the given "MaxElementVolume" hypothesis has the same parameters as given arguments
+    def CompareMaxElementVolume(self, hyp, args):
+        return IsEqual(hyp.GetMaxElementVolume(), args[0])
+
+    ## Define "Netgen 3D Parameters" hypothesis
+    def Parameters(self):
+        if (self.algoType == FULL_NETGEN):
+            self.params = self.Hypothesis("NETGEN_Parameters", [],
+                                          "libNETGENEngine.so", UseExisting=0)
+            return self.params
+        else:
+            print "Algo doesn't support this hypothesis"
+            return None
+
+    ## Set MaxSize
+    def SetMaxSize(self, theSize):
+        if self.params == 0:
+            self.Parameters()
+        self.params.SetMaxSize(theSize)
+
+    ## Set SecondOrder flag
+    def SetSecondOrder(self, theVal):
+        if self.params == 0:
+            self.Parameters()
+        self.params.SetSecondOrder(theVal)
+
+    ## Set Optimize flag
+    def SetOptimize(self, theVal):
+        if self.params == 0:
+            self.Parameters()
+        self.params.SetOptimize(theVal)
+
+    ## Set Fineness
+    #  @param theFineness is:
+    #  VeryCoarse, Coarse, Moderate, Fine, VeryFine or Custom
+    def SetFineness(self, theFineness):
+        if self.params == 0:
+            self.Parameters()
+        self.params.SetFineness(theFineness)
+
+    ## Set GrowthRate
+    def SetGrowthRate(self, theRate):
+        if self.params == 0:
+            self.Parameters()
+        self.params.SetGrowthRate(theRate)
+
+    ## Set NbSegPerEdge
+    def SetNbSegPerEdge(self, theVal):
+        if self.params == 0:
+            self.Parameters()
+        self.params.SetNbSegPerEdge(theVal)
+
+    ## Set NbSegPerRadius
+    def SetNbSegPerRadius(self, theVal):
+        if self.params == 0:
+            self.Parameters()
+        self.params.SetNbSegPerRadius(theVal)
+
+# Public class: Mesh_Hexahedron
+# ------------------------------
+
+## Class to define a hexahedron 3D algorithm
+#
+#  More details.
+class Mesh_Hexahedron(Mesh_Algorithm):
+
+    params = 0
+    algoType = 0
+
+    ## Private constructor.
+    def __init__(self, mesh, algoType=Hexa, geom=0):
+        Mesh_Algorithm.__init__(self)
+
+        self.algoType = algoType
+
+        if algoType == Hexa:
+            self.Create(mesh, geom, "Hexa_3D")
+            pass
+
+        elif algoType == Hexotic:
+            import HexoticPlugin
+            self.Create(mesh, geom, "Hexotic_3D", "libHexoticEngine.so")
+            pass
+
+    ## Define "MinMaxQuad" hypothesis to give the three hexotic parameters
+    def MinMaxQuad(self, min=3, max=8, quad=True):
+        self.params = self.Hypothesis("Hexotic_Parameters", [], "libHexoticEngine.so",
+                                      UseExisting=0)
+        self.params.SetHexesMinLevel(min)
+        self.params.SetHexesMaxLevel(max)
+        self.params.SetHexoticQuadrangles(quad)
+        return self.params
+
+# Deprecated, only for compatibility!
+# Public class: Mesh_Netgen
+# ------------------------------
+
+## Class to define a NETGEN-based 2D or 3D algorithm
+#  that need no discrete boundary (i.e. independent)
+#
+#  This class is deprecated, only for compatibility!
+#
+#  More details.
+class Mesh_Netgen(Mesh_Algorithm):
+
+    is3D = 0
+
+    ## Private constructor.
+    def __init__(self, mesh, is3D, geom=0):
+        Mesh_Algorithm.__init__(self)
+
+        if noNETGENPlugin:
+            print "Warning: NETGENPlugin module has not been imported."
+
+        self.is3D = is3D
+        if is3D:
+            self.Create(mesh, geom, "NETGEN_2D3D", "libNETGENEngine.so")
+            pass
+
+        else:
+            self.Create(mesh, geom, "NETGEN_2D", "libNETGENEngine.so")
+            pass
+
+    ## Define hypothesis containing parameters of the algorithm
+    def Parameters(self):
+        if self.is3D:
+            hyp = self.Hypothesis("NETGEN_Parameters", [],
+                                  "libNETGENEngine.so", UseExisting=0)
+        else:
+            hyp = self.Hypothesis("NETGEN_Parameters_2D", [],
+                                  "libNETGENEngine.so", UseExisting=0)
+        return hyp
+
+# Public class: Mesh_Projection1D
+# ------------------------------
+
+## Class to define a projection 1D algorithm
+#
+#  More details.
+class Mesh_Projection1D(Mesh_Algorithm):
+
+    ## Private constructor.
+    def __init__(self, mesh, geom=0):
+        Mesh_Algorithm.__init__(self)
+        self.Create(mesh, geom, "Projection_1D")
+
+    ## Define "Source Edge" hypothesis, specifying a meshed edge to
+    #  take a mesh pattern from, and optionally association of vertices
+    #  between the source edge and a target one (where a hipothesis is assigned to)
+    #  @param edge to take nodes distribution from
+    #  @param mesh to take nodes distribution from (optional)
+    #  @param srcV is vertex of \a edge to associate with \a tgtV (optional)
+    #  @param tgtV is vertex of \a the edge where the algorithm is assigned,
+    #  to associate with \a srcV (optional)
+    #  @param UseExisting if ==true - search existing hypothesis created with
+    #                     same parameters, else (default) - create new
+    def SourceEdge(self, edge, mesh=None, srcV=None, tgtV=None, UseExisting=0):
+        hyp = self.Hypothesis("ProjectionSource1D", [edge,mesh,srcV,tgtV],
+                              UseExisting=0)
+                              #UseExisting=UseExisting, CompareMethod=self.CompareSourceEdge)
+        hyp.SetSourceEdge( edge )
+        if not mesh is None and isinstance(mesh, Mesh):
+            mesh = mesh.GetMesh()
+        hyp.SetSourceMesh( mesh )
+        hyp.SetVertexAssociation( srcV, tgtV )
+        return hyp
+
+    ## Check if the given "SourceEdge" hypothesis has the same parameters as given arguments
+    #def CompareSourceEdge(self, hyp, args):
+    #    # seems to be not really useful to reuse existing "SourceEdge" hypothesis
+    #    return False
+
+
+# Public class: Mesh_Projection2D
+# ------------------------------
+
+## Class to define a projection 2D algorithm
+#
+#  More details.
+class Mesh_Projection2D(Mesh_Algorithm):
+
+    ## Private constructor.
+    def __init__(self, mesh, geom=0):
+        Mesh_Algorithm.__init__(self)
+        self.Create(mesh, geom, "Projection_2D")
+
+    ## Define "Source Face" hypothesis, specifying a meshed face to
+    #  take a mesh pattern from, and optionally association of vertices
+    #  between the source face and a target one (where a hipothesis is assigned to)
+    #  @param face to take mesh pattern from
+    #  @param mesh to take mesh pattern from (optional)
+    #  @param srcV1 is vertex of \a face to associate with \a tgtV1 (optional)
+    #  @param tgtV1 is vertex of \a the face where the algorithm is assigned,
+    #  to associate with \a srcV1 (optional)
+    #  @param srcV2 is vertex of \a face to associate with \a tgtV1 (optional)
+    #  @param tgtV2 is vertex of \a the face where the algorithm is assigned,
+    #  to associate with \a srcV2 (optional)
+    #  @param UseExisting if ==true - search existing hypothesis created with
+    #                     same parameters, else (default) - create new
+    #
+    #  Note: association vertices must belong to one edge of a face
+    def SourceFace(self, face, mesh=None, srcV1=None, tgtV1=None,
+                   srcV2=None, tgtV2=None, UseExisting=0):
+        hyp = self.Hypothesis("ProjectionSource2D", [face,mesh,srcV1,tgtV1,srcV2,tgtV2],
+                              UseExisting=0)
+                              #UseExisting=UseExisting, CompareMethod=self.CompareSourceFace)
+        hyp.SetSourceFace( face )
+        if not mesh is None and isinstance(mesh, Mesh):
+            mesh = mesh.GetMesh()
+        hyp.SetSourceMesh( mesh )
+        hyp.SetVertexAssociation( srcV1, srcV2, tgtV1, tgtV2 )
+        return hyp
+
+    ## Check if the given "SourceFace" hypothesis has the same parameters as given arguments
+    #def CompareSourceFace(self, hyp, args):
+    #    # seems to be not really useful to reuse existing "SourceFace" hypothesis
+    #    return False
+
+# Public class: Mesh_Projection3D
+# ------------------------------
+
+## Class to define a projection 3D algorithm
+#
+#  More details.
+class Mesh_Projection3D(Mesh_Algorithm):
+
+    ## Private constructor.
+    def __init__(self, mesh, geom=0):
+        Mesh_Algorithm.__init__(self)
+        self.Create(mesh, geom, "Projection_3D")
+
+    ## Define "Source Shape 3D" hypothesis, specifying a meshed solid to
+    #  take a mesh pattern from, and optionally association of vertices
+    #  between the source solid and a target one (where a hipothesis is assigned to)
+    #  @param solid to take mesh pattern from
+    #  @param mesh to take mesh pattern from (optional)
+    #  @param srcV1 is vertex of \a solid to associate with \a tgtV1 (optional)
+    #  @param tgtV1 is vertex of \a the solid where the algorithm is assigned,
+    #  to associate with \a srcV1 (optional)
+    #  @param srcV2 is vertex of \a solid to associate with \a tgtV1 (optional)
+    #  @param tgtV2 is vertex of \a the solid where the algorithm is assigned,
+    #  to associate with \a srcV2 (optional)
+    #  @param UseExisting - if ==true - search existing hypothesis created with
+    #                       same parameters, else (default) - create new
+    #
+    #  Note: association vertices must belong to one edge of a solid
+    def SourceShape3D(self, solid, mesh=0, srcV1=0, tgtV1=0,
+                      srcV2=0, tgtV2=0, UseExisting=0):
+        hyp = self.Hypothesis("ProjectionSource3D",
+                              [solid,mesh,srcV1,tgtV1,srcV2,tgtV2],
+                              UseExisting=0)
+                              #UseExisting=UseExisting, CompareMethod=self.CompareSourceShape3D)
+        hyp.SetSource3DShape( solid )
+        if not mesh is None and isinstance(mesh, Mesh):
+            mesh = mesh.GetMesh()
+        hyp.SetSourceMesh( mesh )
+        hyp.SetVertexAssociation( srcV1, srcV2, tgtV1, tgtV2 )
+        return hyp
+
+    ## Check if the given "SourceShape3D" hypothesis has the same parameters as given arguments
+    #def CompareSourceShape3D(self, hyp, args):
+    #    # seems to be not really useful to reuse existing "SourceShape3D" hypothesis
+    #    return False
+
+
+# Public class: Mesh_Prism
+# ------------------------
+
+## Class to define a 3D extrusion algorithm
+#
+#  More details.
+class Mesh_Prism3D(Mesh_Algorithm):
+
+    ## Private constructor.
+    def __init__(self, mesh, geom=0):
+        Mesh_Algorithm.__init__(self)
+        self.Create(mesh, geom, "Prism_3D")
+
+# Public class: Mesh_RadialPrism
+# -------------------------------
+
+## Class to define a Radial Prism 3D algorithm
+#
+#  More details.
+class Mesh_RadialPrism3D(Mesh_Algorithm):
+
+    ## Private constructor.
+    def __init__(self, mesh, geom=0):
+        Mesh_Algorithm.__init__(self)
+        self.Create(mesh, geom, "RadialPrism_3D")
+
+        self.distribHyp = self.Hypothesis("LayerDistribution", UseExisting=0)
+        self.nbLayers = None
+
+    ## Return 3D hypothesis holding the 1D one
+    def Get3DHypothesis(self):
+        return self.distribHyp
+
+    ## Private method creating 1D hypothes and storing it in the LayerDistribution
+    #  hypothes. Returns the created hypothes
+    def OwnHypothesis(self, hypType, args=[], so="libStdMeshersEngine.so"):
+        #print "OwnHypothesis",hypType
+        if not self.nbLayers is None:
+            self.mesh.GetMesh().RemoveHypothesis( self.geom, self.nbLayers )
+            self.mesh.GetMesh().AddHypothesis( self.geom, self.distribHyp )
+        study = self.mesh.smeshpyD.GetCurrentStudy() # prevent publishing of own 1D hypothesis
+        hyp = self.mesh.smeshpyD.CreateHypothesis(hypType, so)
+        self.mesh.smeshpyD.SetCurrentStudy( study ) # anable publishing
+        self.distribHyp.SetLayerDistribution( hyp )
+        return hyp
+
+    ## Define "NumberOfLayers" hypothesis, specifying a number of layers of
+    #  prisms to build between the inner and outer shells
+    #  @param UseExisting if ==true - search existing hypothesis created with
+    #                     same parameters, else (default) - create new
+    def NumberOfLayers(self, n, UseExisting=0):
+        self.mesh.GetMesh().RemoveHypothesis( self.geom, self.distribHyp )
+        self.nbLayers = self.Hypothesis("NumberOfLayers", [n], UseExisting=UseExisting,
+                                        CompareMethod=self.CompareNumberOfLayers)
+        self.nbLayers.SetNumberOfLayers( n )
+        return self.nbLayers
+
+    ## Check if the given "NumberOfLayers" hypothesis has the same parameters as given arguments
+    def CompareNumberOfLayers(self, hyp, args):
+        return IsEqual(hyp.GetNumberOfLayers(), args[0])
+
+    ## Define "LocalLength" hypothesis, specifying segment length
+    #  to build between the inner and outer shells
+    #  @param l for the length of segments
+    #  @param p for the precision of rounding
+    def LocalLength(self, l, p=1e-07):
+        hyp = self.OwnHypothesis("LocalLength", [l,p])
+        hyp.SetLength(l)
+        hyp.SetPrecision(p)
+        return hyp
+
+    ## Define "NumberOfSegments" hypothesis, specifying a number of layers of
+    #  prisms to build between the inner and outer shells
+    #  @param n for the number of segments
+    #  @param s for the scale factor (optional)
+    def NumberOfSegments(self, n, s=[]):
+        if s == []:
+            hyp = self.OwnHypothesis("NumberOfSegments", [n])
+        else:
+            hyp = self.OwnHypothesis("NumberOfSegments", [n,s])
+            hyp.SetDistrType( 1 )
+            hyp.SetScaleFactor(s)
+        hyp.SetNumberOfSegments(n)
+        return hyp
+
+    ## Define "Arithmetic1D" hypothesis, specifying distribution of segments
+    #  to build between the inner and outer shells as arithmetic length increasing
+    #  @param start for the length of the first segment
+    #  @param end   for the length of the last  segment
+    def Arithmetic1D(self, start, end ):
+        hyp = self.OwnHypothesis("Arithmetic1D", [start, end])
+        hyp.SetLength(start, 1)
+        hyp.SetLength(end  , 0)
+        return hyp
+
+    ## Define "StartEndLength" hypothesis, specifying distribution of segments
+    #  to build between the inner and outer shells as geometric length increasing
+    #  @param start for the length of the first segment
+    #  @param end   for the length of the last  segment
+    def StartEndLength(self, start, end):
+        hyp = self.OwnHypothesis("StartEndLength", [start, end])
+        hyp.SetLength(start, 1)
+        hyp.SetLength(end  , 0)
+        return hyp
+
+    ## Define "AutomaticLength" hypothesis, specifying number of segments
+    #  to build between the inner and outer shells
+    #  @param fineness for the fineness [0-1]
+    def AutomaticLength(self, fineness=0):
+        hyp = self.OwnHypothesis("AutomaticLength")
+        hyp.SetFineness( fineness )
+        return hyp
+
+# Private class: Mesh_UseExisting
+# -------------------------------
+class Mesh_UseExisting(Mesh_Algorithm):
+
+    def __init__(self, dim, mesh, geom=0):
+        if dim == 1:
+            self.Create(mesh, geom, "UseExisting_1D")
+        else:
+            self.Create(mesh, geom, "UseExisting_2D")
+
+# Public class: Mesh
+# ==================
+
+## Class to define a mesh
+#
+#  The class contains mesh shape, SMESH_Mesh, SMESH_MeshEditor
+#  More details.
+class Mesh:
+
+    geom = 0
+    mesh = 0
+    editor = 0
+
+    ## Constructor
+    #
+    #  Creates mesh on the shape \a geom(or the empty mesh if geom equal to 0),
+    #  sets GUI name of this mesh to \a name.
+    #  @param obj Shape to be meshed or SMESH_Mesh object
+    #  @param name Study name of the mesh
+    def __init__(self, smeshpyD, geompyD, obj=0, name=0):
+        self.smeshpyD=smeshpyD
+        self.geompyD=geompyD
+        if obj is None:
+            obj = 0
+        if obj != 0:
+            if isinstance(obj, geompyDC.GEOM._objref_GEOM_Object):
+                self.geom = obj
+                self.mesh = self.smeshpyD.CreateMesh(self.geom)
+            elif isinstance(obj, SMESH._objref_SMESH_Mesh):
+                self.SetMesh(obj)
+        else:
+            self.mesh = self.smeshpyD.CreateEmptyMesh()
+        if name != 0:
+            SetName(self.mesh, name)
+        elif obj != 0:
+            SetName(self.mesh, GetName(obj))
+
+        self.editor = self.mesh.GetMeshEditor()
+
+    ## Method that inits the Mesh object from SMESH_Mesh interface
+    #  @param theMesh is SMESH_Mesh object
+    def SetMesh(self, theMesh):
+        self.mesh = theMesh
+        self.geom = self.mesh.GetShapeToMesh()
+
+    ## Method that returns the mesh
+    #  @return SMESH_Mesh object
+    def GetMesh(self):
+        return self.mesh
+
+    ## Get mesh name
+    def GetName(self):
+        name = GetName(self.GetMesh())
+        return name
+
+    ## Set name to mesh
+    def SetName(self, name):
+        SetName(self.GetMesh(), name)
+
+    ## Get the subMesh object associated to a subShape. The subMesh object
+    #  gives access to nodes and elements IDs.
+    #  \n SubMesh will be used instead of SubShape in a next idl version to
+    #  adress a specific subMesh...
+    def GetSubMesh(self, theSubObject, name):
+        submesh = self.mesh.GetSubMesh(theSubObject, name)
+        return submesh
+
+    ## Method that returns the shape associated to the mesh
+    #  @return GEOM_Object
+    def GetShape(self):
+        return self.geom
+
+    ## Method that associates given shape to the mesh(entails the mesh recreation)
+    #  @param geom shape to be meshed(GEOM_Object)
+    def SetShape(self, geom):
+        self.mesh = self.smeshpyD.CreateMesh(geom)
+
+    ## Return true if hypotheses are defined well
+    #  @param theMesh is an instance of Mesh class
+    #  @param theSubObject subshape of a mesh shape
+    def IsReadyToCompute(self, theSubObject):
+        return self.smeshpyD.IsReadyToCompute(self.mesh, theSubObject)
+
+    ## Return errors of hypotheses definintion
+    #  error list is empty if everything is OK
+    #  @param theMesh is an instance of Mesh class
+    #  @param theSubObject subshape of a mesh shape
+    #  @return a list of errors
+    def GetAlgoState(self, theSubObject):
+        return self.smeshpyD.GetAlgoState(self.mesh, theSubObject)
+
+    ## Return geometrical object the given element is built on.
+    #  The returned geometrical object, if not nil, is either found in the
+    #  study or is published by this method with the given name
+    #  @param theMesh is an instance of Mesh class
+    #  @param theElementID an id of the mesh element
+    #  @param theGeomName user defined name of geometrical object
+    #  @return GEOM::GEOM_Object instance
+    def GetGeometryByMeshElement(self, theElementID, theGeomName):
+        return self.smeshpyD.GetGeometryByMeshElement( self.mesh, theElementID, theGeomName )
+
+    ## Returns mesh dimension depending on shape one
+    def MeshDimension(self):
+        shells = self.geompyD.SubShapeAllIDs( self.geom, geompyDC.ShapeType["SHELL"] )
+        if len( shells ) > 0 :
+            return 3
+        elif self.geompyD.NumberOfFaces( self.geom ) > 0 :
+            return 2
+        elif self.geompyD.NumberOfEdges( self.geom ) > 0 :
+            return 1
+        else:
+            return 0;
+        pass
+
+    ## Creates a segment discretization 1D algorithm.
+    #  If the optional \a algo parameter is not sets, this algorithm is REGULAR.
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  \n Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param algo values are smesh.REGULAR or smesh.PYTHON for discretization via python function
+    #  @param geom If defined, subshape to be meshed
+    def Segment(self, algo=REGULAR, geom=0):
+        ## if Segment(geom) is called by mistake
+        if isinstance( algo, geompyDC.GEOM._objref_GEOM_Object):
+            algo, geom = geom, algo
+            if not algo: algo = REGULAR
+            pass
+        if algo == REGULAR:
+            return Mesh_Segment(self,  geom)
+        elif algo == PYTHON:
+            return Mesh_Segment_Python(self, geom)
+        elif algo == COMPOSITE:
+            return Mesh_CompositeSegment(self, geom)
+        else:
+            return Mesh_Segment(self, geom)
+
+    ## Enable creation of nodes and segments usable by 2D algoritms.
+    #  Added nodes and segments must be bound to edges and vertices by
+    #  SetNodeOnVertex(), SetNodeOnEdge() and SetMeshElementOnShape()
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  \n Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param geom subshape to be manually meshed
+    #  @return StdMeshers_UseExisting_1D algorithm that generates nothing
+    def UseExistingSegments(self, geom=0):
+        algo = Mesh_UseExisting(1,self,geom)
+        return algo.GetAlgorithm()
+
+    ## Enable creation of nodes and faces usable by 3D algoritms.
+    #  Added nodes and faces must be bound to geom faces by SetNodeOnFace()
+    #  and SetMeshElementOnShape()
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  \n Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param geom subshape to be manually meshed
+    #  @return StdMeshers_UseExisting_2D algorithm that generates nothing
+    def UseExistingFaces(self, geom=0):
+        algo = Mesh_UseExisting(2,self,geom)
+        return algo.GetAlgorithm()
+
+    ## Creates a triangle 2D algorithm for faces.
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  \n Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param algo values are: smesh.MEFISTO || smesh.NETGEN_1D2D || smesh.NETGEN_2D
+    #  @param geom If defined, subshape to be meshed
+    def Triangle(self, algo=MEFISTO, geom=0):
+        ## if Triangle(geom) is called by mistake
+        if ( isinstance( algo, geompyDC.GEOM._objref_GEOM_Object)):
+            geom = algo
+            algo = MEFISTO
+
+        return Mesh_Triangle(self,  algo, geom)
+
+    ## Creates a quadrangle 2D algorithm for faces.
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  \n Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param geom If defined, subshape to be meshed
+    def Quadrangle(self, geom=0):
+        return Mesh_Quadrangle(self,  geom)
+
+    ## Creates a tetrahedron 3D algorithm for solids.
+    #  The parameter \a algo permits to choice the algorithm: NETGEN or GHS3D
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  \n Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param algo values are: smesh.NETGEN, smesh.GHS3D, smesh.FULL_NETGEN
+    #  @param geom If defined, subshape to be meshed
+    def Tetrahedron(self, algo=NETGEN, geom=0):
+        ## if Tetrahedron(geom) is called by mistake
+        if ( isinstance( algo, geompyDC.GEOM._objref_GEOM_Object)):
+            algo, geom = geom, algo
+            if not algo: algo = NETGEN
+            pass
+        return Mesh_Tetrahedron(self,  algo, geom)
+
+    ## Creates a hexahedron 3D algorithm for solids.
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  \n Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param geom If defined, subshape to be meshed
+    ## def Hexahedron(self, geom=0):
+    ##     return Mesh_Hexahedron(self,  geom)
+    def Hexahedron(self, algo=Hexa, geom=0):
+        ## if Hexahedron(geom, algo) or Hexahedron(geom) is called by mistake
+        if ( isinstance(algo, geompyDC.GEOM._objref_GEOM_Object) ):
+            if   geom in [Hexa, Hexotic]: algo, geom = geom, algo
+            elif geom == 0:               algo, geom = Hexa, algo
+        return Mesh_Hexahedron(self, algo, geom)
+
+    ## Deprecated, only for compatibility!
+    def Netgen(self, is3D, geom=0):
+        return Mesh_Netgen(self,  is3D, geom)
+
+    ## Creates a projection 1D algorithm for edges.
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param geom If defined, subshape to be meshed
+    def Projection1D(self, geom=0):
+        return Mesh_Projection1D(self,  geom)
+
+    ## Creates a projection 2D algorithm for faces.
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param geom If defined, subshape to be meshed
+    def Projection2D(self, geom=0):
+        return Mesh_Projection2D(self,  geom)
+
+    ## Creates a projection 3D algorithm for solids.
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param geom If defined, subshape to be meshed
+    def Projection3D(self, geom=0):
+        return Mesh_Projection3D(self,  geom)
+
+    ## Creates a 3D extrusion (Prism 3D) or RadialPrism 3D algorithm for solids.
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param geom If defined, subshape to be meshed
+    def Prism(self, geom=0):
+        shape = geom
+        if shape==0:
+            shape = self.geom
+        nbSolids = len( self.geompyD.SubShapeAll( shape, geompyDC.ShapeType["SOLID"] ))
+        nbShells = len( self.geompyD.SubShapeAll( shape, geompyDC.ShapeType["SHELL"] ))
+        if nbSolids == 0 or nbSolids == nbShells:
+            return Mesh_Prism3D(self,  geom)
+        return Mesh_RadialPrism3D(self,  geom)
+
+    ## Compute the mesh and return the status of the computation
+    def Compute(self, geom=0):
+        if geom == 0 or not isinstance(geom, geompyDC.GEOM._objref_GEOM_Object):
+            if self.geom == 0:
+                print "Compute impossible: mesh is not constructed on geom shape."
+                return 0
+            else:
+                geom = self.geom
+        ok = False
+        try:
+            ok = self.smeshpyD.Compute(self.mesh, geom)
+        except SALOME.SALOME_Exception, ex:
+            print "Mesh computation failed, exception caught:"
+            print "    ", ex.details.text
+        except:
+            import traceback
+            print "Mesh computation failed, exception caught:"
+            traceback.print_exc()
+        if not ok:
+            errors = self.smeshpyD.GetAlgoState( self.mesh, geom )
+            allReasons = ""
+            for err in errors:
+                if err.isGlobalAlgo:
+                    glob = "global"
+                else:
+                    glob = "local"
+                    pass
+                dim = err.algoDim
+                name = err.algoName
+                if len(name) == 0:
+                    reason = '%s %sD algorithm is missing' % (glob, dim)
+                elif err.state == HYP_MISSING:
+                    reason = ('%s %sD algorithm "%s" misses %sD hypothesis'
+                              % (glob, dim, name, dim))
+                elif err.state == HYP_NOTCONFORM:
+                    reason = 'Global "Not Conform mesh allowed" hypothesis is missing'
+                elif err.state == HYP_BAD_PARAMETER:
+                    reason = ('Hypothesis of %s %sD algorithm "%s" has a bad parameter value'
+                              % ( glob, dim, name ))
+                elif err.state == HYP_BAD_GEOMETRY:
+                    reason = ('%s %sD algorithm "%s" is assigned to geometry mismatching'
+                              'its expectation' % ( glob, dim, name ))
+                else:
+                    reason = "For unknown reason."+\
+                             " Revise Mesh.Compute() implementation in smeshDC.py!"
+                    pass
+                if allReasons != "":
+                    allReasons += "\n"
+                    pass
+                allReasons += reason
+                pass
+            if allReasons != "":
+                print '"' + GetName(self.mesh) + '"',"has not been computed:"
+                print allReasons
+            else:
+                print '"' + GetName(self.mesh) + '"',"has not been computed."
+                pass
+            pass
+        if salome.sg.hasDesktop():
+            smeshgui = salome.ImportComponentGUI("SMESH")
+            smeshgui.Init(salome.myStudyId)
+            smeshgui.SetMeshIcon( salome.ObjectToID( self.mesh ), ok, (self.NbNodes()==0) )
+            salome.sg.updateObjBrowser(1)
+            pass
+        return ok
+
+    ## Compute tetrahedral mesh using AutomaticLength + MEFISTO + NETGEN
+    #  The parameter \a fineness [0,-1] defines mesh fineness
+    def AutomaticTetrahedralization(self, fineness=0):
+        dim = self.MeshDimension()
+        # assign hypotheses
+        self.RemoveGlobalHypotheses()
+        self.Segment().AutomaticLength(fineness)
+        if dim > 1 :
+            self.Triangle().LengthFromEdges()
+            pass
+        if dim > 2 :
+            self.Tetrahedron(NETGEN)
+            pass
+        return self.Compute()
+
+    ## Compute hexahedral mesh using AutomaticLength + Quadrangle + Hexahedron
+    #  The parameter \a fineness [0,-1] defines mesh fineness
+    def AutomaticHexahedralization(self, fineness=0):
+        dim = self.MeshDimension()
+        # assign hypotheses
+        self.RemoveGlobalHypotheses()
+        self.Segment().AutomaticLength(fineness)
+        if dim > 1 :
+            self.Quadrangle()
+            pass
+        if dim > 2 :
+            self.Hexahedron()
+            pass
+        return self.Compute()
+
+    ## Assign hypothesis
+    #  @param hyp is a hypothesis to assign
+    #  @param geom is subhape of mesh geometry
+    def AddHypothesis(self, hyp, geom=0):
+        if isinstance( hyp, Mesh_Algorithm ):
+            hyp = hyp.GetAlgorithm()
+            pass
+        if not geom:
+            geom = self.geom
+            pass
+        status = self.mesh.AddHypothesis(geom, hyp)
+        isAlgo = hyp._narrow( SMESH_Algo )
+        TreatHypoStatus( status, GetName( hyp ), GetName( geom ), isAlgo )
+        return status
+
+    ## Unassign hypothesis
+    #  @param hyp is a hypothesis to unassign
+    #  @param geom is subhape of mesh geometry
+    def RemoveHypothesis(self, hyp, geom=0):
+        if isinstance( hyp, Mesh_Algorithm ):
+            hyp = hyp.GetAlgorithm()
+            pass
+        if not geom:
+            geom = self.geom
+            pass
+        status = self.mesh.RemoveHypothesis(geom, hyp)
+        return status
+
+    ## Get the list of hypothesis added on a geom
+    #  @param geom is subhape of mesh geometry
+    def GetHypothesisList(self, geom):
+        return self.mesh.GetHypothesisList( geom )
+
+    ## Removes all global hypotheses
+    def RemoveGlobalHypotheses(self):
+        current_hyps = self.mesh.GetHypothesisList( self.geom )
+        for hyp in current_hyps:
+            self.mesh.RemoveHypothesis( self.geom, hyp )
+            pass
+        pass
+
+    ## Create a mesh group based on geometric object \a grp
+    #  and give a \a name, \n if this parameter is not defined
+    #  the name is the same as the geometric group name \n
+    #  Note: Works like GroupOnGeom().
+    #  @param grp  is a geometric group, a vertex, an edge, a face or a solid
+    #  @param name is the name of the mesh group
+    #  @return SMESH_GroupOnGeom
+    def Group(self, grp, name=""):
+        return self.GroupOnGeom(grp, name)
+
+    ## Deprecated, only for compatibility! Please, use ExportMED() method instead.
+    #  Export the mesh in a file with the MED format and choice the \a version of MED format
+    #  @param f is the file name
+    #  @param version values are SMESH.MED_V2_1, SMESH.MED_V2_2
+    def ExportToMED(self, f, version, opt=0):
+        self.mesh.ExportToMED(f, opt, version)
+
+    ## Export the mesh in a file with the MED format
+    #  @param f is the file name
+    #  @param auto_groups boolean parameter for creating/not creating
+    #  the groups Group_On_All_Nodes, Group_On_All_Faces, ... ;
+    #  the typical use is auto_groups=false.
+    #  @param version MED format version(MED_V2_1 or MED_V2_2)
+    def ExportMED(self, f, auto_groups=0, version=MED_V2_2):
+        self.mesh.ExportToMED(f, auto_groups, version)
+
+    ## Export the mesh in a file with the DAT format
+    #  @param f is the file name
+    def ExportDAT(self, f):
+        self.mesh.ExportDAT(f)
+
+    ## Export the mesh in a file with the UNV format
+    #  @param f is the file name
+    def ExportUNV(self, f):
+        self.mesh.ExportUNV(f)
+
+    ## Export the mesh in a file with the STL format
+    #  @param f is the file name
+    #  @param ascii defined the kind of file contents
+    def ExportSTL(self, f, ascii=1):
+        self.mesh.ExportSTL(f, ascii)
+
+
+    # Operations with groups:
+    # ----------------------
+
+    ## Creates an empty mesh group
+    #  @param elementType is the type of elements in the group
+    #  @param name is the name of the mesh group
+    #  @return SMESH_Group
+    def CreateEmptyGroup(self, elementType, name):
+        return self.mesh.CreateGroup(elementType, name)
+
+    ## Creates a mesh group based on geometric object \a grp
+    #  and give a \a name, \n if this parameter is not defined
+    #  the name is the same as the geometric group name
+    #  @param grp  is a geometric group, a vertex, an edge, a face or a solid
+    #  @param name is the name of the mesh group
+    #  @return SMESH_GroupOnGeom
+    def GroupOnGeom(self, grp, name="", typ=None):
+        if name == "":
+            name = grp.GetName()
+
+        if typ == None:
+            tgeo = str(grp.GetShapeType())
+            if tgeo == "VERTEX":
+                typ = NODE
+            elif tgeo == "EDGE":
+                typ = EDGE
+            elif tgeo == "FACE":
+                typ = FACE
+            elif tgeo == "SOLID":
+                typ = VOLUME
+            elif tgeo == "SHELL":
+                typ = VOLUME
+            elif tgeo == "COMPOUND":
+                if len( self.geompyD.GetObjectIDs( grp )) == 0:
+                    print "Mesh.Group: empty geometric group", GetName( grp )
+                    return 0
+                tgeo = self.geompyD.GetType(grp)
+                if tgeo == geompyDC.ShapeType["VERTEX"]:
+                    typ = NODE
+                elif tgeo == geompyDC.ShapeType["EDGE"]:
+                    typ = EDGE
+                elif tgeo == geompyDC.ShapeType["FACE"]:
+                    typ = FACE
+                elif tgeo == geompyDC.ShapeType["SOLID"]:
+                    typ = VOLUME
+
+        if typ == None:
+            print "Mesh.Group: bad first argument: expected a group, a vertex, an edge, a face or a solid"
+            return 0
+        else:
+            return self.mesh.CreateGroupFromGEOM(typ, name, grp)
+
+    ## Create a mesh group by the given ids of elements
+    #  @param groupName is the name of the mesh group
+    #  @param elementType is the type of elements in the group
+    #  @param elemIDs is the list of ids
+    #  @return SMESH_Group
+    def MakeGroupByIds(self, groupName, elementType, elemIDs):
+        group = self.mesh.CreateGroup(elementType, groupName)
+        group.Add(elemIDs)
+        return group
+
+    ## Create a mesh group by the given conditions
+    #  @param groupName is the name of the mesh group
+    #  @param elementType is the type of elements in the group
+    #  @param CritType is type of criterion( FT_Taper, FT_Area, FT_RangeOfIds, FT_LyingOnGeom etc. )
+    #  @param Compare belong to {FT_LessThan, FT_MoreThan, FT_EqualTo}
+    #  @param Treshold is threshold value (range of id ids as string, shape, numeric)
+    #  @param UnaryOp is FT_LogicalNOT or FT_Undefined
+    #  @return SMESH_Group
+    def MakeGroup(self,
+                  groupName,
+                  elementType,
+                  CritType=FT_Undefined,
+                  Compare=FT_EqualTo,
+                  Treshold="",
+                  UnaryOp=FT_Undefined):
+        aCriterion = self.smeshpyD.GetCriterion(elementType, CritType, Compare, Treshold, UnaryOp, FT_Undefined)
+        group = self.MakeGroupByCriterion(groupName, aCriterion)
+        return group
+
+    ## Create a mesh group by the given criterion
+    #  @param groupName is the name of the mesh group
+    #  @param Criterion is the instance of Criterion class
+    #  @return SMESH_Group
+    def MakeGroupByCriterion(self, groupName, Criterion):
+        aFilterMgr = self.smeshpyD.CreateFilterManager()
+        aFilter = aFilterMgr.CreateFilter()
+        aCriteria = []
+        aCriteria.append(Criterion)
+        aFilter.SetCriteria(aCriteria)
+        group = self.MakeGroupByFilter(groupName, aFilter)
+        return group
+
+    ## Create a mesh group by the given criteria(list of criterions)
+    #  @param groupName is the name of the mesh group
+    #  @param Criteria is the list of criterions
+    #  @return SMESH_Group
+    def MakeGroupByCriteria(self, groupName, theCriteria):
+        aFilterMgr = self.smeshpyD.CreateFilterManager()
+        aFilter = aFilterMgr.CreateFilter()
+        aFilter.SetCriteria(theCriteria)
+        group = self.MakeGroupByFilter(groupName, aFilter)
+        return group
+
+    ## Create a mesh group by the given filter
+    #  @param groupName is the name of the mesh group
+    #  @param Criterion is the instance of Filter class
+    #  @return SMESH_Group
+    def MakeGroupByFilter(self, groupName, theFilter):
+        anIds = theFilter.GetElementsId(self.mesh)
+        anElemType = theFilter.GetElementType()
+        group = self.MakeGroupByIds(groupName, anElemType, anIds)
+        return group
+
+    ## Pass mesh elements through the given filter and return ids
+    #  @param theFilter is SMESH_Filter
+    #  @return list of ids
+    def GetIdsFromFilter(self, theFilter):
+        return theFilter.GetElementsId(self.mesh)
+
+    ## Verify whether 2D mesh element has free edges(edges connected to one face only)\n
+    #  Returns list of special structures(borders).
+    #  @return list of SMESH.FreeEdges.Border structure: edge id and two its nodes ids.
+    def GetFreeBorders(self):
+        aFilterMgr = self.smeshpyD.CreateFilterManager()
+        aPredicate = aFilterMgr.CreateFreeEdges()
+        aPredicate.SetMesh(self.mesh)
+        aBorders = aPredicate.GetBorders()
+        return aBorders
+
+    ## Remove a group
+    def RemoveGroup(self, group):
+        self.mesh.RemoveGroup(group)
+
+    ## Remove group with its contents
+    def RemoveGroupWithContents(self, group):
+        self.mesh.RemoveGroupWithContents(group)
+
+    ## Get the list of groups existing in the mesh
+    def GetGroups(self):
+        return self.mesh.GetGroups()
+
+    ## Get number of groups existing in the mesh
+    def NbGroups(self):
+        return self.mesh.NbGroups()
+
+    ## Get the list of names of groups existing in the mesh
+    def GetGroupNames(self):
+        groups = self.GetGroups()
+        names = []
+        for group in groups:
+            names.append(group.GetName())
+        return names
+
+    ## Union of two groups
+    #  New group is created. All mesh elements that are
+    #  present in initial groups are added to the new one
+    def UnionGroups(self, group1, group2, name):
+        return self.mesh.UnionGroups(group1, group2, name)
+
+    ## Intersection of two groups
+    #  New group is created. All mesh elements that are
+    #  present in both initial groups are added to the new one.
+    def IntersectGroups(self, group1, group2, name):
+        return self.mesh.IntersectGroups(group1, group2, name)
+
+    ## Cut of two groups
+    #  New group is created. All mesh elements that are present in
+    #  main group but do not present in tool group are added to the new one
+    def CutGroups(self, mainGroup, toolGroup, name):
+        return self.mesh.CutGroups(mainGroup, toolGroup, name)
+
+
+    # Get some info about mesh:
+    # ------------------------
+
+    ## Get the log of nodes and elements added or removed since previous
+    #  clear of the log.
+    #  @param clearAfterGet log is emptied after Get (safe if concurrents access)
+    #  @return list of log_block structures:
+    #                                        commandType
+    #                                        number
+    #                                        coords
+    #                                        indexes
+    def GetLog(self, clearAfterGet):
+        return self.mesh.GetLog(clearAfterGet)
+
+    ## Clear the log of nodes and elements added or removed since previous
+    #  clear. Must be used immediately after GetLog if clearAfterGet is false.
+    def ClearLog(self):
+        self.mesh.ClearLog()
+
+    def SetAutoColor(self, color):
+        self.mesh.SetAutoColor(color)
+
+    def GetAutoColor(self):
+        return self.mesh.GetAutoColor()
+
+    ## Get the internal Id
+    def GetId(self):
+        return self.mesh.GetId()
+
+    ## Get the study Id
+    def GetStudyId(self):
+        return self.mesh.GetStudyId()
+
+    ## Check group names for duplications.
+    #  Consider maximum group name length stored in MED file.
+    def HasDuplicatedGroupNamesMED(self):
+        return self.mesh.HasDuplicatedGroupNamesMED()
+
+    ## Obtain instance of SMESH_MeshEditor
+    def GetMeshEditor(self):
+        return self.mesh.GetMeshEditor()
+
+    ## Get MED Mesh
+    def GetMEDMesh(self):
+        return self.mesh.GetMEDMesh()
+
+
+    # Get informations about mesh contents:
+    # ------------------------------------
+
+    ## Returns number of nodes in mesh
+    def NbNodes(self):
+        return self.mesh.NbNodes()
+
+    ## Returns number of elements in mesh
+    def NbElements(self):
+        return self.mesh.NbElements()
+
+    ## Returns number of edges in mesh
+    def NbEdges(self):
+        return self.mesh.NbEdges()
+
+    ## Returns number of edges with given order in mesh
+    #  @param elementOrder is order of elements:
+    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
+    def NbEdgesOfOrder(self, elementOrder):
+        return self.mesh.NbEdgesOfOrder(elementOrder)
+
+    ## Returns number of faces in mesh
+    def NbFaces(self):
+        return self.mesh.NbFaces()
+
+    ## Returns number of faces with given order in mesh
+    #  @param elementOrder is order of elements:
+    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
+    def NbFacesOfOrder(self, elementOrder):
+        return self.mesh.NbFacesOfOrder(elementOrder)
+
+    ## Returns number of triangles in mesh
+    def NbTriangles(self):
+        return self.mesh.NbTriangles()
+
+    ## Returns number of triangles with given order in mesh
+    #  @param elementOrder is order of elements:
+    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
+    def NbTrianglesOfOrder(self, elementOrder):
+        return self.mesh.NbTrianglesOfOrder(elementOrder)
+
+    ## Returns number of quadrangles in mesh
+    def NbQuadrangles(self):
+        return self.mesh.NbQuadrangles()
+
+    ## Returns number of quadrangles with given order in mesh
+    #  @param elementOrder is order of elements:
+    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
+    def NbQuadranglesOfOrder(self, elementOrder):
+        return self.mesh.NbQuadranglesOfOrder(elementOrder)
+
+    ## Returns number of polygons in mesh
+    def NbPolygons(self):
+        return self.mesh.NbPolygons()
+
+    ## Returns number of volumes in mesh
+    def NbVolumes(self):
+        return self.mesh.NbVolumes()
+
+    ## Returns number of volumes with given order in mesh
+    #  @param elementOrder is order of elements:
+    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
+    def NbVolumesOfOrder(self, elementOrder):
+        return self.mesh.NbVolumesOfOrder(elementOrder)
+
+    ## Returns number of tetrahedrons in mesh
+    def NbTetras(self):
+        return self.mesh.NbTetras()
+
+    ## Returns number of tetrahedrons with given order in mesh
+    #  @param elementOrder is order of elements:
+    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
+    def NbTetrasOfOrder(self, elementOrder):
+        return self.mesh.NbTetrasOfOrder(elementOrder)
+
+    ## Returns number of hexahedrons in mesh
+    def NbHexas(self):
+        return self.mesh.NbHexas()
+
+    ## Returns number of hexahedrons with given order in mesh
+    #  @param elementOrder is order of elements:
+    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
+    def NbHexasOfOrder(self, elementOrder):
+        return self.mesh.NbHexasOfOrder(elementOrder)
+
+    ## Returns number of pyramids in mesh
+    def NbPyramids(self):
+        return self.mesh.NbPyramids()
+
+    ## Returns number of pyramids with given order in mesh
+    #  @param elementOrder is order of elements:
+    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
+    def NbPyramidsOfOrder(self, elementOrder):
+        return self.mesh.NbPyramidsOfOrder(elementOrder)
+
+    ## Returns number of prisms in mesh
+    def NbPrisms(self):
+        return self.mesh.NbPrisms()
+
+    ## Returns number of prisms with given order in mesh
+    #  @param elementOrder is order of elements:
+    #  ORDER_ANY, ORDER_LINEAR or ORDER_QUADRATIC
+    def NbPrismsOfOrder(self, elementOrder):
+        return self.mesh.NbPrismsOfOrder(elementOrder)
+
+    ## Returns number of polyhedrons in mesh
+    def NbPolyhedrons(self):
+        return self.mesh.NbPolyhedrons()
+
+    ## Returns number of submeshes in mesh
+    def NbSubMesh(self):
+        return self.mesh.NbSubMesh()
+
+    ## Returns list of mesh elements ids
+    def GetElementsId(self):
+        return self.mesh.GetElementsId()
+
+    ## Returns list of ids of mesh elements with given type
+    #  @param elementType is required type of elements
+    def GetElementsByType(self, elementType):
+        return self.mesh.GetElementsByType(elementType)
+
+    ## Returns list of mesh nodes ids
+    def GetNodesId(self):
+        return self.mesh.GetNodesId()
+
+    # Get informations about mesh elements:
+    # ------------------------------------
+
+    ## Returns type of mesh element
+    def GetElementType(self, id, iselem):
+        return self.mesh.GetElementType(id, iselem)
+
+    ## Returns list of submesh elements ids
+    #  @param Shape is geom object(subshape) IOR
+    #  Shape must be subshape of a ShapeToMesh()
+    def GetSubMeshElementsId(self, Shape):
+        if ( isinstance( Shape, geompyDC.GEOM._objref_GEOM_Object)):
+            ShapeID = Shape.GetSubShapeIndices()[0]
+        else:
+            ShapeID = Shape
+        return self.mesh.GetSubMeshElementsId(ShapeID)
+
+    ## Returns list of submesh nodes ids
+    #  @param Shape is geom object(subshape) IOR
+    #  Shape must be subshape of a ShapeToMesh()
+    def GetSubMeshNodesId(self, Shape, all):
+        if ( isinstance( Shape, geompyDC.GEOM._objref_GEOM_Object)):
+            ShapeID = Shape.GetSubShapeIndices()[0]
+        else:
+            ShapeID = Shape
+        return self.mesh.GetSubMeshNodesId(ShapeID, all)
+
+    ## Returns list of ids of submesh elements with given type
+    #  @param Shape is geom object(subshape) IOR
+    #  Shape must be subshape of a ShapeToMesh()
+    def GetSubMeshElementType(self, Shape):
+        if ( isinstance( Shape, geompyDC.GEOM._objref_GEOM_Object)):
+            ShapeID = Shape.GetSubShapeIndices()[0]
+        else:
+            ShapeID = Shape
+        return self.mesh.GetSubMeshElementType(ShapeID)
+
+    ## Get mesh description
+    def Dump(self):
+        return self.mesh.Dump()
+
+
+    # Get information about nodes and elements of mesh by its ids:
+    # -----------------------------------------------------------
+
+    ## Get XYZ coordinates of node as list of double
+    #  \n If there is not node for given ID - returns empty list
+    def GetNodeXYZ(self, id):
+        return self.mesh.GetNodeXYZ(id)
+
+    ## For given node returns list of IDs of inverse elements
+    #  \n If there is not node for given ID - returns empty list
+    def GetNodeInverseElements(self, id):
+        return self.mesh.GetNodeInverseElements(id)
+
+    ## @brief Return position of a node on shape
+    #  @return SMESH::NodePosition
+    def GetNodePosition(self,NodeID):
+        return self.mesh.GetNodePosition(NodeID)
+
+    ## If given element is node returns IDs of shape from position
+    #  \n If there is not node for given ID - returns -1
+    def GetShapeID(self, id):
+        return self.mesh.GetShapeID(id)
+
+    ## For given element returns ID of result shape after
+    #  FindShape() from SMESH_MeshEditor
+    #  \n If there is not element for given ID - returns -1
+    def GetShapeIDForElem(self,id):
+        return self.mesh.GetShapeIDForElem(id)
+
+    ## Returns number of nodes for given element
+    #  \n If there is not element for given ID - returns -1
+    def GetElemNbNodes(self, id):
+        return self.mesh.GetElemNbNodes(id)
+
+    ## Returns ID of node by given index for given element
+    #  \n If there is not element for given ID - returns -1
+    #  \n If there is not node for given index - returns -2
+    def GetElemNode(self, id, index):
+        return self.mesh.GetElemNode(id, index)
+
+    ## Returns IDs of nodes of given element
+    def GetElemNodes(self, id):
+        return self.mesh.GetElemNodes(id)
+
+    ## Returns true if given node is medium node
+    #  in given quadratic element
+    def IsMediumNode(self, elementID, nodeID):
+        return self.mesh.IsMediumNode(elementID, nodeID)
+
+    ## Returns true if given node is medium node
+    #  in one of quadratic elements
+    def IsMediumNodeOfAnyElem(self, nodeID, elementType):
+        return self.mesh.IsMediumNodeOfAnyElem(nodeID, elementType)
+
+    ## Returns number of edges for given element
+    def ElemNbEdges(self, id):
+        return self.mesh.ElemNbEdges(id)
+
+    ## Returns number of faces for given element
+    def ElemNbFaces(self, id):
+        return self.mesh.ElemNbFaces(id)
+
+    ## Returns true if given element is polygon
+    def IsPoly(self, id):
+        return self.mesh.IsPoly(id)
+
+    ## Returns true if given element is quadratic
+    def IsQuadratic(self, id):
+        return self.mesh.IsQuadratic(id)
+
+    ## Returns XYZ coordinates of bary center for given element
+    #  as list of double
+    #  \n If there is not element for given ID - returns empty list
+    def BaryCenter(self, id):
+        return self.mesh.BaryCenter(id)
+
+
+    # Mesh edition (SMESH_MeshEditor functionality):
+    # ---------------------------------------------
+
+    ## Removes elements from mesh by ids
+    #  @param IDsOfElements is list of ids of elements to remove
+    def RemoveElements(self, IDsOfElements):
+        return self.editor.RemoveElements(IDsOfElements)
+
+    ## Removes nodes from mesh by ids
+    #  @param IDsOfNodes is list of ids of nodes to remove
+    def RemoveNodes(self, IDsOfNodes):
+        return self.editor.RemoveNodes(IDsOfNodes)
+
+    ## Add node to mesh by coordinates
+    def AddNode(self, x, y, z):
+        return self.editor.AddNode( x, y, z)
+
+
+    ## Create edge both similar and quadratic (this is determed
+    #  by number of given nodes).
+    #  @param IdsOfNodes List of node IDs for creation of element.
+    #  Needed order of nodes in this list corresponds to description
+    #  of MED. \n This description is located by the following link:
+    #  http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.
+    def AddEdge(self, IDsOfNodes):
+        return self.editor.AddEdge(IDsOfNodes)
+
+    ## Create face both similar and quadratic (this is determed
+    #  by number of given nodes).
+    #  @param IdsOfNodes List of node IDs for creation of element.
+    #  Needed order of nodes in this list corresponds to description
+    #  of MED. \n This description is located by the following link:
+    #  http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.
+    def AddFace(self, IDsOfNodes):
+        return self.editor.AddFace(IDsOfNodes)
+
+    ## Add polygonal face to mesh by list of nodes ids
+    def AddPolygonalFace(self, IdsOfNodes):
+        return self.editor.AddPolygonalFace(IdsOfNodes)
+
+    ## Create volume both similar and quadratic (this is determed
+    #  by number of given nodes).
+    #  @param IdsOfNodes List of node IDs for creation of element.
+    #  Needed order of nodes in this list corresponds to description
+    #  of MED. \n This description is located by the following link:
+    #  http://www.salome-platform.org/salome2/web_med_internet/logiciels/medV2.2.2_doc_html/html/modele_de_donnees.html#3.
+    def AddVolume(self, IDsOfNodes):
+        return self.editor.AddVolume(IDsOfNodes)
+
+    ## Create volume of many faces, giving nodes for each face.
+    #  @param IdsOfNodes List of node IDs for volume creation face by face.
+    #  @param Quantities List of integer values, Quantities[i]
+    #         gives quantity of nodes in face number i.
+    def AddPolyhedralVolume (self, IdsOfNodes, Quantities):
+        return self.editor.AddPolyhedralVolume(IdsOfNodes, Quantities)
+
+    ## Create volume of many faces, giving IDs of existing faces.
+    #  @param IdsOfFaces List of face IDs for volume creation.
+    #
+    #  Note:  The created volume will refer only to nodes
+    #         of the given faces, not to the faces itself.
+    def AddPolyhedralVolumeByFaces (self, IdsOfFaces):
+        return self.editor.AddPolyhedralVolumeByFaces(IdsOfFaces)
+
+
+    ## @brief Bind a node to a vertex
+    # @param NodeID - node ID
+    # @param Vertex - vertex or vertex ID
+    # @return True if succeed else raise an exception
+    def SetNodeOnVertex(self, NodeID, Vertex):
+        if ( isinstance( Vertex, geompyDC.GEOM._objref_GEOM_Object)):
+            VertexID = Vertex.GetSubShapeIndices()[0]
+        else:
+            VertexID = Vertex
+        try:
+            self.editor.SetNodeOnVertex(NodeID, VertexID)
+        except SALOME.SALOME_Exception, inst:
+            raise ValueError, inst.details.text
+        return True
+
+
+    ## @brief Store node position on an edge
+    # @param NodeID - node ID
+    # @param Edge - edge or edge ID
+    # @param paramOnEdge - parameter on edge where the node is located
+    # @return True if succeed else raise an exception
+    def SetNodeOnEdge(self, NodeID, Edge, paramOnEdge):
+        if ( isinstance( Edge, geompyDC.GEOM._objref_GEOM_Object)):
+            EdgeID = Edge.GetSubShapeIndices()[0]
+        else:
+            EdgeID = Edge
+        try:
+            self.editor.SetNodeOnEdge(NodeID, EdgeID, paramOnEdge)
+        except SALOME.SALOME_Exception, inst:
+            raise ValueError, inst.details.text
+        return True
+
+    ## @brief Store node position on a face
+    # @param NodeID - node ID
+    # @param Face - face or face ID
+    # @param u - U parameter on face where the node is located
+    # @param v - V parameter on face where the node is located
+    # @return True if succeed else raise an exception
+    def SetNodeOnFace(self, NodeID, Face, u, v):
+        if ( isinstance( Face, geompyDC.GEOM._objref_GEOM_Object)):
+            FaceID = Face.GetSubShapeIndices()[0]
+        else:
+            FaceID = Face
+        try:
+            self.editor.SetNodeOnFace(NodeID, FaceID, u, v)
+        except SALOME.SALOME_Exception, inst:
+            raise ValueError, inst.details.text
+        return True
+
+    ## @brief Bind a node to a solid
+    # @param NodeID - node ID
+    # @param Solid - solid or solid ID
+    # @return True if succeed else raise an exception
+    def SetNodeInVolume(self, NodeID, Solid):
+        if ( isinstance( Solid, geompyDC.GEOM._objref_GEOM_Object)):
+            SolidID = Solid.GetSubShapeIndices()[0]
+        else:
+            SolidID = Solid
+        try:
+            self.editor.SetNodeInVolume(NodeID, SolidID)
+        except SALOME.SALOME_Exception, inst:
+            raise ValueError, inst.details.text
+        return True
+
+    ## @brief Bind an element to a shape
+    # @param ElementID - element ID
+    # @param Shape - shape or shape ID
+    # @return True if succeed else raise an exception
+    def SetMeshElementOnShape(self, ElementID, Shape):
+        if ( isinstance( Shape, geompyDC.GEOM._objref_GEOM_Object)):
+            ShapeID = Shape.GetSubShapeIndices()[0]
+        else:
+            ShapeID = Shape
+        try:
+            self.editor.SetMeshElementOnShape(ElementID, ShapeID)
+        except SALOME.SALOME_Exception, inst:
+            raise ValueError, inst.details.text
+        return True
+
+
+    ## Move node with given id
+    #  @param NodeID id of the node
+    #  @param x new X coordinate
+    #  @param y new Y coordinate
+    #  @param z new Z coordinate
+    def MoveNode(self, NodeID, x, y, z):
+        return self.editor.MoveNode(NodeID, x, y, z)
+
+    ## Find a node closest to a point
+    #  @param x X coordinate of a point
+    #  @param y Y coordinate of a point
+    #  @param z Z coordinate of a point
+    #  @return id of a node
+    def FindNodeClosestTo(self, x, y, z):
+        preview = self.mesh.GetMeshEditPreviewer()
+        return preview.MoveClosestNodeToPoint(x, y, z, -1)
+
+    ## Find a node closest to a point and move it to a point location
+    #  @param x X coordinate of a point
+    #  @param y Y coordinate of a point
+    #  @param z Z coordinate of a point
+    #  @return id of a moved node
+    def MeshToPassThroughAPoint(self, x, y, z):
+        return self.editor.MoveClosestNodeToPoint(x, y, z, -1)
+
+    ## Replace two neighbour triangles sharing Node1-Node2 link
+    #  with ones built on the same 4 nodes but having other common link.
+    #  @param NodeID1 first node id
+    #  @param NodeID2 second node id
+    #  @return false if proper faces not found
+    def InverseDiag(self, NodeID1, NodeID2):
+        return self.editor.InverseDiag(NodeID1, NodeID2)
+
+    ## Replace two neighbour triangles sharing Node1-Node2 link
+    #  with a quadrangle built on the same 4 nodes.
+    #  @param NodeID1 first node id
+    #  @param NodeID2 second node id
+    #  @return false if proper faces not found
+    def DeleteDiag(self, NodeID1, NodeID2):
+        return self.editor.DeleteDiag(NodeID1, NodeID2)
+
+    ## Reorient elements by ids
+    #  @param IDsOfElements if undefined reorient all mesh elements
+    def Reorient(self, IDsOfElements=None):
+        if IDsOfElements == None:
+            IDsOfElements = self.GetElementsId()
+        return self.editor.Reorient(IDsOfElements)
+
+    ## Reorient all elements of the object
+    #  @param theObject is mesh, submesh or group
+    def ReorientObject(self, theObject):
+        if ( isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        return self.editor.ReorientObject(theObject)
+
+    ## Fuse neighbour triangles into quadrangles.
+    #  @param IDsOfElements The triangles to be fused,
+    #  @param theCriterion     is FT_...; used to choose a neighbour to fuse with.
+    #  @param MaxAngle      is a max angle between element normals at which fusion
+    #                       is still performed; theMaxAngle is mesured in radians.
+    #  @return TRUE in case of success, FALSE otherwise.
+    def TriToQuad(self, IDsOfElements, theCriterion, MaxAngle):
+        if IDsOfElements == []:
+            IDsOfElements = self.GetElementsId()
+        return self.editor.TriToQuad(IDsOfElements, self.smeshpyD.GetFunctor(theCriterion), MaxAngle)
+
+    ## Fuse neighbour triangles of the object into quadrangles
+    #  @param theObject is mesh, submesh or group
+    #  @param theCriterion is FT_...; used to choose a neighbour to fuse with.
+    #  @param MaxAngle  is a max angle between element normals at which fusion
+    #                   is still performed; theMaxAngle is mesured in radians.
+    #  @return TRUE in case of success, FALSE otherwise.
+    def TriToQuadObject (self, theObject, theCriterion, MaxAngle):
+        if ( isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        return self.editor.TriToQuadObject(theObject, self.smeshpyD.GetFunctor(theCriterion), MaxAngle)
+
+    ## Split quadrangles into triangles.
+    #  @param IDsOfElements the faces to be splitted.
+    #  @param theCriterion  is FT_...; used to choose a diagonal for splitting.
+    #  @return TRUE in case of success, FALSE otherwise.
+    def QuadToTri (self, IDsOfElements, theCriterion):
+        if IDsOfElements == []:
+            IDsOfElements = self.GetElementsId()
+        return self.editor.QuadToTri(IDsOfElements, self.smeshpyD.GetFunctor(theCriterion))
+
+    ## Split quadrangles into triangles.
+    #  @param theObject object to taking list of elements from, is mesh, submesh or group
+    #  @param theCriterion  is FT_...; used to choose a diagonal for splitting.
+    def QuadToTriObject (self, theObject, theCriterion):
+        if ( isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        return self.editor.QuadToTriObject(theObject, self.smeshpyD.GetFunctor(theCriterion))
+
+    ## Split quadrangles into triangles.
+    #  @param theElems  The faces to be splitted
+    #  @param the13Diag is used to choose a diagonal for splitting.
+    #  @return TRUE in case of success, FALSE otherwise.
+    def SplitQuad (self, IDsOfElements, Diag13):
+        if IDsOfElements == []:
+            IDsOfElements = self.GetElementsId()
+        return self.editor.SplitQuad(IDsOfElements, Diag13)
+
+    ## Split quadrangles into triangles.
+    #  @param theObject is object to taking list of elements from, is mesh, submesh or group
+    def SplitQuadObject (self, theObject, Diag13):
+        if ( isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        return self.editor.SplitQuadObject(theObject, Diag13)
+
+    ## Find better splitting of the given quadrangle.
+    #  @param IDOfQuad  ID of the quadrangle to be splitted.
+    #  @param theCriterion is FT_...; a criterion to choose a diagonal for splitting.
+    #  @return 1 if 1-3 diagonal is better, 2 if 2-4
+    #          diagonal is better, 0 if error occurs.
+    def BestSplit (self, IDOfQuad, theCriterion):
+        return self.editor.BestSplit(IDOfQuad, self.smeshpyD.GetFunctor(theCriterion))
+
+    ## Split quafrangle faces near triangular facets of volumes
+    #
+    def SplitQuadsNearTriangularFacets(self):
+        faces_array = self.GetElementsByType(SMESH.FACE)
+        for face_id in faces_array:
+            if self.GetElemNbNodes(face_id) == 4: # quadrangle
+                quad_nodes = self.mesh.GetElemNodes(face_id)
+                node1_elems = self.GetNodeInverseElements(quad_nodes[1 -1])
+                isVolumeFound = False
+                for node1_elem in node1_elems:
+                    if not isVolumeFound:
+                        if self.GetElementType(node1_elem, True) == SMESH.VOLUME:
+                            nb_nodes = self.GetElemNbNodes(node1_elem)
+                            if 3 < nb_nodes and nb_nodes < 7: # tetra or penta, or prism
+                                volume_elem = node1_elem
+                                volume_nodes = self.mesh.GetElemNodes(volume_elem)
+                                if volume_nodes.count(quad_nodes[2 -1]) > 0: # 1,2
+                                    if volume_nodes.count(quad_nodes[4 -1]) > 0: # 1,2,4
+                                        isVolumeFound = True
+                                        if volume_nodes.count(quad_nodes[3 -1]) == 0: # 1,2,4 & !3
+                                            self.SplitQuad([face_id], False) # diagonal 2-4
+                                    elif volume_nodes.count(quad_nodes[3 -1]) > 0: # 1,2,3 & !4
+                                        isVolumeFound = True
+                                        self.SplitQuad([face_id], True) # diagonal 1-3
+                                elif volume_nodes.count(quad_nodes[4 -1]) > 0: # 1,4 & !2
+                                    if volume_nodes.count(quad_nodes[3 -1]) > 0: # 1,4,3 & !2
+                                        isVolumeFound = True
+                                        self.SplitQuad([face_id], True) # diagonal 1-3
+
+    ## @brief Split hexahedrons into tetrahedrons.
+    #
+    #  Use pattern mapping functionality for splitting.
+    #  @param theObject object to take list of hexahedrons from; is mesh, submesh or group.
+    #  @param theNode000,theNode001 is in range [0,7]; give an orientation of the
+    #         pattern relatively each hexahedron: the (0,0,0) key-point of pattern
+    #         will be mapped into <theNode000>-th node of each volume, the (0,0,1)
+    #         key-point will be mapped into <theNode001>-th node of each volume.
+    #         The (0,0,0) key-point of used pattern corresponds to not split corner.
+    #  @return TRUE in case of success, FALSE otherwise.
+    def SplitHexaToTetras (self, theObject, theNode000, theNode001):
+        # Pattern:     5.---------.6
+        #              /|#*      /|
+        #             / | #*    / |
+        #            /  |  # * /  |
+        #           /   |   # /*  |
+        # (0,0,1) 4.---------.7 * |
+        #          |#*  |1   | # *|
+        #          | # *.----|---#.2
+        #          |  #/ *   |   /
+        #          |  /#  *  |  /
+        #          | /   # * | /
+        #          |/      #*|/
+        # (0,0,0) 0.---------.3
+        pattern_tetra = "!!! Nb of points: \n 8 \n\
+        !!! Points: \n\
+        0 0 0  !- 0 \n\
+        0 1 0  !- 1 \n\
+        1 1 0  !- 2 \n\
+        1 0 0  !- 3 \n\
+        0 0 1  !- 4 \n\
+        0 1 1  !- 5 \n\
+        1 1 1  !- 6 \n\
+        1 0 1  !- 7 \n\
+        !!! Indices of points of 6 tetras: \n\
+        0 3 4 1 \n\
+        7 4 3 1 \n\
+        4 7 5 1 \n\
+        6 2 5 7 \n\
+        1 5 2 7 \n\
+        2 3 1 7 \n"
+
+        pattern = self.smeshpyD.GetPattern()
+        isDone  = pattern.LoadFromFile(pattern_tetra)
+        if not isDone:
+            print 'Pattern.LoadFromFile :', pattern.GetErrorCode()
+            return isDone
+
+        pattern.ApplyToHexahedrons(self.mesh, theObject.GetIDs(), theNode000, theNode001)
+        isDone = pattern.MakeMesh(self.mesh, False, False)
+        if not isDone: print 'Pattern.MakeMesh :', pattern.GetErrorCode()
+
+        # split quafrangle faces near triangular facets of volumes
+        self.SplitQuadsNearTriangularFacets()
+
+        return isDone
+
+    ## @brief Split hexahedrons into prisms.
+    #
+    #  Use pattern mapping functionality for splitting.
+    #  @param theObject object to take list of hexahedrons from; is mesh, submesh or group.
+    #  @param theNode000,theNode001 is in range [0,7]; give an orientation of the
+    #         pattern relatively each hexahedron: the (0,0,0) key-point of pattern
+    #         will be mapped into <theNode000>-th node of each volume, the (0,0,1)
+    #         key-point will be mapped into <theNode001>-th node of each volume.
+    #         The edge (0,0,0)-(0,0,1) of used pattern connects two not split corners.
+    #  @return TRUE in case of success, FALSE otherwise.
+    def SplitHexaToPrisms (self, theObject, theNode000, theNode001):
+        # Pattern:     5.---------.6
+        #              /|#       /|
+        #             / | #     / |
+        #            /  |  #   /  |
+        #           /   |   # /   |
+        # (0,0,1) 4.---------.7   |
+        #          |    |    |    |
+        #          |   1.----|----.2
+        #          |   / *   |   /
+        #          |  /   *  |  /
+        #          | /     * | /
+        #          |/       *|/
+        # (0,0,0) 0.---------.3
+        pattern_prism = "!!! Nb of points: \n 8 \n\
+        !!! Points: \n\
+        0 0 0  !- 0 \n\
+        0 1 0  !- 1 \n\
+        1 1 0  !- 2 \n\
+        1 0 0  !- 3 \n\
+        0 0 1  !- 4 \n\
+        0 1 1  !- 5 \n\
+        1 1 1  !- 6 \n\
+        1 0 1  !- 7 \n\
+        !!! Indices of points of 2 prisms: \n\
+        0 1 3 4 5 7 \n\
+        2 3 1 6 7 5 \n"
+
+        pattern = self.smeshpyD.GetPattern()
+        isDone  = pattern.LoadFromFile(pattern_prism)
+        if not isDone:
+            print 'Pattern.LoadFromFile :', pattern.GetErrorCode()
+            return isDone
+
+        pattern.ApplyToHexahedrons(self.mesh, theObject.GetIDs(), theNode000, theNode001)
+        isDone = pattern.MakeMesh(self.mesh, False, False)
+        if not isDone: print 'Pattern.MakeMesh :', pattern.GetErrorCode()
+
+        # split quafrangle faces near triangular facets of volumes
+        self.SplitQuadsNearTriangularFacets()
+
+        return isDone
+
+    ## Smooth elements
+    #  @param IDsOfElements list if ids of elements to smooth
+    #  @param IDsOfFixedNodes list of ids of fixed nodes.
+    #  Note that nodes built on edges and boundary nodes are always fixed.
+    #  @param MaxNbOfIterations maximum number of iterations
+    #  @param MaxAspectRatio varies in range [1.0, inf]
+    #  @param Method is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH)
+    def Smooth(self, IDsOfElements, IDsOfFixedNodes,
+               MaxNbOfIterations, MaxAspectRatio, Method):
+        if IDsOfElements == []:
+            IDsOfElements = self.GetElementsId()
+        return self.editor.Smooth(IDsOfElements, IDsOfFixedNodes,
+                                  MaxNbOfIterations, MaxAspectRatio, Method)
+
+    ## Smooth elements belong to given object
+    #  @param theObject object to smooth
+    #  @param IDsOfFixedNodes list of ids of fixed nodes.
+    #  Note that nodes built on edges and boundary nodes are always fixed.
+    #  @param MaxNbOfIterations maximum number of iterations
+    #  @param MaxAspectRatio varies in range [1.0, inf]
+    #  @param Method is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH)
+    def SmoothObject(self, theObject, IDsOfFixedNodes,
+                     MaxNbOfIterations, MaxxAspectRatio, Method):
+        if ( isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        return self.editor.SmoothObject(theObject, IDsOfFixedNodes,
+                                        MaxNbOfIterations, MaxxAspectRatio, Method)
+
+    ## Parametric smooth the given elements
+    #  @param IDsOfElements list if ids of elements to smooth
+    #  @param IDsOfFixedNodes list of ids of fixed nodes.
+    #  Note that nodes built on edges and boundary nodes are always fixed.
+    #  @param MaxNbOfIterations maximum number of iterations
+    #  @param MaxAspectRatio varies in range [1.0, inf]
+    #  @param Method is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH)
+    def SmoothParametric(self, IDsOfElements, IDsOfFixedNodes,
+                         MaxNbOfIterations, MaxAspectRatio, Method):
+        if IDsOfElements == []:
+            IDsOfElements = self.GetElementsId()
+        return self.editor.SmoothParametric(IDsOfElements, IDsOfFixedNodes,
+                                            MaxNbOfIterations, MaxAspectRatio, Method)
+
+    ## Parametric smooth elements belong to given object
+    #  @param theObject object to smooth
+    #  @param IDsOfFixedNodes list of ids of fixed nodes.
+    #  Note that nodes built on edges and boundary nodes are always fixed.
+    #  @param MaxNbOfIterations maximum number of iterations
+    #  @param MaxAspectRatio varies in range [1.0, inf]
+    #  @param Method is Laplacian(LAPLACIAN_SMOOTH) or Centroidal(CENTROIDAL_SMOOTH)
+    def SmoothParametricObject(self, theObject, IDsOfFixedNodes,
+                               MaxNbOfIterations, MaxAspectRatio, Method):
+        if ( isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        return self.editor.SmoothParametricObject(theObject, IDsOfFixedNodes,
+                                                  MaxNbOfIterations, MaxAspectRatio, Method)
+
+    ## Converts all mesh to quadratic one, deletes old elements, replacing
+    #  them with quadratic ones with the same id.
+    def ConvertToQuadratic(self, theForce3d):
+        self.editor.ConvertToQuadratic(theForce3d)
+
+    ## Converts all mesh from quadratic to ordinary ones,
+    #  deletes old quadratic elements, \n replacing
+    #  them with ordinary mesh elements with the same id.
+    def ConvertFromQuadratic(self):
+        return self.editor.ConvertFromQuadratic()
+
+    ## Renumber mesh nodes
+    def RenumberNodes(self):
+        self.editor.RenumberNodes()
+
+    ## Renumber mesh elements
+    def RenumberElements(self):
+        self.editor.RenumberElements()
+
+    ## Generate new elements by rotation of the elements around the axis
+    #  @param IDsOfElements list of ids of elements to sweep
+    #  @param Axix axis of rotation, AxisStruct or line(geom object)
+    #  @param AngleInRadians angle of Rotation
+    #  @param NbOfSteps number of steps
+    #  @param Tolerance tolerance
+    #  @param MakeGroups to generate new groups from existing ones
+    def RotationSweep(self, IDsOfElements, Axix, AngleInRadians, NbOfSteps, Tolerance, MakeGroups=False):
+        if IDsOfElements == []:
+            IDsOfElements = self.GetElementsId()
+        if ( isinstance( Axix, geompyDC.GEOM._objref_GEOM_Object)):
+            Axix = self.smeshpyD.GetAxisStruct(Axix)
+        if MakeGroups:
+            return self.editor.RotationSweepMakeGroups(IDsOfElements, Axix,
+                                                       AngleInRadians, NbOfSteps, Tolerance)
+        self.editor.RotationSweep(IDsOfElements, Axix, AngleInRadians, NbOfSteps, Tolerance)
+        return []
+
+    ## Generate new elements by rotation of the elements of object around the axis
+    #  @param theObject object wich elements should be sweeped
+    #  @param Axix axis of rotation, AxisStruct or line(geom object)
+    #  @param AngleInRadians angle of Rotation
+    #  @param NbOfSteps number of steps
+    #  @param Tolerance tolerance
+    #  @param MakeGroups to generate new groups from existing ones
+    def RotationSweepObject(self, theObject, Axix, AngleInRadians, NbOfSteps, Tolerance, MakeGroups=False):
+        if ( isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        if ( isinstance( Axix, geompyDC.GEOM._objref_GEOM_Object)):
+            Axix = self.smeshpyD.GetAxisStruct(Axix)
+        if MakeGroups:
+            return self.editor.RotationSweepObjectMakeGroups(theObject, Axix, AngleInRadians,
+                                                             NbOfSteps, Tolerance)
+        self.editor.RotationSweepObject(theObject, Axix, AngleInRadians, NbOfSteps, Tolerance)
+        return []
+
+    ## Generate new elements by extrusion of the elements with given ids
+    #  @param IDsOfElements list of elements ids for extrusion
+    #  @param StepVector vector, defining the direction and value of extrusion
+    #  @param NbOfSteps the number of steps
+    #  @param MakeGroups to generate new groups from existing ones
+    def ExtrusionSweep(self, IDsOfElements, StepVector, NbOfSteps, MakeGroups=False):
+        if IDsOfElements == []:
+            IDsOfElements = self.GetElementsId()
+        if ( isinstance( StepVector, geompyDC.GEOM._objref_GEOM_Object)):
+            StepVector = self.smeshpyD.GetDirStruct(StepVector)
+        if MakeGroups:
+            return self.editor.ExtrusionSweepMakeGroups(IDsOfElements, StepVector, NbOfSteps)
+        self.editor.ExtrusionSweep(IDsOfElements, StepVector, NbOfSteps)
+        return []
+
+    ## Generate new elements by extrusion of the elements with given ids
+    #  @param IDsOfElements is ids of elements
+    #  @param StepVector vector, defining the direction and value of extrusion
+    #  @param NbOfSteps the number of steps
+    #  @param ExtrFlags set flags for performing extrusion
+    #  @param SewTolerance uses for comparing locations of nodes if flag
+    #         EXTRUSION_FLAG_SEW is set
+    #  @param MakeGroups to generate new groups from existing ones
+    def AdvancedExtrusion(self, IDsOfElements, StepVector, NbOfSteps, ExtrFlags, SewTolerance, MakeGroups=False):
+        if ( isinstance( StepVector, geompyDC.GEOM._objref_GEOM_Object)):
+            StepVector = self.smeshpyD.GetDirStruct(StepVector)
+        if MakeGroups:
+            return self.editor.AdvancedExtrusionMakeGroups(IDsOfElements, StepVector, NbOfSteps,
+                                                           ExtrFlags, SewTolerance)
+        self.editor.AdvancedExtrusion(IDsOfElements, StepVector, NbOfSteps,
+                                      ExtrFlags, SewTolerance)
+        return []
+
+    ## Generate new elements by extrusion of the elements belong to object
+    #  @param theObject object wich elements should be processed
+    #  @param StepVector vector, defining the direction and value of extrusion
+    #  @param NbOfSteps the number of steps
+    #  @param MakeGroups to generate new groups from existing ones
+    def ExtrusionSweepObject(self, theObject, StepVector, NbOfSteps, MakeGroups=False):
+        if ( isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        if ( isinstance( StepVector, geompyDC.GEOM._objref_GEOM_Object)):
+            StepVector = self.smeshpyD.GetDirStruct(StepVector)
+        if MakeGroups:
+            return self.editor.ExtrusionSweepObjectMakeGroups(theObject, StepVector, NbOfSteps)
+        self.editor.ExtrusionSweepObject(theObject, StepVector, NbOfSteps)
+        return []
+
+    ## Generate new elements by extrusion of the elements belong to object
+    #  @param theObject object wich elements should be processed
+    #  @param StepVector vector, defining the direction and value of extrusion
+    #  @param NbOfSteps the number of steps
+    #  @param MakeGroups to generate new groups from existing ones
+    def ExtrusionSweepObject1D(self, theObject, StepVector, NbOfSteps, MakeGroups=False):
+        if ( isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        if ( isinstance( StepVector, geompyDC.GEOM._objref_GEOM_Object)):
+            StepVector = self.smeshpyD.GetDirStruct(StepVector)
+        if MakeGroups:
+            return self.editor.ExtrusionSweepObject1DMakeGroups(theObject, StepVector, NbOfSteps)
+        self.editor.ExtrusionSweepObject1D(theObject, StepVector, NbOfSteps)
+        return []
+
+    ## Generate new elements by extrusion of the elements belong to object
+    #  @param theObject object wich elements should be processed
+    #  @param StepVector vector, defining the direction and value of extrusion
+    #  @param NbOfSteps the number of steps
+    #  @param MakeGroups to generate new groups from existing ones
+    def ExtrusionSweepObject2D(self, theObject, StepVector, NbOfSteps, MakeGroups=False):
+        if ( isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        if ( isinstance( StepVector, geompyDC.GEOM._objref_GEOM_Object)):
+            StepVector = self.smeshpyD.GetDirStruct(StepVector)
+        if MakeGroups:
+            return self.editor.ExtrusionSweepObject2DMakeGroups(theObject, StepVector, NbOfSteps)
+        self.editor.ExtrusionSweepObject2D(theObject, StepVector, NbOfSteps)
+        return []
+
+    ## Generate new elements by extrusion of the given elements
+    #  A path of extrusion must be a meshed edge.
+    #  @param IDsOfElements is ids of elements
+    #  @param PathMesh mesh containing a 1D sub-mesh on the edge, along which proceeds the extrusion
+    #  @param PathShape is shape(edge); as the mesh can be complex, the edge is used to define the sub-mesh for the path
+    #  @param NodeStart the first or the last node on the edge. It is used to define the direction of extrusion
+    #  @param HasAngles allows the shape to be rotated around the path to get the resulting mesh in a helical fashion
+    #  @param Angles list of angles
+    #  @param HasRefPoint allows to use base point
+    #  @param RefPoint point around which the shape is rotated(the mass center of the shape by default).
+    #         User can specify any point as the Base Point and the shape will be rotated with respect to this point.
+    #  @param MakeGroups to generate new groups from existing ones
+    #  @param LinearVariation makes compute rotation angles as linear variation of given Angles along path steps
+    def ExtrusionAlongPath(self, IDsOfElements, PathMesh, PathShape, NodeStart,
+                           HasAngles, Angles, HasRefPoint, RefPoint,
+                           MakeGroups=False, LinearVariation=False):
+        if IDsOfElements == []:
+            IDsOfElements = self.GetElementsId()
+        if ( isinstance( RefPoint, geompyDC.GEOM._objref_GEOM_Object)):
+            RefPoint = self.smeshpyD.GetPointStruct(RefPoint)
+            pass
+        if MakeGroups:
+            return self.editor.ExtrusionAlongPathMakeGroups(IDsOfElements, PathMesh.GetMesh(),
+                                                            PathShape, NodeStart, HasAngles,
+                                                            Angles, HasRefPoint, RefPoint)
+        return self.editor.ExtrusionAlongPath(IDsOfElements, PathMesh.GetMesh(), PathShape,
+                                              NodeStart, HasAngles, Angles, HasRefPoint, RefPoint)
+
+    ## Generate new elements by extrusion of the elements belong to object
+    #  A path of extrusion must be a meshed edge.
+    #  @param IDsOfElements is ids of elements
+    #  @param PathMesh mesh containing a 1D sub-mesh on the edge, along which proceeds the extrusion
+    #  @param PathShape is shape(edge); as the mesh can be complex, the edge is used to define the sub-mesh for the path
+    #  @param NodeStart the first or the last node on the edge. It is used to define the direction of extrusion
+    #  @param HasAngles allows the shape to be rotated around the path to get the resulting mesh in a helical fashion
+    #  @param Angles list of angles
+    #  @param HasRefPoint allows to use base point
+    #  @param RefPoint point around which the shape is rotated(the mass center of the shape by default).
+    #         User can specify any point as the Base Point and the shape will be rotated with respect to this point.
+    #  @param MakeGroups to generate new groups from existing ones
+    #  @param LinearVariation makes compute rotation angles as linear variation of given Angles along path steps
+    def ExtrusionAlongPathObject(self, theObject, PathMesh, PathShape, NodeStart,
+                                 HasAngles, Angles, HasRefPoint, RefPoint,
+                                 MakeGroups=False, LinearVariation=False):
+        if ( isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        if ( isinstance( RefPoint, geompyDC.GEOM._objref_GEOM_Object)):
+            RefPoint = self.smeshpyD.GetPointStruct(RefPoint)
+        if MakeGroups:
+            return self.editor.ExtrusionAlongPathObjectMakeGroups(theObject, PathMesh.GetMesh(),
+                                                                  PathShape, NodeStart, HasAngles,
+                                                                  Angles, HasRefPoint, RefPoint)
+        return self.editor.ExtrusionAlongPathObject(theObject, PathMesh.GetMesh(), PathShape,
+                                                    NodeStart, HasAngles, Angles, HasRefPoint,
+                                                    RefPoint)
+
+    ## Symmetrical copy of mesh elements
+    #  @param IDsOfElements list of elements ids
+    #  @param Mirror is AxisStruct or geom object(point, line, plane)
+    #  @param theMirrorType is  POINT, AXIS or PLANE
+    #  If the Mirror is geom object this parameter is unnecessary
+    #  @param Copy allows to copy element(Copy is 1) or to replace with its mirroring(Copy is 0)
+    #  @param MakeGroups to generate new groups from existing ones (if Copy)
+    def Mirror(self, IDsOfElements, Mirror, theMirrorType, Copy=0, MakeGroups=False):
+        if IDsOfElements == []:
+            IDsOfElements = self.GetElementsId()
+        if ( isinstance( Mirror, geompyDC.GEOM._objref_GEOM_Object)):
+            Mirror = self.smeshpyD.GetAxisStruct(Mirror)
+        if Copy and MakeGroups:
+            return self.editor.MirrorMakeGroups(IDsOfElements, Mirror, theMirrorType)
+        self.editor.Mirror(IDsOfElements, Mirror, theMirrorType, Copy)
+        return []
+
+    ## Create a new mesh by symmetrical copy of mesh elements
+    #  @param IDsOfElements list of elements ids
+    #  @param Mirror is AxisStruct or geom object(point, line, plane)
+    #  @param theMirrorType is  POINT, AXIS or PLANE
+    #  If the Mirror is geom object this parameter is unnecessary
+    #  @param MakeGroups to generate new groups from existing ones
+    #  @param NewMeshName is a name of new mesh to create
+    def MirrorMakeMesh(self, IDsOfElements, Mirror, theMirrorType, MakeGroups=0, NewMeshName=""):
+        if IDsOfElements == []:
+            IDsOfElements = self.GetElementsId()
+        if ( isinstance( Mirror, geompyDC.GEOM._objref_GEOM_Object)):
+            Mirror = self.smeshpyD.GetAxisStruct(Mirror)
+        mesh = self.editor.MirrorMakeMesh(IDsOfElements, Mirror, theMirrorType,
+                                          MakeGroups, NewMeshName)
+        return Mesh(self.smeshpyD,self.geompyD,mesh)
+
+    ## Symmetrical copy of object
+    #  @param theObject mesh, submesh or group
+    #  @param Mirror is AxisStruct or geom object(point, line, plane)
+    #  @param theMirrorType is  POINT, AXIS or PLANE
+    #  If the Mirror is geom object this parameter is unnecessary
+    #  @param Copy allows to copy element(Copy is 1) or to replace with its mirroring(Copy is 0)
+    #  @param MakeGroups to generate new groups from existing ones (if Copy)
+    def MirrorObject (self, theObject, Mirror, theMirrorType, Copy=0, MakeGroups=False):
+        if ( isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        if ( isinstance( Mirror, geompyDC.GEOM._objref_GEOM_Object)):
+            Mirror = self.smeshpyD.GetAxisStruct(Mirror)
+        if Copy and MakeGroups:
+            return self.editor.MirrorObjectMakeGroups(theObject, Mirror, theMirrorType)
+        self.editor.MirrorObject(theObject, Mirror, theMirrorType, Copy)
+        return []
+
+    ## Create a new mesh by symmetrical copy of object
+    #  @param theObject mesh, submesh or group
+    #  @param Mirror is AxisStruct or geom object(point, line, plane)
+    #  @param theMirrorType is  POINT, AXIS or PLANE
+    #  If the Mirror is geom object this parameter is unnecessary
+    #  @param MakeGroups to generate new groups from existing ones
+    #  @param NewMeshName is a name of new mesh to create
+    def MirrorObjectMakeMesh (self, theObject, Mirror, theMirrorType,MakeGroups=0, NewMeshName=""):
+        if ( isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        if (isinstance(Mirror, geompyDC.GEOM._objref_GEOM_Object)):
+            Mirror = self.smeshpyD.GetAxisStruct(Mirror)
+        mesh = self.editor.MirrorObjectMakeMesh(theObject, Mirror, theMirrorType,
+                                                MakeGroups, NewMeshName)
+        return Mesh( self.smeshpyD,self.geompyD,mesh )
+
+    ## Translates the elements
+    #  @param IDsOfElements list of elements ids
+    #  @param Vector direction of translation(DirStruct or vector)
+    #  @param Copy allows to copy the translated elements
+    #  @param MakeGroups to generate new groups from existing ones (if Copy)
+    def Translate(self, IDsOfElements, Vector, Copy, MakeGroups=False):
+        if IDsOfElements == []:
+            IDsOfElements = self.GetElementsId()
+        if ( isinstance( Vector, geompyDC.GEOM._objref_GEOM_Object)):
+            Vector = self.smeshpyD.GetDirStruct(Vector)
+        if Copy and MakeGroups:
+            return self.editor.TranslateMakeGroups(IDsOfElements, Vector)
+        self.editor.Translate(IDsOfElements, Vector, Copy)
+        return []
+
+    ## Create a new mesh of translated elements
+    #  @param IDsOfElements list of elements ids
+    #  @param Vector direction of translation(DirStruct or vector)
+    #  @param MakeGroups to generate new groups from existing ones
+    #  @param NewMeshName is a name of new mesh to create
+    def TranslateMakeMesh(self, IDsOfElements, Vector, MakeGroups=False, NewMeshName=""):
+        if IDsOfElements == []:
+            IDsOfElements = self.GetElementsId()
+        if ( isinstance( Vector, geompyDC.GEOM._objref_GEOM_Object)):
+            Vector = self.smeshpyD.GetDirStruct(Vector)
+        mesh = self.editor.TranslateMakeMesh(IDsOfElements, Vector, MakeGroups, NewMeshName)
+        return Mesh ( self.smeshpyD, self.geompyD, mesh )
+
+    ## Translates the object
+    #  @param theObject object to translate(mesh, submesh, or group)
+    #  @param Vector direction of translation(DirStruct or geom vector)
+    #  @param Copy allows to copy the translated elements
+    #  @param MakeGroups to generate new groups from existing ones (if Copy)
+    def TranslateObject(self, theObject, Vector, Copy, MakeGroups=False):
+        if ( isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        if ( isinstance( Vector, geompyDC.GEOM._objref_GEOM_Object)):
+            Vector = self.smeshpyD.GetDirStruct(Vector)
+        if Copy and MakeGroups:
+            return self.editor.TranslateObjectMakeGroups(theObject, Vector)
+        self.editor.TranslateObject(theObject, Vector, Copy)
+        return []
+
+    ## Create a new mesh from translated object
+    #  @param theObject object to translate(mesh, submesh, or group)
+    #  @param Vector direction of translation(DirStruct or geom vector)
+    #  @param MakeGroups to generate new groups from existing ones
+    #  @param NewMeshName is a name of new mesh to create
+    def TranslateObjectMakeMesh(self, theObject, Vector, MakeGroups=False, NewMeshName=""):
+        if (isinstance(theObject, Mesh)):
+            theObject = theObject.GetMesh()
+        if (isinstance(Vector, geompyDC.GEOM._objref_GEOM_Object)):
+            Vector = self.smeshpyD.GetDirStruct(Vector)
+        mesh = self.editor.TranslateObjectMakeMesh(theObject, Vector, MakeGroups, NewMeshName)
+        return Mesh( self.smeshpyD, self.geompyD, mesh )
+
+    ## Rotates the elements
+    #  @param IDsOfElements list of elements ids
+    #  @param Axis axis of rotation(AxisStruct or geom line)
+    #  @param AngleInRadians angle of rotation(in radians)
+    #  @param Copy allows to copy the rotated elements
+    #  @param MakeGroups to generate new groups from existing ones (if Copy)
+    def Rotate (self, IDsOfElements, Axis, AngleInRadians, Copy, MakeGroups=False):
+        if IDsOfElements == []:
+            IDsOfElements = self.GetElementsId()
+        if ( isinstance( Axis, geompyDC.GEOM._objref_GEOM_Object)):
+            Axis = self.smeshpyD.GetAxisStruct(Axis)
+        if Copy and MakeGroups:
+            return self.editor.RotateMakeGroups(IDsOfElements, Axis, AngleInRadians)
+        self.editor.Rotate(IDsOfElements, Axis, AngleInRadians, Copy)
+        return []
+
+    ## Create a new mesh of rotated elements
+    #  @param IDsOfElements list of element ids
+    #  @param Axis axis of rotation(AxisStruct or geom line)
+    #  @param AngleInRadians angle of rotation(in radians)
+    #  @param MakeGroups to generate new groups from existing ones
+    #  @param NewMeshName is a name of new mesh to create
+    def RotateMakeMesh (self, IDsOfElements, Axis, AngleInRadians, MakeGroups=0, NewMeshName=""):
+        if IDsOfElements == []:
+            IDsOfElements = self.GetElementsId()
+        if ( isinstance( Axis, geompyDC.GEOM._objref_GEOM_Object)):
+            Axis = self.smeshpyD.GetAxisStruct(Axis)
+        mesh = self.editor.RotateMakeMesh(IDsOfElements, Axis, AngleInRadians,
+                                          MakeGroups, NewMeshName)
+        return Mesh( self.smeshpyD, self.geompyD, mesh )
+
+    ## Rotates the object
+    #  @param theObject object to rotate(mesh, submesh, or group)
+    #  @param Axis axis of rotation(AxisStruct or geom line)
+    #  @param AngleInRadians angle of rotation(in radians)
+    #  @param Copy allows to copy the rotated elements
+    #  @param MakeGroups to generate new groups from existing ones (if Copy)
+    def RotateObject (self, theObject, Axis, AngleInRadians, Copy, MakeGroups=False):
+        if (isinstance(theObject, Mesh)):
+            theObject = theObject.GetMesh()
+        if (isinstance(Axis, geompyDC.GEOM._objref_GEOM_Object)):
+            Axis = self.smeshpyD.GetAxisStruct(Axis)
+        if Copy and MakeGroups:
+            return self.editor.RotateObjectMakeGroups(theObject, Axis, AngleInRadians)
+        self.editor.RotateObject(theObject, Axis, AngleInRadians, Copy)
+        return []
+
+    ## Create a new mesh from a rotated object
+    #  @param theObject object to rotate (mesh, submesh, or group)
+    #  @param Axis axis of rotation(AxisStruct or geom line)
+    #  @param AngleInRadians angle of rotation(in radians)
+    #  @param MakeGroups to generate new groups from existing ones
+    #  @param NewMeshName is a name of new mesh to create
+    def RotateObjectMakeMesh(self, theObject, Axis, AngleInRadians, MakeGroups=0,NewMeshName=""):
+        if (isinstance( theObject, Mesh )):
+            theObject = theObject.GetMesh()
+        if (isinstance(Axis, geompyDC.GEOM._objref_GEOM_Object)):
+            Axis = self.smeshpyD.GetAxisStruct(Axis)
+        mesh = self.editor.RotateObjectMakeMesh(theObject, Axis, AngleInRadians,
+                                                       MakeGroups, NewMeshName)
+        return Mesh( self.smeshpyD, self.geompyD, mesh )
+
+    ## Find group of nodes close to each other within Tolerance.
+    #  @param Tolerance tolerance value
+    #  @param list of group of nodes
+    def FindCoincidentNodes (self, Tolerance):
+        return self.editor.FindCoincidentNodes(Tolerance)
+
+    ## Find group of nodes close to each other within Tolerance.
+    #  @param Tolerance tolerance value
+    #  @param SubMeshOrGroup SubMesh or Group
+    #  @param list of group of nodes
+    def FindCoincidentNodesOnPart (self, SubMeshOrGroup, Tolerance):
+        return self.editor.FindCoincidentNodesOnPart(SubMeshOrGroup, Tolerance)
+
+    ## Merge nodes
+    #  @param list of group of nodes
+    def MergeNodes (self, GroupsOfNodes):
+        self.editor.MergeNodes(GroupsOfNodes)
+
+    ## Find elements built on the same nodes.
+    #  @param MeshOrSubMeshOrGroup Mesh or SubMesh, or Group of elements for searching
+    #  @return a list of groups of equal elements
+    def FindEqualElements (self, MeshOrSubMeshOrGroup):
+        return self.editor.FindEqualElements(MeshOrSubMeshOrGroup)
+
+    ## Merge elements in each given group.
+    #  @param GroupsOfElementsID groups of elements for merging
+    def MergeElements(self, GroupsOfElementsID):
+        self.editor.MergeElements(GroupsOfElementsID)
+
+    ## Remove all but one of elements built on the same nodes.
+    def MergeEqualElements(self):
+        self.editor.MergeEqualElements()
+
+    ## Sew free borders
+    def SewFreeBorders (self, FirstNodeID1, SecondNodeID1, LastNodeID1,
+                        FirstNodeID2, SecondNodeID2, LastNodeID2,
+                        CreatePolygons, CreatePolyedrs):
+        return self.editor.SewFreeBorders(FirstNodeID1, SecondNodeID1, LastNodeID1,
+                                          FirstNodeID2, SecondNodeID2, LastNodeID2,
+                                          CreatePolygons, CreatePolyedrs)
+
+    ## Sew conform free borders
+    def SewConformFreeBorders (self, FirstNodeID1, SecondNodeID1, LastNodeID1,
+                               FirstNodeID2, SecondNodeID2):
+        return self.editor.SewConformFreeBorders(FirstNodeID1, SecondNodeID1, LastNodeID1,
+                                                 FirstNodeID2, SecondNodeID2)
+
+    ## Sew border to side
+    def SewBorderToSide (self, FirstNodeIDOnFreeBorder, SecondNodeIDOnFreeBorder, LastNodeIDOnFreeBorder,
+                         FirstNodeIDOnSide, LastNodeIDOnSide, CreatePolygons, CreatePolyedrs):
+        return self.editor.SewBorderToSide(FirstNodeIDOnFreeBorder, SecondNodeIDOnFreeBorder, LastNodeIDOnFreeBorder,
+                                           FirstNodeIDOnSide, LastNodeIDOnSide, CreatePolygons, CreatePolyedrs)
+
+    ## Sew two sides of a mesh. Nodes belonging to Side1 are
+    #  merged with nodes of elements of Side2.
+    #  Number of elements in theSide1 and in theSide2 must be
+    #  equal and they should have similar node connectivity.
+    #  The nodes to merge should belong to sides borders and
+    #  the first node should be linked to the second.
+    def SewSideElements (self, IDsOfSide1Elements, IDsOfSide2Elements,
+                         NodeID1OfSide1ToMerge, NodeID1OfSide2ToMerge,
+                         NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge):
+        return self.editor.SewSideElements(IDsOfSide1Elements, IDsOfSide2Elements,
+                                           NodeID1OfSide1ToMerge, NodeID1OfSide2ToMerge,
+                                           NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge)
+
+    ## Set new nodes for given element.
+    #  @param ide the element id
+    #  @param newIDs nodes ids
+    #  @return If number of nodes is not corresponded to type of element - returns false
+    def ChangeElemNodes(self, ide, newIDs):
+        return self.editor.ChangeElemNodes(ide, newIDs)
+
+    ## If during last operation of MeshEditor some nodes were
+    #  created this method returns list of its IDs, \n
+    #  if new nodes not created - returns empty list
+    def GetLastCreatedNodes(self):
+        return self.editor.GetLastCreatedNodes()
+
+    ## If during last operation of MeshEditor some elements were
+    #  created this method returns list of its IDs, \n
+    #  if new elements not creared - returns empty list
+    def GetLastCreatedElems(self):
+        return self.editor.GetLastCreatedElems()
diff --git a/src/SMESH_SWIG_WITHIHM/Makefile.am b/src/SMESH_SWIG_WITHIHM/Makefile.am
new file mode 100644 (file)
index 0000000..7988a23
--- /dev/null
@@ -0,0 +1,115 @@
+#  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 : Nicolas REJNERI, Paul RASCLE
+#  Modified by : Alexander BORODIN (OCN) - autotools usage
+#  Module : SMESH
+#  $Header$
+
+include $(top_srcdir)/adm_local/unix/make_common_starter.am
+
+# ===============================================================
+# Swig targets
+# ===============================================================
+# (cf. http://www.geocities.com/foetsch/python/swig_linux.htm)
+#
+# Step 1: build the wrapping source files with swig
+#
+# libSALOME_LifeCycleCORBA.i -- swig --> swig_wrap.cpp
+#                                        libSALOME_Swig.py
+#
+# Step 2: build the dynamic library from cpp built source files and
+#         dependant libraries.
+#
+# swig_wrap.cpp -- gcc --> swig_wrap.o    |-- link --> _libSALOME_Swig.la
+#                          +              |
+#                          dependant libs |
+#
+# The file libSALOME_Swigcmodule.py will be installed in
+# <prefix>/lib/python<version>/site-package/salome.
+# The library will be installed in the same place.
+#
+
+# this option puts it to dist
+#BUILT_SOURCES = swig_wrap.cpp
+
+SWIG_FLAGS    = \
+       @SWIG_FLAGS@ \
+       -I$(srcdir) \
+       -I$(srcdir)/../SMESHGUI
+
+SWIG_SOURCES  = libSMESH_Swig.i
+
+# Libraries targets
+
+lib_LTLIBRARIES = libSMESH_Swigcmodule.la
+
+nodist_pkgpython_DATA = libSMESH_Swig.py
+libSMESH_Swig.py: swig_wrap.cpp
+
+libSMESH_Swigcmodule_la_SOURCES = \
+       $(BUILT_SOURCES) \
+       $(SWIG_SOURCES) \
+       ../SMESHGUI/SMESHGUI_Swig.cxx
+
+nodist_libSMESH_Swigcmodule_la_SOURCES = \
+       swig_wrap.cpp
+
+libSMESH_Swigcmodule_la_CPPFLAGS = \
+       $(QT_INCLUDES) \
+       $(PYTHON_INCLUDES) \
+       $(CAS_CPPFLAGS) \
+       $(VTK_INCLUDES) \
+       $(OGL_INCLUDES) \
+       $(KERNEL_CXXFLAGS) \
+       $(GUI_CXXFLAGS) \
+       $(MED_CXXFLAGS) \
+       $(GEOM_CXXFLAGS) \
+       $(CORBA_CXXFLAGS) \
+       $(CORBA_INCLUDES) \
+       $(BOOST_CPPFLAGS) \
+       -I$(srcdir)/../SMESHGUI \
+       -I$(top_builddir)/idl \
+       -I$(top_builddir)/salome_adm/unix
+
+libSMESH_Swigcmodule_la_LDFLAGS  = \
+       ../SMESHGUI/libSMESH.la \
+       $(KERNEL_LDFLAGS) -lSalomeGenericObj -lSALOMELocalTrace \
+       $(GUI_LDFLAGS) -lCAM -lsuit -lqtx -lSalomeApp -lstd -lEvent \
+       $(PYTHON_LIBS) \
+       $(QT_MT_LIBS)
+
+
+swig_wrap.cpp : $(SWIG_SOURCES)
+       $(SWIG) $(SWIG_FLAGS) -o $@ $<
+
+CLEANFILES = \
+       swig_wrap.cpp
+
+# Scripts to be installed.
+dist_salomescript_DATA= \
+       libSMESH_Swig.py
+
+install-exec-hook: $(libdir)/_libSMESH_Swig.so
+
+$(libdir)/_libSMESH_Swig.so:
+       ( cd $(libdir); ln -sf libSMESH_Swigcmodule.so _libSMESH_Swig.so; )
diff --git a/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.i b/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.i
new file mode 100644 (file)
index 0000000..247c0fc
--- /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   : libGeometry_Swig.i
+//  Author : Nicolas REJNERI, Paul RASCLE
+//  Module : SMESH
+//  $Header$
+
+%module libSMESH_Swig
+
+%include "SMESHGUI_Swig.i"
+
index d05ea4dbb770731456ebee0a2a3858019eb80ba5..74d632a6f086376d363fb2cb5ba034b884ad2410 100644 (file)
@@ -58,10 +58,11 @@ salomeinclude_HEADERS = \
        StdMeshers_RadialPrism_3D.hxx  \
        StdMeshers_ProjectionUtils.hxx \
        StdMeshers_LayerDistribution.hxx \
-       StdMeshers_CompositeSegment_1D.hxx \
-       StdMeshers_FaceSide.hxx \
        StdMeshers_SegmentAroundVertex_0D.hxx \
        StdMeshers_SegmentLengthAroundVertex.hxx \
+       StdMeshers_FaceSide.hxx \
+       StdMeshers_CompositeSegment_1D.hxx \
+       StdMeshers_UseExisting_1D2D.hxx \
        SMESH_StdMeshers.hxx
 
 # Libraries targets
@@ -99,10 +100,11 @@ dist_libStdMeshers_la_SOURCES = \
        StdMeshers_RadialPrism_3D.cxx \
        StdMeshers_ProjectionUtils.cxx \
        StdMeshers_LayerDistribution.cxx \
-       StdMeshers_CompositeSegment_1D.cxx \
-       StdMeshers_FaceSide.cxx \
        StdMeshers_SegmentAroundVertex_0D.cxx \
-       StdMeshers_SegmentLengthAroundVertex.cxx
+       StdMeshers_SegmentLengthAroundVertex.cxx \
+       StdMeshers_FaceSide.cxx \
+       StdMeshers_CompositeSegment_1D.cxx \
+       StdMeshers_UseExisting_1D2D.cxx
 
 
 # additionnal information to compil and link file
@@ -110,6 +112,7 @@ libStdMeshers_la_CPPFLAGS = \
        $(CAS_CPPFLAGS) \
        $(BOOST_CPPFLAGS) \
        $(KERNEL_CXXFLAGS) \
+       $(GUI_CXXFLAGS) \
        -I$(srcdir)/../SMESHImpl \
        -I$(srcdir)/../MEFISTO2 \
        -I$(srcdir)/../SMESH \
index 1820f6fe32a6fe75aa199a5b33e931a7f5e8e623..381caade19a2358e5705d35784cb8bbb7d1da963 100644 (file)
@@ -91,8 +91,7 @@ namespace {
         eNext = TopoDS::Edge( ancestor );
     }
     if ( edgeCounter.Extent() < 3 && !eNext.IsNull() ) {
-      GeomAbs_Shape cont = SMESH_Algo::Continuity( edge, eNext );
-      if (cont >= GeomAbs_G1) {
+      if ( SMESH_Algo::IsContinuous( edge, eNext )) {
         // care of orientation
         bool reverse;
         if ( forward )
@@ -120,7 +119,7 @@ namespace {
       return;
     for ( int iE = 0; iE < side.NbEdges(); ++iE )
     {
-      // set listener and its data 
+      // set listener and its data
       EventListenerData * listenerData = new EventListenerData(true);
       const TopoDS_Edge& edge = side.Edge( iE );
       SMESH_subMesh * sm = side.GetMesh()->GetSubMesh( edge );
@@ -334,7 +333,7 @@ bool StdMeshers_CompositeSegment_1D::Compute(SMESH_Mesh &         aMesh,
   auto_ptr< BRepAdaptor_CompCurve > C3d ( side->GetCurve3d() );
   double f = C3d->FirstParameter(), l = C3d->LastParameter();
   list< double > params;
-  if ( !computeInternalParameters ( *C3d, side->Length(), f, l, params, false ))
+  if ( !computeInternalParameters ( aMesh, *C3d, side->Length(), f, l, params, false ))
     return false;
 
   // Redistribute parameters near ends
@@ -350,7 +349,7 @@ bool StdMeshers_CompositeSegment_1D::Compute(SMESH_Mesh &         aMesh,
 
   const SMDS_MeshNode * nFirst = SMESH_Algo::VertexNode( VFirst, meshDS );
   const SMDS_MeshNode * nLast  = SMESH_Algo::VertexNode( VLast, meshDS );
-  if (!nFirst) 
+  if (!nFirst)
     return error(COMPERR_BAD_INPUT_MESH, TComm("No node on vertex ")
                  <<meshDS->ShapeToIndex(VFirst));
   if (!nLast)
@@ -415,4 +414,3 @@ bool StdMeshers_CompositeSegment_1D::Compute(SMESH_Mesh &         aMesh,
 
   return true;
 }
-
index 66b87ecdf87fcd3277ac9def187f3692056ca482..9d16fa76bcd2207be9db49e7b2bd5b555a6fdd9b 100644 (file)
@@ -29,6 +29,7 @@
 #define _SMESH_CompositeSegment_1D_HXX_
 
 #include "StdMeshers_Regular_1D.hxx"
+#include "SMESH_StdMeshers.hxx"
 
 class SMESH_subMeshEventListener;
 class SMESH_Mesh;
@@ -36,7 +37,7 @@ class StdMeshers_FaceSide;
 class TopoDS_Edge;
 class TopoDS_Face;
 
-class StdMeshers_CompositeSegment_1D: public StdMeshers_Regular_1D
+class STDMESHERS_EXPORT StdMeshers_CompositeSegment_1D: public StdMeshers_Regular_1D
 {
 public:
   StdMeshers_CompositeSegment_1D(int hypId, int studyId, SMESH_Gen* gen);
index 44153632755a5836ed37d64fb58f9f8e031921d0..fce8298f430ac1708e708921c5811f4d104f6d5b 100644 (file)
@@ -39,8 +39,6 @@
 
 #ifdef NO_CAS_CATCH
 #include <Standard_ErrorHandler.hxx>
-#else
-#include "CASCatch.hxx"
 #endif
 
 Function::Function( const int conv )
@@ -56,18 +54,12 @@ bool Function::value( const double, double& f ) const
 {
   bool ok = true;
   if (myConv == 0) {
-#ifdef NO_CAS_CATCH
     try {
+#ifdef NO_CAS_CATCH
       OCC_CATCH_SIGNALS;
-#else
-    CASCatch_TRY {
 #endif
       f = pow( 10., f );
-#ifdef NO_CAS_CATCH
     } catch(Standard_Failure) {
-#else
-    } CASCatch_CATCH(Standard_Failure) {
-#endif
       Handle(Standard_Failure) aFail = Standard_Failure::Caught();
       f = 0.0;
       ok = false;
@@ -194,19 +186,13 @@ FunctionExpr::FunctionExpr( const char* str, const int conv )
   myValues( 1, 1 )
 {
   bool ok = true;
-#ifdef NO_CAS_CATCH
   try {
+#ifdef NO_CAS_CATCH
     OCC_CATCH_SIGNALS;
-#else
-  CASCatch_TRY {
 #endif
     myExpr = ExprIntrp_GenExp::Create();
     myExpr->Process( ( Standard_CString )str );
-#ifdef NO_CAS_CATCH
   } catch(Standard_Failure) {
-#else
-  } CASCatch_CATCH(Standard_Failure) {
-#endif
     Handle(Standard_Failure) aFail = Standard_Failure::Caught();
     ok = false;
   }
@@ -236,18 +222,12 @@ bool FunctionExpr::value( const double t, double& f ) const
 
   ( ( TColStd_Array1OfReal& )myValues ).ChangeValue( 1 ) = t;
   bool ok = true;
-#ifdef NO_CAS_CATCH
   try {
+#ifdef NO_CAS_CATCH
     OCC_CATCH_SIGNALS;
-#else
-  CASCatch_TRY {
 #endif
     f = myExpr->Expression()->Evaluate( myVars, myValues );
-#ifdef NO_CAS_CATCH
   } catch(Standard_Failure) {
-#else
-  } CASCatch_CATCH(Standard_Failure) {
-#endif
     Handle(Standard_Failure) aFail = Standard_Failure::Caught();
     f = 0.0;
     ok = false;
@@ -260,21 +240,15 @@ bool FunctionExpr::value( const double t, double& f ) const
 double FunctionExpr::integral( const double a, const double b ) const
 {
   double res = 0.0;
-#ifdef NO_CAS_CATCH
   try {
+#ifdef NO_CAS_CATCH
     OCC_CATCH_SIGNALS;
-#else
-  CASCatch_TRY {
 #endif
     math_GaussSingleIntegration _int
       ( *static_cast<math_Function*>( const_cast<FunctionExpr*> (this) ), a, b, 20 );
     if( _int.IsDone() )
       res = _int.Value();
-#ifdef NO_CAS_CATCH
   } catch(Standard_Failure) {
-#else
-  } CASCatch_CATCH(Standard_Failure) {
-#endif
     res = 0.0;
     MESSAGE( "Exception in integral calculating" );
   }
index 85057fb5c49710465d5c8b037ea35e0c753d2fff..5850cb74ea5523b2b9922e542490b845c7488303 100644 (file)
 #include "SMDS_MeshNode.hxx"
 #include "SMESHDS_Mesh.hxx"
 #include "SMESHDS_SubMesh.hxx"
-#include "SMESH_Algo.hxx"
+//#include "SMESH_Algo.hxx"
 #include "SMESH_Mesh.hxx"
 #include "SMESH_MeshEditor.hxx"
+#include "SMESH_ComputeError.hxx"
+#include "SMESH_Block.hxx"
 
 #include <Adaptor2d_Curve2d.hxx>
 #include <BRepAdaptor_CompCurve.hxx>
@@ -464,3 +466,51 @@ gp_Pnt2d StdMeshers_FaceSide::Value2d(double U) const
   }
   return gp_Pnt2d( 1e+100, 1e+100 );
 }
+
+//================================================================================
+/*!
+ * \brief Return wires of a face as StdMeshers_FaceSide's
+ */
+//================================================================================
+
+TSideVector StdMeshers_FaceSide::GetFaceWires(const TopoDS_Face& theFace,
+                                              SMESH_Mesh &       theMesh,
+                                              const bool         theIgnoreMediumNodes,
+                                              TError &           theError)
+{
+  TopoDS_Vertex V1;
+  list< TopoDS_Edge > edges;
+  list< int > nbEdgesInWires;
+  int nbWires = SMESH_Block::GetOrderedEdges (theFace, V1, edges, nbEdgesInWires);
+
+  // split list of all edges into separate wires
+  TSideVector wires( nbWires );
+  list< int >::iterator nbE = nbEdgesInWires.begin();
+  list< TopoDS_Edge >::iterator from, to;
+  from = to = edges.begin();
+  for ( int iW = 0; iW < nbWires; ++iW )
+  {
+    std::advance( to, *nbE++ );
+    list< TopoDS_Edge > wireEdges( from, to );
+    // assure that there is a node on the first vertex
+    // as StdMeshers_FaceSide::GetUVPtStruct() requires
+    while ( !SMESH_Algo::VertexNode( TopExp::FirstVertex( wireEdges.front(), true),
+                                     theMesh.GetMeshDS()))
+    {
+      wireEdges.splice(wireEdges.end(), wireEdges,
+                       wireEdges.begin(), ++wireEdges.begin());
+      if ( from->IsSame( wireEdges.front() )) {
+        theError = TError
+          ( new SMESH_ComputeError(COMPERR_BAD_INPUT_MESH,"No nodes on vertices"));
+        return TSideVector(0);
+      }
+    }
+    StdMeshers_FaceSide* wire = new StdMeshers_FaceSide( theFace, wireEdges, &theMesh,
+                                                         true, theIgnoreMediumNodes);
+    wires[ iW ] = StdMeshers_FaceSidePtr( wire );
+    from = to;
+  }
+  return wires;
+}
+
+
index 1463d2d1fd57aafe415f1414fa4c361ba2bba4f0..e34dfe51235aea00329542e008410156a0fe90cb 100644 (file)
@@ -35,6 +35,9 @@
 #include <Geom2d_Curve.hxx>
 #include <TopExp.hxx>
 
+#include "SMESH_StdMeshers.hxx"
+#include "SMESH_Algo.hxx"
+
 #include <vector>
 #include <list>
 #include <boost/shared_ptr.hpp>
@@ -45,6 +48,7 @@ class Adaptor2d_Curve2d;
 class Adaptor3d_Curve;
 class BRepAdaptor_CompCurve;
 class TopoDS_Face;
+class SMESH_ComputeError;
 
 typedef struct uvPtStruct
 {
@@ -61,6 +65,8 @@ typedef struct uvPtStruct
 class StdMeshers_FaceSide;
 typedef boost::shared_ptr< StdMeshers_FaceSide > StdMeshers_FaceSidePtr;
 typedef boost::shared_ptr< uvPtStruct > UVPtStructPtr;
+typedef std::vector< StdMeshers_FaceSidePtr > TSideVector;
+typedef boost::shared_ptr< SMESH_ComputeError > TError;
 
 //================================================================================
 /*!
@@ -69,7 +75,7 @@ typedef boost::shared_ptr< uvPtStruct > UVPtStructPtr;
  */
 //================================================================================
 
-class StdMeshers_FaceSide
+class STDMESHERS_EXPORT StdMeshers_FaceSide
 {
 public:
   /*!
@@ -88,6 +94,15 @@ public:
                       SMESH_Mesh*        theMesh,
                       const bool         theIsForward,
                       const bool         theIgnoreMediumNodes);
+
+  /*!
+   * \brief Return wires of a face as StdMeshers_FaceSide's
+   */
+  static TSideVector GetFaceWires(const TopoDS_Face& theFace,
+                                  SMESH_Mesh &       theMesh,
+                                  const bool         theIgnoreMediumNodes,
+                                  TError &           theError);  
+
   /*!
    * \brief Change orientation of side geometry
    */
@@ -115,15 +130,15 @@ public:
     *
     * Missing nodes are allowed only on internal vertices
    */
-  const vector<UVPtStruct>& GetUVPtStruct(bool isXConst, double constValue) const;
+  const vector<UVPtStruct>& GetUVPtStruct(bool isXConst =0, double constValue =0) const;
   /*!
    * \brief Simulates detailed data on nodes
     * \param isXConst - true if normalized parameter X is constant
     * \param constValue - constant parameter value
    */
   const vector<UVPtStruct>& SimulateUVPtStruct(int    nbSeg,
-                                               bool   isXConst,
-                                               double constValue) const;
+                                               bool   isXConst   = 0,
+                                               double constValue = 0) const;
   /*!
    * \brief Return edge and parameter on edge by normalized parameter
    */
index 80cd6caeb1973e8e309f56e9a914a13586655980..33efea5e7243d429415f555ac0e3e01b818521f5 100644 (file)
 #include "SMDS_VolumeOfNodes.hxx"
 
 #include <TopExp.hxx>
+#include <TopExp_Explorer.hxx>
 #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-#include <TopTools_ListOfShape.hxx>
 #include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TColStd_MapOfInteger.hxx>
-
-#include <BRep_Tool.hxx>
-#include <Geom_Surface.hxx>
+#include <TopTools_ListOfShape.hxx>
+#include <TopoDS.hxx>
 #include <gp_Pnt2d.hxx>
 
 #include "utilities.h"
@@ -118,12 +116,15 @@ bool StdMeshers_Hexa_3D::CheckHypothesis
                           SMESH_Hypothesis::Hypothesis_Status& aStatus)
 {
   // check nb of faces in the shape
+/*  PAL16229
   aStatus = SMESH_Hypothesis::HYP_BAD_GEOMETRY;
   int nbFaces = 0;
   for (TopExp_Explorer exp(aShape, TopAbs_FACE); exp.More(); exp.Next())
     if ( ++nbFaces > 6 )
-      return false;
-
+      break;
+  if ( nbFaces != 6 )
+    return false;
+*/
   aStatus = SMESH_Hypothesis::HYP_OK;
   return true;
 }
@@ -174,9 +175,10 @@ static bool findIJ (const SMDS_MeshNode* node, const FaceQuadStruct * quad, int&
 //=============================================================================
 
 bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh &         aMesh,
-                                 const TopoDS_Shape & aShape) throw(SALOME_Exception)
+                                 const TopoDS_Shape & aShape)// throw(SALOME_Exception)
 {
-  Unexpect aCatch(SalomeException);
+  // PAL14921. Enable catching std::bad_alloc and Standard_OutOfMemory outside
+  //Unexpect aCatch(SalomeException);
   MESSAGE("StdMeshers_Hexa_3D::Compute");
   SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
   
@@ -190,7 +192,7 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh &         aMesh,
     meshFaces.push_back(aSubMesh);
   }
   if (meshFaces.size() != 6)
-    return error(COMPERR_BAD_SHAPE, TComm(meshFaces.size())<<" instead of 6 faces in block");
+    return error(COMPERR_BAD_SHAPE, TComm(meshFaces.size())<<" instead of 6 faces in block");
 
   // 0.2 - is each face meshed with Quadrangle_2D? (so, with a wire of 4 edges)
 
@@ -251,6 +253,9 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh &         aMesh,
     ASSERT(quadAlgo);
     try {
       aQuads[i] = quadAlgo->CheckAnd2Dcompute(aMesh, aFace, _quadraticMesh);
+      if(!aQuads[i]) {
+       return error( quadAlgo->GetComputeError());
+      }
     }
     catch(SALOME_Exception & S_ex) {
       return ClearAndReturn( aQuads, error(COMPERR_SLM_EXCEPTION,TComm(S_ex.what()) <<
index 09aa813033bcd68b1492a6acb087df477081d882..1f1c4042d1964bfd23b6c3cfa00d0a45bb1eb2b2 100644 (file)
@@ -76,7 +76,7 @@ public:
 
   virtual bool Compute(SMESH_Mesh& aMesh,
                       const TopoDS_Shape& aShape)
-    throw (SALOME_Exception);
+    /*throw (SALOME_Exception)*/;
 
   static TopoDS_Vertex OppositeVertex(const TopoDS_Vertex& aVertex,
                                       const TopTools_IndexedMapOfShape& aQuads0Vertices,
index 6fd6bbcf73b87721f572854cab62c3508ec2b9a5..e3fe6e898d5c0f861828e604189aa5578abc9295 100644 (file)
@@ -43,6 +43,7 @@
 #include <TopTools_IndexedMapOfShape.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Edge.hxx>
+#include <Precision.hxx>
 
 using namespace std;
 
@@ -56,6 +57,7 @@ StdMeshers_LocalLength::StdMeshers_LocalLength(int hypId, int studyId, SMESH_Gen
   :SMESH_Hypothesis(hypId, studyId, gen)
 {
   _length = 1.;
+  _precision = Precision::Confusion();
   _name = "LocalLength";
   _param_algo_dim = 1; // is used by SMESH_Regular_1D
 }
@@ -78,12 +80,13 @@ StdMeshers_LocalLength::~StdMeshers_LocalLength()
 
 void StdMeshers_LocalLength::SetLength(double length) throw(SALOME_Exception)
 {
-       double oldLength = _length;
-       if (length <= 0)
-               throw SALOME_Exception(LOCALIZED("length must be positive"));
-       _length = length;
-       if (oldLength != _length)
-               NotifySubMeshesHypothesisModification();
+  double oldLength = _length;
+  if (length <= 0)
+    throw SALOME_Exception(LOCALIZED("length must be positive"));
+  _length = length;
+  const double precision = 1e-7;
+  if (fabs(oldLength - _length) > precision)
+    NotifySubMeshesHypothesisModification();
 }
 
 //=============================================================================
@@ -94,7 +97,33 @@ void StdMeshers_LocalLength::SetLength(double length) throw(SALOME_Exception)
 
 double StdMeshers_LocalLength::GetLength() const
 {
-       return _length;
+  return _length;
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+void StdMeshers_LocalLength::SetPrecision (double thePrecision) throw(SALOME_Exception)
+{
+  double oldPrecision = _precision;
+  if (_precision < 0)
+    throw SALOME_Exception(LOCALIZED("precision cannot be negative"));
+  _precision = thePrecision;
+  const double precision = 1e-8;
+  if (fabs(oldPrecision - _precision) > precision)
+    NotifySubMeshesHypothesisModification();
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+double StdMeshers_LocalLength::GetPrecision() const
+{
+  return _precision;
 }
 
 //=============================================================================
@@ -105,7 +134,7 @@ double StdMeshers_LocalLength::GetLength() const
 
 ostream & StdMeshers_LocalLength::SaveTo(ostream & save)
 {
-  save << this->_length;
+  save << this->_length << " " << this->_precision;
   return save;
 }
 
@@ -119,11 +148,23 @@ istream & StdMeshers_LocalLength::LoadFrom(istream & load)
 {
   bool isOK = true;
   double a;
+
   isOK = (load >> a);
   if (isOK)
     this->_length = a;
   else
     load.clear(ios::badbit | load.rdstate());
+
+  isOK = (load >> a);
+  if (isOK)
+    this->_precision = a;
+  else
+  {
+    load.clear(ios::badbit | load.rdstate());
+    // old format, without precision
+    _precision = 0.;
+  }
+
   return load;
 }
 
@@ -190,5 +231,7 @@ bool StdMeshers_LocalLength::SetParametersByMesh(const SMESH_Mesh*   theMesh,
   if ( nbEdges )
     _length /= nbEdges;
 
+  _precision = Precision::Confusion();
+
   return nbEdges;
 }
index 79a85df7fdec11580a7d71ccf5cfe5379b1b869c..93fc49a6f590404f1cece7f0fdfad0c7f004b02c 100644 (file)
 #include "SMESH_Hypothesis.hxx"
 #include "Utils_SALOME_Exception.hxx"
 
-class STDMESHERS_EXPORT StdMeshers_LocalLength:public SMESH_Hypothesis
+class STDMESHERS_EXPORT StdMeshers_LocalLength: public SMESH_Hypothesis
 {
  public:
   StdMeshers_LocalLength(int hypId, int studyId, SMESH_Gen * gen);
   virtual ~ StdMeshers_LocalLength();
 
   void SetLength(double length) throw(SALOME_Exception);
+  void SetPrecision(double precision) throw(SALOME_Exception);
 
   double GetLength() const;
+  double GetPrecision() const;
 
   virtual std::ostream & SaveTo(std::ostream & save);
   virtual std::istream & LoadFrom(std::istream & load);
@@ -60,6 +62,7 @@ class STDMESHERS_EXPORT StdMeshers_LocalLength:public SMESH_Hypothesis
 
  protected:
   double _length;
+  double _precision;
 };
 
 #endif
index cb4e61fc161b2a9531355add902b62fcc010982a..7b76b35455e95acc1fba4b4cfcb831cb2a266415 100644 (file)
 
 #include "utilities.h"
 
-#include <TopoDS_Face.hxx>
-#include <TopoDS_Edge.hxx>
-#include <Geom_Surface.hxx>
-#include <Geom2d_Curve.hxx>
-#include <gp_Pnt2d.hxx>
-#include <BRep_Tool.hxx>
 #include <BRepTools.hxx>
+#include <BRep_Tool.hxx>
+#include <Geom2d_Curve.hxx>
+#include <Geom_Surface.hxx>
+#include <TopExp.hxx>
+#include <TopExp_Explorer.hxx>
 #include <TopTools_ListIteratorOfListOfShape.hxx>
 #include <TopTools_ListOfShape.hxx>
 #include <TopTools_MapOfShape.hxx>
+#include <TopoDS.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS_Face.hxx>
+#include <TopoDS_Iterator.hxx>
+#include <gp_Pnt2d.hxx>
 
 using namespace std;
 
@@ -187,42 +191,29 @@ bool StdMeshers_MEFISTO_2D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
   const bool ignoreMediumNodes = _quadraticMesh;
 
   // get all edges of a face
-  TopoDS_Vertex V1;
-  list< TopoDS_Edge > edges;
-  list< int > nbEdgesInWires;
-  int nbWires = SMESH_Block::GetOrderedEdges (F, V1, edges, nbEdgesInWires);
-
-  if (_hypLengthFromEdges) _edgeLength = 0;
-
-  // split list of all edges into separate wires
-  TWireVector wires ( nbWires );
-  list< int >::iterator nbE = nbEdgesInWires.begin();
-  list< TopoDS_Edge >::iterator from, to;
-  from = to = edges.begin();
-  for ( int iW = 0; iW < nbWires; ++iW )
+  TError problem;
+  TWireVector wires = StdMeshers_FaceSide::GetFaceWires( F, aMesh, ignoreMediumNodes, problem );
+  int nbWires = wires.size();
+  if ( problem && !problem->IsOK() ) return error( problem );
+  if ( nbWires == 0 ) return error( "Problem in StdMeshers_FaceSide::GetFaceWires()");
+  if ( wires[0]->NbSegments() < 3 ) // ex: a circle with 2 segments
+    return error(COMPERR_BAD_INPUT_MESH,
+                 SMESH_Comment("Too few segments: ")<<wires[0]->NbSegments());
+
+  // compute average edge length
+  if (_hypLengthFromEdges)
   {
-    std::advance( to, *nbE++ );
-    list< TopoDS_Edge > wireEdges( from, to );
-    // assure that there is a node on the first vertex
-    // as StdMeshers_FaceSide::GetUVPtStruct() requires
-    while ( !VertexNode( TopExp::FirstVertex( wireEdges.front(), true),
-                         aMesh.GetMeshDS()))
+    _edgeLength = 0;
+    int nbSegments = 0;
+    for ( int iW = 0; iW < nbWires; ++iW )
     {
-      wireEdges.splice(wireEdges.end(), wireEdges,
-                       wireEdges.begin(), ++wireEdges.begin());
-      if ( from->IsSame( wireEdges.front() ))
-        return error(COMPERR_BAD_INPUT_MESH,"No nodes on vertices");
+      StdMeshers_FaceSidePtr wire = wires[ iW ];
+      _edgeLength += wire->Length();
+      nbSegments  += wire->NbSegments();
     }
-    StdMeshers_FaceSide* wire = new StdMeshers_FaceSide( F, wireEdges, &aMesh,
-                                                         true, ignoreMediumNodes);
-    wires[ iW ] = StdMeshers_FaceSidePtr( wire );
-    if (_hypLengthFromEdges && wire->NbSegments() )
-      _edgeLength += wire->Length() / wire->NbSegments();
-    from = to;
+    if ( nbSegments )
+      _edgeLength /= nbSegments;
   }
-  if ( wires[0]->NbSegments() < 3 ) // ex: a circle with 2 segments
-    return error(COMPERR_BAD_INPUT_MESH,
-                 SMESH_Comment("Too few segments")<<wires[0]->NbSegments());
 
   if (_hypLengthFromEdges && _edgeLength < DBL_MIN )
     _edgeLength = 100;
@@ -502,22 +493,19 @@ bool StdMeshers_MEFISTO_2D::LoadPoints(TWireVector &                 wires,
       VWMap.Clear(); // wires have no common vertices
   }
 
-  const bool isXConst = false; // meaningles here
-  const double constValue = 0; // meaningles here
-
   int m = 0;
   list< int > mOnVertex;
 
   for ( int iW = 0; iW < wires.size(); ++iW )
   {
-    const vector<UVPtStruct>& uvPtVec = wires[ iW ]->GetUVPtStruct(isXConst,constValue);
+    const vector<UVPtStruct>& uvPtVec = wires[ iW ]->GetUVPtStruct();
     if ( uvPtVec.size() != wires[ iW ]->NbPoints() ) {
       return error(COMPERR_BAD_INPUT_MESH,SMESH_Comment("Unexpected nb of points on wire ")
                    << iW << uvPtVec.size()<<" != "<<wires[ iW ]->NbPoints());
     }
     if ( m + uvPtVec.size()-1 > mefistoToDS.size() ) {
       MESSAGE("Wrong mefistoToDS.size: "<<mefistoToDS.size()<<" < "<<m + uvPtVec.size()-1);
-      return error(dfltErr(),"Internal error");
+      return error("Internal error");
     }
 
     vector<UVPtStruct>::const_iterator uvPt = uvPtVec.begin();
index f4819f92c0fd0ec66996ad502700954cdc1c6ba9..51300c1379cb308788abce3e6b8f6195c082fe51 100644 (file)
@@ -49,8 +49,6 @@
 
 #ifdef NO_CAS_CATCH
 #include <Standard_ErrorHandler.hxx>
-#else
-#include "CASCatch.hxx"
 #endif
 
 using namespace std;
@@ -63,8 +61,9 @@ const double PRECISION = 1e-7;
  */
 //=============================================================================
 
-StdMeshers_NumberOfSegments::StdMeshers_NumberOfSegments(int hypId, int studyId,
-       SMESH_Gen * gen)
+StdMeshers_NumberOfSegments::StdMeshers_NumberOfSegments(int         hypId,
+                                                         int         studyId,
+                                                         SMESH_Gen * gen)
   : SMESH_Hypothesis(hypId, studyId, gen),
     _numberOfSegments(1),
     _distrType(DT_Regular),
@@ -90,17 +89,20 @@ StdMeshers_NumberOfSegments::~StdMeshers_NumberOfSegments()
  *  
  */
 //=============================================================================
-const std::vector<double>& StdMeshers_NumberOfSegments::BuildDistributionExpr( const char* expr, int nbSeg, int conv )
-throw ( SALOME_Exception )
+const vector<double>&
+StdMeshers_NumberOfSegments::BuildDistributionExpr( const char* expr,int nbSeg,int conv )
+  throw ( SALOME_Exception )
 {
   if( !buildDistribution( TCollection_AsciiString( ( Standard_CString )expr ), conv, 0.0, 1.0, nbSeg, _distr, 1E-4 ) )
     _distr.resize( 0 );
   return _distr;
 }
 
-const std::vector<double>& StdMeshers_NumberOfSegments::BuildDistributionTab( const std::vector<double>& tab,
-                                                                             int nbSeg, int conv )
-throw ( SALOME_Exception )
+const vector<double>&
+StdMeshers_NumberOfSegments::BuildDistributionTab( const vector<double>& tab,
+                                                   int nbSeg,
+                                                   int conv )
+  throw ( SALOME_Exception )
 {
   if( !buildDistribution( tab, conv, 0.0, 1.0, nbSeg, _distr, 1E-4 ) )
     _distr.resize( 0 );
@@ -116,14 +118,13 @@ throw ( SALOME_Exception )
 void StdMeshers_NumberOfSegments::SetNumberOfSegments(int segmentsNumber)
 throw(SALOME_Exception)
 {
-       int oldNumberOfSegments = _numberOfSegments;
-       if (segmentsNumber <= 0)
-               throw
-                       SALOME_Exception(LOCALIZED("number of segments must be positive"));
-       _numberOfSegments = segmentsNumber;
-
-       if (oldNumberOfSegments != _numberOfSegments)
-               NotifySubMeshesHypothesisModification();
+  int oldNumberOfSegments = _numberOfSegments;
+  if (segmentsNumber <= 0)
+    throw SALOME_Exception(LOCALIZED("number of segments must be positive"));
+  _numberOfSegments = segmentsNumber;
+
+  if (oldNumberOfSegments != _numberOfSegments)
+    NotifySubMeshesHypothesisModification();
 }
 
 //=============================================================================
@@ -134,7 +135,7 @@ throw(SALOME_Exception)
 
 int StdMeshers_NumberOfSegments::GetNumberOfSegments() const
 {
-       return _numberOfSegments;
+  return _numberOfSegments;
 }
 
 //================================================================================
@@ -177,7 +178,8 @@ void StdMeshers_NumberOfSegments::SetScaleFactor(double scaleFactor)
   throw(SALOME_Exception)
 {
   if (_distrType != DT_Scale)
-    throw SALOME_Exception(LOCALIZED("not a scale distribution"));
+    _distrType = DT_Scale;
+    //throw SALOME_Exception(LOCALIZED("not a scale distribution"));
   if (scaleFactor < PRECISION)
     throw SALOME_Exception(LOCALIZED("scale factor must be positive"));
   //if (fabs(scaleFactor - 1.0) < PRECISION)
@@ -210,11 +212,12 @@ double StdMeshers_NumberOfSegments::GetScaleFactor() const
  */
 //================================================================================
 
-void StdMeshers_NumberOfSegments::SetTableFunction(const std::vector<double>& table)
+void StdMeshers_NumberOfSegments::SetTableFunction(const vector<double>& table)
   throw(SALOME_Exception)
 {
   if (_distrType != DT_TabFunc)
-    throw SALOME_Exception(LOCALIZED("not a table function distribution"));
+    _distrType = DT_TabFunc;
+  //throw SALOME_Exception(LOCALIZED("not a table function distribution"));
   if ( (table.size() % 2) != 0 )
     throw SALOME_Exception(LOCALIZED("odd size of vector of table function"));
 
@@ -228,18 +231,12 @@ void StdMeshers_NumberOfSegments::SetTableFunction(const std::vector<double>& ta
     double val = table[i*2+1];
     if( _convMode==0 )
     {
-#ifdef NO_CAS_CATCH
       try {
+#ifdef NO_CAS_CATCH
         OCC_CATCH_SIGNALS;
-#else
-      CASCatch_TRY {
 #endif
        val = pow( 10.0, val );
-#ifdef NO_CAS_CATCH
       } catch(Standard_Failure) {
-#else
-      } CASCatch_CATCH(Standard_Failure) {
-#endif
        Handle(Standard_Failure) aFail = Standard_Failure::Caught();
        throw SALOME_Exception( LOCALIZED( "invalid value"));
        return;
@@ -282,7 +279,7 @@ void StdMeshers_NumberOfSegments::SetTableFunction(const std::vector<double>& ta
  */
 //================================================================================
 
-const std::vector<double>& StdMeshers_NumberOfSegments::GetTableFunction() const
+const vector<double>& StdMeshers_NumberOfSegments::GetTableFunction() const
   throw(SALOME_Exception)
 {
   if (_distrType != DT_TabFunc)
@@ -328,19 +325,13 @@ bool process( const TCollection_AsciiString& str, int convMode,
 {
   bool parsed_ok = true;
   Handle( ExprIntrp_GenExp ) myExpr;
-#ifdef NO_CAS_CATCH
   try {
+#ifdef NO_CAS_CATCH
     OCC_CATCH_SIGNALS;
-#else
-  CASCatch_TRY {
 #endif
     myExpr = ExprIntrp_GenExp::Create();
     myExpr->Process( str.ToCString() );
-#ifdef NO_CAS_CATCH
   } catch(Standard_Failure) {
-#else
-  } CASCatch_CATCH(Standard_Failure) {
-#endif
     Handle(Standard_Failure) aFail = Standard_Failure::Caught();
     parsed_ok = false;
   }
@@ -396,7 +387,8 @@ void StdMeshers_NumberOfSegments::SetExpressionFunction(const char* expr)
   throw(SALOME_Exception)
 {
   if (_distrType != DT_ExprFunc)
-    throw SALOME_Exception(LOCALIZED("not an expression function distribution"));
+    _distrType = DT_ExprFunc;
+    //throw SALOME_Exception(LOCALIZED("not an expression function distribution"));
 
   // remove white spaces
   TCollection_AsciiString str((Standard_CString)expr);
@@ -428,7 +420,7 @@ void StdMeshers_NumberOfSegments::SetExpressionFunction(const char* expr)
     return;
   }
   
-  std::string func = expr;
+  string func = expr;
   if( _func != func )
   {
     _func = func;
@@ -459,8 +451,8 @@ const char* StdMeshers_NumberOfSegments::GetExpressionFunction() const
 void StdMeshers_NumberOfSegments::SetConversionMode( int conv )
   throw(SALOME_Exception)
 {
-  if (_distrType != DT_TabFunc && _distrType != DT_ExprFunc)
-    throw SALOME_Exception(LOCALIZED("not a functional distribution"));
+//   if (_distrType != DT_TabFunc && _distrType != DT_ExprFunc)
+//     throw SALOME_Exception(LOCALIZED("not a functional distribution"));
 
   if( conv != _convMode )
   {
@@ -478,8 +470,8 @@ void StdMeshers_NumberOfSegments::SetConversionMode( int conv )
 int StdMeshers_NumberOfSegments::ConversionMode() const
   throw(SALOME_Exception)
 {
-  if (_distrType != DT_TabFunc && _distrType != DT_ExprFunc)
-    throw SALOME_Exception(LOCALIZED("not a functional distribution"));
+//   if (_distrType != DT_TabFunc && _distrType != DT_ExprFunc)
+//     throw SALOME_Exception(LOCALIZED("not a functional distribution"));
   return _convMode;
 }
 
@@ -675,10 +667,10 @@ bool StdMeshers_NumberOfSegments::SetParametersByMesh(const SMESH_Mesh*   theMes
   int nbEdges = 0;
   TopTools_IndexedMapOfShape edgeMap;
   TopExp::MapShapes( theShape, TopAbs_EDGE, edgeMap );
+  SMESHDS_Mesh* aMeshDS = const_cast< SMESH_Mesh* >( theMesh )->GetMeshDS();
   for ( int i = 1; i <= edgeMap.Extent(); ++i )
   {
     // get current segment length
-    SMESHDS_Mesh* aMeshDS = const_cast< SMESH_Mesh* >( theMesh )->GetMeshDS();
     SMESHDS_SubMesh * eSubMesh = aMeshDS->MeshElements( edgeMap( i ));
     if ( eSubMesh && eSubMesh->NbElements())
       _numberOfSegments += eSubMesh->NbElements();
index fd1fe47cf719a5afb75831b7f4862bc0a58c1723..4030cdfce3c7b8f362c41277f6b01bd2f30e45e8 100644 (file)
 #include "SMESH_subMeshEventListener.hxx"
 #include "SMESH_Comment.hxx"
 
-#include <BRepTools.hxx>
-#include <BRepTools_WireExplorer.hxx>
 #include <BRep_Tool.hxx>
-#include <TopAbs_ShapeEnum.hxx>
 #include <TopExp.hxx>
+#include <TopExp_Explorer.hxx>
 #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
 #include <TopTools_IndexedMapOfShape.hxx>
-#include <TopTools_IndexedMapOfShape.hxx>
 #include <TopTools_ListIteratorOfListOfShape.hxx>
 #include <TopTools_ListOfShape.hxx>
-#include <TopTools_MapOfShape.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Edge.hxx>
 #include <TopoDS_Shell.hxx>
 #include <TopoDS_Vertex.hxx>
 #include <gp_Pnt.hxx>
-#include <BRepTools.hxx>
-#include <BRepTools_WireExplorer.hxx>
-#include <TopTools_MapOfShape.hxx>
 
 #include <stdio.h>
 #include <algorithm>
index 8d87d043fdc1240af6c03ddc410ec71f8bf532a5..4d818a4682668419cbfde9c19887dc023b15ed91 100644 (file)
 
 #include "utilities.h"
 
-#include <BRepAdaptor_Curve.hxx>
-#include <BRepAdaptor_Curve2d.hxx>
-#include <BRep_Builder.hxx>
 #include <BRep_Tool.hxx>
 #include <Geom2dAdaptor_Curve.hxx>
 #include <Geom2d_Line.hxx>
+#include <TopExp.hxx>
+#include <TopExp_Explorer.hxx>
 #include <TopTools_ListIteratorOfListOfShape.hxx>
+#include <TopoDS.hxx>
 
 using namespace std;
 
-#define RETURN_BAD_RESULT(msg) { MESSAGE(msg); return false; }
+#define RETURN_BAD_RESULT(msg) { MESSAGE(")-: Error: " << msg); return false; }
 #define gpXYZ(n) gp_XYZ(n->X(),n->Y(),n->Z())
 #define SHOWYXZ(msg, xyz) // {\
 // gp_Pnt p (xyz); \
@@ -101,7 +101,7 @@ namespace {
                        const SMDS_MeshNode* & node1,
                        const SMDS_MeshNode* & node2)
   {
-    if ( param == 1.0 || column->size() == 1) {
+    if ( param >= 1.0 || column->size() == 1) {
       node1 = node2 = column->back();
       return 0;
     }
@@ -185,7 +185,7 @@ bool StdMeshers_Prism_3D::CheckHypothesis(SMESH_Mesh&                          a
                                           SMESH_Hypothesis::Hypothesis_Status& aStatus)
 {
   // Check shape geometry
-
+/*  PAL16229
   aStatus = SMESH_Hypothesis::HYP_BAD_GEOMETRY;
 
   // find not quadrangle faces
@@ -216,7 +216,7 @@ bool StdMeshers_Prism_3D::CheckHypothesis(SMESH_Mesh&                          a
     if ( nbFace != nbEdge + 2 )
       RETURN_BAD_RESULT("Bad nb of faces: " << nbFace << " but must be " << nbEdge + 2);
   }
-
+*/
   // no hypothesis
   aStatus = SMESH_Hypothesis::HYP_OK;
   return true;
@@ -275,17 +275,20 @@ bool StdMeshers_Prism_3D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape& theSh
     TNodeColumn& column = bot_column->second;
 
     // bottom node parameters and coords
-    gp_XYZ botParams          = tBotNode.GetParams();
     myShapeXYZ[ ID_BOT_FACE ] = tBotNode.GetCoords();
+    gp_XYZ botParams          = tBotNode.GetParams();
 
     // compute top node parameters
-    gp_XYZ topParams;
     myShapeXYZ[ ID_TOP_FACE ] = gpXYZ( column.back() );
-    gp_Pnt topCoords = myShapeXYZ[ ID_TOP_FACE ];
-    if ( !myBlock.ComputeParameters( topCoords, topParams, ID_TOP_FACE ))
-      return error(dfltErr(),TCom("Can't compute normalized parameters ")
-                   << "for node " << column.back()->GetID()
-                   << " on the face #"<< column.back()->GetPosition()->GetShapeId() );
+    gp_XYZ topParams = botParams;
+    topParams.SetZ( 1 );
+    if ( column.size() > 2 ) {
+      gp_Pnt topCoords = myShapeXYZ[ ID_TOP_FACE ];
+      if ( !myBlock.ComputeParameters( topCoords, topParams, ID_TOP_FACE, topParams ))
+        return error(TCom("Can't compute normalized parameters ")
+                     << "for node " << column.back()->GetID()
+                     << " on the face #"<< column.back()->GetPosition()->GetShapeId() );
+    }
 
     // vertical loop
     TNodeColumn::iterator columnNodes = column.begin();
@@ -311,7 +314,11 @@ bool StdMeshers_Prism_3D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape& theSh
       // compute coords for a new node
       gp_XYZ coords;
       if ( !SMESH_Block::ShellPoint( params, myShapeXYZ, coords ))
-        return error(dfltErr(),"Can't compute coordinates by normalized parameters");
+        return error("Can't compute coordinates by normalized parameters");
+
+      SHOWYXZ("TOPFacePoint ",myShapeXYZ[ ID_TOP_FACE]);
+      SHOWYXZ("BOT Node "<< tBotNode.myNode->GetID(),gpXYZ(tBotNode.myNode));
+      SHOWYXZ("ShellPoint ",coords);
 
       // create a node
       node = meshDS->AddNode( coords.X(), coords.Y(), coords.Z() );
@@ -344,13 +351,13 @@ bool StdMeshers_Prism_3D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape& theSh
       if ( n->GetPosition()->GetTypeOfPosition() == SMDS_TOP_FACE ) {
         bot_column = myBotToColumnMap.find( n );
         if ( bot_column == myBotToColumnMap.end() )
-          return error(dfltErr(),TCom("No nodes found above node ") << n->GetID() );
+          return error(TCom("No nodes found above node ") << n->GetID() );
         columns[ i ] = & bot_column->second;
       }
       else {
         columns[ i ] = myBlock.GetNodeColumn( n );
         if ( !columns[ i ] )
-          return error(dfltErr(),TCom("No side nodes found above node ") << n->GetID() );
+          return error(TCom("No side nodes found above node ") << n->GetID() );
       }
     }
     // create prisms
@@ -376,12 +383,44 @@ void StdMeshers_Prism_3D::AddPrisms( vector<const TNodeColumn*> & columns,
   int shapeID = helper->GetSubShapeID();
 
   int nbNodes = columns.size();
+  int nbZ     = columns[0]->size();
+  if ( nbZ < 2 ) return;
+
+  // find out orientation
+  bool isForward = true;
+  SMDS_VolumeTool vTool;
+  int z = 1;
+  switch ( nbNodes ) {
+  case 3: {
+    const SMDS_MeshNode* botNodes[3] = { (*columns[0])[z-1],
+                                         (*columns[1])[z-1],
+                                         (*columns[2])[z-1] };
+    const SMDS_MeshNode* topNodes[3] = { (*columns[0])[z],
+                                         (*columns[1])[z],
+                                         (*columns[2])[z] };
+    SMDS_VolumeOfNodes tmpVol ( botNodes[0], botNodes[1], botNodes[2],
+                                topNodes[0], topNodes[1], topNodes[2]);
+    vTool.Set( &tmpVol );
+    isForward  = vTool.IsForward();
+    break;
+  }
+  case 4: {
+    const SMDS_MeshNode* botNodes[4] = { (*columns[0])[z-1], (*columns[1])[z-1],
+                                         (*columns[2])[z-1], (*columns[3])[z-1] };
+    const SMDS_MeshNode* topNodes[4] = { (*columns[0])[z], (*columns[1])[z],
+                                         (*columns[2])[z], (*columns[3])[z] };
+    SMDS_VolumeOfNodes tmpVol ( botNodes[0], botNodes[1], botNodes[2], botNodes[3],
+                                topNodes[0], topNodes[1], topNodes[2], topNodes[3]);
+    vTool.Set( &tmpVol );
+    isForward  = vTool.IsForward();
+    break;
+  }
+  }
 
   // vertical loop on columns
-  for ( int z = 1; z < columns[0]->size(); ++z)
+  for ( z = 1; z < nbZ; ++z )
   {
     SMDS_MeshElement* vol = 0;
-    SMDS_VolumeTool vTool;
     switch ( nbNodes ) {
 
     case 3: {
@@ -391,11 +430,7 @@ void StdMeshers_Prism_3D::AddPrisms( vector<const TNodeColumn*> & columns,
       const SMDS_MeshNode* topNodes[3] = { (*columns[0])[z],
                                            (*columns[1])[z],
                                            (*columns[2])[z] };
-      // assure good orientation
-      SMDS_VolumeOfNodes tmpVol ( botNodes[0], botNodes[1], botNodes[2],
-                                  topNodes[0], topNodes[1], topNodes[2]);
-      vTool.Set( &tmpVol );
-      if ( vTool.IsForward() )
+      if ( isForward )
         vol = helper->AddVolume( botNodes[0], botNodes[1], botNodes[2],
                                  topNodes[0], topNodes[1], topNodes[2]);
       else
@@ -408,11 +443,7 @@ void StdMeshers_Prism_3D::AddPrisms( vector<const TNodeColumn*> & columns,
                                            (*columns[2])[z-1], (*columns[3])[z-1] };
       const SMDS_MeshNode* topNodes[4] = { (*columns[0])[z], (*columns[1])[z],
                                            (*columns[2])[z], (*columns[3])[z] };
-      // assure good orientation
-      SMDS_VolumeOfNodes tmpVol ( botNodes[0], botNodes[1], botNodes[2], botNodes[3],
-                                  topNodes[0], topNodes[1], topNodes[2], topNodes[3]);
-      vTool.Set( &tmpVol );
-      if ( vTool.IsForward() )
+      if ( isForward )
         vol = helper->AddVolume( botNodes[0], botNodes[1], botNodes[2], botNodes[3],
                                  topNodes[0], topNodes[1], topNodes[2], topNodes[3]);
       else
@@ -462,7 +493,7 @@ bool StdMeshers_Prism_3D::assocOrProjBottom2Top()
   SMESHDS_SubMesh * topSMDS = topSM->GetSubMeshDS();
 
   if ( !botSMDS || botSMDS->NbElements() == 0 )
-    return error(dfltErr(),TCom("No elememts on face #") << botSM->GetId());
+    return error(TCom("No elememts on face #") << botSM->GetId());
 
   bool needProject = false;
   if ( !topSMDS || 
@@ -470,13 +501,13 @@ bool StdMeshers_Prism_3D::assocOrProjBottom2Top()
        botSMDS->NbNodes()    != topSMDS->NbNodes())
   {
     if ( myBlock.HasNotQuadElemOnTop() )
-      return error(dfltErr(),TCom("Mesh on faces #") << botSM->GetId()
+      return error(TCom("Mesh on faces #") << botSM->GetId()
                    <<" and #"<< topSM->GetId() << " seems different" );
     needProject = true;
   }
 
   if ( 0/*needProject && !myProjectTriangles*/ )
-    return error(dfltErr(),TCom("Mesh on faces #") << botSM->GetId()
+    return error(TCom("Mesh on faces #") << botSM->GetId()
                  <<" and #"<< topSM->GetId() << " seems different" );
   ///RETURN_BAD_RESULT("Need to project but not allowed");
 
@@ -492,7 +523,7 @@ bool StdMeshers_Prism_3D::assocOrProjBottom2Top()
   if ( !TAssocTool::FindSubShapeAssociation( botFace, myBlock.Mesh(),
                                              topFace, myBlock.Mesh(),
                                              shape2ShapeMap) )
-    return error(dfltErr(),TCom("Topology of faces #") << botSM->GetId()
+    return error(TCom("Topology of faces #") << botSM->GetId()
                  <<" and #"<< topSM->GetId() << " seems different" );
 
   // Find matching nodes of top and bottom faces
@@ -500,12 +531,13 @@ bool StdMeshers_Prism_3D::assocOrProjBottom2Top()
   if ( ! TAssocTool::FindMatchingNodesOnFaces( botFace, myBlock.Mesh(),
                                                topFace, myBlock.Mesh(),
                                                shape2ShapeMap, n2nMap ))
-    return error(dfltErr(),TCom("Mesh on faces #") << botSM->GetId()
+    return error(TCom("Mesh on faces #") << botSM->GetId()
                  <<" and #"<< topSM->GetId() << " seems different" );
 
   // Fill myBotToColumnMap
 
   int zSize = myBlock.VerticalSize();
+  TNode prevTNode;
   TNodeNodeMap::iterator bN_tN = n2nMap.begin();
   for ( ; bN_tN != n2nMap.end(); ++bN_tN )
   {
@@ -515,9 +547,16 @@ bool StdMeshers_Prism_3D::assocOrProjBottom2Top()
       continue; // wall columns are contained in myBlock
     // compute bottom node params
     TNode bN( botNode );
-    if ( !myBlock.ComputeParameters( bN.GetCoords(), bN.ChangeParams(), ID_BOT_FACE ))
-      return error(dfltErr(),TCom("Can't compute normalized parameters ")
-                   << "for node " << botNode->GetID() << " on the face #"<< botSM->GetId() );
+    if ( zSize > 2 ) {
+      gp_XYZ paramHint(-1,-1,-1);
+      if ( prevTNode.IsNeighbor( bN ))
+        paramHint = prevTNode.GetParams();
+      if ( !myBlock.ComputeParameters( bN.GetCoords(), bN.ChangeParams(),
+                                       ID_BOT_FACE, paramHint ))
+        return error(TCom("Can't compute normalized parameters for node ")
+                     << botNode->GetID() << " on the face #"<< botSM->GetId() );
+      prevTNode = bN;
+    }
     // create node column
     TNode2ColumnMap::iterator bN_col = 
       myBotToColumnMap.insert( make_pair ( bN, TNodeColumn() )).first;
@@ -555,6 +594,7 @@ bool StdMeshers_Prism_3D::projectBottomToTop()
   // Fill myBotToColumnMap
 
   int zSize = myBlock.VerticalSize();
+  TNode prevTNode;
   SMDS_NodeIteratorPtr nIt = botSMDS->GetNodes();
   while ( nIt->more() )
   {
@@ -563,15 +603,20 @@ bool StdMeshers_Prism_3D::projectBottomToTop()
       continue; // strange
     // compute bottom node params
     TNode bN( botNode );
-    if ( !myBlock.ComputeParameters( bN.GetCoords(), bN.ChangeParams(), ID_BOT_FACE ))
-      return error(dfltErr(),TCom("Can't compute normalized parameters ")
-                   << "for node " << botNode->GetID() << " on the face #"<< botSM->GetId() );
+    gp_XYZ paramHint(-1,-1,-1);
+    if ( prevTNode.IsNeighbor( bN ))
+      paramHint = prevTNode.GetParams();
+    if ( !myBlock.ComputeParameters( bN.GetCoords(), bN.ChangeParams(),
+                                     ID_BOT_FACE, paramHint ))
+      return error(TCom("Can't compute normalized parameters for node ")
+                   << botNode->GetID() << " on the face #"<< botSM->GetId() );
+    prevTNode = bN;
     // compute top node coords
     gp_XYZ topXYZ; gp_XY topUV;
     if ( !myBlock.FacePoint( ID_TOP_FACE, bN.GetParams(), topXYZ ) ||
          !myBlock.FaceUV   ( ID_TOP_FACE, bN.GetParams(), topUV ))
-      return error(dfltErr(),TCom("Can't compute coordinates ")
-                   << "by normalized parameters on the face #"<< topSM->GetId() );
+      return error(TCom("Can't compute coordinates "
+                        "by normalized parameters on the face #")<< topSM->GetId() );
     SMDS_MeshNode * topNode = meshDS->AddNode( topXYZ.X(),topXYZ.Y(),topXYZ.Z() );
     meshDS->SetNodeOnFace( topNode, topFaceID, topUV.X(), topUV.Y() );
     // create node column
@@ -604,13 +649,13 @@ bool StdMeshers_Prism_3D::projectBottomToTop()
       if ( n->GetPosition()->GetTypeOfPosition() == SMDS_TOP_FACE ) {
         TNode2ColumnMap::iterator bot_column = myBotToColumnMap.find( n );
         if ( bot_column == myBotToColumnMap.end() )
-          return error(dfltErr(),TCom("No nodes found above node ") << n->GetID() );
+          return error(TCom("No nodes found above node ") << n->GetID() );
         nodes[ i ] = bot_column->second.back();
       }
       else {
         const TNodeColumn* column = myBlock.GetNodeColumn( n );
         if ( !column )
-          return error(dfltErr(),TCom("No side nodes found above node ") << n->GetID() );
+          return error(TCom("No side nodes found above node ") << n->GetID() );
         nodes[ i ] = column->back();
       }
     }
@@ -673,6 +718,23 @@ bool StdMeshers_Prism_3D::setFaceAndEdgesXYZ( const int faceID, const gp_XYZ& pa
   return true;
 }
 
+//================================================================================
+/*!
+ * \brief Return true if this node and other one belong to one face
+ */
+//================================================================================
+
+bool TNode::IsNeighbor( const TNode& other ) const
+{
+  if ( !other.myNode || !myNode ) return false;
+
+  SMDS_ElemIteratorPtr fIt = other.myNode->GetInverseElementIterator(SMDSAbs_Face);
+  while ( fIt->more() )
+    if ( fIt->next()->GetNodeIndex( myNode ) >= 0 )
+      return true;
+  return false;
+}
+
 //================================================================================
 /*!
  * \brief Constructor. Initialization is needed
@@ -813,11 +875,11 @@ bool StdMeshers_PrismAsBlock::Init(SMESH_MesherHelper* helper,
   // detect bad cases
   if ( nbNotQuad > 0 && nbNotQuad != 2 )
     return error(COMPERR_BAD_SHAPE,
-                 TCom("More than 2 not quadrilateral faces")
+                 TCom("More than 2 not quadrilateral faces")
                  <<nbNotQuad);
   if ( nbNotQuadMeshed > 2 )
     return error(COMPERR_BAD_INPUT_MESH,
-                 TCom("More then 2 faces meshed with not quadrangle elements")
+                 TCom("More than 2 faces with not quadrangle elements: ")
                  <<nbNotQuadMeshed);
 
   // get found submeshes
@@ -1142,7 +1204,7 @@ bool StdMeshers_PrismAsBlock::Init(SMESH_MesherHelper* helper,
     SMESH_Block::TFace& tFace = myFace[ fID - ID_FirstF ];
     tFace.Set( fID, sideFace->Surface(), pcurves, isForward );
 
-    SHOWYXZ( endl<<"F "<< iF << " id " << fID << " FRW " << sideFace->IsForward(), );
+    SHOWYXZ( endl<<"F "<< iF << " id " << fID << " FRW " << sideFace->IsForward(), sideFace->Value(0,0));
     // edges 3D geometry
     vector< int > edgeIdVec;
     SMESH_Block::GetFaceEdgesIDs( fID, edgeIdVec );
index 5649199379ba5686ca4cc36116ef4cbe1349031a..d6fab7b38dc0a096c9f94023d7ae39aedebe0577 100644 (file)
@@ -79,10 +79,12 @@ struct TNode
   gp_XYZ GetCoords() const { return gp_XYZ( myNode->X(), myNode->Y(), myNode->Z() ); }
   gp_XYZ GetParams() const { return myParams; }
   gp_XYZ& ChangeParams() { return myParams; }
+  bool HasParams() const { return myParams.X() >= 0.0; }
   SMDS_TypeOfPosition GetPositionType() const
   { return myNode ? myNode->GetPosition()->GetTypeOfPosition() : SMDS_TOP_UNSPEC; }
+  bool IsNeighbor( const TNode& other ) const;
 
-  TNode(const SMDS_MeshNode* node = 0): myNode(node) {}
+  TNode(const SMDS_MeshNode* node = 0): myNode(node), myParams(-1,-1,-1) {}
   bool operator < (const TNode& other) const { return myNode < other.myNode; }
 };
 
index 48121a6b798da9355c0d4c323e61ee65ed08572d..8c3ecd9390c8df0109097f8efba9805b110aa363 100644 (file)
@@ -79,12 +79,12 @@ void StdMeshers_ProjectionSource1D::SetSourceEdge(const TopoDS_Shape& edge)
   if ( edge.IsNull() )
     throw SALOME_Exception(LOCALIZED("Null edge is not allowed"));
 
-  if ( edge.ShapeType() != TopAbs_EDGE )
+  if ( edge.ShapeType() != TopAbs_EDGE && edge.ShapeType() != TopAbs_COMPOUND )
     throw SALOME_Exception(LOCALIZED("Wrong shape type"));
 
   if ( !_sourceEdge.IsSame( edge ) )
   {
-    _sourceEdge = TopoDS::Edge( edge );
+    _sourceEdge = edge;
 
     NotifySubMeshesHypothesisModification();
   }
@@ -224,7 +224,7 @@ void StdMeshers_ProjectionSource1D::RestoreParams(const TopoDS_Shape& s1,
                                                   const TopoDS_Shape& s3,
                                                   SMESH_Mesh*         mesh)
 {
-  _sourceEdge   = TopoDS::Edge( s1 );
+  _sourceEdge   = s1;
   _sourceVertex = TopoDS::Vertex( s2 );
   _targetVertex = TopoDS::Vertex( s3 );
   _sourceMesh   = mesh;
index 1431ba22d5014409413dfa8a777b661598ce99dc..e9847420ff6c290d4d008582eab938a2b3776077 100644 (file)
@@ -34,7 +34,6 @@
 #include "SMESH_Hypothesis.hxx"
 #include "Utils_SALOME_Exception.hxx"
 
-#include <TopoDS_Edge.hxx>
 #include <TopoDS_Vertex.hxx>
 
 class SMESH_Gen;
@@ -62,9 +61,15 @@ public:
     throw ( SALOME_Exception );
 
   /*!
-   * Returns the source edge
+   * Returns the source edge or a group containing edges
    */
-  TopoDS_Edge GetSourceEdge() const { return _sourceEdge; }
+  TopoDS_Shape GetSourceEdge() const { return _sourceEdge; }
+
+  /*!
+   * Returns true the source edge is a group of edges
+   */
+  bool IsCompoundSource() const
+  { return !_sourceEdge.IsNull() && _sourceEdge.ShapeType() == TopAbs_COMPOUND; }
 
   /*!
    * Sets source <mesh> to take a mesh pattern from
@@ -135,7 +140,7 @@ public:
 
 protected:
 
-  TopoDS_Edge   _sourceEdge;
+  TopoDS_Shape  _sourceEdge;
   SMESH_Mesh*   _sourceMesh;
   TopoDS_Vertex _sourceVertex;
   TopoDS_Vertex _targetVertex;
index 2b9c54232d77ce294cf5ebce3af47a0fada79dbe..84440d25d3d0e694abd2bbe9478244ae1a186e16 100644 (file)
@@ -79,12 +79,12 @@ void StdMeshers_ProjectionSource2D::SetSourceFace(const TopoDS_Shape& Face)
   if ( Face.IsNull() )
     throw SALOME_Exception(LOCALIZED("Null Face is not allowed"));
 
-  if ( Face.ShapeType() != TopAbs_FACE )
+  if ( Face.ShapeType() != TopAbs_FACE && Face.ShapeType() != TopAbs_COMPOUND )
     throw SALOME_Exception(LOCALIZED("Wrong shape type"));
 
   if ( !_sourceFace.IsSame( Face ) )
   {
-    _sourceFace = TopoDS::Face( Face );
+    _sourceFace = Face;
 
     NotifySubMeshesHypothesisModification();
   }
@@ -150,7 +150,7 @@ void StdMeshers_ProjectionSource2D::SetSourceMesh(SMESH_Mesh* mesh)
  */
 //=============================================================================
 
-TopoDS_Face StdMeshers_ProjectionSource2D::GetSourceFace() const
+TopoDS_Shape StdMeshers_ProjectionSource2D::GetSourceFace() const
 {
   return _sourceFace;
 }
@@ -291,7 +291,7 @@ void StdMeshers_ProjectionSource2D::RestoreParams(const TopoDS_Shape& s1,
                                                   const TopoDS_Shape& s5,
                                                   SMESH_Mesh*         mesh)
 {
-  _sourceFace    = TopoDS::Face( s1 );
+  _sourceFace    = s1;
   _sourceVertex1 = TopoDS::Vertex( s2 );
   _sourceVertex2 = TopoDS::Vertex( s3 );
   _targetVertex1 = TopoDS::Vertex( s4 );
index 28c44aedba4a7dbef4e5d1695b9957faa10e3e94..e75e38dabf320ff7fb7aa588e6c03e000efc2438 100644 (file)
@@ -34,7 +34,6 @@
 #include "SMESH_Hypothesis.hxx"
 #include "Utils_SALOME_Exception.hxx"
 
-#include <TopoDS_Face.hxx>
 #include <TopoDS_Vertex.hxx>
 
 class SMESH_Gen;
@@ -62,9 +61,15 @@ public:
     throw ( SALOME_Exception );
 
   /*!
-   * Returns the source face
+   * Returns the source face or a group containing faces
    */
-  TopoDS_Face GetSourceFace() const;
+  TopoDS_Shape GetSourceFace() const;
+
+  /*!
+   * Returns true the source face is a group of faces
+   */
+  bool IsCompoundSource() const
+  { return !_sourceFace.IsNull() && _sourceFace.ShapeType() == TopAbs_COMPOUND; }
 
   /*!
    * Sets source <mesh> to take a mesh pattern from
@@ -145,7 +150,7 @@ public:
 
 protected:
 
-  TopoDS_Face   _sourceFace;
+  TopoDS_Shape  _sourceFace;
   SMESH_Mesh*   _sourceMesh;
   TopoDS_Vertex _sourceVertex1;
   TopoDS_Vertex _sourceVertex2;
index c276b3afa70705ebc049ab19c2630874c39b7d21..3e143481a8183b2ee5368d6528e74ca05e53b5df 100644 (file)
 
 #include "utilities.h"
 
-#include <BRepAdaptor_Curve.hxx>
 #include <BRepTools.hxx>
 #include <BRepTools_WireExplorer.hxx>
+#include <BRep_Builder.hxx>
 #include <BRep_Tool.hxx>
 #include <Bnd_Box.hxx>
 #include <TopAbs.hxx>
+#include <TopExp.hxx>
+#include <TopExp_Explorer.hxx>
 #include <TopTools_Array1OfShape.hxx>
-#include <TopTools_DataMapOfShapeShape.hxx>
 #include <TopTools_ListIteratorOfListOfShape.hxx>
 #include <TopTools_ListOfShape.hxx>
 #include <TopTools_MapOfShape.hxx>
+#include <TopoDS.hxx>
+#include <TopoDS_Compound.hxx>
 #include <TopoDS_Shape.hxx>
-#include <gp_Ax3.hxx>
 #include <gp_Pnt.hxx>
-#include <gp_Trsf.hxx>
 #include <gp_Vec.hxx>
+#include <TopTools_DataMapIteratorOfDataMapOfShapeShape.hxx>
+#include <TopTools_DataMapIteratorOfDataMapOfShapeListOfShape.hxx>
 
 
-#define RETURN_BAD_RESULT(msg) { MESSAGE(msg); return false; }
+#define RETURN_BAD_RESULT(msg) { MESSAGE(")-: Error: " << msg); return false; }
 #define SHOW_VERTEX(v,msg) // { \
 //  if ( v.IsNull() ) cout << msg << " NULL SHAPE" << endl; \
 // else if (v.ShapeType() == TopAbs_VERTEX) {\
@@ -146,10 +149,11 @@ namespace {
     * \param edges2 - matching edges of another face
     * \param theMesh1 - mesh 1
     * \param theMesh2 - mesh 2
+    * \retval bool - true if association was fixed
    */
   //================================================================================
 
-  void FixAssocByPropagation( const int             nbEdges,
+  bool FixAssocByPropagation( const int             nbEdges,
                               list< TopoDS_Edge > & edges1,
                               list< TopoDS_Edge > & edges2,
                               SMESH_Mesh*           theMesh1,
@@ -159,10 +163,44 @@ namespace {
     {
       list< TopoDS_Edge >::iterator eIt2 = ++edges2.begin(); // 2nd edge of the 2nd face
       TopoDS_Edge edge2 =
-        StdMeshers_ProjectionUtils::GetPropagationEdge( theMesh1, *eIt2, edges1.front() );
-      if ( !edge2.IsNull() ) // propagation found for the second edge
+        StdMeshers_ProjectionUtils::GetPropagationEdge( theMesh1, *eIt2, edges1.front() ).second;
+      if ( !edge2.IsNull() ) // propagation found for the second edge
         Reverse( edges2, nbEdges );
+        return true;
+      }
+    }
+    return false;
+  }
+
+  //================================================================================
+  /*!
+   * \brief Look for a group containing a target shape and similar to a source group
+    * \param tgtShape - target edge or face
+    * \param tgtMesh1 - target mesh
+    * \param srcGroup - source group
+    * \retval TopoDS_Shape - found target group
+   */
+  //================================================================================
+
+  TopoDS_Shape FindGroupContaining(const TopoDS_Shape& tgtShape,
+                                   const SMESH_Mesh*   tgtMesh1,
+                                   const TopoDS_Shape& srcGroup)
+  {
+    list<SMESH_subMesh*> subMeshes = tgtMesh1->GetGroupSubMeshesContaining(tgtShape);
+    list<SMESH_subMesh*>::iterator sm = subMeshes.begin();
+    int type, last = TopAbs_SHAPE;
+    StdMeshers_ProjectionUtils util;
+    for ( ; sm != subMeshes.end(); ++sm ) {
+      const TopoDS_Shape & group = (*sm)->GetSubShape();
+      // check if group is similar to srcGroup
+      for ( type = srcGroup.ShapeType(); type < last; ++type)
+        if ( util.Count( srcGroup, (TopAbs_ShapeEnum)type, 0) !=
+             util.Count( group,    (TopAbs_ShapeEnum)type, 0))
+          break;
+      if ( type == last )
+        return group;
     }
+    return TopoDS_Shape();
   }
 }
 
@@ -185,15 +223,32 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
                                                          SMESH_Mesh*         theMesh2,
                                                          TShapeShapeMap &    theMap)
 {
-  if ( theShape1.ShapeType() != theShape2.ShapeType() )
-    RETURN_BAD_RESULT("Different shape types");
+  if ( theShape1.ShapeType() != theShape2.ShapeType() ) {
+    // is it the case of a group member -> another group? (PAL16202, 16203)
+    TopoDS_Shape group1, group2;
+    if ( theShape1.ShapeType() == TopAbs_COMPOUND ) {
+      group1 = theShape1;
+      group2 = FindGroupContaining( theShape2, theMesh2, group1 );
+    }
+    else if ( theShape2.ShapeType() == TopAbs_COMPOUND ) {
+      group2 = theShape2;
+      group1 = FindGroupContaining( theShape1, theMesh1, group2 );
+    }
+    if ( group1.IsNull() || group2.IsNull() )
+      RETURN_BAD_RESULT("Different shape types");
+    // Associate compounds
+    return FindSubShapeAssociation(group1, theMesh1, group2, theMesh2, theMap );
+  }
 
   bool bidirect = ( !theShape1.IsSame( theShape2 ));
-  if ( !theMap.IsEmpty())
+  if ( !theMap.IsEmpty() )
   {
+    //======================================================================
+    // HAS initial vertex association
+    //======================================================================
     switch ( theShape1.ShapeType() ) {
-
-    case TopAbs_EDGE: {
+      // ----------------------------------------------------------------------
+    case TopAbs_EDGE: { // TopAbs_EDGE
       // ----------------------------------------------------------------------
       if ( theMap.Extent() != 2 )
         RETURN_BAD_RESULT("Wrong map extent " << theMap.Extent() );
@@ -206,10 +261,11 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
       if ( theMap.IsBound( VV1[ i1 ] )) i1 = 1;
       if ( theMap.IsBound( VV2[ i2 ] )) i2 = 1;
       InsertAssociation( VV1[ i1 ], VV2[ i2 ], theMap, bidirect);
+      InsertAssociation( theShape1, theShape2, theMap, bidirect );
       return true;
     }
-
-    case TopAbs_FACE: {
+      // ----------------------------------------------------------------------
+    case TopAbs_FACE: { // TopAbs_FACE
       // ----------------------------------------------------------------------
       TopoDS_Face face1 = TopoDS::Face( theShape1 );
       TopoDS_Face face2 = TopoDS::Face( theShape2 );
@@ -247,10 +303,11 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
         VV2[0] = TopExp::FirstVertex( *eIt2, true );
         InsertAssociation( VV1[0], VV2[0], theMap, bidirect);
       }
+      InsertAssociation( theShape1, theShape2, theMap, bidirect );
       return true;
     }
-
-    case TopAbs_SHELL:
+      // ----------------------------------------------------------------------
+    case TopAbs_SHELL: // TopAbs_SHELL, TopAbs_SOLID
     case TopAbs_SOLID: {
       // ----------------------------------------------------------------------
       TopoDS_Vertex VV1[2], VV2[2];
@@ -272,22 +329,42 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
       if ( edge2.IsNull() )
         RETURN_BAD_RESULT("GetEdgeByVertices() failed");
 
-      // get a face sharing edge1
-      TopoDS_Shape F1, F2, FF2[2];
-      TopTools_ListIteratorOfListOfShape ancestIt = theMesh1->GetAncestors( edge1 );
-      for ( ; F1.IsNull() && ancestIt.More(); ancestIt.Next() )
-        if ( ancestIt.Value().ShapeType() == TopAbs_FACE )
-          F1 = ancestIt.Value().Oriented( TopAbs_FORWARD );
+      // build map of edge to faces if shapes are not subshapes of main ones
+      bool isSubOfMain = false;
+      if ( SMESHDS_SubMesh * sm = theMesh1->GetMeshDS()->MeshElements( theShape1 ))
+        isSubOfMain = !sm->IsComplexSubmesh();
+      else
+        isSubOfMain = theMesh1->GetMeshDS()->ShapeToIndex( theShape1 );
+      TAncestorMap e2f1, e2f2;
+      const TAncestorMap& edgeToFace1 = isSubOfMain ? theMesh1->GetAncestorMap() : e2f1;
+      const TAncestorMap& edgeToFace2 = isSubOfMain ? theMesh2->GetAncestorMap() : e2f2;
+      if (!isSubOfMain) {
+        TopExp::MapShapesAndAncestors( theShape1, TopAbs_EDGE, TopAbs_FACE, e2f1 );
+        TopExp::MapShapesAndAncestors( theShape2, TopAbs_EDGE, TopAbs_FACE, e2f2 );
+        if ( !edgeToFace1.Contains( edge1 ))
+          RETURN_BAD_RESULT("edge1 does not belong to theShape1");
+        if ( !edgeToFace2.Contains( edge2 ))
+          RETURN_BAD_RESULT("edge2 does not belong to theShape2");
+      }
+      //
+      // Look for 2 corresponing faces:
+      //
+      TopoDS_Shape F1, F2;
+
+      // get a face sharing edge1 (F1)
+      TopoDS_Shape FF2[2];
+      TopTools_ListIteratorOfListOfShape ancestIt1( edgeToFace1.FindFromKey( edge1 ));
+      for ( ; F1.IsNull() && ancestIt1.More(); ancestIt1.Next() )
+        if ( ancestIt1.Value().ShapeType() == TopAbs_FACE )
+          F1 = ancestIt1.Value().Oriented( TopAbs_FORWARD );
       if ( F1.IsNull() )
         RETURN_BAD_RESULT(" Face1 not found");
 
-      // get 2 faces sharing edge2
-      ancestIt = theMesh2->GetAncestors( edge2 );
-      for ( int i = 0; FF2[1].IsNull() && ancestIt.More(); ancestIt.Next() )
-        if ( ancestIt.Value().ShapeType() == TopAbs_FACE )
-          FF2[ i++ ] = ancestIt.Value().Oriented( TopAbs_FORWARD );
-      if ( FF2[1].IsNull() )
-        RETURN_BAD_RESULT("2 faces not found");
+      // get 2 faces sharing edge2 (one of them is F2)
+      TopTools_ListIteratorOfListOfShape ancestIt2( edgeToFace2.FindFromKey( edge2 ));
+      for ( int i = 0; FF2[1].IsNull() && ancestIt2.More(); ancestIt2.Next() )
+        if ( ancestIt2.Value().ShapeType() == TopAbs_FACE )
+          FF2[ i++ ] = ancestIt2.Value().Oriented( TopAbs_FORWARD );
 
       // get oriented edge1 and edge2 from F1 and FF2[0]
       for ( exp.Init( F1, TopAbs_EDGE ); exp.More(); exp.Next() )
@@ -295,7 +372,6 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
           edge1 = TopoDS::Edge( exp.Current() );
           break;
         }
-      
       for ( exp.Init( FF2[ 0 ], TopAbs_EDGE ); exp.More(); exp.Next() )
         if ( edge2.IsSame( exp.Current() )) {
           edge2 = TopoDS::Edge( exp.Current() );
@@ -305,13 +381,16 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
       // compare first vertices of edge1 and edge2
       TopExp::Vertices( edge1, VV1[0], VV1[1], true );
       TopExp::Vertices( edge2, VV2[0], VV2[1], true );
-      F2 = FF2[ 0 ];
+      F2 = FF2[ 0 ]; // (F2 !)
       if ( !VV1[ 0 ].IsSame( theMap( VV2[ 0 ]))) {
-        F2 = FF2[ 1 ];
         edge2.Reverse();
+        if ( FF2[ 1 ].IsNull() )
+          F2.Reverse();
+        else
+          F2 = FF2[ 1 ];
       }
 
-      TopTools_MapOfShape boundEdges; 
+      TopTools_MapOfShape boundEdges;
 
       // association of face subshapes and neighbour faces
       list< pair < TopoDS_Face, TopoDS_Edge > > FE1, FE2;
@@ -330,39 +409,280 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
         list< TopoDS_Edge > edges1, edges2;
         int nbE = FindFaceAssociation( face1, VV1, face2, VV2, edges1, edges2 );
         if ( !nbE ) RETURN_BAD_RESULT("FindFaceAssociation() failed");
-        FixAssocByPropagation( nbE, edges1, edges2, theMesh1, theMesh2 );
-        
         InsertAssociation( face1, face2, theMap, bidirect); // assoc faces
+        MESSAGE("Assoc FACE " << theMesh1->GetMeshDS()->ShapeToIndex( face1 )<<
+                " to "        << theMesh2->GetMeshDS()->ShapeToIndex( face2 ));
+        if ( nbE == 2 && (edge1.IsSame( edges1.front())) != (edge2.IsSame( edges2.front())))
+        {
+          Reverse( edges2, nbE );
+        }
         list< TopoDS_Edge >::iterator eIt1 = edges1.begin();
         list< TopoDS_Edge >::iterator eIt2 = edges2.begin();
         for ( ; eIt1 != edges1.end(); ++eIt1, ++eIt2 )
         {
           if ( !boundEdges.Add( *eIt1 )) continue; // already associated
           InsertAssociation( *eIt1, *eIt2, theMap, bidirect);  // assoc edges
+          MESSAGE("Assoc edge " << theMesh1->GetMeshDS()->ShapeToIndex( *eIt1 )<<
+                  " to "        << theMesh2->GetMeshDS()->ShapeToIndex( *eIt2 ));
           VV1[0] = TopExp::FirstVertex( *eIt1, true );
           VV2[0] = TopExp::FirstVertex( *eIt2, true );
           InsertAssociation( VV1[0], VV2[0], theMap, bidirect); // assoc vertices
+          MESSAGE("Assoc vertex " << theMesh1->GetMeshDS()->ShapeToIndex( VV1[0] )<<
+                  " to "          << theMesh2->GetMeshDS()->ShapeToIndex( VV2[0] ));
 
           // add adjacent faces to process
-          TopoDS_Face nextFace1 = GetNextFace( theMesh1, *eIt1, face1 );
-          TopoDS_Face nextFace2 = GetNextFace( theMesh2, *eIt2, face2 );
+          TopoDS_Face nextFace1 = GetNextFace( edgeToFace1, *eIt1, face1 );
+          TopoDS_Face nextFace2 = GetNextFace( edgeToFace2, *eIt2, face2 );
           if ( !nextFace1.IsNull() && !nextFace2.IsNull() ) {
             FE1.push_back( make_pair( nextFace1, *eIt1 ));
             FE2.push_back( make_pair( nextFace2, *eIt2 ));
           }
         }
       }
+      InsertAssociation( theShape1, theShape2, theMap, bidirect );
+      return true;
+    }
+      // ----------------------------------------------------------------------
+    case TopAbs_COMPOUND: { // GROUP
+      // ----------------------------------------------------------------------
+      // Maybe groups contain only one member
+      TopoDS_Iterator it1( theShape1 ), it2( theShape2 );
+      TopAbs_ShapeEnum memberType = it1.Value().ShapeType();
+      int nbMembers = Count( theShape1, memberType, true );
+      if ( nbMembers == 0 ) return true;
+      if ( nbMembers == 1 ) {
+        return FindSubShapeAssociation( it1.Value(), theMesh1, it2.Value(), theMesh2, theMap );
+      }
+      // Try to make shells of faces
+      //
+      BRep_Builder builder;
+      TopoDS_Shell shell1, shell2;
+      builder.MakeShell(shell1); builder.MakeShell(shell2);
+      if ( memberType == TopAbs_FACE ) {
+        // just add faces of groups to shells
+        for (; it1.More(); it1.Next(), it2.Next() )
+          builder.Add( shell1, it1.Value() ), builder.Add( shell2, it2.Value() );
+      }
+      else if ( memberType == TopAbs_EDGE ) {
+        // Try to add faces sharing more than one edge of a group or
+        // sharing all its vertices with the group
+        TopTools_IndexedMapOfShape groupVertices[2];
+        TopExp::MapShapes( theShape1, TopAbs_VERTEX, groupVertices[0]);
+        TopExp::MapShapes( theShape2, TopAbs_VERTEX, groupVertices[1]);
+        //
+        TopTools_MapOfShape groupEdges[2], addedFaces[2];
+        bool hasInitAssoc = (!theMap.IsEmpty()), initAssocOK = !hasInitAssoc;
+        for (; it1.More(); it1.Next(), it2.Next() ) {
+          groupEdges[0].Add( it1.Value() );
+          groupEdges[1].Add( it2.Value() );
+          if ( !initAssocOK ) {
+            // for shell association there must be an edge with both vertices bound
+            TopoDS_Vertex v1, v2;
+            TopExp::Vertices( TopoDS::Edge( it1.Value()), v1, v2 );
+            initAssocOK = ( theMap.IsBound( v1 ) && theMap.IsBound( v2 ));
+          }
+        }
+        for (int is2ndGroup = 0; initAssocOK && is2ndGroup < 2; ++is2ndGroup) {
+          const TopoDS_Shape& group = is2ndGroup ? theShape2: theShape1;
+          SMESH_Mesh*         mesh  = is2ndGroup ? theMesh2 : theMesh1;
+          TopoDS_Shell&       shell = is2ndGroup ? shell2   : shell1;
+          for ( TopoDS_Iterator it( group ); it.More(); it.Next() ) {
+            const TopoDS_Edge& edge = TopoDS::Edge( it.Value() );
+            TopoDS_Face face;
+            for ( int iF = 0; iF < 2; ++iF ) { // loop on 2 faces sharing edge
+              face = GetNextFace(mesh->GetAncestorMap(), edge, face);
+              if ( !face.IsNull() ) {
+                int nbGroupEdges = 0;
+                for ( TopExp_Explorer f( face, TopAbs_EDGE ); f.More(); f.Next())
+                  if ( groupEdges[ is2ndGroup ].Contains( f.Current() ))
+                    if ( ++nbGroupEdges > 1 )
+                      break;
+                bool add = (nbGroupEdges > 1 || Count( face, TopAbs_EDGE, true ) == 1 );
+                if ( !add ) {
+                  add = true;
+                  for ( TopExp_Explorer v( face, TopAbs_VERTEX ); add && v.More(); v.Next())
+                    add = groupVertices[ is2ndGroup ].Contains( v.Current() );
+                }
+                if ( add && addedFaces[ is2ndGroup ].Add( face ))
+                  builder.Add( shell, face );
+              }
+            }
+          }
+        }
+      } else {
+        RETURN_BAD_RESULT("Unexpected group type");
+      }
+      // Associate shells
+      //
+      int nbFaces1 = Count( shell1, TopAbs_FACE, 0 );
+      int nbFaces2 = Count( shell2, TopAbs_FACE, 0 );
+      if ( nbFaces1 != nbFaces2 )
+        RETURN_BAD_RESULT("Different nb of faces found for shells");
+      if ( nbFaces1 > 0 ) {
+        bool ok = false;
+        if ( nbFaces1 == 1 ) {
+          TopoDS_Shape F1 = TopoDS_Iterator( shell1 ).Value();
+          TopoDS_Shape F2 = TopoDS_Iterator( shell2 ).Value();
+          ok = FindSubShapeAssociation( F1, theMesh1, F2, theMesh2, theMap );
+        }
+        else {
+          ok = FindSubShapeAssociation(shell1, theMesh1, shell2, theMesh2, theMap );
+        }
+        // Check if all members are mapped 
+        if ( ok ) {
+          TopTools_MapOfShape boundMembers[2];
+          TopoDS_Iterator mIt;
+          for ( mIt.Initialize( theShape1 ); mIt.More(); mIt.Next())
+            if ( theMap.IsBound( mIt.Value() )) {
+              boundMembers[0].Add( mIt.Value() );
+              boundMembers[1].Add( theMap( mIt.Value() ));
+            }
+          if ( boundMembers[0].Extent() != nbMembers ) {
+            // make compounds of not bound members
+            TopoDS_Compound comp[2];
+            for ( int is2ndGroup = 0; is2ndGroup < 2; ++is2ndGroup ) {
+              builder.MakeCompound( comp[is2ndGroup] );
+              for ( mIt.Initialize( is2ndGroup ? theShape2:theShape1 ); mIt.More(); mIt.Next())
+                if ( ! boundMembers[ is2ndGroup ].Contains( mIt.Value() ))
+                  builder.Add( comp[ is2ndGroup ], mIt.Value() );
+            }
+            // check if theMap contains initial association for the comp's
+            bool hasInitialAssoc = false;
+            if ( memberType == TopAbs_EDGE ) {
+              for ( TopExp_Explorer v( comp[0], TopAbs_VERTEX ); v.More(); v.Next())
+                if ( theMap.IsBound( v.Current() )) {
+                  hasInitialAssoc = true;
+                  break;
+                }
+            }
+            if ( hasInitialAssoc == bool( !theMap.IsEmpty() ))
+              ok = FindSubShapeAssociation( comp[0], theMesh1, comp[1], theMesh2, theMap );
+            else {
+              TShapeShapeMap tmpMap;
+              ok = FindSubShapeAssociation( comp[0], theMesh1, comp[1], theMesh2, tmpMap );
+              if ( ok ) {
+                TopTools_DataMapIteratorOfDataMapOfShapeShape mapIt( tmpMap );
+                for ( ; mapIt.More(); mapIt.Next() )
+                  theMap.Bind( mapIt.Key(), mapIt.Value());
+              }
+            }
+          }
+        }
+        return ok;
+      }
+      // Each edge of an edge group is shared by own faces
+      // ------------------------------------------------------------------
+      //
+      // map vertices to edges sharing them, avoid doubling edges in lists
+      TopTools_DataMapOfShapeListOfShape v2e[2];
+      for (int isFirst = 0; isFirst < 2; ++isFirst ) {
+        const TopoDS_Shape& group = isFirst ? theShape1 : theShape2;
+        TopTools_DataMapOfShapeListOfShape& veMap = v2e[ isFirst ? 0 : 1 ];
+        TopTools_MapOfShape addedEdges;
+        for ( TopExp_Explorer e( group, TopAbs_EDGE ); e.More(); e.Next() ) {
+          const TopoDS_Shape& edge = e.Current();
+          if ( addedEdges.Add( edge )) {
+            for ( TopExp_Explorer v( edge, TopAbs_VERTEX ); v.More(); v.Next()) {
+              const TopoDS_Shape& vertex = v.Current();
+              if ( !veMap.IsBound( vertex )) {
+                TopTools_ListOfShape l;
+                veMap.Bind( vertex, l );
+              }
+              veMap( vertex ).Append( edge );
+            }
+          }
+        }   
+      }
+      while ( !v2e[0].IsEmpty() )
+      {
+        // find a bound vertex
+        TopoDS_Vertex V[2];
+        TopTools_DataMapIteratorOfDataMapOfShapeListOfShape v2eIt( v2e[0] );
+        for ( ; v2eIt.More(); v2eIt.Next())
+          if ( theMap.IsBound( v2eIt.Key() )) {
+            V[0] = TopoDS::Vertex( v2eIt.Key() );
+            V[1] = TopoDS::Vertex( theMap( V[0] ));
+            break;
+          }
+        if ( V[0].IsNull() )
+          RETURN_BAD_RESULT("No more bound vertices");
+
+        while ( !V[0].IsNull() && v2e[0].IsBound( V[0] )) {
+          TopTools_ListOfShape& edges0 = v2e[0]( V[0] );
+          TopTools_ListOfShape& edges1 = v2e[1]( V[1] );
+          int nbE0 = edges0.Extent(), nbE1 = edges1.Extent();
+          if ( nbE0 != nbE1 )
+            RETURN_BAD_RESULT("Different nb of edges: "<< nbE0 << " != " << nbE1);
+
+          if ( nbE0 == 1 )
+          {
+            TopoDS_Edge e0 = TopoDS::Edge( edges0.First() );
+            TopoDS_Edge e1 = TopoDS::Edge( edges1.First() );
+            v2e[0].UnBind( V[0] );
+            v2e[1].UnBind( V[1] );
+            InsertAssociation( e0, e1, theMap, bidirect );
+            MESSAGE("Assoc edge " << theMesh1->GetMeshDS()->ShapeToIndex( e0 )<<
+                    " to "        << theMesh2->GetMeshDS()->ShapeToIndex( e1 ));
+            V[0] = GetNextVertex( e0, V[0] );
+            V[1] = GetNextVertex( e1, V[1] );
+            if ( !V[0].IsNull() ) {
+              InsertAssociation( V[0], V[1], theMap, bidirect );
+              MESSAGE("Assoc vertex " << theMesh1->GetMeshDS()->ShapeToIndex( V[0] )<<
+                      " to "          << theMesh2->GetMeshDS()->ShapeToIndex( V[1] ));
+            }
+          }
+          else if ( nbE0 == 2 )
+          {
+            // one of edges must have both ends bound
+            TopoDS_Vertex v0e0 = GetNextVertex( TopoDS::Edge( edges0.First() ), V[0] );
+            TopoDS_Vertex v1e0 = GetNextVertex( TopoDS::Edge( edges0.Last() ),  V[0] );
+            TopoDS_Vertex v0e1 = GetNextVertex( TopoDS::Edge( edges1.First() ), V[1] );
+            TopoDS_Vertex v1e1 = GetNextVertex( TopoDS::Edge( edges1.Last() ),  V[1] );
+            TopoDS_Shape e0b, e1b, e0n, e1n, v1b; // bound and not-bound
+            TopoDS_Vertex v0n, v1n;
+            if ( theMap.IsBound( v0e0 )) {
+              v0n = v1e0; e0b = edges0.First(); e0n = edges0.Last(); v1b = theMap( v0e0 );
+            } else if ( theMap.IsBound( v1e0 )) {
+              v0n = v0e0; e0n = edges0.First(); e0b = edges0.Last(); v1b = theMap( v1e0 );
+            } else {
+              RETURN_BAD_RESULT("None of vertices bound");
+            }
+            if ( v1b.IsSame( v1e1 )) {
+              v1n = v0e1; e1n = edges1.First(); e1b = edges1.Last();
+            } else {
+              v1n = v1e1; e1b = edges1.First(); e1n = edges1.Last();
+            }
+            InsertAssociation( e0b, e1b, theMap, bidirect );
+            InsertAssociation( e0n, e1n, theMap, bidirect );
+            InsertAssociation( v0n, v1n, theMap, bidirect );
+            MESSAGE("Assoc edge " << theMesh1->GetMeshDS()->ShapeToIndex( e0b )<<
+                    " to "        << theMesh2->GetMeshDS()->ShapeToIndex( e1b ));
+            MESSAGE("Assoc edge " << theMesh1->GetMeshDS()->ShapeToIndex( e0n )<<
+                    " to "        << theMesh2->GetMeshDS()->ShapeToIndex( e1n ));
+            MESSAGE("Assoc vertex " << theMesh1->GetMeshDS()->ShapeToIndex( v0n )<<
+                    " to "          << theMesh2->GetMeshDS()->ShapeToIndex( v1n ));
+            v2e[0].UnBind( V[0] );
+            v2e[1].UnBind( V[1] );
+            V[0] = v0n;
+            V[1] = v1n;
+          }
+          else {
+            RETURN_BAD_RESULT("Not implemented");
+          }
+        }
+      } //while ( !v2e[0].IsEmpty() )
       return true;
     }
+
     default:
       RETURN_BAD_RESULT("Unexpected shape type");
 
     } // end switch by shape type
   } // end case of available initial vertex association
 
-  //----------------------------------------------------------------------
+  //======================================================================
   // NO INITIAL VERTEX ASSOCIATION
-  //----------------------------------------------------------------------
+  //======================================================================
 
   switch ( theShape1.ShapeType() ) {
 
@@ -372,7 +692,7 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
     TopoDS_Edge edge2 = TopoDS::Edge( theShape2 );
     if ( IsPropagationPossible( theMesh1, theMesh2 ))
     {
-      TopoDS_Edge prpEdge = GetPropagationEdge( theMesh1, edge2, edge1 );
+      TopoDS_Edge prpEdge = GetPropagationEdge( theMesh1, edge2, edge1 ).second;
       if ( !prpEdge.IsNull() )
       {
         TopoDS_Vertex VV1[2], VV2[2];
@@ -385,6 +705,7 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
         {
           InsertAssociation( edge1, prpEdge, theMap, bidirect); // insert with a proper orientation
         }
+        InsertAssociation( theShape1, theShape2, theMap, bidirect );
         return true; // done
       }
     }
@@ -394,6 +715,7 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
       InsertAssociation( edge1, edge2, theMap, bidirect); // insert with a proper orientation
       InsertAssociation( TopExp::FirstVertex(edge1), TopExp::FirstVertex(edge2),
                          theMap, bidirect);
+      InsertAssociation( theShape1, theShape2, theMap, bidirect );
       return true; // done
     }
     break; // try by vertex closeness
@@ -405,40 +727,47 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
     {
       TopoDS_Face face1 = TopoDS::Face(theShape1);
       TopoDS_Face face2 = TopoDS::Face(theShape2);
+      TopoDS_Edge edge1, edge2;
       // get outer edge of theShape1
-      TopoDS_Edge edge1 = TopoDS::Edge( OuterShape( face1, TopAbs_EDGE ));
+      edge1 = TopoDS::Edge( OuterShape( face1, TopAbs_EDGE ));
       // find out if any edge of face2 is a propagation edge of outer edge1
+      map<int,TopoDS_Edge> propag_edges; // use map to find the closest propagation edge
       for ( TopExp_Explorer exp( face2, TopAbs_EDGE ); exp.More(); exp.Next() ) {
-        TopoDS_Edge edge2 = TopoDS::Edge( exp.Current() );
-        edge2 = GetPropagationEdge( theMesh1, edge2, edge1 );
-        if ( !edge2.IsNull() ) // propagation found
+        edge2 = TopoDS::Edge( exp.Current() );
+        pair<int,TopoDS_Edge> step_edge = GetPropagationEdge( theMesh1, edge2, edge1 );
+        if ( !step_edge.second.IsNull() ) { // propagation found
+          propag_edges.insert( step_edge );
+        }
+      }
+      if ( !propag_edges.empty() ) // propagation found
+      {
+        edge2 = propag_edges.begin()->second;
+        TopoDS_Vertex VV1[2], VV2[2];
+        TopExp::Vertices( edge1, VV1[0], VV1[1], true );
+        TopExp::Vertices( edge2, VV2[0], VV2[1], true );
+        list< TopoDS_Edge > edges1, edges2;
+        int nbE = FindFaceAssociation( face1, VV1, face2, VV2, edges1, edges2 );
+        if ( !nbE ) RETURN_BAD_RESULT("FindFaceAssociation() failed");
+        if ( nbE == 2 ) // only 2 edges
         {
-          TopoDS_Vertex VV1[2], VV2[2];
-          TopExp::Vertices( edge1, VV1[0], VV1[1], true );
-          TopExp::Vertices( edge2, VV2[0], VV2[1], true );
-          list< TopoDS_Edge > edges1, edges2;
-          int nbE = FindFaceAssociation( face1, VV1, face2, VV2, edges1, edges2 );
-          if ( !nbE ) RETURN_BAD_RESULT("FindFaceAssociation() failed");
-          if ( nbE == 2 ) // only 2 edges
-          {
-            // take care of proper association of propagated edges
-            bool same1 = edge1.IsSame( edges1.front() );
-            bool same2 = edge2.IsSame( edges2.front() );
-            if ( same1 != same2 )
-              Reverse(edges2, nbE);
-          }
-          // store association
-          list< TopoDS_Edge >::iterator eIt1 = edges1.begin();
-          list< TopoDS_Edge >::iterator eIt2 = edges2.begin();
-          for ( ; eIt1 != edges1.end(); ++eIt1, ++eIt2 )
-          {
-            InsertAssociation( *eIt1, *eIt2, theMap, bidirect);
-            VV1[0] = TopExp::FirstVertex( *eIt1, true );
-            VV2[0] = TopExp::FirstVertex( *eIt2, true );
-            InsertAssociation( VV1[0], VV2[0], theMap, bidirect);
-          }
-          return true;
+          // take care of proper association of propagated edges
+          bool same1 = edge1.IsSame( edges1.front() );
+          bool same2 = edge2.IsSame( edges2.front() );
+          if ( same1 != same2 )
+            Reverse(edges2, nbE);
+        }
+        // store association
+        list< TopoDS_Edge >::iterator eIt1 = edges1.begin();
+        list< TopoDS_Edge >::iterator eIt2 = edges2.begin();
+        for ( ; eIt1 != edges1.end(); ++eIt1, ++eIt2 )
+        {
+          InsertAssociation( *eIt1, *eIt2, theMap, bidirect);
+          VV1[0] = TopExp::FirstVertex( *eIt1, true );
+          VV2[0] = TopExp::FirstVertex( *eIt2, true );
+          InsertAssociation( VV1[0], VV2[0], theMap, bidirect);
         }
+        InsertAssociation( theShape1, theShape2, theMap, bidirect );
+        return true;
       }
     }
     break; // try by vertex closeness
@@ -458,8 +787,10 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
 
   if ( vMap1.Extent() == 1 ) {
     InsertAssociation( vMap1(1), vMap2(1), theMap, bidirect);
-    if ( theShape1.ShapeType() == TopAbs_EDGE )
+    if ( theShape1.ShapeType() == TopAbs_EDGE ) {
+      InsertAssociation( theShape1, theShape2, theMap, bidirect );
       return true;
+    }
     return FindSubShapeAssociation( theShape1, theMesh1, theShape2, theMesh2, theMap);
   }
 
@@ -488,14 +819,21 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
   // get 2 linked vertices of shape 1 not belonging to an inner wire of a face
   TopoDS_Shape edge = theShape1;
   TopExp_Explorer expF( theShape1, TopAbs_FACE ), expE;
-  for ( ; expF.More(); expF.Next() ) {
+  if ( expF.More() ) {
+    for ( ; expF.More(); expF.Next() ) {
+      edge.Nullify();
+      TopoDS_Shape wire = OuterShape( TopoDS::Face( expF.Current() ), TopAbs_WIRE );
+      for ( expE.Init( wire, TopAbs_EDGE ); edge.IsNull() && expE.More(); expE.Next() )
+        if ( !IsClosedEdge( TopoDS::Edge( expE.Current() )))
+          edge = expE.Current();
+      if ( !edge.IsNull() )
+        break;
+    }
+  } else if (edge.ShapeType() != TopAbs_EDGE) { // no faces
     edge.Nullify();
-    TopoDS_Shape wire = OuterShape( TopoDS::Face( expF.Current() ), TopAbs_WIRE );
-    for ( expE.Init( wire, TopAbs_EDGE ); edge.IsNull() && expE.More(); expE.Next() )
+    for ( expE.Init( theShape1, TopAbs_EDGE ); edge.IsNull() && expE.More(); expE.Next() )
       if ( !IsClosedEdge( TopoDS::Edge( expE.Current() )))
         edge = expE.Current();
-    if ( !edge.IsNull() )
-      break;
   }
   if ( edge.IsNull() || edge.ShapeType() != TopAbs_EDGE )
     RETURN_BAD_RESULT("Edge not found");
@@ -522,10 +860,16 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
     }
   }
 
-  InsertAssociation( VV1[ 0 ], VV2 [ 0 ], theMap, bidirect);
-  InsertAssociation( VV1[ 1 ], VV2 [ 1 ], theMap, bidirect);
-  if ( theShape1.ShapeType() == TopAbs_EDGE )
+  InsertAssociation( VV1[ 0 ], VV2[ 0 ], theMap, bidirect);
+  InsertAssociation( VV1[ 1 ], VV2[ 1 ], theMap, bidirect);
+  MESSAGE("Initial assoc VERT " << theMesh1->GetMeshDS()->ShapeToIndex( VV1[ 0 ] )<<
+          " to "                << theMesh2->GetMeshDS()->ShapeToIndex( VV2[ 0 ] )<<
+          "\nand         VERT " << theMesh1->GetMeshDS()->ShapeToIndex( VV1[ 1 ] )<<
+          " to "                << theMesh2->GetMeshDS()->ShapeToIndex( VV2[ 1 ] ));
+  if ( theShape1.ShapeType() == TopAbs_EDGE ) {
+    InsertAssociation( theShape1, theShape2, theMap, bidirect );
     return true;
+  }
 
   return FindSubShapeAssociation( theShape1, theMesh1, theShape2, theMesh2, theMap );
 }
@@ -568,6 +912,7 @@ int StdMeshers_ProjectionUtils::FindFaceAssociation(const TopoDS_Face& face1,
 
   list< TopoDS_Edge >::iterator eBackIt;
   if ( !VV1[1].IsSame( TopExp::LastVertex( edges1.front(), true ))) {
+    reverse = true;
     eBackIt = --edges1.end();
     // check if the second vertex belongs to the first or last edge in the wire
     if ( !VV1[1].IsSame( TopExp::FirstVertex( *eBackIt, true ))) {
@@ -580,10 +925,10 @@ int StdMeshers_ProjectionUtils::FindFaceAssociation(const TopoDS_Face& face1,
       if ( KO )
         RETURN_BAD_RESULT("GetOrderedEdges() failed");
     }
-    reverse = true;
   }
   eBackIt = --edges2.end();
   if ( !VV2[1].IsSame( TopExp::LastVertex( edges2.front(), true ))) {
+    reverse = !reverse;
     // check if the second vertex belongs to the first or last edge in the wire
     if ( !VV2[1].IsSame( TopExp::FirstVertex( *eBackIt, true ))) {
       bool KO = true; // belongs to none
@@ -595,7 +940,6 @@ int StdMeshers_ProjectionUtils::FindFaceAssociation(const TopoDS_Face& face1,
       if ( KO )
         RETURN_BAD_RESULT("GetOrderedEdges() failed");
     }
-    reverse = !reverse;
   }
   if ( reverse )
   {
@@ -613,15 +957,15 @@ int StdMeshers_ProjectionUtils::FindFaceAssociation(const TopoDS_Face& face1,
 //=======================================================================
 
 void StdMeshers_ProjectionUtils::InitVertexAssociation( const SMESH_Hypothesis* theHyp,
-                                                        TShapeShapeMap &        theAssociationMap)
+                                                        TShapeShapeMap &        theAssociationMap,
+                                                        const TopoDS_Shape&     theTargetShape)
 {
   string hypName = theHyp->GetName();
   if ( hypName == "ProjectionSource1D" ) {
     const StdMeshers_ProjectionSource1D * hyp =
       static_cast<const StdMeshers_ProjectionSource1D*>( theHyp );
-    if ( hyp->HasVertexAssociation() ) {
+    if ( hyp->HasVertexAssociation() )
       InsertAssociation( hyp->GetSourceVertex(),hyp->GetTargetVertex(),theAssociationMap);
-    }
   }
   else if ( hypName == "ProjectionSource2D" ) {
     const StdMeshers_ProjectionSource2D * hyp =
@@ -664,6 +1008,9 @@ bool StdMeshers_ProjectionUtils::InsertAssociation( const TopoDS_Shape& theShape
       theAssociationMap.Bind( theShape2, theShape1 );
     return isNew;
   }
+  else {
+    throw SALOME_Exception("StdMeshers_ProjectionUtils: attempt to associate NULL shape");
+  }
   return false;
 }
 
@@ -677,7 +1024,10 @@ bool StdMeshers_ProjectionUtils::IsSubShape( const TopoDS_Shape& shape,
 {
   if ( shape.IsNull() || !aMesh )
     return false;
-  return aMesh->GetMeshDS()->ShapeToIndex( shape );
+  return
+    aMesh->GetMeshDS()->ShapeToIndex( shape ) ||
+    // PAL16202
+    shape.ShapeType() == TopAbs_COMPOUND && aMesh->GetMeshDS()->IsGroupOfSubShapes( shape );
 }
 
 //=======================================================================
@@ -733,27 +1083,43 @@ TopoDS_Edge StdMeshers_ProjectionUtils::GetEdgeByVertices( SMESH_Mesh*
 //================================================================================
 /*!
  * \brief Return another face sharing an edge
- * \param aMesh - mesh
+ * \param edgeToFaces - data map of descendants to ancestors
  * \param edge - edge
  * \param face - face
  * \retval TopoDS_Face - found face
  */
 //================================================================================
 
-TopoDS_Face StdMeshers_ProjectionUtils::GetNextFace( SMESH_Mesh*        mesh,
-                                                     const TopoDS_Edge& edge,
-                                                     const TopoDS_Face& face)
+TopoDS_Face StdMeshers_ProjectionUtils::GetNextFace( const TAncestorMap& edgeToFaces,
+                                                     const TopoDS_Edge&  edge,
+                                                     const TopoDS_Face&  face)
 {
-  if ( mesh && !edge.IsNull() && !face.IsNull() )
+//   if ( !edge.IsNull() && !face.IsNull() && edgeToFaces.Contains( edge ))
+  if ( !edge.IsNull() && edgeToFaces.Contains( edge )) // PAL16202
   {
-    TopTools_ListIteratorOfListOfShape ancestorIt( mesh->GetAncestors( edge ));
+    TopTools_ListIteratorOfListOfShape ancestorIt( edgeToFaces.FindFromKey( edge ));
     for ( ; ancestorIt.More(); ancestorIt.Next() )
       if ( ancestorIt.Value().ShapeType() == TopAbs_FACE &&
            !face.IsSame( ancestorIt.Value() ))
         return TopoDS::Face( ancestorIt.Value() );
   }
   return TopoDS_Face();
-  
+}
+
+//================================================================================
+/*!
+ * \brief Return other vertex of an edge
+ */
+//================================================================================
+
+TopoDS_Vertex StdMeshers_ProjectionUtils::GetNextVertex(const TopoDS_Edge&   edge,
+                                                        const TopoDS_Vertex& vertex)
+{
+  TopoDS_Vertex vF,vL;
+  TopExp::Vertices(edge,vF,vL);
+  if ( vF.IsSame( vL ))
+    return TopoDS_Vertex();
+  return vertex.IsSame( vF ) ? vL : vF; 
 }
 
 //================================================================================
@@ -762,23 +1128,25 @@ TopoDS_Face StdMeshers_ProjectionUtils::GetNextFace( SMESH_Mesh*        mesh,
  * \param aMesh - mesh
  * \param theEdge - edge to find by propagation
  * \param fromEdge - start edge for propagation
- * \retval TopoDS_Edge - found edge
+ * \retval pair<int,TopoDS_Edge> - propagation step and found edge
  */
 //================================================================================
 
-TopoDS_Edge StdMeshers_ProjectionUtils::GetPropagationEdge( SMESH_Mesh*        aMesh,
-                                                            const TopoDS_Edge& theEdge,
-                                                            const TopoDS_Edge& fromEdge)
+pair<int,TopoDS_Edge>
+StdMeshers_ProjectionUtils::GetPropagationEdge( SMESH_Mesh*        aMesh,
+                                                const TopoDS_Edge& theEdge,
+                                                const TopoDS_Edge& fromEdge)
 {
   SMESH_IndexedMapOfShape aChain;
-  //aChain.Add(fromEdge);
+  int step = 0;
 
   // List of edges, added to chain on the previous cycle pass
   TopTools_ListOfShape listPrevEdges;
-  listPrevEdges.Append(fromEdge/*.Oriented( TopAbs_FORWARD )*/);
+  listPrevEdges.Append(fromEdge);
 
   // Collect all edges pass by pass
   while (listPrevEdges.Extent() > 0) {
+    step++;
     // List of edges, added to chain on this cycle pass
     TopTools_ListOfShape listCurEdges;
 
@@ -823,7 +1191,7 @@ TopoDS_Edge StdMeshers_ProjectionUtils::GetPropagationEdge( SMESH_Mesh*        a
                 ori = TopAbs::Reverse( ori );
               anOppE.Orientation( ori );
               if ( anOppE.IsSame( theEdge ))
-                return TopoDS::Edge( anOppE );
+                return make_pair( step, TopoDS::Edge( anOppE ));
               aChain.Add(anOppE);
               listCurEdges.Append(anOppE);
             }
@@ -835,7 +1203,7 @@ TopoDS_Edge StdMeshers_ProjectionUtils::GetPropagationEdge( SMESH_Mesh*        a
     listPrevEdges = listCurEdges;
   } // while (listPrevEdges.Extent() > 0)
 
-  return TopoDS_Edge();
+  return make_pair( INT_MAX, TopoDS_Edge());
 }
 
 //================================================================================
@@ -888,33 +1256,59 @@ FindMatchingNodesOnFaces( const TopoDS_Face&     face1,
 
   // 1. Nodes of corresponding links:
 
-  // get 2 matching edges, not seam ones
-  TopoDS_Edge edge1, edge2;
+  // get 2 matching edges, try to find not seam ones
+  TopoDS_Edge edge1, edge2, seam1, seam2;
   TopExp_Explorer eE( OuterShape( face2, TopAbs_WIRE ), TopAbs_EDGE );
   do {
-    edge2 = TopoDS::Edge( eE.Current() );
+    // edge 2
+    TopoDS_Edge e2 = TopoDS::Edge( eE.Current() );
     eE.Next();
-  } while ( BRep_Tool::IsClosed( edge2, face2 ) && eE.More());
-  if ( !assocMap.IsBound( edge2 ))
-    RETURN_BAD_RESULT("Association not found for edge " << meshDS2->ShapeToIndex( edge2 ));
-  edge1 = TopoDS::Edge( assocMap( edge2 ));
-  if ( !IsSubShape( edge1, face1 ))
-    RETURN_BAD_RESULT("Wrong association, edge " << meshDS1->ShapeToIndex( edge1 ) <<
-                      " isn't a subshape of face " << meshDS1->ShapeToIndex( face1 ));
+    // edge 1
+    if ( !assocMap.IsBound( e2 ))
+      RETURN_BAD_RESULT("Association not found for edge " << meshDS2->ShapeToIndex( e2 ));
+    TopoDS_Edge e1 = TopoDS::Edge( assocMap( e2 ));
+    if ( !IsSubShape( e1, face1 ))
+      RETURN_BAD_RESULT("Wrong association, edge " << meshDS1->ShapeToIndex( e1 ) <<
+                        " isn't a subshape of face " << meshDS1->ShapeToIndex( face1 ));
+    // check that there are nodes on edges
+    SMESHDS_SubMesh * eSM1 = meshDS1->MeshElements( e1 );
+    SMESHDS_SubMesh * eSM2 = meshDS2->MeshElements( e2 );
+    bool nodesOnEdges = ( eSM1 && eSM2 && eSM1->NbNodes() && eSM2->NbNodes() );
+    // check that the nodes on edges belong to faces
+    bool nodesOfFaces = false;
+    if ( nodesOnEdges ) {
+      const SMDS_MeshNode* n1 = eSM1->GetNodes()->next();
+      const SMDS_MeshNode* n2 = eSM2->GetNodes()->next();
+      nodesOfFaces = ( n1->GetInverseElementIterator(SMDSAbs_Face)->more() &&
+                       n2->GetInverseElementIterator(SMDSAbs_Face)->more() );
+    }
+    if ( nodesOfFaces )
+    {
+      if ( BRep_Tool::IsClosed( e2, face2 )) {
+        seam1 = e1; seam2 = e2;
+      }
+      else {
+        edge1 = e1; edge2 = e2;
+      }
+    }
+  } while ( edge2.IsNull() && eE.More() );
+  //
+  if ( edge2.IsNull() ) {
+    edge1 = seam1; edge2 = seam2;
+  }
+  if ( edge2.IsNull() ) RETURN_BAD_RESULT("No matching edges with nodes found");
 
   // get 2 matching vertices
-  TopoDS_Shape V2 = TopExp::FirstVertex( TopoDS::Edge( edge2 ));
+  TopoDS_Vertex V2 = TopExp::FirstVertex( TopoDS::Edge( edge2 ));
   if ( !assocMap.IsBound( V2 ))
     RETURN_BAD_RESULT("Association not found for vertex " << meshDS2->ShapeToIndex( V2 ));
-  TopoDS_Shape V1 = assocMap( V2 );
+  TopoDS_Vertex V1 = TopoDS::Vertex( assocMap( V2 ));
 
   // nodes on vertices
-  SMESHDS_SubMesh * vSM1 = meshDS1->MeshElements( V1 );
-  SMESHDS_SubMesh * vSM2 = meshDS2->MeshElements( V2 );
-  if ( !vSM1 || !vSM2 || vSM1->NbNodes() != 1 || vSM2->NbNodes() != 1 )
-    RETURN_BAD_RESULT("Bad node submesh");
-  const SMDS_MeshNode* vNode1 = vSM1->GetNodes()->next();
-  const SMDS_MeshNode* vNode2 = vSM2->GetNodes()->next();
+  const SMDS_MeshNode* vNode1 = SMESH_Algo::VertexNode( V1, meshDS1 );
+  const SMDS_MeshNode* vNode2 = SMESH_Algo::VertexNode( V2, meshDS2 );
+  if ( !vNode1 ) RETURN_BAD_RESULT("No node on vertex #" << meshDS1->ShapeToIndex( V1 ));
+  if ( !vNode2 ) RETURN_BAD_RESULT("No node on vertex #" << meshDS2->ShapeToIndex( V2 ));
 
   // nodes on edges linked with nodes on vertices
   const SMDS_MeshNode* nullNode = 0;
@@ -968,7 +1362,7 @@ FindMatchingNodesOnFaces( const TopoDS_Face&     face1,
     }
     else
     {
-      // there is only seam edge in a face, i.e. it is a sphere.
+      // the only suitable edge is seam, i.e. it is a sphere.
       // FindMatchingNodes() will not know which way to go from any edge.
       // So we ignore all faces having nodes on edges or vertices except
       // one of faces sharing current start nodes
@@ -1020,9 +1414,23 @@ FindMatchingNodesOnFaces( const TopoDS_Face&     face1,
         if ( !onBnd )
           elems.insert( f );
       }
+      // add also faces adjacent to faceToKeep
+      int nbNodes = faceToKeep->NbNodes();
+      if ( faceToKeep->IsQuadratic() ) nbNodes /= 2;
+      notInSet.insert( f1 );
+      notInSet.insert( f2 );
+      for ( int i = 0; i < nbNodes; ++i ) {
+        const SMDS_MeshNode* n1 = faceToKeep->GetNode( i );
+        const SMDS_MeshNode* n2 = faceToKeep->GetNode( i+1 );
+        f1 = SMESH_MeshEditor::FindFaceInSet( n1, n2, inSet, notInSet );
+        if ( f1 )
+          elems.insert( f1 );
+      }
     } // case on a sphere
   } // loop on 2 faces
 
+  //  int quadFactor = (*Elems1.begin())->IsQuadratic() ? 2 : 1;
+
   node1To2Map.clear();
   int res = SMESH_MeshEditor::FindMatchingNodes( Elems1, Elems2,
                                                  vNode1, vNode2,
@@ -1031,7 +1439,6 @@ FindMatchingNodesOnFaces( const TopoDS_Face&     face1,
   if ( res != SMESH_MeshEditor::SEW_OK )
     RETURN_BAD_RESULT("FindMatchingNodes() result " << res );
 
-
   // On a sphere, add matching nodes on the edge
 
   if ( helper1.IsSeamShape( edge1 ))
@@ -1083,15 +1490,20 @@ FindMatchingNodesOnFaces( const TopoDS_Face&     face1,
     V2 = TopExp::LastVertex( TopoDS::Edge( edge2 ));
     if ( !assocMap.IsBound( V2 ))
       RETURN_BAD_RESULT("Association not found for vertex " << meshDS2->ShapeToIndex( V2 ));
-    V1 = assocMap( V2 );
-    vSM1 = meshDS1->MeshElements( V1 );
-    vSM2 = meshDS2->MeshElements( V2 );
-    if ( !vSM1 || !vSM2 || vSM1->NbNodes() != 1 || vSM2->NbNodes() != 1 )
-      RETURN_BAD_RESULT("Bad node submesh");
-    vNode1 = vSM1->GetNodes()->next();
-    vNode2 = vSM2->GetNodes()->next();
+    V1 = TopoDS::Vertex( assocMap( V2 ));
+    vNode1 = SMESH_Algo::VertexNode( V1, meshDS1 );
+    vNode2 = SMESH_Algo::VertexNode( V2, meshDS2 );
+    if ( !vNode1 ) RETURN_BAD_RESULT("No node on vertex #" << meshDS1->ShapeToIndex( V1 ));
+    if ( !vNode2 ) RETURN_BAD_RESULT("No node on vertex #" << meshDS2->ShapeToIndex( V2 ));
     node1To2Map.insert( make_pair( vNode1, vNode2 ));
   }
+
+// don't know why this condition is usually true :(
+//   if ( node1To2Map.size() * quadFactor < SM1->NbNodes() )
+//     MESSAGE("FindMatchingNodes() found too few node pairs starting from nodes ("
+//             << vNode1->GetID() << " - " << eNode1[0]->GetID() << ") ("
+//             << vNode2->GetID() << " - " << eNode2[0]->GetID() << "):"
+//             << node1To2Map.size() * quadFactor << " < " << SM1->NbNodes());
   
   return true;
 }
@@ -1300,9 +1712,30 @@ void StdMeshers_ProjectionUtils::SetEventListener(SMESH_subMesh* subMesh,
 
     SMESH_subMesh* srcShapeSM = srcMesh->GetSubMesh( srcShape );
 
-    if ( srcShapeSM != subMesh )
-      subMesh->SetEventListener( GetSrcSubMeshListener(),
-                                 SMESH_subMeshEventListenerData::MakeData( subMesh ),
-                                 srcShapeSM );
+    if ( srcShapeSM != subMesh ) {
+      if ( srcShapeSM->GetSubMeshDS() &&
+           srcShapeSM->GetSubMeshDS()->IsComplexSubmesh() )
+      {  // source shape is a group
+        TopExp_Explorer it(srcShapeSM->GetSubShape(), // explore the group into subshapes...
+                           subMesh->GetSubShape().ShapeType()); // ...of target shape type
+        for (; it.More(); it.Next())
+        {
+          SMESH_subMesh* srcSM = srcMesh->GetSubMesh( it.Current() );
+          SMESH_subMeshEventListenerData* data =
+            srcSM->GetEventListenerData(GetSrcSubMeshListener());
+          if ( data )
+            data->mySubMeshes.push_back( subMesh );
+          else
+            data = SMESH_subMeshEventListenerData::MakeData( subMesh );
+          subMesh->SetEventListener ( GetSrcSubMeshListener(), data, srcSM );
+        }
+      }
+      else
+      {
+        subMesh->SetEventListener( GetSrcSubMeshListener(),
+                                   SMESH_subMeshEventListenerData::MakeData( subMesh ),
+                                   srcShapeSM );
+      }
+    }
   }
 }
index 53064e7f14028e7f1e6238bc567397e34a2cccaa..8d3939c2de3129343739fae5cb3f0d3cb3e9b8f6 100644 (file)
@@ -44,15 +44,17 @@ class SMDS_MeshNode;
 class SMESH_Mesh;
 class SMESH_Hypothesis;
 class SMESH_subMesh;
+class TopTools_IndexedDataMapOfShapeListOfShape;
 
 /*!
  * \brief Class encapsulating methods common to Projection algorithms
  */
-class STDMESHERS_EXPORT StdMeshers_ProjectionUtils
+class StdMeshers_ProjectionUtils
 {
  public:
 
   typedef TopTools_DataMapOfShapeShape                         TShapeShapeMap;
+  typedef TopTools_IndexedDataMapOfShapeListOfShape            TAncestorMap;
   typedef std::map<const SMDS_MeshNode*, const SMDS_MeshNode*> TNodeNodeMap;
 
   /*!
@@ -92,9 +94,11 @@ class STDMESHERS_EXPORT StdMeshers_ProjectionUtils
    * \brief Insert vertex association defined by a hypothesis into a map
     * \param theHyp - hypothesis
     * \param theAssociationMap - association map
+    * \param theTargetShape - the shape theHyp assigned to
    */
   static void InitVertexAssociation( const SMESH_Hypothesis* theHyp,
-                                     TShapeShapeMap &        theAssociationMap);
+                                     TShapeShapeMap &        theAssociationMap,
+                                     const TopoDS_Shape&     theTargetShape);
 
   /*!
    * \brief Inserts association theShape1 <-> theShape2 to TShapeShapeMap
@@ -115,10 +119,6 @@ class STDMESHERS_EXPORT StdMeshers_ProjectionUtils
 
   /*!
    * \brief Finds an edge by its vertices in a main shape of the mesh
-    * \param aMesh - the mesh
-    * \param V1 - vertex 1
-    * \param V2 - vertex 2
-    * \retval TopoDS_Edge - found edge
    */
   static TopoDS_Edge GetEdgeByVertices( SMESH_Mesh*          aMesh,
                                         const TopoDS_Vertex& V1,
@@ -126,24 +126,26 @@ class STDMESHERS_EXPORT StdMeshers_ProjectionUtils
                                         
   /*!
    * \brief Return another face sharing an edge
-    * \param aMesh - mesh
-    * \param edge - edge
-    * \param face - face
-    * \retval TopoDS_Face - found face
+   * \param edgeToFaces - data map of descendants to ancestors
+   */
+  static TopoDS_Face GetNextFace( const TAncestorMap& edgeToFaces,
+                                  const TopoDS_Edge&  edge,
+                                  const TopoDS_Face&  face);
+  /*!
+   * \brief Return other vertex of an edge
    */
-  static TopoDS_Face GetNextFace( SMESH_Mesh*        aMesh,
-                                  const TopoDS_Edge& edge,
-                                  const TopoDS_Face& face);
+  static TopoDS_Vertex GetNextVertex(const TopoDS_Edge&   edge,
+                                     const TopoDS_Vertex& vertex);
 
   /*!
    * \brief Return an oriented propagation edge
     * \param aMesh - mesh
     * \param fromEdge - start edge for propagation
-    * \retval TopoDS_Edge - found edge
+    * \retval pair<int,TopoDS_Edge> - propagation step and found edge
    */
-  static TopoDS_Edge GetPropagationEdge( SMESH_Mesh*        aMesh,
-                                         const TopoDS_Edge& anEdge,
-                                         const TopoDS_Edge& fromEdge);
+  static std::pair<int,TopoDS_Edge> GetPropagationEdge( SMESH_Mesh*        aMesh,
+                                                        const TopoDS_Edge& anEdge,
+                                                        const TopoDS_Edge& fromEdge);
 
   /*!
    * \brief Find corresponding nodes on two faces
@@ -205,6 +207,7 @@ class STDMESHERS_EXPORT StdMeshers_ProjectionUtils
   static void SetEventListener(SMESH_subMesh* subMesh,
                                TopoDS_Shape   srcShape,
                                SMESH_Mesh*    srcMesh);
+
 };
 
 #endif
index 1bfdc41c5a3db5df1be7bbeb0f09afcc6b4584c5..cfae225f3ef5c2eddf418edefc5433a3e6878e69 100644 (file)
 #include <BRepAdaptor_Curve.hxx>
 #include <BRep_Tool.hxx>
 #include <GCPnts_AbscissaPoint.hxx>
+#include <TopExp.hxx>
 #include <TopoDS.hxx>
 #include <gp_Pnt.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
 
 #include "utilities.h"
 
 
 using namespace std;
 
-#define RETURN_BAD_RESULT(msg) { MESSAGE(msg); return false; }
+#define RETURN_BAD_RESULT(msg) { MESSAGE(")-: Error: " << msg); return false; }
 
 typedef StdMeshers_ProjectionUtils TAssocTool;
 
@@ -97,13 +99,13 @@ bool StdMeshers_Projection_1D::CheckHypothesis(SMESH_Mesh&
   const list <const SMESHDS_Hypothesis * >&hyps = GetUsedHypothesis(aMesh, aShape);
   if ( hyps.size() == 0 )
   {
-    aStatus = SMESH_Hypothesis::HYP_MISSING;
+    aStatus = HYP_MISSING;
     return false;  // can't work with no hypothesis
   }
 
   if ( hyps.size() > 1 )
   {
-    aStatus = SMESH_Hypothesis::HYP_ALREADY_EXIST;
+    aStatus = HYP_ALREADY_EXIST;
     return false;
   }
 
@@ -111,7 +113,7 @@ bool StdMeshers_Projection_1D::CheckHypothesis(SMESH_Mesh&
 
   string hypName = theHyp->GetName();
 
-  aStatus = SMESH_Hypothesis::HYP_OK;
+  aStatus = HYP_OK;
 
   if (hypName == "ProjectionSource1D")
   {
@@ -130,17 +132,49 @@ bool StdMeshers_Projection_1D::CheckHypothesis(SMESH_Mesh&
       // source and target vertices
       if ( !TAssocTool::IsSubShape( _sourceHypo->GetSourceVertex(), srcMesh ) ||
            !TAssocTool::IsSubShape( _sourceHypo->GetTargetVertex(), tgtMesh ) ||
-           !TAssocTool::IsSubShape( _sourceHypo->GetTargetVertex(), aShape )  ||
            !TAssocTool::IsSubShape( _sourceHypo->GetSourceVertex(),
                                     _sourceHypo->GetSourceEdge() ))
       {
-        aStatus = SMESH_Hypothesis::HYP_BAD_PARAMETER;
+        aStatus = HYP_BAD_PARAMETER;
         SCRUTE((TAssocTool::IsSubShape( _sourceHypo->GetSourceVertex(), srcMesh )));
         SCRUTE((TAssocTool::IsSubShape( _sourceHypo->GetTargetVertex(), tgtMesh )));
-        SCRUTE((TAssocTool::IsSubShape( _sourceHypo->GetTargetVertex(), aShape ) ));
         SCRUTE((TAssocTool::IsSubShape( _sourceHypo->GetSourceVertex(),
                                         _sourceHypo->GetSourceEdge() )));
       }
+      // PAL16202
+      else 
+      {
+        bool isSub = TAssocTool::IsSubShape( _sourceHypo->GetTargetVertex(), aShape );
+        if ( !_sourceHypo->IsCompoundSource() ) {
+          if ( !isSub ) {
+            aStatus = HYP_BAD_PARAMETER;
+            SCRUTE((TAssocTool::IsSubShape( _sourceHypo->GetTargetVertex(), aShape)));
+          }
+        }
+        else if ( isSub ) {
+          // is Ok provided that source vertex is shared only by one edge
+          // of the source group
+          TopoDS_Shape sharingEdge;
+          TopTools_ListIteratorOfListOfShape ancestIt
+            ( aMesh.GetAncestors( _sourceHypo->GetSourceVertex() ));
+          for ( ; ancestIt.More(); ancestIt.Next() )
+          {
+            const TopoDS_Shape& ancestor = ancestIt.Value();
+            if ( ancestor.ShapeType() == TopAbs_EDGE &&
+                 TAssocTool::IsSubShape( ancestor, _sourceHypo->GetSourceEdge() ))
+            {
+              if ( sharingEdge.IsNull() || ancestor.IsSame( sharingEdge ))
+                sharingEdge = ancestor;
+              else {
+                // the second encountered
+                aStatus = HYP_BAD_PARAMETER;
+                MESSAGE("Source vertex is shared by several edges of a group");
+                break;
+              }
+            }
+          }
+        }
+      }
     }
     // check source edge
     if ( !TAssocTool::IsSubShape( _sourceHypo->GetSourceEdge(), srcMesh ) ||
@@ -154,7 +188,7 @@ bool StdMeshers_Projection_1D::CheckHypothesis(SMESH_Mesh&
   }
   else
   {
-    aStatus = SMESH_Hypothesis::HYP_INCOMPATIBLE;
+    aStatus = HYP_INCOMPATIBLE;
   }
   return ( aStatus == HYP_OK );
 }
@@ -169,13 +203,6 @@ bool StdMeshers_Projection_1D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape&
   if ( !_sourceHypo )
     return false;
 
-  TopoDS_Edge tgtEdge = TopoDS::Edge( theShape.Oriented(TopAbs_FORWARD));
-  TopoDS_Edge srcEdge = TopoDS::Edge( _sourceHypo->GetSourceEdge().Oriented(TopAbs_FORWARD));
-
-  TopoDS_Vertex tgtV[2], srcV[2];
-  TopExp::Vertices( tgtEdge, tgtV[0], tgtV[1] );
-  TopExp::Vertices( srcEdge, srcV[0], srcV[1] );
-
   SMESH_Mesh * srcMesh = _sourceHypo->GetSourceMesh(); 
   SMESH_Mesh * tgtMesh = & theMesh;
   if ( !srcMesh )
@@ -187,11 +214,23 @@ bool StdMeshers_Projection_1D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape&
   // Make subshapes association
   // ---------------------------
 
+  TopoDS_Edge srcEdge, tgtEdge = TopoDS::Edge( theShape.Oriented(TopAbs_FORWARD));
+  TopoDS_Shape srcShape = _sourceHypo->GetSourceEdge().Oriented(TopAbs_FORWARD);
+
   TAssocTool::TShapeShapeMap shape2ShapeMap;
-  TAssocTool::InitVertexAssociation( _sourceHypo, shape2ShapeMap );
-  if ( !TAssocTool::FindSubShapeAssociation( tgtEdge, tgtMesh, srcEdge, srcMesh,
-                                             shape2ShapeMap) )
-    return error(dfltErr(),SMESH_Comment("Vertices association failed" ));
+  TAssocTool::InitVertexAssociation( _sourceHypo, shape2ShapeMap, tgtEdge );
+  if ( !TAssocTool::FindSubShapeAssociation( tgtEdge, tgtMesh, srcShape, srcMesh,
+                                             shape2ShapeMap) ||
+       !shape2ShapeMap.IsBound( tgtEdge ))
+    return error("Vertices association failed" );
+
+  srcEdge = TopoDS::Edge( shape2ShapeMap( tgtEdge ).Oriented(TopAbs_FORWARD));
+//   cout << " srcEdge #" << srcMesh->GetMeshDS()->ShapeToIndex( srcEdge )
+//        << " tgtEdge #" << tgtMesh->GetMeshDS()->ShapeToIndex( tgtEdge ) << endl;
+
+  TopoDS_Vertex tgtV[2], srcV[2];
+  TopExp::Vertices( tgtEdge, tgtV[0], tgtV[1] );
+  TopExp::Vertices( srcEdge, srcV[0], srcV[1] );
 
   // ----------------------------------------------
   // Assure that mesh on a source edge is computed
@@ -236,7 +275,7 @@ bool StdMeshers_Projection_1D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape&
   }
 
   bool reverse = ( srcV[0].IsSame( shape2ShapeMap( tgtV[1] )));
-  if ( shape2ShapeMap.IsBound( tgtEdge )) // case of closed edge
+  if ( tgtV[0].IsSame( tgtV[1] )) // case of closed edge
     reverse = ( shape2ShapeMap( tgtEdge ).Orientation() == TopAbs_REVERSED );
   if ( reverse ) // reverse lengths of segments
     std::reverse( lengths.begin(), lengths.end() );
@@ -275,7 +314,7 @@ bool StdMeshers_Projection_1D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape&
       // from the point at given parameter.
       GCPnts_AbscissaPoint Discret( curveAdaptor, dl * lengths[ i-1 ], tgtParams[ i-1 ] );
       if ( !Discret.IsDone() )
-        return error(dfltErr(),"GCPnts_AbscissaPoint failed");
+        return error("GCPnts_AbscissaPoint failed");
       tgtParams[ i ] = Discret.Parameter();
     }
     // make internal nodes 
index 4aa83bdd0c30c2482d9e7385284911119602d00b..0ac6f9ea4b0c40d36d71af643c80b37e093a75cc 100644 (file)
 
 #include "utilities.h"
 
+#include <BRep_Tool.hxx>
 #include <TopExp.hxx>
-#include <TopoDS.hxx>
+#include <TopExp_Explorer.hxx>
 #include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <BRep_Tool.hxx>
-
+#include <TopoDS.hxx>
 
 
 using namespace std;
 
-#define RETURN_BAD_RESULT(msg) { MESSAGE(msg); return false; }
+#define RETURN_BAD_RESULT(msg) { MESSAGE(")-: Error: " << msg); return false; }
 
 typedef StdMeshers_ProjectionUtils TAssocTool;
 
@@ -144,13 +144,17 @@ bool StdMeshers_Projection_2D::CheckHypothesis(SMESH_Mesh&
         // target vertices
         edge = TAssocTool::GetEdgeByVertices
           ( tgtMesh, _sourceHypo->GetTargetVertex(1), _sourceHypo->GetTargetVertex(2) );
-        if ( edge.IsNull() ||
-             !TAssocTool::IsSubShape( edge, tgtMesh ) ||
-             !TAssocTool::IsSubShape( edge, theShape ))
+        if ( edge.IsNull() || !TAssocTool::IsSubShape( edge, tgtMesh ))
         {
           theStatus = HYP_BAD_PARAMETER;
           SCRUTE((edge.IsNull()));
           SCRUTE((TAssocTool::IsSubShape( edge, tgtMesh )));
+        }
+        // PAL16203
+        else if ( !_sourceHypo->IsCompoundSource() &&
+                  !TAssocTool::IsSubShape( edge, theShape ))
+        {
+          theStatus = HYP_BAD_PARAMETER;
           SCRUTE((TAssocTool::IsSubShape( edge, theShape )));
         }
       }
@@ -187,10 +191,8 @@ namespace {
   {
     // old nodes are shared by edges and new ones are shared
     // only by faces created by mapper
-    bool isOld = false;
-    SMDS_ElemIteratorPtr invElem = node->GetInverseElementIterator();
-    while ( !isOld && invElem->more() )
-      isOld = ( invElem->next()->GetType() == SMDSAbs_Edge );
+    SMDS_ElemIteratorPtr invEdge = node->GetInverseElementIterator(SMDSAbs_Edge);
+    bool isOld = invEdge->more();
     return isOld;
   }
 
@@ -208,12 +210,13 @@ namespace {
     MeshCleaner( SMESH_subMesh* faceSubMesh ): sm(faceSubMesh) {}
     ~MeshCleaner() { Clean(sm); }
     void Release() { sm = 0; } // mesh will not be removed
-    static void Clean( SMESH_subMesh* sm )
+    static void Clean( SMESH_subMesh* sm, bool withSub=true )
     {
       if ( !sm ) return;
-      switch ( sm->GetSubShape().ShapeType() ) {
-      case TopAbs_VERTEX:
-      case TopAbs_EDGE: {
+      // PAL16567, 18920. Remove face nodes as well
+//       switch ( sm->GetSubShape().ShapeType() ) {
+//       case TopAbs_VERTEX:
+//       case TopAbs_EDGE: {
         SMDS_NodeIteratorPtr nIt = sm->GetSubMeshDS()->GetNodes();
         SMESHDS_Mesh* mesh = sm->GetFather()->GetMeshDS();
         while ( nIt->more() ) {
@@ -222,12 +225,13 @@ namespace {
             mesh->RemoveNode( node );
         }
         // do not break but iterate over DependsOn()
-      }
-      default:
+//       }
+//       default:
+        if ( !withSub ) return;
         SMESH_subMeshIteratorPtr smIt = sm->getDependsOnIterator(false,false);
         while ( smIt->more() )
-          Clean( smIt->next() );
-      }
+          Clean( smIt->next(), false );
+//       }
     }
   };
 
@@ -365,9 +369,6 @@ bool StdMeshers_Projection_2D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape&
   if ( !_sourceHypo )
     return false;
 
-  TopoDS_Face tgtFace = TopoDS::Face( theShape.Oriented(TopAbs_FORWARD));
-  TopoDS_Face srcFace = TopoDS::Face( _sourceHypo->GetSourceFace().Oriented(TopAbs_FORWARD));
-
   SMESH_Mesh * srcMesh = _sourceHypo->GetSourceMesh(); 
   SMESH_Mesh * tgtMesh = & theMesh;
   if ( !srcMesh )
@@ -375,19 +376,22 @@ bool StdMeshers_Projection_2D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape&
 
   SMESHDS_Mesh * meshDS = theMesh.GetMeshDS();
 
-  SMESH_MesherHelper helper( theMesh );
-  helper.SetSubShape( tgtFace );
-
   // ---------------------------
   // Make subshapes association
   // ---------------------------
 
+  TopoDS_Face tgtFace = TopoDS::Face( theShape.Oriented(TopAbs_FORWARD));
+  TopoDS_Shape srcShape = _sourceHypo->GetSourceFace().Oriented(TopAbs_FORWARD);
+
   TAssocTool::TShapeShapeMap shape2ShapeMap;
-  TAssocTool::InitVertexAssociation( _sourceHypo, shape2ShapeMap );
-  if ( !TAssocTool::FindSubShapeAssociation( tgtFace, tgtMesh, srcFace, srcMesh,
-                                             shape2ShapeMap) )
+  TAssocTool::InitVertexAssociation( _sourceHypo, shape2ShapeMap, tgtFace );
+  if ( !TAssocTool::FindSubShapeAssociation( tgtFace, tgtMesh, srcShape, srcMesh,
+                                             shape2ShapeMap)  ||
+       !shape2ShapeMap.IsBound( tgtFace ))
     return error(COMPERR_BAD_SHAPE,"Topology of source and target faces seems different" );
 
+  TopoDS_Face srcFace = TopoDS::Face( shape2ShapeMap( tgtFace ).Oriented(TopAbs_FORWARD));
+
   // ----------------------------------------------
   // Assure that mesh on a source Face is computed
   // ----------------------------------------------
@@ -438,12 +442,8 @@ bool StdMeshers_Projection_2D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape&
   if ( nbEdgesInWires.front() > 1 ) // possible to find out
   {
     TopoDS_Edge srcE1 = srcEdges.front(), tgtE1 = tgtEdges.front();
-    reverse = ( ! srcE1.IsSame( shape2ShapeMap( tgtE1 )));
-    if ( BRep_Tool::IsClosed( tgtE1, tgtFace )) {
-      reverse = ( srcE1.Orientation() == tgtE1.Orientation() );
-      if ( _sourceHypo->GetSourceFace().Orientation() != theShape.Orientation() )
-        reverse = !reverse;
-    }
+    TopoDS_Shape srcE1bis = shape2ShapeMap( tgtE1 );
+    reverse = ( ! srcE1.IsSame( srcE1bis ));
   }
   else if ( nbEdgesInWires.front() == 1 )
   {
@@ -463,14 +463,14 @@ bool StdMeshers_Projection_2D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape&
 
   mapper.Apply( tgtFace, tgtV1, reverse );
   if ( mapper.GetErrorCode() != SMESH_Pattern::ERR_OK )
-    return error(dfltErr(),"Can't apply source mesh pattern to the face");
+    return error("Can't apply source mesh pattern to the face");
 
   // Create the mesh
 
   const bool toCreatePolygons = false, toCreatePolyedrs = false;
   mapper.MakeMesh( tgtMesh, toCreatePolygons, toCreatePolyedrs );
   if ( mapper.GetErrorCode() != SMESH_Pattern::ERR_OK )
-    return error(dfltErr(),"Can't make mesh by source mesh pattern");
+    return error("Can't make mesh by source mesh pattern");
 
   // it will remove mesh built by pattern mapper on edges and vertices
   // in failure case
@@ -484,6 +484,9 @@ bool StdMeshers_Projection_2D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape&
   SMESH_MeshEditor editor( tgtMesh );
   SMESH_MeshEditor::TListOfListOfNodes groupsOfNodes;
 
+  SMESH_MesherHelper helper( theMesh );
+  helper.SetSubShape( tgtFace );
+
   // Make groups of nodes to merge
 
   // loop on edge and vertex submeshes of a target face
@@ -497,7 +500,7 @@ bool StdMeshers_Projection_2D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape&
 
     bool isSeam = helper.IsSeamShape( sm->GetId() );
 
-    enum { NEW_NODES, OLD_NODES };
+    enum { NEW_NODES = 0, OLD_NODES };
     map< double, const SMDS_MeshNode* > u2nodesMaps[2], u2nodesOnSeam;
     map< double, const SMDS_MeshNode* >::iterator u_oldNode, u_newNode, u_newOnSeam, newEnd;
     set< const SMDS_MeshNode* > seamNodes;
@@ -518,7 +521,7 @@ bool StdMeshers_Projection_2D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape&
       }
 
       // sort nodes on edges by its position
-      map< double, const SMDS_MeshNode* > & pos2nodes = u2nodesMaps[ isOld ];
+      map< double, const SMDS_MeshNode* > & pos2nodes = u2nodesMaps[isOld ? OLD_NODES : NEW_NODES];
       switch ( node->GetPosition()->GetTypeOfPosition() )
       {
       case  SMDS_TOP_VERTEX: {
@@ -536,14 +539,22 @@ bool StdMeshers_Projection_2D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape&
                           node->GetPosition()->GetTypeOfPosition());
       }
     }
-    if ( u2nodesMaps[ OLD_NODES ].size() != u2nodesMaps[ NEW_NODES ].size() )
-      RETURN_BAD_RESULT("Different nb of old and new nodes " <<
+    if ( u2nodesMaps[ NEW_NODES ].size() != u2nodesMaps[ OLD_NODES ].size() )
+    {
+      if ( u2nodesMaps[ NEW_NODES ].size() == 0                 &&
+           sm->GetSubShape().ShapeType() == TopAbs_EDGE         &&
+           BRep_Tool::Degenerated( TopoDS::Edge( sm->GetSubShape() )))
+        // NPAL15894 (tt88bis.py) - project mesh built by NETGEN_1d_2D that
+       // does not make segments/nodes on degenerated edges
+        continue;
+      RETURN_BAD_RESULT("Different nb of old and new nodes on shape #"<< sm->GetId() <<" "<<
                         u2nodesMaps[ OLD_NODES ].size() << " != " <<
                         u2nodesMaps[ NEW_NODES ].size());
-    if ( isSeam && u2nodesMaps[ OLD_NODES ].size() != u2nodesOnSeam.size() )
+    }
+    if ( isSeam && u2nodesMaps[ OLD_NODES ].size() != u2nodesOnSeam.size() ) {
       RETURN_BAD_RESULT("Different nb of old and seam nodes " <<
                         u2nodesMaps[ OLD_NODES ].size() << " != " << u2nodesOnSeam.size());
-
+    }
     // Make groups of nodes to merge
     u_oldNode = u2nodesMaps[ OLD_NODES ].begin(); 
     u_newNode = u2nodesMaps[ NEW_NODES ].begin();
index 68eda5d6593ea297364697efd0f8b1d9b276a54b..af93f888de2313eacc45570822effb1785534564 100644 (file)
 
 #include "utilities.h"
 
-#define RETURN_BAD_RESULT(msg) { MESSAGE(msg); return false; }
+#include <TopExp.hxx>
+#include <TopExp_Explorer.hxx>
+#include <TopoDS.hxx>
+
+#define RETURN_BAD_RESULT(msg) { MESSAGE(")-: Error: " << msg); return false; }
 #define gpXYZ(n) gp_XYZ(n->X(),n->Y(),n->Z())
 #define SHOWYXZ(msg, xyz) // {\
 // gp_Pnt p (xyz); \
@@ -92,6 +96,7 @@ bool StdMeshers_Projection_3D::CheckHypothesis(SMESH_Mesh&
                                                SMESH_Hypothesis::Hypothesis_Status& aStatus)
 {
   // check aShape that must be a 6 faces block
+/*  PAL16229
   if ( TAssocTool::Count( aShape, TopAbs_SHELL, 1 ) != 1 ||
        TAssocTool::Count( aShape, TopAbs_FACE , 1 ) != 6 ||
        TAssocTool::Count( aShape, TopAbs_EDGE , 1 ) != 12 ||
@@ -100,7 +105,7 @@ bool StdMeshers_Projection_3D::CheckHypothesis(SMESH_Mesh&
     aStatus = HYP_BAD_GEOMETRY;
     return false;
   }
-
+*/
   list <const SMESHDS_Hypothesis * >::const_iterator itl;
 
   const list <const SMESHDS_Hypothesis * >&hyps = GetUsedHypothesis(aMesh, aShape);
@@ -206,14 +211,24 @@ bool StdMeshers_Projection_3D::Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& aS
     srcShell = TopoDS::Shell( exp.Current() );
   if ( nbShell != 1 )
     return error(COMPERR_BAD_SHAPE,
-                 SMESH_Comment("Shape must have 1 shell but not") << nbShell);
+                 SMESH_Comment("Source shape must have 1 shell but not ") << nbShell);
 
   exp.Init( aShape, TopAbs_SHELL );
   for ( nbShell = 0; exp.More(); exp.Next(), ++nbShell )
     tgtShell = TopoDS::Shell( exp.Current() );
   if ( nbShell != 1 )
     return error(COMPERR_BAD_SHAPE,
-                 SMESH_Comment("Shape must have 1 shell but not") << nbShell);
+                 SMESH_Comment("Target shape must have 1 shell but not ") << nbShell);
+
+  // Check that shapes are blocks
+  if ( TAssocTool::Count( tgtShell, TopAbs_FACE , 1 ) != 6 ||
+       TAssocTool::Count( tgtShell, TopAbs_EDGE , 1 ) != 12 ||
+       TAssocTool::Count( tgtShell, TopAbs_WIRE , 1 ) != 6 )
+    return error(COMPERR_BAD_SHAPE, "Target shape is not a block");
+  if ( TAssocTool::Count( srcShell, TopAbs_FACE , 1 ) != 6 ||
+       TAssocTool::Count( srcShell, TopAbs_EDGE , 1 ) != 12 ||
+       TAssocTool::Count( srcShell, TopAbs_WIRE , 1 ) != 6 )
+    return error(COMPERR_BAD_SHAPE, "Source shape is not a block");
 
   // Assure that mesh on a source shape is computed
 
@@ -251,12 +266,12 @@ bool StdMeshers_Projection_3D::Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& aS
     TopExp::Vertices( TopoDS::Edge( exp.Current() ), tgtV000, tgtV100 );
 
     if ( !shape2ShapeMap.IsBound( tgtV000 ) || !shape2ShapeMap.IsBound( tgtV100 ))
-      return error(dfltErr(),"Association of subshapes failed" );
+      return error("Association of subshapes failed" );
     srcV000 = TopoDS::Vertex( shape2ShapeMap( tgtV000 ));
     srcV100 = TopoDS::Vertex( shape2ShapeMap( tgtV100 ));
     if ( !TAssocTool::IsSubShape( srcV000, srcShell ) ||
          !TAssocTool::IsSubShape( srcV100, srcShell ))
-      return error(dfltErr(),"Incorrect association of subshapes" );
+      return error("Incorrect association of subshapes" );
   }
 
   // Load 2 SMESH_Block's with src and tgt shells
@@ -342,12 +357,12 @@ bool StdMeshers_Projection_3D::Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& aS
         gp_Pnt srcCoord = gpXYZ( srcNode );
         gp_XYZ srcParam;
         if ( !srcBlock.ComputeParameters( srcCoord, srcParam ))
-          return error(dfltErr(),SMESH_Comment("Can't compute normalized parameters ")
+          return error(SMESH_Comment("Can't compute normalized parameters ")
                        << "for source node " << srcNode->GetID());
         // compute coordinates of target node by srcParam
         gp_XYZ tgtXYZ;
         if ( !tgtBlock.ShellPoint( srcParam, tgtXYZ ))
-          return error(dfltErr(),"Can't compute coordinates by normalized parameters");
+          return error("Can't compute coordinates by normalized parameters");
         // add node
         SMDS_MeshNode* newNode = tgtMeshDS->AddNode( tgtXYZ.X(), tgtXYZ.Y(), tgtXYZ.Z() );
         tgtMeshDS->SetNodeInVolume( newNode, helper.GetSubShapeID() );
index 2b701a07ace79d8d21b4caf305e25eed1c610d02..64ff66f350fbb2f7a6efcc141f89889b80ff1017 100644 (file)
 
 #include "utilities.h"
 
+#include "SMDS_SetIterator.hxx"
+#include "SMESH_Algo.hxx"
+#include "SMESH_HypoFilter.hxx"
 #include "SMESH_Mesh.hxx"
 #include "SMESH_subMesh.hxx"
-#include "SMESH_HypoFilter.hxx"
-#include "SMDS_SetIterator.hxx"
+
+#include <BRepTools_WireExplorer.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
+#include <TopTools_MapOfShape.hxx>
+#include <TopoDS.hxx>
+
+#define DBGMSG(txt) \
+//  cout << txt << endl;
 
 using namespace std;
 
@@ -106,7 +115,7 @@ TopoDS_Edge StdMeshers_Propagation::GetPropagationSource(SMESH_Mesh& theMesh,
 
 namespace {
 
-  enum SubMeshState { WAIT_PROPAG_HYP, // no propagation hyp in chain
+  enum SubMeshState { WAIT_PROPAG_HYP, // propagation hyp or local 1D hyp is missing
                       HAS_PROPAG_HYP,  // propag hyp on this submesh
                       IN_CHAIN,        // submesh is in propagation chain
                       LAST_IN_CHAIN,   // submesh with local 1D hyp breaking a chain
@@ -115,15 +124,24 @@ namespace {
   struct PropagationMgrData : public EventListenerData
   {
     bool myForward; //!< true if a curve of edge in chain is codirected with one of source edge
-    PropagationMgrData( SubMeshState state ): EventListenerData(true) {
-      myType = state;
+    PropagationMgrData( SubMeshState state=WAIT_PROPAG_HYP ): EventListenerData(true) {
+      myType = state; myForward = true;
+    }
+    void Init() {
+      myType = WAIT_PROPAG_HYP;  mySubMeshes.clear(); myForward = true;
     }
     SubMeshState State() const {
       return (SubMeshState) myType;
     }
+    void SetState(SubMeshState state) {
+      myType = state;
+    }
     void SetSource(SMESH_subMesh* sm ) {
       mySubMeshes.clear(); if ( sm ) mySubMeshes.push_back( sm );
     }
+    void AddSource(SMESH_subMesh* sm ) {
+      if ( sm ) mySubMeshes.push_back( sm );
+    }
     void SetChain(list< SMESH_subMesh* >& chain ) {
       mySubMeshes.clear(); mySubMeshes.splice( mySubMeshes.end(), chain );
     }
@@ -131,16 +149,6 @@ namespace {
     SMESH_subMesh* GetSource() const;
   };
 
-  //=============================================================================
-  /*!
-   * \brief return filter to find Propagation hypothesis
-   */
-  SMESH_HypoFilter & propagHypFilter()
-  {
-    static SMESH_HypoFilter propagHypFilter
-      ( SMESH_HypoFilter::HasName( StdMeshers_Propagation::GetName ()));
-    return propagHypFilter;
-  }
   //=============================================================================
   /*!
    * \brief return static PropagationMgr
@@ -156,9 +164,9 @@ namespace {
   }
   //=============================================================================
   /*!
-   * \brief return PropagationMgrData
+   * \brief return PropagationMgrData found on a submesh
    */
-  PropagationMgrData* getData(SMESH_subMesh* sm)
+  PropagationMgrData* findData(SMESH_subMesh* sm)
   {
     if ( sm )
       return static_cast< PropagationMgrData* >( sm->GetEventListenerData( getListener() ));
@@ -166,57 +174,61 @@ namespace {
   }
   //=============================================================================
   /*!
-   * \brief return PropagationMgrData
+   * \brief return PropagationMgrData found on theEdge submesh
    */
-  PropagationMgrData* getData(SMESH_Mesh& theMesh, const TopoDS_Shape& theEdge)
+  PropagationMgrData* findData(SMESH_Mesh& theMesh, const TopoDS_Shape& theEdge)
   {
     if ( theEdge.ShapeType() == TopAbs_EDGE )
-      return getData( theMesh.GetSubMeshContaining( theEdge ) );
+      return findData( theMesh.GetSubMeshContaining( theEdge ) );
     return 0;
   }
-  //================================================================================
+  //=============================================================================
   /*!
-   * \brief Return an iterator on a chain
+   * \brief return existing or a new PropagationMgrData
    */
-  SMESH_subMeshIteratorPtr PropagationMgrData::GetChain() const
+  PropagationMgrData* getData(SMESH_subMesh* sm)
   {
-    typedef SMESH_subMesh* TsubMesh;
-    typedef SMDS_SetIterator< TsubMesh, list< TsubMesh >::const_iterator > TIterator;
-    switch ( State() ) {
-    case HAS_PROPAG_HYP:
-      return SMESH_subMeshIteratorPtr
-        ( new TIterator( mySubMeshes.begin(), mySubMeshes.end() ));
-    case IN_CHAIN:
-    case LAST_IN_CHAIN:
-      if ( mySubMeshes.empty() ) break;
-      return getData( mySubMeshes.front() )->GetChain();
-    default:;
+    PropagationMgrData* data = findData( sm );
+    if ( !data && sm ) {
+      data = new PropagationMgrData();
+      sm->SetEventListener( getListener(), data, sm );
     }
-    return SMESH_subMeshIteratorPtr
-      ( new TIterator( mySubMeshes.end(), mySubMeshes.end() ));
+    return data;
   }
-  //================================================================================
+  //=============================================================================
   /*!
-   * \brief Return a propagation source submesh
+   * \brief Returns a local 1D hypothesis used for theEdge
    */
-  SMESH_subMesh* PropagationMgrData::GetSource() const
+  const SMESH_Hypothesis* getLocal1DHyp (SMESH_Mesh&         theMesh,
+                                         const TopoDS_Shape& theEdge)
   {
-    if ( myType == IN_CHAIN || myType == LAST_IN_CHAIN )
-      if ( !mySubMeshes.empty() ) 
-        return mySubMeshes.front();
-    return 0;
+    static SMESH_HypoFilter hypo;
+    hypo.Init( hypo.HasDim( 1 )).
+      AndNot ( hypo.IsAlgo() ).
+      AndNot ( hypo.IsAssignedTo( theMesh.GetMeshDS()->ShapeToMesh() ));
+    return theMesh.GetHypothesis( theEdge, hypo, true );
   }
   //=============================================================================
   /*!
-   * \brief Returns a local 1D hypothesis used for theEdge
+   * \brief Returns a propagation hypothesis assigned to theEdge
    */
-  const SMESH_Hypothesis* isLocal1DHypothesis (SMESH_Mesh& theMesh,
-                                               const TopoDS_Shape& theEdge)
+  const SMESH_Hypothesis* getProagationHyp (SMESH_Mesh&         theMesh,
+                                            const TopoDS_Shape& theEdge)
   {
-    static SMESH_HypoFilter hypo ( SMESH_HypoFilter::HasDim( 1 ));
-    hypo.AndNot( hypo.IsAlgo() ).AndNot( hypo.IsAssignedTo( theMesh.GetMeshDS()->ShapeToMesh() ));
-
-    return theMesh.GetHypothesis( theEdge, hypo, true );
+    static SMESH_HypoFilter propagHypFilter
+      ( SMESH_HypoFilter::HasName( StdMeshers_Propagation::GetName ()));
+    return theMesh.GetHypothesis( theEdge, propagHypFilter, true );
+  }
+  //================================================================================
+  /*!
+   * \brief Return an iterator on a list of submeshes
+   */
+  SMESH_subMeshIteratorPtr iterate( list<SMESH_subMesh*>::const_iterator from,
+                                    list<SMESH_subMesh*>::const_iterator to)
+  {
+    typedef SMESH_subMesh* TsubMesh;
+    typedef SMDS_SetIterator< TsubMesh, list< TsubMesh >::const_iterator > TIterator;
+    return SMESH_subMeshIteratorPtr ( new TIterator( from, to ));
   }
   //================================================================================
   /*!
@@ -225,126 +237,212 @@ namespace {
    */
   bool buildPropagationChain ( SMESH_subMesh* theMainSubMesh )
   {
-  //   const TopoDS_Shape& theMainEdge = theMainSubMesh->GetSubShape();
-//     if (theMainEdge.ShapeType() != TopAbs_EDGE) return true;
-
-//     SMESH_Mesh* mesh = theMainSubMesh->GetFather();
-
-//     EventListenerData* chainData = new PropagationMgrData(HAS_PROPAG_HYP);
-//     theMainSubMesh->SetEventListener( getListener(), chainData, theMainSubMesh );
-
-//     // Edges submeshes, on which the 1D hypothesis will be propagated from <theMainEdge>
-//     list<SMESH_subMesh*> & chain = chainData->mySubMeshes;
-
-//     // List of edges, added to chain on the previous cycle pass
-//     TopTools_ListOfShape listPrevEdges;
-//     listPrevEdges.Append(theMainEdge.Oriented( TopAbs_FORWARD ));
-
-//     //   4____3____2____3____4____5
-//     //   |    |    |    |    |    |      Number in the each knot of
-//     //   |    |    |    |    |    |      grid indicates cycle pass,
-//     //   3____2____1____2____3____4      on which corresponding edge
-//     //   |    |    |    |    |    |      (perpendicular to the plane
-//     //   |    |    |    |    |    |      of view) will be found.
-//     //   2____1____0____1____2____3
-//     //   |    |    |    |    |    |
-//     //   |    |    |    |    |    |
-//     //   3____2____1____2____3____4
-
-//     // Collect all edges pass by pass
-//     while (listPrevEdges.Extent() > 0) {
-//       // List of edges, added to chain on this cycle pass
-//       TopTools_ListOfShape listCurEdges;
-
-//       // Find the next portion of edges
-//       TopTools_ListIteratorOfListOfShape itE (listPrevEdges);
-//       for (; itE.More(); itE.Next()) {
-//         TopoDS_Shape anE = itE.Value();
-
-//         // Iterate on faces, having edge <anE>
-//         TopTools_ListIteratorOfListOfShape itA (mesh->GetAncestors(anE));
-//         for (; itA.More(); itA.Next()) {
-//           TopoDS_Shape aW = itA.Value();
-
-//           // There are objects of different type among the ancestors of edge
-//           if (aW.ShapeType() == TopAbs_WIRE) {
-//             TopoDS_Shape anOppE;
-
-//             BRepTools_WireExplorer aWE (TopoDS::Wire(aW));
-//             Standard_Integer nb = 1, found = 0;
-//             TopTools_Array1OfShape anEdges (1,4);
-//             for (; aWE.More(); aWE.Next(), nb++) {
-//               if (nb > 4) {
-//                 found = 0;
-//                 break;
-//               }
-//               anEdges(nb) = aWE.Current();
-//               if (!_mapAncestors.Contains(anEdges(nb))) {
-//                 MESSAGE("WIRE EXPLORER HAVE GIVEN AN INVALID EDGE !!!");
-//                 break;
-//               }
-//               if (anEdges(nb).IsSame(anE)) found = nb;
-//             }
-
-//             if (nb == 5 && found > 0) {
-//               // Quadrangle face found, get an opposite edge
-//               Standard_Integer opp = ( found + 2 ) % 4;
-//               anOppE = anEdges(opp);
-
-//               // add anOppE to aChain if ...
-//               PropagationMgrData* data = getData( *mesh, anOppE );
-//               if ( !data || data->State() == WAIT_PROPAG_HYP ) { // ... anOppE is not in any chain
-//                 if ( !isLocal1DHypothesis( *mesh, anOppE )) { // ... no other 1d hyp on anOppE
-//                   // Add found edge to the chain oriented so that to
-//                   // have it co-directed with a forward MainEdge
-//                     TopAbs_Orientation ori = anE.Orientation();
-//                     if ( anEdges(opp).Orientation() == anEdges(found).Orientation() )
-//                       ori = TopAbs::Reverse( ori );
-//                     anOppE.Orientation( ori );
-//                     aChain.Add(anOppE);
-//                     listCurEdges.Append(anOppE);
-//                   }
-//                   else {
-//                     // Collision!
-//                     MESSAGE("Error: Collision between propagated hypotheses");
-//                     CleanMeshOnPropagationChain(theMainEdge);
-//                     aChain.Clear();
-//                     return ( aMainHyp == isLocal1DHypothesis(aMainEdgeForOppEdge) );
-//                   }
-//                 }
-//               }
-//             } // if (nb == 5 && found > 0)
-//           } // if (aF.ShapeType() == TopAbs_WIRE)
-//         } // for (; itF.More(); itF.Next())
-//       } // for (; itE.More(); itE.Next())
-
-//       listPrevEdges = listCurEdges;
-//     } // while (listPrevEdges.Extent() > 0)
-
-//     CleanMeshOnPropagationChain(theMainEdge);
+    DBGMSG( "buildPropagationChain from " << theMainSubMesh->GetId() );
+    const TopoDS_Shape& theMainEdge = theMainSubMesh->GetSubShape();
+    if (theMainEdge.ShapeType() != TopAbs_EDGE) return true;
+
+    SMESH_Mesh* mesh = theMainSubMesh->GetFather();
+
+    PropagationMgrData* chainData = getData( theMainSubMesh );
+    chainData->SetState( HAS_PROPAG_HYP );
+
+    // Edge submeshes, to which the 1D hypothesis will be propagated from theMainEdge
+    list<SMESH_subMesh*> & chain = chainData->mySubMeshes;
+    chain.clear();
+    chain.push_back( theMainSubMesh );
+
+    TopTools_MapOfShape checkedShapes;
+    checkedShapes.Add( theMainEdge );
+
+    list<SMESH_subMesh*>::iterator smIt = chain.begin();
+    for ( ; smIt != chain.end(); ++smIt )
+    {
+      const TopoDS_Edge& anE = TopoDS::Edge( (*smIt)->GetSubShape() );
+      PropagationMgrData* data = findData( *smIt );
+      if ( !data ) continue;
+
+      // Iterate on faces, having edge <anE>
+      TopTools_ListIteratorOfListOfShape itA (mesh->GetAncestors(anE));
+      for (; itA.More(); itA.Next())
+      {
+        // there are objects of different type among the ancestors of edge
+        if ( itA.Value().ShapeType() != TopAbs_WIRE || !checkedShapes.Add( itA.Value() ))
+          continue;
+
+        // Get ordered edges and find index of anE in a sequence
+        BRepTools_WireExplorer aWE (TopoDS::Wire(itA.Value()));
+        vector<TopoDS_Edge> edges;
+        edges.reserve(4);
+        int edgeIndex = 0;
+        for (; aWE.More(); aWE.Next()) {
+          TopoDS_Edge edge = aWE.Current();
+          edge.Orientation( aWE.Orientation() );
+          if ( edge.IsSame( anE ))
+            edgeIndex = edges.size();
+          edges.push_back( edge );
+        }
+
+        // Find an edge opposite to anE
+        TopoDS_Edge anOppE;
+        if ( edges.size() < 4 ) {
+          continue; // too few edges
+        }
+        else if ( edges.size() == 4 ) {
+          int oppIndex = edgeIndex + 2;
+          if ( oppIndex > 3 ) oppIndex -= 4;
+          anOppE = edges[ oppIndex ];
+        }
+        else {
+          // count nb sides
+          TopoDS_Edge prevEdge = anE;
+          int nbSide = 0, eIndex = edgeIndex + 1;
+          for ( int i = 0; i < edges.size(); ++i, ++eIndex )
+          {
+            if ( eIndex == edges.size() )
+              eIndex = 0;
+            if ( !SMESH_Algo::IsContinuous( prevEdge, edges[ eIndex ])) {
+              nbSide++;
+            }
+            else {
+              // check that anE is not a part of a composite side
+              if ( anE.IsSame( prevEdge ) || anE.IsSame( edges[ eIndex ])) {
+                anOppE.Nullify(); break;
+              }
+            }
+            if ( nbSide == 2 ) { // opposite side
+              if ( !anOppE.IsNull() ) {
+                // composite opposite side -> stop propagation
+                anOppE.Nullify(); break;
+              }
+              anOppE = edges[ eIndex ];
+            }
+            if ( nbSide == 5 ) {
+              anOppE.Nullify(); break; // too many sides
+            }
+            prevEdge = edges[ eIndex ];
+          }
+          if ( anOppE.IsNull() )
+            continue;
+          if ( nbSide != 4 ) {
+            DBGMSG( nbSide << " sides in wire #" << mesh->GetMeshDS()->ShapeToIndex( itA.Value() ) << " - SKIP" );
+            continue;
+          }
+        }
+        if ( anOppE.IsNull() || !checkedShapes.Add( anOppE ))
+          continue;
+        SMESH_subMesh* oppSM = mesh->GetSubMesh( anOppE );
+        PropagationMgrData* oppData = getData( oppSM );
+
+        // Add anOppE to aChain if ...
+        if ( oppData->State() == WAIT_PROPAG_HYP ) // ... anOppE is not in any chain
+        {
+          oppData->SetSource( theMainSubMesh );
+          if ( !getLocal1DHyp( *mesh, anOppE )) // ... no 1d hyp on anOppE
+          {
+            oppData->myForward = data->myForward;
+            if ( edges[ edgeIndex ].Orientation() == anOppE.Orientation() )
+              oppData->myForward = !oppData->myForward;
+            chain.push_back( oppSM );
+            oppSM->ComputeStateEngine( SMESH_subMesh::CLEAN );
+            oppData->SetState( IN_CHAIN );
+            DBGMSG( "set IN_CHAIN on " << oppSM->GetId() );
+          }
+          else {
+            oppData->SetState( LAST_IN_CHAIN );
+            DBGMSG( "set LAST_IN_CHAIN on " << oppSM->GetId() );
+          }
+        }
+        else if ( oppData->State() == LAST_IN_CHAIN ) // anOppE breaks other chain
+        {
+          DBGMSG( "encounters LAST_IN_CHAIN on " << oppSM->GetId() );
+          oppData->AddSource( theMainSubMesh );
+        }
+      } // loop on face ancestors
+    } // loop on the chain
+
+    // theMainSubMesh must not be in a chain
+    chain.pop_front();
+
     return true;
   }
   //================================================================================
   /*!
    * \brief Clear propagation chain
    */
-  //================================================================================
-
   bool clearPropagationChain( SMESH_subMesh* subMesh )
   {
-    if ( PropagationMgrData* data = getData( subMesh )) {
-      if ( data->State() == IN_CHAIN )
+    DBGMSG( "clearPropagationChain from " << subMesh->GetId() );
+    if ( PropagationMgrData* data = findData( subMesh ))
+    {
+      switch ( data->State() ) {
+      case IN_CHAIN:
         return clearPropagationChain( data->GetSource() );
+
+      case HAS_PROPAG_HYP: {
+        SMESH_subMeshIteratorPtr smIt = data->GetChain();
+        while ( smIt->more() ) {
+          SMESH_subMesh* sm = smIt->next();
+          getData( sm )->Init();
+          sm->ComputeStateEngine( SMESH_subMesh::CLEAN );
+        }
+        data->Init();
+        break;
+      }
+      case LAST_IN_CHAIN: {
+        SMESH_subMeshIteratorPtr smIt = iterate( data->mySubMeshes.begin(),
+                                                 data->mySubMeshes.end());
+        while ( smIt->more() )
+          clearPropagationChain( smIt->next() );
+        data->Init();
+        break;
+      }
+      default:;
+      }
       return true;
     }
     return false;
-  }  
+  }
+
+
+  //================================================================================
+  /*!
+   * \brief Return an iterator on chain submeshes
+   */
+  //================================================================================
+
+  SMESH_subMeshIteratorPtr PropagationMgrData::GetChain() const
+  {
+    switch ( State() ) {
+    case HAS_PROPAG_HYP:
+      return iterate( mySubMeshes.begin(), mySubMeshes.end() );
+    case IN_CHAIN:
+      if ( mySubMeshes.empty() ) break;
+      return getData( mySubMeshes.front() )->GetChain();
+    default:;
+    }
+    return iterate( mySubMeshes.end(), mySubMeshes.end() );
+  }
+  //================================================================================
+  /*!
+   * \brief Return a propagation source submesh
+   */
+  //================================================================================
+
+  SMESH_subMesh* PropagationMgrData::GetSource() const
+  {
+    if ( myType == IN_CHAIN )
+      if ( !mySubMeshes.empty() ) 
+        return mySubMeshes.front();
+    return 0;
+  }
 
 
   //================================================================================
   /*!
    * \brief Constructor
    */
+  //================================================================================
+
   PropagationMgr::PropagationMgr()
     : SMESH_subMeshEventListener( false ) // won't be deleted by submesh
   {}
@@ -352,14 +450,16 @@ namespace {
   /*!
    * \brief Set PropagationMgr on a submesh
    */
+  //================================================================================
+
   void PropagationMgr::Set(SMESH_subMesh * submesh)
   {
-    EventListenerData* data = EventListenerData::MakeData(submesh,WAIT_PROPAG_HYP);
-
+    DBGMSG( "PropagationMgr::Set() on  " << submesh->GetId() );
+    EventListenerData* data = new PropagationMgrData();
     submesh->SetEventListener( getListener(), data, submesh );
 
     const SMESH_Hypothesis * propagHyp =
-      submesh->GetFather()->GetHypothesis( submesh->GetSubShape(), propagHypFilter(), true );
+      getProagationHyp( *submesh->GetFather(), submesh->GetSubShape() );
     if ( propagHyp )
       getListener()->ProcessEvent( SMESH_subMesh::ADD_HYP,
                                    SMESH_subMesh::ALGO_EVENT,
@@ -367,7 +467,28 @@ namespace {
                                    data,
                                    propagHyp);
   }
+  //================================================================================
+  /*!
+   * \brief Return an edge from which hypotheses are propagated
+   */
+  //================================================================================
 
+  TopoDS_Edge PropagationMgr::GetSource(SMESH_subMesh * submesh)
+  {
+    if ( PropagationMgrData* data = findData( submesh )) {
+      if ( data->State() == IN_CHAIN ) {
+        if ( SMESH_subMesh* sm = data->GetSource() )
+        {
+          TopoDS_Shape edge = sm->GetSubShape();
+          edge = edge.Oriented( data->myForward ? TopAbs_FORWARD : TopAbs_REVERSED );
+          DBGMSG( " GetSource() = edge " << sm->GetId() << " REV = " << (!data->myForward));
+          if ( edge.ShapeType() == TopAbs_EDGE )
+            return TopoDS::Edge( edge );
+        }
+      }
+    }
+    return TopoDS_Edge();
+  }
   //================================================================================
   /*!
    * \brief React on events on 1D submeshes
@@ -377,31 +498,36 @@ namespace {
   void PropagationMgr::ProcessEvent(const int          event,
                                     const int          eventType,
                                     SMESH_subMesh*     subMesh,
-                                    SMESH_subMeshEventListenerData* data,
+                                    SMESH_subMeshEventListenerData* listenerData,
                                     const SMESH_Hypothesis*         hyp)
   {
-    if ( !data )
+    if ( !listenerData )
       return;
     if ( !hyp || hyp->GetType() != SMESHDS_Hypothesis::PARAM_ALGO || hyp->GetDim() != 1 )
       return;
     if ( eventType != SMESH_subMesh::ALGO_EVENT )
       return;
+    DBGMSG( "PropagationMgr::ProcessEvent() on  " << subMesh->GetId() );
 
-    bool isPropagHyp = ( StdMeshers_Propagation::GetName() != hyp->GetName() );
+    bool isPropagHyp = ( StdMeshers_Propagation::GetName() == hyp->GetName() );
 
-    switch ( data->myType ) {
+    PropagationMgrData* data = static_cast<PropagationMgrData*>( listenerData );
+    switch ( data->State() ) {
 
-    case WAIT_PROPAG_HYP: { // no propagation hyp in chain
+    case WAIT_PROPAG_HYP: { // propagation hyp or local 1D hyp is missing
       // --------------------------------------------------------
-      if ( !isPropagHyp )
+      bool hasPropagHyp = ( isPropagHyp ||
+                            getProagationHyp( *subMesh->GetFather(), subMesh->GetSubShape()) );
+      if ( !hasPropagHyp )
         return;
-      if ( !isLocal1DHypothesis( *subMesh->GetFather(), subMesh->GetSubShape()))
+      bool hasLocal1DHyp =  getLocal1DHyp( *subMesh->GetFather(), subMesh->GetSubShape());
+      if ( !hasLocal1DHyp )
         return;
       if ( event == SMESH_subMesh::ADD_HYP ||
-           event == SMESH_subMesh::ADD_FATHER_HYP ) // add propagation hyp
+           event == SMESH_subMesh::ADD_FATHER_HYP ) // add local or propagation hyp
       {
+        DBGMSG( "ADD_HYP propagation to WAIT_PROPAG_HYP " << subMesh->GetId() );
         // build propagation chain
-        clearPropagationChain( subMesh );
         buildPropagationChain( subMesh );
       }
       return;
@@ -411,32 +537,57 @@ namespace {
       switch ( event ) {
       case SMESH_subMesh::REMOVE_HYP:
       case SMESH_subMesh::REMOVE_FATHER_HYP: // remove propagation hyp
-        if ( isPropagHyp )
+        if ( isPropagHyp && !getProagationHyp( *subMesh->GetFather(), subMesh->GetSubShape()) )
         {
+          DBGMSG( "REMOVE_HYP propagation from HAS_PROPAG_HYP " << subMesh->GetId() );
           // clear propagation chain
+          clearPropagationChain( subMesh );
         }
         return;
       case SMESH_subMesh::MODIF_HYP: // hyp modif
         // clear mesh in a chain
+        DBGMSG( "MODIF_HYP on HAS_PROPAG_HYP " << subMesh->GetId() );
+        SMESH_subMeshIteratorPtr smIt = data->GetChain();
+        while ( smIt->more() ) {
+          SMESH_subMesh* smInChain = smIt->next();
+          smInChain->AlgoStateEngine( SMESH_subMesh::MODIF_HYP,
+                                      (SMESH_Hypothesis*) hyp );
+        }
         return;
       }
       return;
     }
     case IN_CHAIN: {       // submesh is in propagation chain
       // --------------------------------------------------------
-      if ( event == SMESH_subMesh::ADD_HYP ) // add local hypothesis
-        if ( isPropagHyp )
-          ; // collision
-        else
-          ; // rebuild propagation chain
-        return;
+      if ( event == SMESH_subMesh::ADD_HYP ) { // add local hypothesis
+        if ( isPropagHyp ) { // propagation hyp added
+          DBGMSG( "ADD_HYP propagation on IN_CHAIN " << subMesh->GetId() );
+          // collision - do nothing
+        }
+        else { // 1D hyp added
+          // rebuild propagation chain
+          DBGMSG( "ADD_HYP 1D on IN_CHAIN " << subMesh->GetId() );
+          SMESH_subMesh* sourceSM = data->GetSource();
+          clearPropagationChain( sourceSM );
+          buildPropagationChain( sourceSM );
+        }
+      }
+      return;
     }
     case LAST_IN_CHAIN: { // submesh with local 1D hyp, breaking a chain
       // --------------------------------------------------------
-      if ( event == SMESH_subMesh::REMOVE_HYP ) // remove local hyp
-        ; // rebuild propagation chain
+      if ( event == SMESH_subMesh::REMOVE_HYP ) { // remove local hyp
+        // rebuild propagation chain
+        DBGMSG( "REMOVE_HYP 1D from LAST_IN_CHAIN " << subMesh->GetId() );
+        list<SMESH_subMesh*> sourceSM = data->mySubMeshes;
+        clearPropagationChain( subMesh );
+        SMESH_subMeshIteratorPtr smIt = iterate( sourceSM.begin(), sourceSM.end());
+        while ( smIt->more() )
+          buildPropagationChain( smIt->next() );
+      }
       return;
     }
     } // switch by SubMeshState
   }
+
 } // namespace
index c0d2f3cdf8a920837b5c3874e2d13ffe3098aee7..62ad2a439db3b2c552ee453e12ad02c09746ec66 100644 (file)
@@ -64,7 +64,7 @@ class STDMESHERS_EXPORT StdMeshers_Propagation:public SMESH_Hypothesis
   static void SetPropagationMgr(SMESH_subMesh* subMesh);
 
   /*!
-   * \brief Return an edge from which hypotheses are propagated from
+   * \brief Return an edge from which hypotheses are propagated
     * \param theMesh - mesh
     * \param theEdge - edge to which hypotheses are propagated
     * \retval TopoDS_Edge - source edge, also passing orientation
index b16eeb58e41bdec8eb8d38a2d167597121233c8f..3e04aa8723ef9338abbe9438fb01a38f99843b56 100644 (file)
@@ -42,7 +42,7 @@ StdMeshers_QuadranglePreference::StdMeshers_QuadranglePreference(int         hyp
      :SMESH_Hypothesis(hypId, studyId, gen)
 {
   _name = "QuadranglePreference";
-  _param_algo_dim = 2; // is used by StdMeshers_Quadrangle_2D
+  _param_algo_dim = -2; // auxiliary used by StdMeshers_Quadrangle_2D
 }
 
 //=============================================================================
index 8a16594023e981506d8590d6d35c411e73d6ec71..12c132959fe4f4924901a0960a991e9be86d8306 100644 (file)
 #include "SMDS_EdgePosition.hxx"
 #include "SMDS_FacePosition.hxx"
 
-#include <BRepAdaptor_Curve.hxx>
-#include <BRep_Tool.hxx>
-#include <BRepLProp.hxx>
 #include <BRepTools.hxx>
 #include <BRepTools_WireExplorer.hxx>
+#include <BRep_Tool.hxx>
 #include <Geom_Surface.hxx>
-#include <Geom_Curve.hxx>
-#include <Geom2d_Curve.hxx>
-#include <GeomAdaptor_Curve.hxx>
-#include <GCPnts_UniformAbscissa.hxx>
-#include <TopExp.hxx>
+#include <NCollection_DefineArray2.hxx>
 #include <Precision.hxx>
-#include <gp_Pnt2d.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
 #include <TColStd_SequenceOfReal.hxx>
 #include <TColgp_SequenceOfXY.hxx>
-#include <NCollection_DefineArray2.hxx>
+#include <TopExp.hxx>
+#include <TopoDS.hxx>
 
 #include "utilities.h"
 #include "Utils_ExceptHandlers.hxx"
@@ -119,7 +112,7 @@ bool StdMeshers_Quadrangle_2D::CheckHypothesis
   aStatus = SMESH_Hypothesis::HYP_OK;
 
   // there is only one compatible Hypothesis so far
-  const list <const SMESHDS_Hypothesis * >&hyps = GetUsedHypothesis(aMesh, aShape);
+  const list <const SMESHDS_Hypothesis * >&hyps = GetUsedHypothesis(aMesh, aShape, false);
   myQuadranglePreference = hyps.size() > 0;
 
   return isOk;
@@ -132,9 +125,10 @@ bool StdMeshers_Quadrangle_2D::CheckHypothesis
 //=============================================================================
 
 bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
-                                        const TopoDS_Shape& aShape) throw (SALOME_Exception)
+                                        const TopoDS_Shape& aShape)// throw (SALOME_Exception)
 {
-  Unexpect aCatch(SalomeException);
+  // PAL14921. Enable catching std::bad_alloc and Standard_OutOfMemory outside
+  //Unexpect aCatchSalomeException);
 
   SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
   aMesh.GetSubMesh(aShape);
@@ -238,6 +232,9 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
   const vector<UVPtStruct>& uv_e2 = quad->side[2]->GetUVPtStruct(true,1 );
   const vector<UVPtStruct>& uv_e3 = quad->side[3]->GetUVPtStruct(false,0);
 
+  if ( uv_e0.empty() || uv_e1.empty() || uv_e2.empty() || uv_e3.empty() )
+    return error( COMPERR_BAD_INPUT_MESH );
+
   double eps = Precision::Confusion();
 
   // Boundary quadrangles
@@ -562,10 +559,8 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
 
 FaceQuadStruct* StdMeshers_Quadrangle_2D::CheckNbEdges(SMESH_Mesh &         aMesh,
                                                        const TopoDS_Shape & aShape)
-     throw(SALOME_Exception)
+  //throw(SALOME_Exception)
 {
-  Unexpect aCatch(SalomeException);
-
   const TopoDS_Face & F = TopoDS::Face(aShape);
   const bool ignoreMediumNodes = _quadraticMesh;
 
@@ -596,16 +591,14 @@ FaceQuadStruct* StdMeshers_Quadrangle_2D::CheckNbEdges(SMESH_Mesh &         aMes
       sideEdges.splice( sideEdges.end(), edges, edges.begin()); // edges.front() -> sideEdges.end()
       bool sameSide = true;
       while ( !edges.empty() && sameSide ) {
-        GeomAbs_Shape cont = SMESH_Algo::Continuity( sideEdges.back(), edges.front() );
-        sameSide = ( cont >= GeomAbs_G1 );
+        sameSide = SMESH_Algo::IsContinuous( sideEdges.back(), edges.front() );
         if ( sameSide )
           sideEdges.splice( sideEdges.end(), edges, edges.begin());
       }
       if ( nbSides == 0 ) { // go backward from the first edge
         sameSide = true;
         while ( !edges.empty() && sameSide ) {
-          GeomAbs_Shape cont = SMESH_Algo::Continuity( sideEdges.front(), edges.back() );
-          sameSide = ( cont >= GeomAbs_G1 );
+          sameSide = SMESH_Algo::IsContinuous( sideEdges.front(), edges.back() );
           if ( sameSide )
             sideEdges.splice( sideEdges.begin(), edges, --edges.end());
         }
@@ -645,10 +638,8 @@ FaceQuadStruct* StdMeshers_Quadrangle_2D::CheckNbEdges(SMESH_Mesh &         aMes
 FaceQuadStruct *StdMeshers_Quadrangle_2D::CheckAnd2Dcompute
                            (SMESH_Mesh &         aMesh,
                             const TopoDS_Shape & aShape,
-                            const bool           CreateQuadratic) throw(SALOME_Exception)
+                            const bool           CreateQuadratic) //throw(SALOME_Exception)
 {
-  Unexpect aCatch(SalomeException);
-
   _quadraticMesh = CreateQuadratic;
 
   FaceQuadStruct *quad = CheckNbEdges(aMesh, aShape);
@@ -656,7 +647,12 @@ FaceQuadStruct *StdMeshers_Quadrangle_2D::CheckAnd2Dcompute
   if(!quad) return 0;
 
   // set normalized grid on unit square in parametric domain
-  SetNormalizedGrid(aMesh, aShape, quad);
+  bool stat = SetNormalizedGrid(aMesh, aShape, quad);
+  if(!stat) {
+    if(!quad)
+      delete quad;
+    quad = 0;
+  }
 
   return quad;
 }
@@ -695,9 +691,8 @@ namespace {
 
 bool StdMeshers_Quadrangle_2D::SetNormalizedGrid (SMESH_Mesh & aMesh,
                                                   const TopoDS_Shape& aShape,
-                                                  FaceQuadStruct* & quad) throw (SALOME_Exception)
+                                                  FaceQuadStruct* & quad) //throw (SALOME_Exception)
 {
-  Unexpect aCatch(SalomeException);
   // Algorithme décrit dans "Génération automatique de maillages"
   // P.L. GEORGE, MASSON, Â§ 6.4.1 p. 84-85
   // traitement dans le domaine paramétrique 2d u,v
@@ -738,7 +733,8 @@ bool StdMeshers_Quadrangle_2D::SetNormalizedGrid (SMESH_Mesh & aMesh,
   const vector<UVPtStruct>& uv_e3 = GetUVPtStructIn( quad, 3, nbvertic - 1 );
 
   if ( uv_e0.empty() || uv_e1.empty() || uv_e2.empty() || uv_e3.empty() )
-    return error(dfltErr(), "Can't find nodes on sides");
+    //return error( "Can't find nodes on sides");
+    return error( COMPERR_BAD_INPUT_MESH );
 
   // nodes Id on "in" edges
   if (! quad->isEdgeOut[0]) {
@@ -888,14 +884,11 @@ static gp_UV CalcUV(double x0, double x1, double y0, double y1,
 bool StdMeshers_Quadrangle_2D::ComputeQuadPref (SMESH_Mesh &        aMesh,
                                                 const TopoDS_Shape& aShape,
                                                 FaceQuadStruct*     quad)
-  throw (SALOME_Exception)
 {
-  Unexpect aCatch(SalomeException);
-
   SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
   const TopoDS_Face& F = TopoDS::Face(aShape);
   Handle(Geom_Surface) S = BRep_Tool::Surface(F);
-  const TopoDS_Wire& W = BRepTools::OuterWire(F);
+//  const TopoDS_Wire& W = BRepTools::OuterWire(F);
   bool WisF = true;
 //   if(W.Orientation()==TopAbs_FORWARD) 
 //     WisF = true;
index 90db88e55f9048b743f5b4622159fed33544be4c..72b317be290a185a86f41ec699365858fbe68629 100644 (file)
@@ -47,14 +47,8 @@ enum TSideID { BOTTOM_SIDE=0, RIGHT_SIDE, TOP_SIDE, LEFT_SIDE, NB_SIDES };
 typedef uvPtStruct UVPtStruct;
 typedef struct faceQuadStruct
 {
-  //int nbPts[4];
-  //TopoDS_Edge edge[4];
   vector< StdMeshers_FaceSide*> side;
-  //double first[4];
-  //double last[4];
-  //bool isEdgeForward[4];
   bool isEdgeOut[4]; // true, if an edge has more nodes, than the opposite
-  //UVPtStruct* uv_edges[4];
   UVPtStruct* uv_grid;
   ~faceQuadStruct();
 } FaceQuadStruct;
@@ -70,32 +64,27 @@ public:
                                SMESH_Hypothesis::Hypothesis_Status& aStatus);
 
   virtual bool Compute(SMESH_Mesh& aMesh,
-                      const TopoDS_Shape& aShape)
-    throw (SALOME_Exception);
+                      const TopoDS_Shape& aShape);
 
   FaceQuadStruct* CheckAnd2Dcompute(SMESH_Mesh& aMesh,
                                    const TopoDS_Shape& aShape,
-                                    const bool CreateQuadratic)
-    throw (SALOME_Exception);
+                                    const bool CreateQuadratic);
 
 protected:
 
   FaceQuadStruct* CheckNbEdges(SMESH_Mesh& aMesh,
-                               const TopoDS_Shape& aShape)
-    throw (SALOME_Exception);
+                               const TopoDS_Shape& aShape);
 
   bool SetNormalizedGrid(SMESH_Mesh& aMesh,
                         const TopoDS_Shape& aShape,
-                        FaceQuadStruct*& quad)
-    throw (SALOME_Exception);
+                        FaceQuadStruct*& quad);
 
   /**
    * Special function for creation only quandrangle faces
    */
   bool ComputeQuadPref(SMESH_Mesh& aMesh,
                        const TopoDS_Shape& aShape,
-                       FaceQuadStruct* quad)
-    throw (SALOME_Exception);
+                       FaceQuadStruct* quad);
 
   UVPtStruct* LoadEdgePoints2(SMESH_Mesh& aMesh,
                              const TopoDS_Face& F, const TopoDS_Edge& E,
index c83bff5250a62d5bf73eee982f1b4d511d9f5b41..4bcd5519adf0b4f91a4d8cfe16bd4854d3c4d335 100644 (file)
 
 #include "utilities.h"
 
-#include <TopoDS_Solid.hxx>
-#include <TopoDS_Shell.hxx>
-#include <BRepTools.hxx>
 #include <BRepAdaptor_Curve.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
 #include <BRepBuilderAPI_MakeEdge.hxx>
+#include <BRepTools.hxx>
+#include <TopExp_Explorer.hxx>
+#include <TopoDS.hxx>
+#include <TopoDS_Shell.hxx>
+#include <TopoDS_Solid.hxx>
 #include <gp.hxx>
 #include <gp_Pnt.hxx>
 
 
 using namespace std;
 
-#define RETURN_BAD_RESULT(msg) { MESSAGE(msg); return false; }
+#define RETURN_BAD_RESULT(msg) { MESSAGE(")-: Error: " << msg); return false; }
 #define gpXYZ(n) gp_XYZ(n->X(),n->Y(),n->Z())
 
 typedef StdMeshers_ProjectionUtils TAssocTool;
@@ -98,13 +99,14 @@ bool StdMeshers_RadialPrism_3D::CheckHypothesis(SMESH_Mesh&
                                                 SMESH_Hypothesis::Hypothesis_Status& aStatus)
 {
   // check aShape that must have 2 shells
+/*  PAL16229
   if ( TAssocTool::Count( aShape, TopAbs_SOLID, 0 ) != 1 ||
        TAssocTool::Count( aShape, TopAbs_SHELL, 0 ) != 2 )
   {
     aStatus = HYP_BAD_GEOMETRY;
     return false;
   }
-
+*/
   myNbLayerHypo = 0;
   myDistributionHypo = 0;
 
@@ -158,7 +160,7 @@ bool StdMeshers_RadialPrism_3D::Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& a
   // to delete helper at exit from Compute()
   std::auto_ptr<SMESH_MesherHelper> helperDeleter( myHelper );
 
-  // get 2 shells 
+  // get 2 shells
   TopoDS_Solid solid = TopoDS::Solid( aShape );
   TopoDS_Shell outerShell = BRepTools::OuterShell( solid );
   TopoDS_Shape innerShell;
@@ -167,7 +169,7 @@ bool StdMeshers_RadialPrism_3D::Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& a
     if ( !outerShell.IsSame( It.Value() ))
       innerShell = It.Value();
   if ( nbShells != 2 )
-    return error(COMPERR_BAD_SHAPE, SMESH_Comment("Must be 2 shells but not")<<nbShells);
+    return error(COMPERR_BAD_SHAPE, SMESH_Comment("Must be 2 shells but not ")<<nbShells);
 
   // ----------------------------------
   // Associate subshapes of the shells
@@ -192,7 +194,7 @@ bool StdMeshers_RadialPrism_3D::Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& a
     TopoDS_Face outFace = TopoDS::Face( exp.Current() );
     TopoDS_Face inFace;
     if ( !shape2ShapeMap.IsBound( outFace )) {
-      return error(dfltErr(),SMESH_Comment("Corresponding inner face not found for face #" )
+      return error(SMESH_Comment("Corresponding inner face not found for face #" )
                    << meshDS->ShapeToIndex( outFace ));
     } else {
       inFace = TopoDS::Face( shape2ShapeMap( outFace ));
@@ -222,12 +224,18 @@ bool StdMeshers_RadialPrism_3D::Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& a
       vector< const TNodeColumn* > columns( nbNodes );
       for ( int i = 0; i < nbNodes; ++i )
       {
-        const SMDS_MeshNode* n = face->GetNode( i );
-        TNode2ColumnMap::iterator n_col = node2columnMap.find( n );
-        if ( n_col != node2columnMap.end() )
+        const SMDS_MeshNode* nIn = face->GetNode( i );
+        TNode2ColumnMap::iterator n_col = node2columnMap.find( nIn );
+        if ( n_col != node2columnMap.end() ) {
           columns[ i ] = & n_col->second;
-        else
-          columns[ i ] = makeNodeColumn( node2columnMap, n, nodeIn2OutMap[ n ] );
+        }
+        else {
+          TNodeNodeMap::iterator nInOut = nodeIn2OutMap.find( nIn );
+          if ( nInOut == nodeIn2OutMap.end() )
+            RETURN_BAD_RESULT("No matching node for "<< nIn->GetID() <<
+                              " in face "<< face->GetID());
+          columns[ i ] = makeNodeColumn( node2columnMap, nIn, nInOut->second );
+        }
       }
 
       StdMeshers_Prism_3D::AddPrisms( columns, myHelper );
@@ -312,24 +320,24 @@ public:
                 const StdMeshers_LayerDistribution* hyp)
   {
     double len = pIn.Distance( pOut );
-    if ( len <= DBL_MIN ) return error(dfltErr(),"Too close points of inner and outer shells");
+    if ( len <= DBL_MIN ) return error("Too close points of inner and outer shells");
 
     if ( !hyp || !hyp->GetLayerDistribution() )
-      return error(dfltErr(), "Invalid LayerDistribution hypothesis");
+      return error( "Invalid LayerDistribution hypothesis");
     myUsedHyps.clear();
     myUsedHyps.push_back( hyp->GetLayerDistribution() );
 
     TopoDS_Edge edge = BRepBuilderAPI_MakeEdge( pIn, pOut );
     SMESH_Hypothesis::Hypothesis_Status aStatus;
     if ( !StdMeshers_Regular_1D::CheckHypothesis( aMesh, edge, aStatus ))
-      return error(dfltErr(), "StdMeshers_Regular_1D::CheckHypothesis() failed"
-                   "with LayerDistribution hypothesis");
+      return error( "StdMeshers_Regular_1D::CheckHypothesis() failed "
+                    "with LayerDistribution hypothesis");
 
     BRepAdaptor_Curve C3D(edge);
     double f = C3D.FirstParameter(), l = C3D.LastParameter();
     list< double > params;
-    if ( !StdMeshers_Regular_1D::computeInternalParameters( C3D, len, f, l, params, false ))
-      return error(dfltErr(),"StdMeshers_Regular_1D failed to compute layers distribution");
+    if ( !StdMeshers_Regular_1D::computeInternalParameters( aMesh, C3D, len, f, l, params, false ))
+      return error("StdMeshers_Regular_1D failed to compute layers distribution");
 
     positions.clear();
     positions.reserve( params.size() );
index 9e59aa0c6b4a28c654a274a61fd9dee4265ad322..b2a5074332644b76cb0acec0002e959fb3ed4e80 100644 (file)
@@ -37,6 +37,7 @@
 #include "StdMeshers_Deflection1D.hxx"
 #include "StdMeshers_AutomaticLength.hxx"
 #include "StdMeshers_SegmentLengthAroundVertex.hxx"
+#include "StdMeshers_Propagation.hxx"
 
 #include "SMESH_Gen.hxx"
 #include "SMESH_Mesh.hxx"
 
 #include <BRepAdaptor_Curve.hxx>
 #include <BRep_Tool.hxx>
-#include <TopoDS_Edge.hxx>
-#include <TopExp_Explorer.hxx>
 #include <GCPnts_AbscissaPoint.hxx>
 #include <GCPnts_UniformAbscissa.hxx>
 #include <GCPnts_UniformDeflection.hxx>
 #include <Precision.hxx>
+#include <TopExp.hxx>
+#include <TopExp_Explorer.hxx>
+#include <TopoDS.hxx>
+#include <TopoDS_Edge.hxx>
 
 #include <string>
 
@@ -85,6 +88,7 @@ StdMeshers_Regular_1D::StdMeshers_Regular_1D(int hypId, int studyId,
        _compatibleHypothesis.push_back("AutomaticLength");
 
        _compatibleHypothesis.push_back("QuadraticMesh"); // auxiliary !!!
+       _compatibleHypothesis.push_back("Propagation"); // auxiliary !!!
 }
 
 //=============================================================================
@@ -142,7 +146,9 @@ bool StdMeshers_Regular_1D::CheckHypothesis
     const StdMeshers_LocalLength * hyp =
       dynamic_cast <const StdMeshers_LocalLength * >(theHyp);
     ASSERT(hyp);
-    _value[ BEG_LENGTH_IND ] = _value[ END_LENGTH_IND ] = hyp->GetLength();
+    //_value[ BEG_LENGTH_IND ] = _value[ END_LENGTH_IND ] = hyp->GetLength();
+    _value[ BEG_LENGTH_IND ] = hyp->GetLength();
+    _value[ END_LENGTH_IND ] = hyp->GetPrecision();
     ASSERT( _value[ BEG_LENGTH_IND ] > 0 );
     _hypType = LOCAL_LENGTH;
     aStatus = SMESH_Hypothesis::HYP_OK;
@@ -220,7 +226,9 @@ bool StdMeshers_Regular_1D::CheckHypothesis
     StdMeshers_AutomaticLength * hyp = const_cast<StdMeshers_AutomaticLength *>
       (dynamic_cast <const StdMeshers_AutomaticLength * >(theHyp));
     ASSERT(hyp);
-    _value[ BEG_LENGTH_IND ] = _value[ END_LENGTH_IND ] = hyp->GetLength( &aMesh, aShape );
+    //_value[ BEG_LENGTH_IND ] = _value[ END_LENGTH_IND ] = hyp->GetLength( &aMesh, aShape );
+    _value[ BEG_LENGTH_IND ] = hyp->GetLength( &aMesh, aShape );
+    _value[ END_LENGTH_IND ] = Precision::Confusion(); // ?? or set to zero?
     ASSERT( _value[ BEG_LENGTH_IND ] > 0 );
     _hypType = LOCAL_LENGTH;
     aStatus = SMESH_Hypothesis::HYP_OK;
@@ -232,14 +240,14 @@ bool StdMeshers_Regular_1D::CheckHypothesis
 }
 
 static bool computeParamByFunc(Adaptor3d_Curve& C3d, double first, double last,
-                               double length, bool theReverse, 
+                               double length, bool theReverse,
                                int nbSeg, Function& func,
                                list<double>& theParams)
 {
   // never do this way
   //OSD::SetSignal( true );
 
-  if( nbSeg<=0 )
+  if (nbSeg <= 0)
     return false;
 
   MESSAGE( "computeParamByFunc" );
@@ -247,17 +255,17 @@ static bool computeParamByFunc(Adaptor3d_Curve& C3d, double first, double last,
   int nbPnt = 1 + nbSeg;
   vector<double> x(nbPnt, 0.);
 
-  if( !buildDistribution( func, 0.0, 1.0, nbSeg, x, 1E-4 ) )
+  if (!buildDistribution(func, 0.0, 1.0, nbSeg, x, 1E-4))
      return false;
 
   MESSAGE( "Points:\n" );
   char buf[1024];
-  for( int i=0; i<=nbSeg; i++ )
+  for ( int i=0; i<=nbSeg; i++ )
   {
     sprintf(  buf, "%f\n", float(x[i] ) );
     MESSAGE( buf );
   }
-    
+
 
 
   // apply parameters in range [0,1] to the space of the curve
@@ -410,6 +418,7 @@ void StdMeshers_Regular_1D::SetEventListener(SMESH_subMesh* subMesh)
 //   while (smIt->more()) {
 //     subMesh->SetEventListener( &listener, 0, smIt->next() );
 //   }
+  StdMeshers_Propagation::SetPropagationMgr( subMesh );
 }
 
 //=============================================================================
@@ -519,7 +528,7 @@ void StdMeshers_Regular_1D::redistributeNearVertices (SMESH_Mesh &          theM
           std::swap( algo._value[ BEG_LENGTH_IND ], algo._value[ END_LENGTH_IND ]);
         }
         list<double> params;
-        if ( algo.computeInternalParameters( theC3d, L, from, to, params, false ))
+        if ( algo.computeInternalParameters( theMesh, theC3d, L, from, to, params, false ))
         {
           if ( isEnd1 ) params.reverse();
           while ( 1 + nHalf-- )
@@ -542,12 +551,14 @@ void StdMeshers_Regular_1D::redistributeNearVertices (SMESH_Mesh &          theM
  *  
  */
 //=============================================================================
-bool StdMeshers_Regular_1D::computeInternalParameters(Adaptor3d_Curve& theC3d,
+bool StdMeshers_Regular_1D::computeInternalParameters(SMESH_Mesh &     theMesh,
+                                                      Adaptor3d_Curve& theC3d,
                                                       double           theLength,
                                                       double           theFirstU,
                                                       double           theLastU,
                                                       list<double> &   theParams,
-                                                      const bool       theReverse)
+                                                      const bool       theReverse,
+                                                      bool             theConsiderPropagation)
 {
   theParams.clear();
 
@@ -563,6 +574,38 @@ bool StdMeshers_Regular_1D::computeInternalParameters(Adaptor3d_Curve& theC3d,
     {
       // Local Length hypothesis
       double nbseg = ceil(theLength / _value[ BEG_LENGTH_IND ]); // integer sup
+
+      // NPAL17873:
+      bool isFound = false;
+      if (theConsiderPropagation && !_mainEdge.IsNull()) // propagated from some other edge
+      {
+        // Advanced processing to assure equal number of segments in case of Propagation
+        SMESH_subMesh* sm = theMesh.GetSubMeshContaining(_mainEdge);
+        if (sm) {
+          bool computed = sm->IsMeshComputed();
+          if (!computed) {
+            if (sm->GetComputeState() == SMESH_subMesh::READY_TO_COMPUTE) {
+              sm->ComputeStateEngine(SMESH_subMesh::COMPUTE);
+              computed = sm->IsMeshComputed();
+            }
+          }
+          if (computed) {
+            SMESHDS_SubMesh* smds = sm->GetSubMeshDS();
+            int nb_segments = smds->NbElements();
+            if (nbseg - 1 <= nb_segments && nb_segments <= nbseg + 1) {
+              isFound = true;
+              nbseg = nb_segments;
+            }
+          }
+        }
+      }
+      if (!isFound) // not found by meshed edge in the propagation chain, use precision
+      {
+        double aPrecision = _value[ END_LENGTH_IND ];
+        double nbseg_prec = ceil((theLength / _value[ BEG_LENGTH_IND ]) - aPrecision);
+        if (nbseg_prec == (nbseg - 1)) nbseg--;
+      }
+
       if (nbseg <= 0)
         nbseg = 1;                        // degenerated edge
       eltSize = theLength / nbseg;
@@ -627,7 +670,7 @@ bool StdMeshers_Regular_1D::computeInternalParameters(Adaptor3d_Curve& theC3d,
     }
     GCPnts_UniformAbscissa Discret(theC3d, eltSize, f, l);
     if ( !Discret.IsDone() )
-      return error( dfltErr(), "GCPnts_UniformAbscissa failed");
+      return error( "GCPnts_UniformAbscissa failed");
 
     int NbPoints = Discret.NbPoints();
     for ( int i = 2; i < NbPoints; i++ )
@@ -657,13 +700,14 @@ bool StdMeshers_Regular_1D::computeInternalParameters(Adaptor3d_Curve& theC3d,
       GCPnts_AbscissaPoint Discret( theC3d, eltSize, param );
       if ( !Discret.IsDone() ) break;
       param = Discret.Parameter();
-      if ( param > f && param < l )
+      if ( f < param && param < l )
         theParams.push_back( param );
       else
         break;
       eltSize *= q;
     }
     compensateError( a1, an, U1, Un, theLength, theC3d, theParams );
+    if (theReverse) theParams.reverse(); // NPAL18025
     return true;
   }
 
@@ -698,6 +742,7 @@ bool StdMeshers_Regular_1D::computeInternalParameters(Adaptor3d_Curve& theC3d,
       eltSize += q;
     }
     compensateError( a1, an, U1, Un, theLength, theC3d, theParams );
+    if (theReverse) theParams.reverse(); // NPAL18025
 
     return true;
   }
@@ -715,7 +760,6 @@ bool StdMeshers_Regular_1D::computeInternalParameters(Adaptor3d_Curve& theC3d,
       theParams.push_back( param );
     }
     return true;
-    
   }
 
   default:;
@@ -730,14 +774,14 @@ bool StdMeshers_Regular_1D::computeInternalParameters(Adaptor3d_Curve& theC3d,
  */
 //=============================================================================
 
-bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
+bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape & theShape)
 {
   if ( _hypType == NONE )
     return false;
 
-  SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
+  SMESHDS_Mesh * meshDS = theMesh.GetMeshDS();
 
-  const TopoDS_Edge & EE = TopoDS::Edge(aShape);
+  const TopoDS_Edge & EE = TopoDS::Edge(theShape);
   TopoDS_Edge E = TopoDS::Edge(EE.Oriented(TopAbs_FORWARD));
   int shapeID = meshDS->ShapeToIndex( E );
 
@@ -759,14 +803,14 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
     list< double > params;
     bool reversed = false;
     if ( !_mainEdge.IsNull() )
-      reversed = aMesh.IsReversedInChain( EE, _mainEdge );
+      reversed = ( _mainEdge.Orientation() == TopAbs_REVERSED );
 
     BRepAdaptor_Curve C3d( E );
     double length = EdgeLength( E );
-    if ( ! computeInternalParameters( C3d, length, f, l, params, reversed )) {
+    if ( ! computeInternalParameters( theMesh, C3d, length, f, l, params, reversed, true )) {
       return false;
     }
-    redistributeNearVertices( aMesh, C3d, length, params, VFirst, VLast );
+    redistributeNearVertices( theMesh, C3d, length, params, VFirst, VLast );
 
     // edge extrema (indexes : 1 & NbPoints) already in SMDS (TopoDS_Vertex)
     // only internal nodes receive an edge position with param on curve
@@ -774,7 +818,17 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
     const SMDS_MeshNode * idPrev = idFirst;
     double parPrev = f;
     double parLast = l;
-    
+
+    /* NPAL18025
+    if (reversed) {
+      idPrev = idLast;
+      idLast = idFirst;
+      idFirst = idPrev;
+      parPrev = l;
+      parLast = f;
+    }
+    */
+
     for (list<double>::iterator itU = params.begin(); itU != params.end(); itU++) {
       double param = *itU;
       gp_Pnt P = Curve->Value(param);
@@ -813,12 +867,14 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
       meshDS->SetMeshElementOnShape(edge, shapeID);
     }
   }
-  else {
+  else
+  {
+    //MESSAGE("************* Degenerated edge! *****************");
+
     // Edge is a degenerated Edge : We put n = 5 points on the edge.
     const int NbPoints = 5;
     BRep_Tool::Range( E, f, l ); // PAL15185
     double du = (l - f) / (NbPoints - 1);
-    //MESSAGE("************* Degenerated edge! *****************");
 
     gp_Pnt P = BRep_Tool::Pnt(VFirst);
 
@@ -879,11 +935,11 @@ StdMeshers_Regular_1D::GetUsedHypothesis(SMESH_Mesh &         aMesh,
   // get non-auxiliary assigned to aShape
   int nbHyp = aMesh.GetHypotheses( aShape, compatibleFilter, _usedHypList, false );
 
-  if (nbHyp == 0)
+  if (nbHyp == 0 && aShape.ShapeType() == TopAbs_EDGE)
   {
     // Check, if propagated from some other edge
-    if (aShape.ShapeType() == TopAbs_EDGE &&
-        aMesh.IsPropagatedHypothesis(aShape, _mainEdge))
+    _mainEdge = StdMeshers_Propagation::GetPropagationSource( aMesh, aShape );
+    if ( !_mainEdge.IsNull() )
     {
       // Propagation of 1D hypothesis from <aMainEdge> on this edge;
       // get non-auxiliary assigned to _mainEdge
index 269a034bc0039699e1417581e5ebb5edf242e395..4a22e7253db0564713d89e9f5318a4fb42eec157 100644 (file)
@@ -73,12 +73,14 @@ public:
 
 protected:
 
-  virtual bool computeInternalParameters (Adaptor3d_Curve &     theC3d,
-                                          double                theLength,
-                                          double                theFirstU,
-                                          double                theLastU,
-                                          std::list< double > & theParameters,
-                                          const bool            theReverse);
+  virtual bool computeInternalParameters (SMESH_Mesh &        theMesh,
+                                          Adaptor3d_Curve &   theC3d,
+                                          double              theLength,
+                                          double              theFirstU,
+                                          double              theLastU,
+                                          std::list<double> & theParameters,
+                                          const bool          theReverse,
+                                          bool                theConsiderPropagation = false);
 
   virtual void redistributeNearVertices (SMESH_Mesh &          theMesh,
                                          Adaptor3d_Curve &     theC3d,
@@ -101,12 +103,12 @@ protected:
     BEG_LENGTH_IND   = 0,
     END_LENGTH_IND   = 1,
     DEFLECTION_IND   = 0
-    };
+  };
 
   enum IValueIndex {
     NB_SEGMENTS_IND  = 0,
     DISTR_TYPE_IND   = 1,
-    CONV_MODE_IND     = 2
+    CONV_MODE_IND    = 2
   };
 
   enum VValueIndex {
index 01bf758c7fbce36c4161c6c080723724236dba97..140c53c51d076aeb4b099581740e41ef521d07b0 100644 (file)
 #ifndef _SMESH_SegmentAroundVertex_0D_HXX_
 #define _SMESH_SegmentAroundVertex_0D_HXX_
 
+#include "SMESH_StdMeshers.hxx"
+
 #include "SMESH_0D_Algo.hxx"
 
 /*!
  * \brief Algorithm existing in order just to enable assignation of
  * StdMeshers_SegmentLengthAroundVertex hypothesis
  */
-class StdMeshers_SegmentAroundVertex_0D: public SMESH_0D_Algo
+class STDMESHERS_EXPORT StdMeshers_SegmentAroundVertex_0D: public SMESH_0D_Algo
 {
 public:
   StdMeshers_SegmentAroundVertex_0D(int hypId, int studyId, SMESH_Gen* gen);
index a1297c815e3650ccdd4a0f51cdb6822f1c62da7d..3584b51db4a9a7c27978a7431431624da944908b 100644 (file)
@@ -29,6 +29,8 @@
 #ifndef _SMESH_SegmentLengthAroundVertex_HXX_
 #define _SMESH_SegmentLengthAroundVertex_HXX_
 
+#include "SMESH_StdMeshers.hxx"
+
 #include "SMESH_Hypothesis.hxx"
 #include "Utils_SALOME_Exception.hxx"
 
@@ -36,7 +38,7 @@
  * \brief This hypothesis specifies length of segments adjacent to the vertex the
  * hypothesis is assigned to
  */
-class StdMeshers_SegmentLengthAroundVertex:public SMESH_Hypothesis
+class STDMESHERS_EXPORT StdMeshers_SegmentLengthAroundVertex:public SMESH_Hypothesis
 {
  public:
   StdMeshers_SegmentLengthAroundVertex(int hypId, int studyId, SMESH_Gen * gen);
diff --git a/src/StdMeshers/StdMeshers_UseExisting_1D2D.cxx b/src/StdMeshers/StdMeshers_UseExisting_1D2D.cxx
new file mode 100644 (file)
index 0000000..0ce7773
--- /dev/null
@@ -0,0 +1,102 @@
+//  SMESH SMESH : 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_UseExisting_1D2D.cxx
+// Module    : SMESH
+// Created   : Fri Oct 20 11:37:07 2006
+// Author    : Edward AGAPOV (eap)
+
+
+#include "StdMeshers_UseExisting_1D2D.hxx"
+
+//=======================================================================
+//function : StdMeshers_UseExisting_1D
+//purpose  : 
+//=======================================================================
+
+StdMeshers_UseExisting_1D::StdMeshers_UseExisting_1D
+                                   (int hypId, int studyId, SMESH_Gen* gen)
+  :SMESH_1D_Algo(hypId, studyId, gen)
+{
+  _name = "UseExisting_1D";
+  _shapeType = (1 << TopAbs_EDGE); // 1 bit per shape type
+}
+
+//=======================================================================
+//function : CheckHypothesis
+//purpose  : 
+//=======================================================================
+
+bool StdMeshers_UseExisting_1D::CheckHypothesis(SMESH_Mesh& ,
+                                                const TopoDS_Shape& ,
+                                                Hypothesis_Status& aStatus)
+{
+  return (aStatus = HYP_OK) == HYP_OK;
+}
+
+//=======================================================================
+//function : Compute
+//purpose  : 
+//=======================================================================
+
+bool StdMeshers_UseExisting_1D::Compute(SMESH_Mesh&, const TopoDS_Shape&)
+{
+  // This algorithm exists to allow mesh generation by mesh edition functions in TUI mode
+  return true;
+}
+
+//=======================================================================
+//function : StdMeshers_UseExisting_2D
+//purpose  : 
+//=======================================================================
+
+StdMeshers_UseExisting_2D::StdMeshers_UseExisting_2D
+                                   (int hypId, int studyId, SMESH_Gen* gen)
+  :SMESH_2D_Algo(hypId, studyId, gen)
+{
+  _name = "UseExisting_2D";
+  _shapeType = (1 << TopAbs_FACE); // 1 bit per shape type
+}
+
+//=======================================================================
+//function : CheckHypothesis
+//purpose  : 
+//=======================================================================
+
+bool StdMeshers_UseExisting_2D::CheckHypothesis(SMESH_Mesh& ,
+                                                const TopoDS_Shape& ,
+                                                Hypothesis_Status& aStatus)
+{
+  return (aStatus = HYP_OK) == HYP_OK;
+}
+
+//=======================================================================
+//function : Compute
+//purpose  : 
+//=======================================================================
+
+bool StdMeshers_UseExisting_2D::Compute(SMESH_Mesh&, const TopoDS_Shape&)
+{
+  // This algorithm exists to allow mesh generation by mesh edition functions in TUI mode
+  return true;
+}
diff --git a/src/StdMeshers/StdMeshers_UseExisting_1D2D.hxx b/src/StdMeshers/StdMeshers_UseExisting_1D2D.hxx
new file mode 100644 (file)
index 0000000..e0eedab
--- /dev/null
@@ -0,0 +1,65 @@
+//  SMESH SMESH : 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_UseExisting_1D2D.hxx
+//  Module : SMESH
+
+#ifndef _SMESH_UseExisting_1D2D_HXX_
+#define _SMESH_UseExisting_1D2D_HXX_
+
+#include "SMESH_StdMeshers.hxx"
+
+#include "SMESH_1D_Algo.hxx"
+#include "SMESH_2D_Algo.hxx"
+
+/*!
+ * \brief 1D and 2D algorithms doing nothing to allow mesh generation
+ * by mesh edition functions in TUI mode
+ */
+class STDMESHERS_EXPORT StdMeshers_UseExisting_2D: public SMESH_2D_Algo
+{
+public:
+  StdMeshers_UseExisting_2D(int hypId, int studyId, SMESH_Gen* gen);
+
+  virtual bool CheckHypothesis(SMESH_Mesh&                          aMesh,
+                               const TopoDS_Shape&                  aShape,
+                               SMESH_Hypothesis::Hypothesis_Status& aStatus);
+
+  virtual bool Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape);
+  
+};
+
+class StdMeshers_UseExisting_1D: public SMESH_1D_Algo
+{
+public:
+  StdMeshers_UseExisting_1D(int hypId, int studyId, SMESH_Gen* gen);
+
+  virtual bool CheckHypothesis(SMESH_Mesh&                          aMesh,
+                               const TopoDS_Shape&                  aShape,
+                               SMESH_Hypothesis::Hypothesis_Status& aStatus);
+
+  virtual bool Compute(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape);
+  
+};
+
+#endif
index 67b4638c60e160ece7ab44374a171ca4112accd8..6171d9f84d7e05e30c34e6aff9a8f1d75ec181fe 100755 (executable)
@@ -37,4 +37,4 @@
  #define STDMESHERSGUI_EXPORT
 #endif
 
-#endif
\ No newline at end of file
+#endif
index 482aeb6be4bd01a31736297b15d0e8833383bb25..460dfb4d54e2848f7162a789e53e2e4317abfeeb 100644 (file)
@@ -31,8 +31,6 @@
 
 #ifdef NO_CAS_CATCH
 #include <Standard_ErrorHandler.hxx>
-#else
-#include "CASCatch.hxx"
 #endif
 
 StdMeshersGUI_DistrPreview::StdMeshersGUI_DistrPreview( QWidget* p, StdMeshers::StdMeshers_NumberOfSegments_ptr h )
@@ -251,18 +249,12 @@ void StdMeshersGUI_DistrPreview::update()
   delete[] y;
   x = y = 0;
 
-#ifdef NO_CAS_CATCH
   try {   
+#ifdef NO_CAS_CATCH
     OCC_CATCH_SIGNALS;
-#else
-  CASCatch_TRY {
 #endif
     replot();
-#ifdef NO_CAS_CATCH
   } catch(Standard_Failure) {
-#else
-  } CASCatch_CATCH(Standard_Failure) {
-#endif
     Handle(Standard_Failure) aFail = Standard_Failure::Caught();
   }
 }
@@ -302,19 +294,13 @@ bool isCorrectArg( const Handle( Expr_GeneralExpression )& expr )
 bool StdMeshersGUI_DistrPreview::init( const QString& str )
 {
   bool parsed_ok = true;
-#ifdef NO_CAS_CATCH
   try {
+#ifdef NO_CAS_CATCH
     OCC_CATCH_SIGNALS;
-#else
-  CASCatch_TRY {
 #endif
     myExpr = ExprIntrp_GenExp::Create();
     myExpr->Process( ( Standard_CString ) str.latin1() );
-#ifdef NO_CAS_CATCH
   } catch(Standard_Failure) {
-#else
-  } CASCatch_CATCH(Standard_Failure) {
-#endif
     Handle(Standard_Failure) aFail = Standard_Failure::Caught();
     parsed_ok = false;
   }
@@ -350,18 +336,12 @@ double StdMeshersGUI_DistrPreview::calc( bool& ok )
   double res = 0.0;
 
   ok = true;
-#ifdef NO_CAS_CATCH
   try {   
+#ifdef NO_CAS_CATCH
     OCC_CATCH_SIGNALS;
-#else
-  CASCatch_TRY {
 #endif
     res = myExpr->Expression()->Evaluate( myVars, myValues );
-#ifdef NO_CAS_CATCH
   } catch(Standard_Failure) {
-#else
-  } CASCatch_CATCH(Standard_Failure) {
-#endif
     Handle(Standard_Failure) aFail = Standard_Failure::Caught();
     ok = false;
     res = 0.0;
@@ -382,22 +362,16 @@ bool StdMeshersGUI_DistrPreview::convert( double& v ) const
   {
   case EXPONENT:
     {
-#ifdef NO_CAS_CATCH
       try { 
+#ifdef NO_CAS_CATCH
         OCC_CATCH_SIGNALS;
-#else
-      CASCatch_TRY {
 #endif
        // in StdMeshers_NumberOfSegments.cc
        // const double PRECISION = 1e-7;
        //
        if(v < -7) v = -7.0;
        v = pow( 10.0, v );
-#ifdef NO_CAS_CATCH
       } catch(Standard_Failure) {
-#else
-      } CASCatch_CATCH(Standard_Failure) {
-#endif
        Handle(Standard_Failure) aFail = Standard_Failure::Caught();
        v = 0.0;
        ok = false;
index 7537e621b041a6c543d889abe4a406a06496a3f8..6b66fa066f56767cf3ab2803b58199a6d0732757 100644 (file)
  */
 //================================================================================
 
-StdMeshersGUI_LayerDistributionParamWdg::StdMeshersGUI_LayerDistributionParamWdg
-( SMESH::SMESH_Hypothesis_ptr hyp,
-  QDialog*                    dlg ): QHGroupBox(), myDlg( dlg )
+StdMeshersGUI_LayerDistributionParamWdg
+::StdMeshersGUI_LayerDistributionParamWdg(SMESH::SMESH_Hypothesis_ptr hyp,
+                                         const QString& theName,
+                                          QDialog* dlg): 
+  QHGroupBox(), myName(theName), myDlg( dlg )
 {
   init();
   set( hyp );
@@ -119,7 +121,7 @@ void StdMeshersGUI_LayerDistributionParamWdg::init()
   // Add to pop-up hypotheses of "Regular_1D" algo
   myHypTypePopup->clear();
   HypothesisData* algoData = SMESH::GetHypothesisData( "Regular_1D" );
-  myHypTypes = SMESH::GetAvailableHypotheses( false, 0 );
+  myHypTypes = SMESH::GetAvailableHypotheses( false, 1 );
   QStringList::const_iterator anIter = myHypTypes.begin();
   for ( ; anIter != myHypTypes.end(); ++anIter )
   {
@@ -204,7 +206,7 @@ void StdMeshersGUI_LayerDistributionParamWdg::onEdit()
   try {
     QWidget* parent = this;
     if ( myDlg ) parent = myDlg->parentWidget();
-    editor->edit( myHyp, parent );
+    editor->edit( myHyp, myName, parent );
   }
   catch(...) {
   }
index cc8d7d80187d79ce4d37e85316ac6906d53475f0..6c6d5f68073df578c5e08dd0ff790ea44bc05f73 100644 (file)
@@ -50,7 +50,8 @@ class STDMESHERSGUI_EXPORT StdMeshersGUI_LayerDistributionParamWdg : public QHGr
 
 public:
   StdMeshersGUI_LayerDistributionParamWdg(SMESH::SMESH_Hypothesis_ptr hyp,
-                                          QDialog*                    dlg);
+                                         const QString& theName,
+                                          QDialog* dlg);
   ~StdMeshersGUI_LayerDistributionParamWdg();
 
   SMESH::SMESH_Hypothesis_var GetHypothesis() { return myHyp; }
@@ -76,6 +77,7 @@ private:
  QPushButton*           myEditButton;
  QPopupMenu*            myHypTypePopup;
  QDialog*               myDlg;
+ QString                myName;
  QString                myParamValue;
 
  QStringList            myHypTypes;
index 02bb83a356cdcb578b31c91ef7f67121d99f86db..f5468b118c6d13995b8fde295f45d8d9f496f788 100644 (file)
@@ -251,8 +251,7 @@ bool StdMeshersGUI_NbSegmentsCreator::readParamsFromHypo( NbSegmentsHypothesisDa
   StdMeshers::StdMeshers_NumberOfSegments_var h =
     StdMeshers::StdMeshers_NumberOfSegments::_narrow( initParamsHypothesis() );
 
-  HypothesisData* data = SMESH::GetHypothesisData( hypType() );
-  h_data.myName = isCreation() && data ? data->Label : "";
+  h_data.myName = hypName();
 
   h_data.myNbSeg = (int) h->GetNumberOfSegments();
   int distr = (int) h->GetDistrType();
index 1be50e5d19a41676b2a34cd10245a54e5c407f80..b92bdeac918a32f53e0d3b3a72ca3573f34770a8 100644 (file)
@@ -244,16 +244,24 @@ namespace {
    */
   //================================================================================
 
-  SUIT_SelectionFilter* filterForShapeOfDim(const int              dim,
-                                            const int              nbSubShapes = 0,
-                                            const TopAbs_ShapeEnum subShapeType = TopAbs_SHAPE,
-                                            const bool             closed = false)
+  SUIT_SelectionFilter* filterForShapeOfDim(const int        dim,
+                                            TopAbs_ShapeEnum subShapeType = TopAbs_SHAPE,
+                                            const int        nbSubShapes = 0,
+                                            bool             closed = false)
   {
     TColStd_MapOfInteger shapeTypes;
     switch ( dim ) {
     case 0: shapeTypes.Add( TopAbs_VERTEX ); break;
-    case 1: shapeTypes.Add( TopAbs_EDGE ); break;
-    case 2: shapeTypes.Add( TopAbs_FACE ); break;
+    case 1:
+      if ( subShapeType == TopAbs_SHAPE ) subShapeType = TopAbs_EDGE;
+      shapeTypes.Add( TopAbs_EDGE );
+      shapeTypes.Add( TopAbs_COMPOUND ); // for a group
+      break;
+    case 2:
+      if ( subShapeType == TopAbs_SHAPE ) subShapeType = TopAbs_FACE;
+      shapeTypes.Add( TopAbs_FACE );
+      shapeTypes.Add( TopAbs_COMPOUND ); // for a group
+      break;
     case 3:
       shapeTypes.Add( TopAbs_SHELL );
       shapeTypes.Add( TopAbs_SOLID );
@@ -380,6 +388,7 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
        StdMeshers::StdMeshers_LocalLength::_narrow( hypothesis() );
 
       h->SetLength( params[0].myValue.toDouble() );
+      h->SetPrecision( params[1].myValue.toDouble() );
     }
     else if( hypType()=="SegmentLengthAroundVertex" )
     {
@@ -512,7 +521,7 @@ bool StdMeshersGUI_StdHypothesisCreator::stdParams( ListOfStdParams& p ) const
   {
     HypothesisData* data = SMESH::GetHypothesisData( hypType() );
     item.myName = tr( "SMESH_NAME" );
-    item.myValue = data ? data->Label : QString();
+    item.myValue = data ? hypName() : QString();
     p.append( item );
     customWidgets()->append(0);
   }
@@ -527,6 +536,9 @@ bool StdMeshersGUI_StdHypothesisCreator::stdParams( ListOfStdParams& p ) const
     item.myName = tr("SMESH_LOCAL_LENGTH_PARAM");
     item.myValue = h->GetLength();
     p.append( item );
+    item.myName = tr("SMESH_LOCAL_LENGTH_PRECISION");
+    item.myValue = h->GetPrecision();
+    p.append( item );
   }
   else if( hypType()=="SegmentLengthAroundVertex" )
   {
@@ -615,7 +627,7 @@ bool StdMeshersGUI_StdHypothesisCreator::stdParams( ListOfStdParams& p ) const
 
     item.myName = tr( "SMESH_LAYERS_DISTRIBUTION" ); p.append( item );
     customWidgets()->append
-      ( new StdMeshersGUI_LayerDistributionParamWdg( h->GetLayerDistribution(), dlg()));
+      ( new StdMeshersGUI_LayerDistributionParamWdg( h->GetLayerDistribution(), hypName(), dlg()));
   }
   else if( hypType()=="ProjectionSource1D" )
   {
@@ -665,7 +677,7 @@ bool StdMeshersGUI_StdHypothesisCreator::stdParams( ListOfStdParams& p ) const
       StdMeshers::StdMeshers_ProjectionSource3D::_narrow( hyp );
 
     item.myName = tr( "SMESH_SOURCE_3DSHAPE" ); p.append( item );
-    customWidgets()->append( newObjRefParamWdg( filterForShapeOfDim( 3 , 6, TopAbs_FACE, true ),
+    customWidgets()->append( newObjRefParamWdg( filterForShapeOfDim( 3, TopAbs_FACE, 6, true ),
                                                h->GetSource3DShape()));
     item.myName = tr( "SMESH_SOURCE_MESH" ); p.append( item );
     customWidgets()->append( newObjRefParamWdg( new SMESH_TypeFilter( MESH ),
@@ -696,12 +708,15 @@ bool StdMeshersGUI_StdHypothesisCreator::stdParams( ListOfStdParams& p ) const
  */
 //================================================================================
 
-void StdMeshersGUI_StdHypothesisCreator::attuneStdWidget( QWidget* w, const int ) const
+void StdMeshersGUI_StdHypothesisCreator::attuneStdWidget (QWidget* w, const int) const
 {
   SMESHGUI_SpinBox* sb = w->inherits( "SMESHGUI_SpinBox" ) ? ( SMESHGUI_SpinBox* )w : 0;
   if( hypType()=="LocalLength" &&  sb )
   {
-    sb->RangeStepAndValidator( VALUE_SMALL, VALUE_MAX, 1.0, 6 );
+    if (sb->name() == tr("SMESH_LOCAL_LENGTH_PARAM"))
+      sb->RangeStepAndValidator( VALUE_SMALL, VALUE_MAX, 1.0, 6 );
+    else if (sb->name() == tr("SMESH_LOCAL_LENGTH_PRECISION"))
+      sb->RangeStepAndValidator( 0.0, 1.0, 0.05, 6 );
   }
   else if( hypType()=="Arithmetic1D" && sb )
   {
index 922119e1491cc7ca1366b8b40fc117e8e73275da..d8cfd1435aeffac338ada1d70cc0bcf349df077b 100644 (file)
@@ -37,6 +37,9 @@ msgstr "Average Length"
 msgid "SMESH_LOCAL_LENGTH_PARAM"
 msgstr "Length"
 
+msgid "SMESH_LOCAL_LENGTH_PRECISION"
+msgstr "Precision"
+
 msgid "SMESH_LOCAL_LENGTH_TITLE"
 msgstr "Hypothesis Construction"
 
index 31f0ef39f261a42a3f26af04a7adb9aa05e8d5f7..9f908c722e2370bee2c03646251659b105942a0d 100644 (file)
@@ -92,7 +92,8 @@ dist_libStdMeshersEngine_la_SOURCES = \
        StdMeshers_LayerDistribution_i.cxx \
        StdMeshers_CompositeSegment_1D_i.cxx \
        StdMeshers_SegmentAroundVertex_0D_i.cxx \
-       StdMeshers_SegmentLengthAroundVertex_i.cxx
+       StdMeshers_SegmentLengthAroundVertex_i.cxx \
+       StdMeshers_UseExisting_1D2D_i.cxx
 
 # additionnal information to compil and link file
 libStdMeshersEngine_la_CPPFLAGS = \
index 4190c1b8c8c91b4f13fd1fb87da1b5bc7547c6a1..f360400ca6893e5349c2107b500cd9c077914f7b 100644 (file)
@@ -48,15 +48,15 @@ using namespace std;
 //=============================================================================
 
 StdMeshers_LocalLength_i::StdMeshers_LocalLength_i( PortableServer::POA_ptr thePOA,
-                                         int                     theStudyId,
-                                         ::SMESH_Gen*            theGenImpl )
-     : SALOME::GenericObj_i( thePOA ), 
+                                                    int                     theStudyId,
+                                                    ::SMESH_Gen*            theGenImpl )
+     : SALOME::GenericObj_i( thePOA ),
        SMESH_Hypothesis_i( thePOA )
 {
   MESSAGE( "StdMeshers_LocalLength_i::StdMeshers_LocalLength_i" );
   myBaseImpl = new ::StdMeshers_LocalLength( theGenImpl->GetANewId(),
-                                       theStudyId,
-                                       theGenImpl );
+                                             theStudyId,
+                                             theGenImpl );
 }
 
 //=============================================================================
@@ -79,7 +79,6 @@ StdMeshers_LocalLength_i::~StdMeshers_LocalLength_i()
  *  Set length
  */
 //=============================================================================
-
 void StdMeshers_LocalLength_i::SetLength( CORBA::Double theLength )
      throw ( SALOME::SALOME_Exception )
 {
@@ -97,6 +96,30 @@ void StdMeshers_LocalLength_i::SetLength( CORBA::Double theLength )
   SMESH::TPythonDump() << _this() << ".SetLength( " << theLength << " )";
 }
 
+//=============================================================================
+/*!
+ *  StdMeshers_LocalLength_i::SetPrecision
+ *
+ *  Set length
+ */
+//=============================================================================
+void StdMeshers_LocalLength_i::SetPrecision( CORBA::Double thePrecision )
+     throw ( SALOME::SALOME_Exception )
+{
+  MESSAGE( "StdMeshers_LocalLength_i::SetPrecision" );
+  ASSERT( myBaseImpl );
+  try {
+    this->GetImpl()->SetPrecision( thePrecision );
+  }
+  catch ( SALOME_Exception& S_ex ) {
+    THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
+                                 SALOME::BAD_PARAM );
+  }
+
+  // Update Python script
+  SMESH::TPythonDump() << _this() << ".SetPrecision( " << thePrecision << " )";
+}
+
 //=============================================================================
 /*!
  *  StdMeshers_LocalLength_i::GetLength
@@ -104,7 +127,6 @@ void StdMeshers_LocalLength_i::SetLength( CORBA::Double theLength )
  *  Get length
  */
 //=============================================================================
-
 CORBA::Double StdMeshers_LocalLength_i::GetLength()
 {
   MESSAGE( "StdMeshers_LocalLength_i::GetLength" );
@@ -112,6 +134,20 @@ CORBA::Double StdMeshers_LocalLength_i::GetLength()
   return this->GetImpl()->GetLength();
 }
 
+//=============================================================================
+/*!
+ *  StdMeshers_LocalLength_i::GetPrecision
+ *
+ *  Get precision
+ */
+//=============================================================================
+CORBA::Double StdMeshers_LocalLength_i::GetPrecision()
+{
+  MESSAGE( "StdMeshers_LocalLength_i::GetPrecision" );
+  ASSERT( myBaseImpl );
+  return this->GetImpl()->GetPrecision();
+}
+
 //=============================================================================
 /*!
  *  StdMeshers_LocalLength_i::GetImpl
@@ -119,7 +155,6 @@ CORBA::Double StdMeshers_LocalLength_i::GetLength()
  *  Get implementation
  */
 //=============================================================================
-
 ::StdMeshers_LocalLength* StdMeshers_LocalLength_i::GetImpl()
 {
   MESSAGE( "StdMeshers_LocalLength_i::GetImpl" );
@@ -139,4 +174,3 @@ CORBA::Boolean StdMeshers_LocalLength_i::IsDimSupported( SMESH::Dimension type )
 {
   return type == SMESH::DIM_1D;
 }
-
index 62c73cbc8695589cfba5d011f139c1c86cd17a5a..a5199780314cc280edd8b9119c8e904f0e08b4db 100644 (file)
@@ -58,8 +58,14 @@ public:
   // Set length
   void SetLength( CORBA::Double theLength )
     throw ( SALOME::SALOME_Exception );
+  // Set precision
+  void SetPrecision( CORBA::Double thePrecision )
+    throw ( SALOME::SALOME_Exception );
+
   // Get length
   CORBA::Double GetLength();
+  // Get precision
+  CORBA::Double GetPrecision();
 
   // Get implementation
   ::StdMeshers_LocalLength* GetImpl();
index 7f164a290e6960c76bec2c1310961437d8b99172..a5390229476285e7fdd480b097273ace420c0417 100644 (file)
@@ -27,6 +27,7 @@
 //  Module : SMESH
 //  $Header$
 
+using namespace std;
 #include "StdMeshers_NumberOfSegments_i.hxx"
 #include "SMESH_Gen_i.hxx"
 #include "SMESH_Gen.hxx"
@@ -37,8 +38,6 @@
 
 #include <TCollection_AsciiString.hxx>
 
-using namespace std;
-
 //=============================================================================
 /*!
  *  StdMeshers_NumberOfSegments_i::StdMeshers_NumberOfSegments_i
@@ -84,7 +83,6 @@ SMESH::double_array* StdMeshers_NumberOfSegments_i::BuildDistributionExpr( const
                                                                           CORBA::Long conv )
   throw ( SALOME::SALOME_Exception )
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::BuildDistribution" );
   ASSERT( myBaseImpl );
   try
   {
@@ -106,7 +104,6 @@ SMESH::double_array* StdMeshers_NumberOfSegments_i::BuildDistributionTab( const
                                                                          CORBA::Long conv )
   throw ( SALOME::SALOME_Exception )
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::BuildDistribution" );
   ASSERT( myBaseImpl );
 
   std::vector<double> tbl( func.length() );
@@ -139,7 +136,6 @@ SMESH::double_array* StdMeshers_NumberOfSegments_i::BuildDistributionTab( const
 void StdMeshers_NumberOfSegments_i::SetNumberOfSegments( CORBA::Long theSegmentsNumber )
      throw ( SALOME::SALOME_Exception )
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::SetNumberOfSegments" );
   ASSERT( myBaseImpl );
   try {
     this->GetImpl()->SetNumberOfSegments( theSegmentsNumber );
@@ -163,7 +159,6 @@ void StdMeshers_NumberOfSegments_i::SetNumberOfSegments( CORBA::Long theSegments
 
 CORBA::Long StdMeshers_NumberOfSegments_i::GetNumberOfSegments()
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::GetNumberOfSegments" );
   ASSERT( myBaseImpl );
   return this->GetImpl()->GetNumberOfSegments();
 }
@@ -176,7 +171,6 @@ CORBA::Long StdMeshers_NumberOfSegments_i::GetNumberOfSegments()
 void StdMeshers_NumberOfSegments_i::SetDistrType(CORBA::Long typ)
   throw ( SALOME::SALOME_Exception )
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::SetDistrType" );
   ASSERT( myBaseImpl );
   try {
     this->GetImpl()->SetDistrType( (::StdMeshers_NumberOfSegments::DistrType) typ );
@@ -197,7 +191,6 @@ void StdMeshers_NumberOfSegments_i::SetDistrType(CORBA::Long typ)
 
 CORBA::Long StdMeshers_NumberOfSegments_i::GetDistrType()
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::GetDistrType" );
   ASSERT( myBaseImpl );
   return this->GetImpl()->GetDistrType();
 }
@@ -213,7 +206,6 @@ CORBA::Long StdMeshers_NumberOfSegments_i::GetDistrType()
 void StdMeshers_NumberOfSegments_i::SetScaleFactor( CORBA::Double theScaleFactor )
      throw ( SALOME::SALOME_Exception )
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::SetScaleFactor" );
   ASSERT( myBaseImpl );
   try {
     this->GetImpl()->SetScaleFactor( theScaleFactor );
@@ -237,7 +229,6 @@ void StdMeshers_NumberOfSegments_i::SetScaleFactor( CORBA::Double theScaleFactor
 CORBA::Double StdMeshers_NumberOfSegments_i::GetScaleFactor()
   throw ( SALOME::SALOME_Exception )
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::GetScaleFactor" );
   ASSERT( myBaseImpl );
   double scale;
   try {
@@ -258,7 +249,6 @@ CORBA::Double StdMeshers_NumberOfSegments_i::GetScaleFactor()
 void StdMeshers_NumberOfSegments_i::SetTableFunction(const SMESH::double_array& table)
   throw ( SALOME::SALOME_Exception )
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::SetTableFunction" );
   ASSERT( myBaseImpl );
   std::vector<double> tbl( table.length() );
   for (int i = 0; i < table.length(); i++)
@@ -282,7 +272,6 @@ void StdMeshers_NumberOfSegments_i::SetTableFunction(const SMESH::double_array&
 SMESH::double_array* StdMeshers_NumberOfSegments_i::GetTableFunction()
   throw ( SALOME::SALOME_Exception )
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::GetTableFunction" );
   ASSERT( myBaseImpl );
   const std::vector<double>* tbl;
   try {
@@ -307,7 +296,6 @@ SMESH::double_array* StdMeshers_NumberOfSegments_i::GetTableFunction()
 void StdMeshers_NumberOfSegments_i::SetExpressionFunction(const char* expr)
   throw ( SALOME::SALOME_Exception )
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::SetExpressionFunction" );
   ASSERT( myBaseImpl );
   try {
     this->GetImpl()->SetExpressionFunction( expr );
@@ -328,7 +316,6 @@ void StdMeshers_NumberOfSegments_i::SetExpressionFunction(const char* expr)
 char* StdMeshers_NumberOfSegments_i::GetExpressionFunction()
   throw ( SALOME::SALOME_Exception )
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::GetExpressionFunction" );
   ASSERT( myBaseImpl );
   const char* expr;
   try {
@@ -349,7 +336,6 @@ char* StdMeshers_NumberOfSegments_i::GetExpressionFunction()
 void StdMeshers_NumberOfSegments_i::SetConversionMode(CORBA::Long conv )
   throw ( SALOME::SALOME_Exception )
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::SetConversionMode" );
   ASSERT( myBaseImpl );
   try {
     this->GetImpl()->SetConversionMode( conv );
@@ -370,7 +356,6 @@ void StdMeshers_NumberOfSegments_i::SetConversionMode(CORBA::Long conv )
 CORBA::Long StdMeshers_NumberOfSegments_i::ConversionMode()
   throw ( SALOME::SALOME_Exception )
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::ConversionMode" );
   ASSERT( myBaseImpl );
   int conv;
   try {
@@ -393,7 +378,6 @@ CORBA::Long StdMeshers_NumberOfSegments_i::ConversionMode()
 
 ::StdMeshers_NumberOfSegments* StdMeshers_NumberOfSegments_i::GetImpl()
 {
-  MESSAGE( "StdMeshers_NumberOfSegments_i::GetImpl" );
   return ( ::StdMeshers_NumberOfSegments* )myBaseImpl;
 }
 
index 2b3055a6c818ca9bed094ae5cc02a94487cea7f3..e3d5f4eebfb9ee535036fb62663102b2d1655b7b 100644 (file)
@@ -26,6 +26,8 @@
 //  Module : SMESH
 //  $Header$
 
+using namespace std;
+
 #include "StdMeshers_ProjectionSource1D_i.hxx"
 
 #include "SMESH_Gen_i.hxx"
@@ -37,8 +39,6 @@
 
 #include "StdMeshers_ObjRefUlils.hxx"
 
-using namespace std;
-
 //=============================================================================
 /*!
  *  StdMeshers_ProjectionSource1D_i::StdMeshers_ProjectionSource1D_i
@@ -74,7 +74,7 @@ StdMeshers_ProjectionSource1D_i::~StdMeshers_ProjectionSource1D_i()
 
 //=============================================================================
   /*!
-   * Sets source <edge> to take a mesh pattern from
+   * Sets source <edge> or a group containing edges to take a mesh pattern from
    */
 //=============================================================================
 
@@ -165,7 +165,7 @@ SMESH::SMESH_Mesh_ptr StdMeshers_ProjectionSource1D_i::GetSourceMesh()
 
 //=============================================================================
 /*!
- * Returns the source edge
+ * Returns the source edge or a group containing edge
  */
 //=============================================================================
 
index 0284ba09bf20439b0104d185f2a5dc65b11304c5..43b9ab0246c746c7514fa774f2931d75e1dd31fe 100644 (file)
@@ -59,13 +59,13 @@ public:
   virtual ~StdMeshers_ProjectionSource1D_i();
 
   /*!
-   * Sets source <edge> to take a mesh pattern from
+   * Sets source <edge> or a group containing edges to take a mesh pattern from
    */
   void SetSourceEdge(GEOM::GEOM_Object_ptr edge)
     throw ( SALOME::SALOME_Exception );
 
   /*!
-   * Returns the source edge
+   * Returns the source edge or a group containing edges
    */
   GEOM::GEOM_Object_ptr GetSourceEdge();
 
diff --git a/src/StdMeshers_I/StdMeshers_UseExisting_1D2D_i.cxx b/src/StdMeshers_I/StdMeshers_UseExisting_1D2D_i.cxx
new file mode 100644 (file)
index 0000000..5f9a95b
--- /dev/null
@@ -0,0 +1,103 @@
+//  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_Projection_3D_i.cxx
+//           Moved here from SMESH_Projection_3D_i.cxx
+//  Author : Paul RASCLE, EDF
+//  Module : SMESH
+//  $Header$
+
+#include "StdMeshers_UseExisting_1D2D_i.hxx"
+
+#include "SMESH_Gen.hxx"
+
+#include "utilities.h"
+
+//=============================================================================
+/*!
+ *  StdMeshers_UseExisting_1D_i::StdMeshers_UseExisting_1D_i
+ */
+//=============================================================================
+
+StdMeshers_UseExisting_1D_i::StdMeshers_UseExisting_1D_i
+                                               ( PortableServer::POA_ptr thePOA,
+                                                 int                     theStudyId,
+                                                 ::SMESH_Gen*            theGenImpl )
+     : SALOME::GenericObj_i( thePOA ), 
+       SMESH_Hypothesis_i( thePOA ), 
+       SMESH_Algo_i( thePOA ),
+       SMESH_1D_Algo_i( thePOA )
+{
+  MESSAGE( "StdMeshers_UseExisting_1D_i::StdMeshers_UseExisting_1D_i" );
+  myBaseImpl = new ::StdMeshers_UseExisting_1D( theGenImpl->GetANewId(),
+                                                theStudyId,
+                                                theGenImpl );
+}
+//-----------------------------------------------------------------------------
+
+StdMeshers_UseExisting_1D_i::~StdMeshers_UseExisting_1D_i()
+{
+  MESSAGE( "StdMeshers_UseExisting_1D_i::~StdMeshers_UseExisting_1D_i" );
+}
+//-----------------------------------------------------------------------------
+
+::StdMeshers_UseExisting_1D* StdMeshers_UseExisting_1D_i::GetImpl()
+{
+  MESSAGE( "StdMeshers_UseExisting_1D_i::GetImpl" );
+  return ( ::StdMeshers_UseExisting_1D* )myBaseImpl;
+}
+
+
+//=============================================================================
+/*!
+ *  StdMeshers_UseExisting_2D_i::StdMeshers_UseExisting_2D_i
+ */
+//=============================================================================
+
+StdMeshers_UseExisting_2D_i::StdMeshers_UseExisting_2D_i
+                                               ( PortableServer::POA_ptr thePOA,
+                                                 int                     theStudyId,
+                                                 ::SMESH_Gen*            theGenImpl )
+     : SALOME::GenericObj_i( thePOA ), 
+       SMESH_Hypothesis_i( thePOA ), 
+       SMESH_Algo_i( thePOA ),
+       SMESH_2D_Algo_i( thePOA )
+{
+  MESSAGE( "StdMeshers_UseExisting_2D_i::StdMeshers_UseExisting_2D_i" );
+  myBaseImpl = new ::StdMeshers_UseExisting_2D( theGenImpl->GetANewId(),
+                                                theStudyId,
+                                                theGenImpl );
+}
+//-----------------------------------------------------------------------------
+
+StdMeshers_UseExisting_2D_i::~StdMeshers_UseExisting_2D_i()
+{
+  MESSAGE( "StdMeshers_UseExisting_2D_i::~StdMeshers_UseExisting_2D_i" );
+}
+//-----------------------------------------------------------------------------
+
+::StdMeshers_UseExisting_2D* StdMeshers_UseExisting_2D_i::GetImpl()
+{
+  MESSAGE( "StdMeshers_UseExisting_2D_i::GetImpl" );
+  return ( ::StdMeshers_UseExisting_2D* )myBaseImpl;
+}
diff --git a/src/StdMeshers_I/StdMeshers_UseExisting_1D2D_i.hxx b/src/StdMeshers_I/StdMeshers_UseExisting_1D2D_i.hxx
new file mode 100644 (file)
index 0000000..6eaf23f
--- /dev/null
@@ -0,0 +1,80 @@
+//  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_UseExisting_1D2D.hxx
+//  Module : SMESH
+//  $Header$
+
+#ifndef _SMESH_UseExisting_1D2D_I_HXX_
+#define _SMESH_UseExisting_1D2D_I_HXX_
+
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
+
+#include "SMESH_1D_Algo_i.hxx"
+#include "SMESH_2D_Algo_i.hxx"
+#include "StdMeshers_UseExisting_1D2D.hxx"
+
+class SMESH_Gen;
+
+/*!
+ * \brief 1D and 2D algorithms doing nothing to allow mesh generation
+ * by mesh edition functions in TUI mode
+ */
+
+class StdMeshers_UseExisting_1D_i:
+  public virtual POA_StdMeshers::StdMeshers_UseExisting_1D,
+  public virtual SMESH_1D_Algo_i
+{
+public:
+  // Constructor
+  StdMeshers_UseExisting_1D_i( PortableServer::POA_ptr thePOA,
+                               int                     theStudyId,
+                               ::SMESH_Gen*            theGenImpl );
+
+  // Destructor
+  virtual ~StdMeshers_UseExisting_1D_i();
+
+  // Get implementation
+  ::StdMeshers_UseExisting_1D* GetImpl();
+};
+
+class StdMeshers_UseExisting_2D_i:
+  public virtual POA_StdMeshers::StdMeshers_UseExisting_2D,
+  public virtual SMESH_2D_Algo_i
+{
+public:
+  // Constructor
+  StdMeshers_UseExisting_2D_i( PortableServer::POA_ptr thePOA,
+                               int                     theStudyId,
+                               ::SMESH_Gen*            theGenImpl );
+
+  // Destructor
+  virtual ~StdMeshers_UseExisting_2D_i();
+
+  // Get implementation
+  ::StdMeshers_UseExisting_2D* GetImpl();
+};
+
+
+#endif
index d5aa8f6fc77b8361a6a6c7c3b3fcb41751eccfe6..ee8fe66ea8b389b1413fabab6d5a2cacf4693028 100644 (file)
@@ -59,6 +59,7 @@
 #include "StdMeshers_Prism_3D_i.hxx"
 #include "StdMeshers_SegmentAroundVertex_0D_i.hxx"
 #include "StdMeshers_CompositeSegment_1D_i.hxx"
+#include "StdMeshers_UseExisting_1D2D_i.hxx"
 
 
 template <class T> class StdHypothesisCreator_i:public HypothesisCreator_i<T>
@@ -145,6 +146,10 @@ STDMESHERS_I_EXPORT
       aCreator = new StdHypothesisCreator_i<StdMeshers_SegmentAroundVertex_0D_i>;
     else if (strcmp(aHypName, "CompositeSegment_1D") == 0)
       aCreator = new StdHypothesisCreator_i<StdMeshers_CompositeSegment_1D_i>;
+    else if (strcmp(aHypName, "UseExisting_1D") == 0)
+      aCreator = new StdHypothesisCreator_i<StdMeshers_UseExisting_1D_i>;
+    else if (strcmp(aHypName, "UseExisting_2D") == 0)
+      aCreator = new StdHypothesisCreator_i<StdMeshers_UseExisting_2D_i>;
     else ;
 
     return aCreator;