Salome HOME
Nerge with PAL/SALOME 2.1.0d PAL_OCC OCC-V2_1_0d
authoradmin <salome-admin@opencascade.com>
Wed, 24 Nov 2004 10:58:03 +0000 (10:58 +0000)
committeradmin <salome-admin@opencascade.com>
Wed, 24 Nov 2004 10:58:03 +0000 (10:58 +0000)
300 files changed:
doc/salome/gui/SMESH/SMESH.log
doc/salome/gui/SMESH/extrusion.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/1d_meshing_algorithm.htm
doc/salome/gui/SMESH/files/2d_(quadrangle)_meshing_algorithm.htm
doc/salome/gui/SMESH/files/2d_meshing_algorithm.htm
doc/salome/gui/SMESH/files/3d_meshing_algorithm.htm
doc/salome/gui/SMESH/files/about_hypotheses.htm
doc/salome/gui/SMESH/files/about_meshes.htm
doc/salome/gui/SMESH/files/about_meshing_algorithms.htm
doc/salome/gui/SMESH/files/about_modification_of_meshes.htm
doc/salome/gui/SMESH/files/adding_nodes_and_elements.htm
doc/salome/gui/SMESH/files/arithmetic_1d.htm
doc/salome/gui/SMESH/files/changing_orientation_of_elements.htm
doc/salome/gui/SMESH/files/constructing_groups_of_specific_elements.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/constructing_meshes.htm
doc/salome/gui/SMESH/files/constructing_submeshes.htm
doc/salome/gui/SMESH/files/creating_groups.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/cutting_quadrangles.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/deflection_1d.htm
doc/salome/gui/SMESH/files/diagonal_iversion_of_elements.htm
doc/salome/gui/SMESH/files/displacing_nodes.htm
doc/salome/gui/SMESH/files/displaying_elements_numbers.htm
doc/salome/gui/SMESH/files/displaying_nodes_numbers.htm
doc/salome/gui/SMESH/files/editing_groups.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/editing_hypotheses.htm
doc/salome/gui/SMESH/files/length_from_edges.htm
doc/salome/gui/SMESH/files/local_length_hypothesis.htm
doc/salome/gui/SMESH/files/max._element_area_hypothesis.htm
doc/salome/gui/SMESH/files/max._element_volume_hypothsis.htm
doc/salome/gui/SMESH/files/merging_nodes.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/non_conform_mesh_allowed_hypothesis.htm
doc/salome/gui/SMESH/files/propagation_of_1d_hypothesis_on_opposite_edges.htm
doc/salome/gui/SMESH/files/reassigning_hypotheses_and_algorithms.htm
doc/salome/gui/SMESH/files/removing_nodes_and_elements.htm
doc/salome/gui/SMESH/files/renumbering_nodes_and_elements.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/rotation.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/scalar_bar_properties.htm
doc/salome/gui/SMESH/files/sewing_meshes.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/smoothing.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/start_and_end_length_hypothesis.htm
doc/salome/gui/SMESH/files/symmetry.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/tetrahedron_(ghs3d)_meshing_algorithm.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/tetrahedron_(netgen)_meshing_algorithm.htm
doc/salome/gui/SMESH/files/translation.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/uniting_a_set_of_triangles.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/uniting_two_triangles.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/using_operations_on_groups.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/view_update.htm
doc/salome/gui/SMESH/files/viewing_mesh_info.htm
doc/salome/gui/SMESH/files/visualization_modes.htm
doc/salome/gui/SMESH/files/visualization_properties.htm
doc/salome/gui/SMESH/image22.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image23.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image30.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image31.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image32.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image34.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image35.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image36.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image38.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image39.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image40.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image41.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image42.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image43.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image44.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image45.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image46.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image47.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image48.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image49.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image50.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image51.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image52.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image53.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image54.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image55.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image57.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image57.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image58.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image59.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image60.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image61.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image61.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image62.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image63.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image63.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image64.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image64.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image65.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image65.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image66.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image66.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image67.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image67.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image68.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image68.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image69.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image69.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image70.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image70.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image71.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image71.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image72.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image72.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image73.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image73.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image74.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image74.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image75.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image75.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image76.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image76.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image77.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image77.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image78.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image78.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image79.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image80.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image80.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image81.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image81.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image82.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image82.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image83.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image84.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image85.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image87.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image88.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image89.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image90.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image91.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image92.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image93.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image94.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image95.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image96.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image97.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image98.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pattern_mapping.htm [new file with mode: 0755]
doc/salome/gui/SMESH/revolution.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whftdata0.htm
doc/salome/gui/SMESH/whdata/whftdata0.xml
doc/salome/gui/SMESH/whdata/whfts.htm
doc/salome/gui/SMESH/whdata/whfts.xml
doc/salome/gui/SMESH/whdata/whfwdata0.htm
doc/salome/gui/SMESH/whdata/whfwdata0.xml
doc/salome/gui/SMESH/whdata/whtdata0.htm
doc/salome/gui/SMESH/whdata/whtdata0.xml
doc/salome/gui/SMESH/whgdata/whlstf0.htm
doc/salome/gui/SMESH/whgdata/whlstf1.htm
doc/salome/gui/SMESH/whgdata/whlstf2.htm
doc/salome/gui/SMESH/whgdata/whlstf3.htm
doc/salome/gui/SMESH/whgdata/whlstf4.htm
doc/salome/gui/SMESH/whgdata/whlstf5.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstf6.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstf7.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl0.htm
doc/salome/gui/SMESH/whgdata/whlstfl1.htm
doc/salome/gui/SMESH/whgdata/whlstfl10.htm
doc/salome/gui/SMESH/whgdata/whlstfl11.htm
doc/salome/gui/SMESH/whgdata/whlstfl12.htm
doc/salome/gui/SMESH/whgdata/whlstfl13.htm
doc/salome/gui/SMESH/whgdata/whlstfl14.htm
doc/salome/gui/SMESH/whgdata/whlstfl15.htm
doc/salome/gui/SMESH/whgdata/whlstfl16.htm
doc/salome/gui/SMESH/whgdata/whlstfl17.htm
doc/salome/gui/SMESH/whgdata/whlstfl18.htm
doc/salome/gui/SMESH/whgdata/whlstfl19.htm
doc/salome/gui/SMESH/whgdata/whlstfl2.htm
doc/salome/gui/SMESH/whgdata/whlstfl20.htm
doc/salome/gui/SMESH/whgdata/whlstfl21.htm
doc/salome/gui/SMESH/whgdata/whlstfl22.htm
doc/salome/gui/SMESH/whgdata/whlstfl23.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl3.htm
doc/salome/gui/SMESH/whgdata/whlstfl4.htm
doc/salome/gui/SMESH/whgdata/whlstfl5.htm
doc/salome/gui/SMESH/whgdata/whlstfl6.htm
doc/salome/gui/SMESH/whgdata/whlstfl7.htm
doc/salome/gui/SMESH/whgdata/whlstfl8.htm
doc/salome/gui/SMESH/whgdata/whlstfl9.htm
doc/salome/gui/SMESH/whgdata/whlstt1.htm
doc/salome/gui/SMESH/whgdata/whlstt10.htm
doc/salome/gui/SMESH/whgdata/whlstt11.htm
doc/salome/gui/SMESH/whgdata/whlstt12.htm
doc/salome/gui/SMESH/whgdata/whlstt13.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstt2.htm
doc/salome/gui/SMESH/whgdata/whlstt3.htm
doc/salome/gui/SMESH/whgdata/whlstt4.htm
doc/salome/gui/SMESH/whgdata/whlstt5.htm
doc/salome/gui/SMESH/whgdata/whlstt6.htm
doc/salome/gui/SMESH/whgdata/whlstt7.htm
doc/salome/gui/SMESH/whgdata/whlstt8.htm
doc/salome/gui/SMESH/whgdata/whlstt9.htm
doc/salome/gui/SMESH/whgdata/whnvl32.htm
doc/salome/gui/SMESH/whskin_info.htm
idl/SMESH_Group.idl
idl/SMESH_Mesh.idl
resources/SMESHCatalog.xml
src/DriverMED/DriverMED_Family.cxx
src/DriverMED/DriverMED_Family.h
src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx
src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx
src/DriverMED/DriverMED_W_SMESHDS_Mesh.h
src/OBJECT/SMESH_Object.cxx
src/OBJECT/SMESH_Object.h
src/SMESH/SMESH_Group.cxx
src/SMESH/SMESH_Group.hxx
src/SMESH/SMESH_Mesh.cxx
src/SMESH/SMESH_Mesh.hxx
src/SMESH/SMESH_MeshEditor.cxx
src/SMESH/SMESH_MeshEditor.hxx
src/SMESH/SMESH_Pattern.cxx
src/SMESH/SMESH_Pattern.hxx
src/SMESHDS/Makefile.in
src/SMESHDS/SMESHDS_Group.cxx
src/SMESHDS/SMESHDS_Group.hxx
src/SMESHDS/SMESHDS_GroupBase.cxx [new file with mode: 0644]
src/SMESHDS/SMESHDS_GroupBase.hxx [new file with mode: 0644]
src/SMESHDS/SMESHDS_GroupOnGeom.cxx [new file with mode: 0644]
src/SMESHDS/SMESHDS_GroupOnGeom.hxx [new file with mode: 0644]
src/SMESHDS/SMESHDS_Mesh.cxx
src/SMESHDS/SMESHDS_Mesh.hxx
src/SMESHDS/SMESHDS_SubMesh.cxx
src/SMESHDS/SMESHDS_SubMesh.hxx
src/SMESHFiltersSelection/Makefile.in
src/SMESHFiltersSelection/SMESH_LogicalFilter.cxx [new file with mode: 0644]
src/SMESHFiltersSelection/SMESH_LogicalFilter.hxx [new file with mode: 0644]
src/SMESHGUI/Makefile.in
src/SMESHGUI/SMESHGUI.cxx
src/SMESHGUI/SMESHGUI.h
src/SMESHGUI/SMESHGUI_AddSubMeshDlg.cxx
src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx
src/SMESHGUI/SMESHGUI_DeleteGroupDlg.h
src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx
src/SMESHGUI/SMESHGUI_ExtrusionDlg.h
src/SMESHGUI/SMESHGUI_FilterDlg.cxx
src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx
src/SMESHGUI/SMESHGUI_GroupDlg.cxx
src/SMESHGUI/SMESHGUI_GroupDlg.h
src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx
src/SMESHGUI/SMESHGUI_GroupOpDlg.h
src/SMESHGUI/SMESHGUI_InitMeshDlg.cxx
src/SMESHGUI/SMESHGUI_InitMeshDlg.h
src/SMESHGUI/SMESHGUI_MeshInfosDlg.cxx
src/SMESHGUI/SMESHGUI_MeshUtils.cxx
src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx
src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx
src/SMESHGUI/SMESHGUI_RevolutionDlg.h
src/SMESHGUI/SMESHGUI_RotationDlg.cxx
src/SMESHGUI/SMESHGUI_RotationDlg.h
src/SMESHGUI/SMESHGUI_SewingDlg.cxx
src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx
src/SMESHGUI/SMESHGUI_SmoothingDlg.h
src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx
src/SMESHGUI/SMESHGUI_SymmetryDlg.h
src/SMESHGUI/SMESHGUI_TranslationDlg.cxx
src/SMESHGUI/SMESHGUI_TranslationDlg.h
src/SMESHGUI/SMESHGUI_VTKUtils.cxx
src/SMESHGUI/SMESH_msg_en.po
src/SMESH_I/Makefile.in
src/SMESH_I/SMESH_Gen_i.cxx
src/SMESH_I/SMESH_Gen_i.hxx
src/SMESH_I/SMESH_Gen_i_1.cxx [new file with mode: 0644]
src/SMESH_I/SMESH_Group_i.cxx
src/SMESH_I/SMESH_Group_i.hxx
src/SMESH_I/SMESH_MEDFamily_i.hxx
src/SMESH_I/SMESH_MEDMesh_i.hxx
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_subMesh_i.cxx
src/SMESH_I/SMESH_subMesh_i.hxx
src/SMESH_SWIG/Makefile.in
src/SMESH_SWIG/SMESH_Partition1_tetra.py
src/SMESH_SWIG/SMESH_fixation.py
src/SMESH_SWIG/SMESH_mechanic.py
src/SMESH_SWIG/SMESH_mechanic_editor.py [new file with mode: 0644]
src/SMESH_SWIG/SMESH_mechanic_tetra.py
src/SMESH_SWIG/cube2geometry.py [new file with mode: 0644]
src/SMESH_SWIG/cube2partition.py [new file with mode: 0644]
src/SMESH_SWIG/cube2pyGibi.py [new file with mode: 0644]
src/SMESH_SWIG/cyl2complementary.py [new file with mode: 0644]
src/SMESH_SWIG/cyl2geometry.py [new file with mode: 0644]
src/SMESH_SWIG/grid17partition.py [new file with mode: 0644]
src/SMESH_SWIG/grid3partition.py [new file with mode: 0644]
src/SMESH_SWIG/grid4partition.py [new file with mode: 0644]
src/SMESH_SWIG/grid4pyGibi.py [new file with mode: 0644]
src/SMESH_SWIG/hole1geometry.py [new file with mode: 0644]
src/SMESH_SWIG/hole1partition.py [new file with mode: 0644]
src/SMESH_SWIG/hole1pyGibi.py [new file with mode: 0644]
src/SMESH_SWIG/hole2pyGibi.py [new file with mode: 0644]
src/SMESH_SWIG/meshpy.py [new file with mode: 0644]
src/StdMeshers/StdMeshers_Hexa_3D.cxx
src/StdMeshers/StdMeshers_MEFISTO_2D.cxx
src/StdMeshers/StdMeshers_Quadrangle_2D.cxx
src/StdMeshers/StdMeshers_Quadrangle_2D.hxx
src/StdMeshers/StdMeshers_Regular_1D.cxx
src/StdMeshers_I/Makefile.in

index 104de30dc98f475db2af64e282e2286181cbc97d..fb02a90f88218556e68501b74244729718a22d84 100755 (executable)
@@ -127,6 +127,7 @@ whskin_frmset01.htm
 smesh_hha.hhk\r
 smesh.hhc\r
 smesh.hhk\r
+extrusion.htm\r
 files\1d_meshing_algorithm.htm\r
 files\2d_(quadrangle)_meshing_algorithm.htm\r
 files\2d_meshing_algorithm.htm\r
@@ -143,13 +144,17 @@ files\aspect_ratio.htm
 files\changing_orientation_of_elements.htm\r
 files\computing_meshes.htm\r
 files\connectivity.htm\r
+files\constructing_groups_of_specific_elements.htm\r
 files\constructing_meshes.htm\r
 files\constructing_submeshes.htm\r
+files\creating_groups.htm\r
+files\cutting_quadrangles.htm\r
 files\deflection_1d.htm\r
 files\diagonal_iversion_of_elements.htm\r
 files\displacing_nodes.htm\r
 files\displaying_elements_numbers.htm\r
 files\displaying_nodes_numbers.htm\r
+files\editing_groups.htm\r
 files\editing_hypotheses.htm\r
 files\importing_and_exporting_meshes.htm\r
 files\introduction_to_smesh.htm\r
@@ -158,20 +163,31 @@ files\length_of_edges.htm
 files\local_length_hypothesis.htm\r
 files\max._element_area_hypothesis.htm\r
 files\max._element_volume_hypothsis.htm\r
+files\merging_nodes.htm\r
 files\minimum_angle.htm\r
 files\non_conform_mesh_allowed_hypothesis.htm\r
 files\number_of_segments_hypothesis.htm\r
 files\propagation_of_1d_hypothesis_on_opposite_edges.htm\r
 files\reassigning_hypotheses_and_algorithms.htm\r
 files\removing_nodes_and_elements.htm\r
+files\renumbering_nodes_and_elements.htm\r
+files\rotation.htm\r
 files\running_smesh_module.htm\r
 files\scalar_bar_properties.htm\r
+files\sewing_meshes.htm\r
 files\shading.htm\r
 files\shrink.htm\r
 files\skew.htm\r
+files\smoothing.htm\r
 files\start_and_end_length_hypothesis.htm\r
+files\symmetry.htm\r
 files\taper.htm\r
+files\tetrahedron_(ghs3d)_meshing_algorithm.htm\r
 files\tetrahedron_(netgen)_meshing_algorithm.htm\r
+files\translation.htm\r
+files\uniting_a_set_of_triangles.htm\r
+files\uniting_two_triangles.htm\r
+files\using_operations_on_groups.htm\r
 files\using_smesh_module.htm\r
 files\view_update.htm\r
 files\viewing_mesh_info.htm\r
@@ -179,69 +195,149 @@ files\visualization_modes.htm
 files\visualization_properties.htm\r
 files\warp.htm\r
 files\wireframe.htm\r
-tetrahedron_(ghs3d)_meshing_algorithm.htm\r
+pattern_mapping.htm\r
+revolution.htm\r
 ehlpdhtm.js\r
 texture_horiz_ltbluebubbles.jpg\r
 smesh.glo\r
 default.css\r
+image96.gif\r
+image77.jpg\r
+image66.jpg\r
+image55.jpg\r
+image85.gif\r
+image74.gif\r
+image44.jpg\r
+image63.gif\r
+image22.jpg\r
+image11.jpg\r
+image41.gif\r
+image97.gif\r
+image78.jpg\r
+image67.jpg\r
+image75.gif\r
+image45.jpg\r
+image34.jpg\r
+image64.gif\r
+image23.jpg\r
+image12.jpg\r
+image31.gif\r
+image98.gif\r
+image87.gif\r
+image68.jpg\r
+image57.jpg\r
+image76.gif\r
+image46.jpg\r
+image35.jpg\r
+image65.gif\r
+image43.gif\r
+image32.gif\r
+image24.jpg\r
+image88.gif\r
+image69.jpg\r
+image58.jpg\r
+image77.gif\r
+image47.jpg\r
+image36.jpg\r
+image66.gif\r
 image44.gif\r
 image33.gif\r
 image22.gif\r
 image25.jpg\r
-image12.gif\r
-image3.jpg\r
+image89.gif\r
+image59.jpg\r
+image78.gif\r
+image48.jpg\r
+image67.gif\r
 image34.gif\r
 image26.jpg\r
-image13.gif\r
+image79.gif\r
+image49.jpg\r
+image38.jpg\r
+image68.gif\r
+image57.gif\r
 image16.jpg\r
-image4.jpg\r
 image46.gif\r
 image35.gif\r
 image27.jpg\r
 image24.gif\r
-image14.gif\r
-image17.jpg\r
-image2.gif\r
+image39.jpg\r
+image69.gif\r
+image3.jpg\r
+pics\exemple.gif\r
 image36.gif\r
 image28.jpg\r
 image25.gif\r
-image15.gif\r
 image18.jpg\r
-image6.jpg\r
-image48.gif\r
+image4.jpg\r
 image37.gif\r
 image29.jpg\r
 image26.gif\r
 note1.gif\r
-image16.gif\r
-image4.gif\r
-image7.jpg\r
-image49.gif\r
+image2.gif\r
 image38.gif\r
 image27.gif\r
-image8.jpg\r
+image80.jpg\r
+image6.jpg\r
 image39.gif\r
 image28.gif\r
+image81.jpg\r
+image70.jpg\r
+image4.gif\r
+image7.jpg\r
+image29.gif\r
+pics\new.jpg\r
+image90.gif\r
+image71.jpg\r
+image60.jpg\r
+image8.jpg\r
+image91.gif\r
+image72.jpg\r
+image61.jpg\r
+image50.jpg\r
+image80.gif\r
 image6.gif\r
 image9.jpg\r
-pics\exemple.gif\r
-image29.gif\r
+image92.gif\r
+image73.jpg\r
+image62.jpg\r
+image51.jpg\r
+image81.gif\r
+image40.jpg\r
+image70.gif\r
 image7.gif\r
 i_blue.jpg\r
+image93.gif\r
+image74.jpg\r
+image63.jpg\r
+image52.jpg\r
+image82.gif\r
+image41.jpg\r
+image71.gif\r
+image30.jpg\r
 image8.gif\r
+image94.gif\r
+image75.jpg\r
+image64.jpg\r
+image53.jpg\r
+image83.gif\r
+image42.jpg\r
+image72.gif\r
+image61.gif\r
+image31.jpg\r
 image9.gif\r
-pics\new.jpg\r
 image20.jpg\r
+image95.gif\r
+image76.jpg\r
+image65.jpg\r
+image54.jpg\r
+image84.gif\r
+image43.jpg\r
+image73.gif\r
+image32.jpg\r
 image21.jpg\r
 image10.jpg\r
 image40.gif\r
-image11.jpg\r
-image41.gif\r
-image12.jpg\r
-image31.gif\r
-image43.gif\r
-image32.gif\r
-image24.jpg\r
 smesh.ppf\r
 default_ns.css\r
 whdata\whtdata0.xml\r
@@ -265,6 +361,7 @@ whgdata\whlstt9.htm
 whgdata\whlstt10.htm\r
 whgdata\whlstt11.htm\r
 whgdata\whlstt12.htm\r
+whgdata\whlstt13.htm\r
 whgdata\whlsti0.htm\r
 whgdata\whlstfl0.htm\r
 whgdata\whlstfl1.htm\r
@@ -289,11 +386,15 @@ whgdata\whlstfl19.htm
 whgdata\whlstfl20.htm\r
 whgdata\whlstfl21.htm\r
 whgdata\whlstfl22.htm\r
+whgdata\whlstfl23.htm\r
 whgdata\whlstf0.htm\r
 whgdata\whlstf1.htm\r
 whgdata\whlstf2.htm\r
 whgdata\whlstf3.htm\r
 whgdata\whlstf4.htm\r
+whgdata\whlstf5.htm\r
+whgdata\whlstf6.htm\r
+whgdata\whlstf7.htm\r
 whgdata\whlstg0.htm\r
 smesh.htm\r
 smesh_csh.htm\r
diff --git a/doc/salome/gui/SMESH/extrusion.htm b/doc/salome/gui/SMESH/extrusion.htm
new file mode 100755 (executable)
index 0000000..45a64ee
--- /dev/null
@@ -0,0 +1,184 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Extrusion</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1041>\r
+<meta name=layout-width content=765>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 27px; height: 24px;}\r
+img_whs3 {border-style: none; border: none; width: 523px; height: 307px;}\r
+ul.whs4 {list-style: disc;}\r
+table.whs5 {x-cell-content-align: top; width: 100%; border-spacing: 0px; border-spacing: 0px;}\r
+col.whs6 {width: 50%;}\r
+tr.whs7 {x-cell-content-align: top;}\r
+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;}\r
+img_whs9 {border-style: none; border: none; width: 350px; height: 201px;}\r
+td.whs10 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nExtrusion");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Extrusion</h1>\r
+\r
+<p>Extrusion is a type of surface meshing by generation from discretized \r
+ lines. It is used to build mesh elements of plus one dimension than the \r
+ swept ones. Each swept 1D element produces one or more quadrangles (or \r
+ triangles if one node of a rotated element lays on the revolution axis).</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To use extrusion:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Extrusion </B></span>item \r
+ or click <img src="image91.gif" width="27px" height="24px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
+ shall appear:</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="image90.gif" width="523px" height="307px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. In this dialog box you should select </p>\r
+\r
+<ul type="disc" class="whs4">\r
+       \r
+       <li class=kadov-p><p class="whs1">the type of elements \r
+ which will be extruded (1D or 2D),</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">specify the IDs of \r
+ the elements which will be extruded by selecting them in the 3D viewer \r
+ or select the whole mesh or submesh,</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">specify the vector \r
+ along which the elements will be extruded,</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">number of steps</p></li>\r
+</ul>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">3. 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 class=TODO\r
+       style="margin-left: 40px;">&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs5">\r
+<col class="whs6">\r
+<col class="whs6">\r
+\r
+<tr valign="top" class="whs7">\r
+<td width="50%" class="whs8">\r
+<p><img src="image77.jpg" width="350px" height="201px" border="0" class="img_whs9"></td>\r
+<td width="50%" class="whs10">\r
+<p><img src="image76.jpg" width="350px" height="201px" border="0" class="img_whs9"></td></tr>\r
+</table>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class=TODO>&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
+\r
+</html>\r
index 121b0cc94d4751717e6c494c5207ca1a780087c4..51d954a9fa9e847f006bd5ff8f97d9c28b5b1c7d 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=397>\r
-<meta name=layout-width content=547>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -36,7 +36,6 @@ if (navigator.appName !="Netscape")
 <!--\r
 img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
 p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 22px; height: 22px;}\r
 -->\r
 </style>\r
 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
@@ -111,10 +110,9 @@ else
 \r
 <p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Create Algorithms \r
- &gt;</B></span> <img src="../image16.gif" width="22px" height="22px" border="0" class="img_whs3"> <span style="font-weight: bold;"><B>Wire discretization \r
- </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
+<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
+ the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
+ select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index 79e49f6612f28895482c0afdfcc90a5910cf08e9..4c605aadce7ab84098769517e865e1ec013c6220 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=397>\r
-<meta name=layout-width content=547>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -36,7 +36,6 @@ if (navigator.appName !="Netscape")
 <!--\r
 img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
 p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 22px; height: 21px;}\r
 -->\r
 </style>\r
 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
@@ -111,9 +110,9 @@ else
 \r
 <p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Create Algorithms \r
&gt; <img src="../image14.gif" width="22px" height="21px" border="0" class="img_whs3"> Quadrangle (Mapping) </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
+<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
+ the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index b9701bd2cbfd006b097714826b28eae61595ef2a..d7fe96efe85a7c7f29be0d5629942d7a136ec19c 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=397>\r
-<meta name=layout-width content=553>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -36,7 +36,6 @@ if (navigator.appName !="Netscape")
 <!--\r
 img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
 p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 22px; height: 22px;}\r
 -->\r
 </style>\r
 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
@@ -111,10 +110,9 @@ else
 \r
 <p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Create Algorithms \r
- &gt;</B></span> <img src="../image15.gif" width="22px" height="22px" border="0" class="img_whs3"> <span style="font-weight: bold;"><B>Triangle \r
- (Mefisto) </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
+<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
+ the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
+ select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index 47fbbb71f3c0d308cfe828663cf4476ac8529fdf..dc0851a19ff75d5f0b24b04c649701051ee7c4d3 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=397>\r
-<meta name=layout-width content=547>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -36,7 +36,6 @@ if (navigator.appName !="Netscape")
 <!--\r
 img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
 p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 23px; height: 21px;}\r
 -->\r
 </style>\r
 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
@@ -111,11 +110,9 @@ else
 \r
 <p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Create Algorithms \r
- &gt;</B></span> <img src="../image13.gif" width="23px" height="21px" border="0" class="img_whs3"> <span style="font-weight: bold;"><B>Hexahedron \r
- (i,j,k) &nbsp;</B></span>and \r
- click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
+<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
+ the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
+ select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index 950f1d55747bc4430afbec8700ce8abf606c9228..4777bbd4c64fde66f1f7ce89027f5da6a7c6108c 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=1162>\r
-<meta name=layout-width content=473>\r
+<meta name=layout-height content=1305>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -37,9 +37,12 @@ if (navigator.appName !="Netscape")
 img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
 ul.whs2 {list-style: disc;}\r
 p.whs3 {background-color: Transparent; color: #000000;}\r
-p.whs4 {font-style: italic; font-size: 12pt; font-family: 'Arial Black', sans-serif;}\r
-img_whs5 {border-style: none; border: none; width: 22px; height: 22px;}\r
-img_whs6 {border-style: none; border: none; width: 448px; height: 367px;}\r
+ol.whs4 {list-style: disc;}\r
+p.whs5 {font-style: italic; font-size: 12pt; font-family: 'Arial Black', sans-serif;}\r
+img_whs6 {border-style: none; border: none; width: 22px; height: 22px;}\r
+p.whs7 {margin-left: 40px;}\r
+img_whs8 {border-style: none; border: none; width: 448px; height: 367px;}\r
+img_whs9 {border-style: none; border: none; width: 271px; height: 124px;}\r
 -->\r
 </style>\r
 <script type="text/javascript" language="JavaScript">\r
@@ -156,7 +159,7 @@ else
  meshing of <span style="font-weight: bold;"><B>faces</B></span>: </p></li>\r
 </ul>\r
 \r
-<ul type="disc" class="whs2">\r
+<ol type="disc" class="whs4">\r
        \r
        <ul type="disc" class="whs2">\r
                \r
@@ -166,7 +169,7 @@ else
                \r
                <li class=kadov-p><p class="whs3"><a href="non_conform_mesh_allowed_hypothesis.htm">Non conform mesh allowed</a></p></li>\r
        </ul>\r
-</ul>\r
+</ol>\r
 \r
 <ul type="disc" class="whs2">\r
        \r
@@ -200,23 +203,36 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs4">To create a hypothesis \r
- </p>\r
+<p class="whs5"><a name=CreateHyp></a>To \r
create a hypothesis </p>\r
 \r
 <p><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">In the main menu select</font></span><span style="font-style: italic;\r
        font-size: 12pt;\r
        font-family: 'Arial Black', sans-serif;"> <font size=3 style="font-size:12pt;"><I></I></font></span><span style="font-weight: bold;"><B>Hypotheses \r
- &gt; </B></span><img src="../image7.gif" width="22px" height="22px" border="0" class="img_whs5"> <span style="font-weight: bold;"><B>Create hypotheses</B></span></p>\r
+ &gt; </B></span><img src="../image7.gif" width="22px" height="22px" border="0" class="img_whs6"> <span style="font-weight: bold;"><B>Create hypotheses</B></span></p>\r
 \r
 <p>The following menu will appear:</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="../image21.jpg" width="448px" height="367px" border="0" class="img_whs6"></p>\r
+<p class="whs7"><img src="../image21.jpg" width="448px" height="367px" border="0" class="img_whs8"></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>Select one of the menu items and click <span style="font-weight: bold;"><B>Create</B></span>. \r
+ A data input dialog box corresponding to the chosen type of the hypotheses \r
+ will appear. The created hypotheses shall appear in the Object Browser \r
+ under the <span style="font-weight: bold;"><B>Hypotheses </B></span>folder:</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p>Select one of the menu items and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs7"><img src="../image42.jpg" width="271px" height="124px" border="0" class="img_whs9"></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index f49643139052c39978655ca4d3ff6ddd039d844e..d846be3a73ea0d2b549a632e16d4c083c15d7995 100755 (executable)
@@ -120,7 +120,7 @@ else
        \r
        <li class=kadov-p><p>create your own meshes using the SMESH functions \r
  destined for modification of generated meshes. More about this functionality \r
- of SMESH <a href="about_modification_of_meshes.htm">see here</a>. </p></li>\r
+ of SMESH see in the chapter "Modifying meshes". </p></li>\r
 </ul>\r
 \r
 <p>&nbsp;</p>\r
index 3315a4a8919cc5b139bc9bdd1a94552b41cd5033..6024897f75d38216b5df7db79774ea649a34924a 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=891>\r
-<meta name=layout-width content=486>\r
+<meta name=layout-height content=1028>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -36,11 +36,12 @@ if (navigator.appName !="Netscape")
 <!--\r
 img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
 ul.whs2 {list-style: disc;}\r
-ol.whs3 {list-style: disc;}\r
-ul.whs4 {list-style: circle;}\r
-p.whs5 {font-style: italic; font-size: 12pt; font-family: 'Arial Black', sans-serif;}\r
-img_whs6 {border-style: none; border: none; width: 23px; height: 22px;}\r
+ul.whs3 {list-style: circle;}\r
+p.whs4 {font-style: italic; font-size: 12pt; font-family: 'Arial Black', sans-serif;}\r
+img_whs5 {border-style: none; border: none; width: 23px; height: 22px;}\r
+p.whs6 {margin-left: 40px;}\r
 img_whs7 {border-style: none; border: none; width: 464px; height: 324px;}\r
+img_whs8 {border-style: none; border: none; width: 270px; height: 99px;}\r
 -->\r
 </style>\r
 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
@@ -118,7 +119,7 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<ol type="disc" class="whs3">\r
+<ul type="disc" class="whs2">\r
        \r
        <ul type="disc" class="whs2">\r
                \r
@@ -127,7 +128,7 @@ else
                        class=kadov-p><p><a href="1d_meshing_algorithm.htm">Wire discretization \r
  meshing algorithm</a></p></li>\r
        </ul>\r
-</ol>\r
+</ul>\r
 \r
 <p>&nbsp;</p>\r
 \r
@@ -138,9 +139,9 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<ol type="disc" class="whs3">\r
+<ul type="disc" class="whs2">\r
        \r
-       <ul type="circle" class="whs4">\r
+       <ul type="circle" class="whs3">\r
                \r
                <li class=kadov-p><p><a href="2d_meshing_algorithm.htm">Triangle \r
  meshing algorithm</a></p></li>\r
@@ -148,7 +149,7 @@ else
                <li class=kadov-p><p><a href="2d_(quadrangle)_meshing_algorithm.htm">Quadrangle \r
  meshing algorithm</a></p></li>\r
        </ul>\r
-</ol>\r
+</ul>\r
 \r
 <p>&nbsp;</p>\r
 \r
@@ -160,9 +161,9 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<ol type="disc" class="whs3">\r
+<ul type="disc" class="whs2">\r
        \r
-       <ul type="circle" class="whs4">\r
+       <ul type="circle" class="whs3">\r
                \r
                <li class=kadov-p><p><a href="3d_meshing_algorithm.htm">Hexahedron \r
  meshing algorithm</a></p></li>\r
@@ -170,29 +171,35 @@ else
                <li class=kadov-p><p><a href="tetrahedron_(netgen)_meshing_algorithm.htm">Tetrahedron \r
  meshing algorithm</a></p></li>\r
        </ul>\r
-</ol>\r
+</ul>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs5"><span style="font-style: italic;\r
-       font-size: 12pt;\r
-       font-family: 'Arial Black', sans-serif;"><font size=3 style="font-size:12pt;"><I>To apply a meshing algorithm \r
- </I></font></span></p>\r
+<p class="whs4"><a name=ApplyAlgo></a>To \r
+ apply a meshing algorithm </p>\r
 \r
 <p><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">In the main menu select</font></span><span style="font-style: italic;\r
        font-size: 12pt;\r
        font-family: 'Arial Black', sans-serif;"> <font size=3 style="font-size:12pt;"><I></I></font></span><span style="font-weight: bold;"><B>Hypotheses \r
- &gt; </B></span><img src="../image8.gif" width="23px" height="22px" border="0" class="img_whs6"> <span style="font-weight: bold;"><B>Create Algorithms</B></span></p>\r
+ &gt; </B></span><img src="../image8.gif" width="23px" height="22px" border="0" class="img_whs5"> <span style="font-weight: bold;"><B>Create Algorithms</B></span></p>\r
 \r
 <p>The following menu will appear:</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="../image20.jpg" width="464px" height="324px" border="0" class="img_whs7"></p>\r
+<p class="whs6"><img src="../image20.jpg" width="464px" height="324px" border="0" class="img_whs7"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p>Select one of the menu items and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
+<p>Select one of the menu items and click <span style="font-weight: bold;"><B>Create</B></span>. \r
+ The created algorithms shall appear in the Object Browser under the <span \r
+ style="font-weight: bold;"><B>Algorithms </B></span>folder:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs6"><img src="../image43.jpg" width="270px" height="99px" border="0" class="img_whs8"></p>\r
+\r
+<p class="whs6">&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index 9e31e0325adbbcd634feba53f9f9ca4f27729881..a942834fa7b1dc4ce2177550fadc23ec771b34c1 100755 (executable)
@@ -18,9 +18,9 @@
 <meta name=generator-minor-version content=1>\r
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
-<meta name=page-count content=0>\r
-<meta name=layout-height content=0>\r
-<meta name=layout-width content=0>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -69,8 +69,7 @@ if (window.gbWhTopic)
 {\r
        if (window.addTocInfo)\r
        {\r
-       addTocInfo("SMESH module\nModifying meshes\nAbout modification of meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
 \r
        }\r
        if (window.writeBtnStyle)\r
@@ -94,7 +93,7 @@ else
 </script>\r
 <h1>About modification of meshes</h1>\r
 \r
-<p>Type topic text here.</p>\r
+<p>&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index 687ae3129fb957eb3035c0d8a7ef40637387c1f2..faf7a986702a79f8de3290451b1374cd32e203e4 100755 (executable)
@@ -18,9 +18,9 @@
 <meta name=generator-minor-version content=1>\r
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
-<meta name=page-count content=0>\r
-<meta name=layout-height content=0>\r
-<meta name=layout-width content=0>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=3638>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -32,6 +32,25 @@ if (navigator.appName !="Netscape")
 {   document.write("<link rel='stylesheet' href='../default.css'>");}\r
 //-->\r
 </script>\r
+<style type="text/css">\r
+<!--\r
+ul.whs1 {list-style: disc;}\r
+p.whs2 {font-weight: bold;}\r
+p.whs3 {margin-left: 40px;}\r
+img_whs4 {border-style: none; border: none; width: 157px; height: 132px;}\r
+img_whs5 {border-style: none; border: none; width: 250px; height: 127px;}\r
+img_whs6 {border-style: none; border: none; width: 350px; height: 181px;}\r
+img_whs7 {border-style: none; border: none; width: 250px; height: 170px;}\r
+img_whs8 {border-style: none; border: none; width: 350px; height: 183px;}\r
+img_whs9 {border-style: none; border: none; width: 250px; height: 194px;}\r
+img_whs10 {border-style: none; border: none; width: 350px; height: 182px;}\r
+h4.whs11 {margin-left: 40px;}\r
+img_whs12 {border-style: none; border: none; width: 250px; height: 195px;}\r
+img_whs13 {border-style: none; border: none; width: 250px; height: 171px;}\r
+img_whs14 {border-style: none; border: none; width: 350px; height: 184px;}\r
+img_whs15 {border-style: none; border: none; width: 250px; height: 172px;}\r
+-->\r
+</style>\r
 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
 function reDo() {\r
@@ -94,7 +113,157 @@ else
 </script>\r
 <h1>Adding nodes and elements</h1>\r
 \r
-<p>Type topic text here.</p>\r
+<p>In SMESH you can add to your mesh different elements such as:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<ul type="disc" class="whs1">\r
+       \r
+       <li class=kadov-p><p class="whs2">Nodes</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs2">Edges</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs2">Triangles</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs2">Quadrangles</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs2">Tetrahedrons</p></li>\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Hexahedrons</B></span></p></li>\r
+</ul>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To add a node or an element to your mesh:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs3">1. Select your mesh in the Object Browser \r
+ or in the 3D viewer.</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">2. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Add </B></span>item, \r
+ the following associated submenu will appear:</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image73.gif" width="157px" height="132px" border="0" class="img_whs4"></p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">From this submenu select the type of element \r
+ which you would like to add to your mesh. The corresponding dialog box \r
+ shall appear.</p>\r
+\r
+<h4>Adding nodes</h4>\r
+\r
+<p class="whs3"><img src="../image60.jpg" width="250px" height="127px" border="0" class="img_whs5"></p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">In this dialog box set coordinates for your \r
+ node in the <span style="font-weight: bold;"><B>Coordinates </B></span>set of \r
+ fields and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your node will be created:</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image66.jpg" width="350px" height="181px" border="0" class="img_whs6"></p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<h4>Adding edges</h4>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image65.jpg" width="250px" height="170px" border="0" class="img_whs7"></p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">In this dialog box specify the nodes which \r
+ will form your edge by selecting them in the 3D viewer with pressed Shift \r
+ button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your edge will be created:</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image67.jpg" width="350px" height="183px" border="0" class="img_whs8"></p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<h4>Adding triangles</h4>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image64.jpg" width="250px" height="194px" border="0" class="img_whs9"></p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">In this dialog box specify the nodes which \r
+ will form your triangle by selecting them in the 3D viewer with pressed \r
+ Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your triangle will \r
+ be created:</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image68.jpg" width="350px" height="182px" border="0" class="img_whs10"></p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<h4>Adding quadrangles</h4>\r
+\r
+<h4 class="whs11"><img src="../image63.jpg" width="250px" height="195px" border="0" class="img_whs12"></h4>\r
+\r
+<p class="whs3">In this dialog box specify the nodes which \r
+ will form your quadrangle by selecting them in the 3D viewer with pressed \r
+ Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your quadrangle will \r
+ be created:</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image69.jpg" width="350px" height="183px" border="0" class="img_whs8"></p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<h4>Adding tetrahedrons</h4>\r
+\r
+<p class="whs3"><img src="../image62.jpg" width="250px" height="171px" border="0" class="img_whs13"></p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">In this dialog box specify the nodes which \r
+ will form your tetrahedron by selecting them in the 3D viewer with pressed \r
+ Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your tetrahedron will \r
+ be created:</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image70.jpg" width="350px" height="184px" border="0" class="img_whs14"></p>\r
+\r
+<h4>Adding hexahedrons</h4>\r
+\r
+<p class="whs3"><img src="../image61.jpg" width="250px" height="172px" border="0" class="img_whs15"></p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">In this dialog box specify the nodes which \r
+ will form your hexahedron by selecting them in the 3D viewer with pressed \r
+ Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your hexahedron will \r
+ be created:</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image71.jpg" width="350px" height="184px" border="0" class="img_whs14"></p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index c4c265384e1772ca9328519df0dd29c8d5c75800..36ad79aa6739202e05daede9636c08a8de62f7c4 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=690>\r
-<meta name=layout-width content=402>\r
+<meta name=layout-height content=595>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -129,10 +129,10 @@ else
 \r
 <p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Creat\r
- Hypotheses </B></span>menu select <span style="font-weight: bold;"><B>Arithmetic \r
- 1D </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>. The \r
following dialog box will appear:</p>\r
+<p class="whs2">Select this hypothesis in <a href="about_hypotheses.htm#CreateHyp">th\r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>. The following dialog \r
+ box will appear:</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
index 832aa0d44366c9b004abf55148eb483276eaa62a..f51e872940a8437506f4218404dbfa74715b746a 100755 (executable)
@@ -18,9 +18,9 @@
 <meta name=generator-minor-version content=1>\r
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
-<meta name=page-count content=0>\r
-<meta name=layout-height content=0>\r
-<meta name=layout-width content=0>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=870>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -32,6 +32,15 @@ if (navigator.appName !="Netscape")
 {   document.write("<link rel='stylesheet' href='../default.css'>");}\r
 //-->\r
 </script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 21px; height: 21px;}\r
+img_whs3 {border-style: none; border: none; width: 292px; height: 358px;}\r
+ul.whs4 {list-style: disc;}\r
+p.whs5 {margin-left: 40px; font-weight: normal;}\r
+-->\r
+</style>\r
 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
 function reDo() {\r
@@ -94,7 +103,63 @@ else
 </script>\r
 <h1>Changing orientation of elements</h1>\r
 \r
-<p>Type topic text here.</p>\r
+<p>Orientation of an element is changed by reverting the order of nodes \r
+ of the selected elements.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To change orientation of elements:</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">1. Display a mesh or a submesh in the 3D \r
+ viewer.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. In the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu select the <span style="font-weight: bold;"><B>Orientation </B></span>item \r
+ or click <img src="../image79.gif" width="21px" height="21px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
+ will appear:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image78.gif" width="292px" height="358px" border="0" class="img_whs3"></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<ul type="disc" class="whs4">\r
+       \r
+       <li class=kadov-p><p class="whs5"><span \r
+ style="font-weight: bold;"><B>The main list </B></span><span>shall contain the \r
+ elements which will be reoriented.</span> You can click on an element \r
+ in the 3D viewer and it will be highlighted. After that click the <span \r
+ style="font-weight: bold;"><B>Add </B></span>button and the ID of this element \r
+ will be added to the list. To remove a selected element or elements from \r
+ the list click the <span style="font-weight: bold;"><B>Remove </B></span>button. \r
+ The <span style="font-weight: bold;"><B>Sort </B></span>button allows to sort \r
+ the list of elements IDs. The <span style="font-weight: bold;"><B>Set filter \r
+ </B></span>button allows to apply a definite filter to selection of elements \r
+ of your group.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs5"><span \r
+ style="font-weight: bold;"><B>Apply to all </B></span><span>radio button allows \r
+ to modify the orientation of all elements of the currently displayed mesh \r
+ or submesh.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs5"><span \r
+ style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
+ choose a submesh or an existing group whose elements will be automatically \r
+ added to the list.</p></li>\r
+</ul>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
+ the operation.</p>\r
+\r
+<p>&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
diff --git a/doc/salome/gui/SMESH/files/constructing_groups_of_specific_elements.htm b/doc/salome/gui/SMESH/files/constructing_groups_of_specific_elements.htm
new file mode 100755 (executable)
index 0000000..6ee2194
--- /dev/null
@@ -0,0 +1,126 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Constructing groups of specific elements</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nGrouping elements\nConstructing groups of specific elements");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Constructing groups of specific elements</h1>\r
+\r
+<p>In SMESH you can easily construct groups of specific elements (nodes, \r
+ edges or faces) which will be taken from a definite submesh.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To construct a group of specific elements:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">Right-click on a submesh in the Object Browser \r
+ and choose the <span style="font-weight: bold;"><B>Construct Group </B></span>item \r
+ or select your submesh in the Object Browser and in the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span>menu chose the <span style="font-weight: bold;"><B>Construct Group \r
+ </B></span>item. SMESH will construct several groups consisting of elements \r
+ of the definite type: nodes, edges or faces</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
index 2b2ca9544ae42e739427ecd8da736f2e2655add0..e4a680d66ace919e32e62918cc8cc20e7e26e6b3 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=653>\r
-<meta name=layout-width content=700>\r
+<meta name=layout-height content=966>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -40,6 +40,7 @@ p.whs3 {margin-left: 40px;}
 img_whs4 {border-style: none; border: none; width: 22px; height: 24px;}\r
 p.whs5 {margin-left: 80px;}\r
 img_whs6 {border-style: none; border: none; width: 304px; height: 305px;}\r
+img_whs7 {border-style: none; border: none; width: 268px; height: 161px;}\r
 -->\r
 </style>\r
 <script type="text/javascript" language="JavaScript">\r
@@ -146,7 +147,32 @@ else
 \r
 <p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs3">In the Object Browser the structure of the \r
+ new mesh will be displayed as follows:</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image44.jpg" width="268px" height="161px" border="0" class="img_whs7"></p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">It contains:</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs2">\r
+       \r
+       <li class=kadov-p><p class="whs3">a reference to the \r
+ geometrical object on the basis of which the mesh has been constructed;</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
+ hypotheses </B></span>folder containing the references to the hypotheses applied \r
+ to the construction of the mesh;</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
+ algorithms </B></span>folder containing the references to the algorithms applied \r
+ to the construction of the mesh.</p></li>\r
+</ul>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index b12c2c105e0cdf25c436870448acff0b66ec0ae4..8203658404f2eee2b860f4bf85f7e4fcaea17ede 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=688>\r
-<meta name=layout-width content=700>\r
+<meta name=layout-height content=1175>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -40,6 +40,7 @@ p.whs3 {margin-left: 40px;}
 img_whs4 {border-style: none; border: none; width: 27px; height: 25px;}\r
 p.whs5 {margin-left: 80px;}\r
 img_whs6 {border-style: none; border: none; width: 304px; height: 339px;}\r
+img_whs7 {border-style: none; border: none; width: 299px; height: 221px;}\r
 -->\r
 </style>\r
 <script type="text/javascript" language="JavaScript">\r
@@ -149,6 +150,41 @@ else
 \r
 <p class="whs5">&nbsp;</p>\r
 \r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs3">In the Object Browser the structure of the \r
+ new submesh will be displayed as follows:</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image45.jpg" width="299px" height="221px" border="0" class="img_whs7"></p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">It contains:</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs2">\r
+       \r
+       <li class=kadov-p><p class="whs3">a reference to the \r
+ geometrical object on the basis of which the submesh has been constructed;</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
+ hypotheses </B></span>folder containing the references to the hypotheses applied \r
+ to the construction of the submesh;</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
+ algorithms </B></span>folder containing the references to the algorithms applied \r
+ to the construction of the submesh.</p></li>\r
+</ul>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
 if (window.writeIntopicBar)\r
diff --git a/doc/salome/gui/SMESH/files/creating_groups.htm b/doc/salome/gui/SMESH/files/creating_groups.htm
new file mode 100755 (executable)
index 0000000..b5ea848
--- /dev/null
@@ -0,0 +1,230 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Creating groups</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1562>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {font-weight: bold;}\r
+img_whs2 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs3 {margin-left: 40px;}\r
+p.whs4 {font-weight: normal;}\r
+p.whs5 {font-weight: bold; margin-left: 40px;}\r
+img_whs6 {border-style: none; border: none; width: 200px; height: 374px;}\r
+p.whs7 {margin-left: 40px; font-weight: normal;}\r
+ul.whs8 {list-style: disc;}\r
+p.whs9 {margin-left: 40px; font-weight: bold;}\r
+p.whs10 {margin-left: 80px;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nGrouping elements\nCreating groups");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Creating groups</h1>\r
+\r
+<p class="whs1"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> <span style="font-weight: normal;">In \r
+ SMESH you can create groups of elements of different types and having \r
+ definite properties.</span></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class=TODO>To create a group of elements:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs3">1. In the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span><span>menu select </span><span style="font-weight: bold;"><B>Create \r
+ Group</B></span><span>. The following dialog box will appear:</span></p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs5">&nbsp;<img src="../image47.jpg" width="200px" height="374px" border="0" class="img_whs6"></p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs7">This dialog box contains \r
+ the following fields which should be filled:</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs8">\r
+       \r
+       <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Mesh: </B></span>the name of the mesh whose elements \r
+ will form your group. You can enter the name manually or select your mesh \r
+ in the Objet Browser or in the 3D viewer.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Elements Type </B></span>set of radio buttons allows \r
+ to select the type of elements which will form your group:</p></li>\r
+       \r
+       <ul type="disc" class="whs8">\r
+               \r
+               <li class=kadov-p><p class="whs9">Nodes</p></li>\r
+               \r
+               <li class=kadov-p><p class="whs9">Edges \r
+ </p></li>\r
+               \r
+               <li class=kadov-p><p class="whs9">Faces</p></li>\r
+               \r
+               <li class=kadov-p><p class="whs9">Volumes</p></li>\r
+       </ul>\r
+       \r
+       <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Name </B></span><span>field allows to enter the \r
+ name of your new group.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Group type </B></span>set of radio buttons allows \r
+ to select the type of your group: </p></li>\r
+       \r
+       <ul type="disc" class="whs8">\r
+               \r
+               <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Standalone group </B></span>&nbsp;consisting \r
+ of mesh elements.</p></li>\r
+               \r
+               <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Group on geometry </B></span><span>consisting of \r
+ geometrical elements.</span> If you choose this type of group your dialog \r
+ box will change and it will look like as follows:</p></li>\r
+       </ul>\r
+</ul>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs10"><img src="../image48.jpg" width="200px" height="374px" border="0" class="img_whs6"></p>\r
+\r
+<p class="whs10">&nbsp;</p>\r
+\r
+<p class="whs10">In this dialog box you should enter the name \r
+ of the geometrical object (you can enter the name manually or select your \r
+ geometrical object in the Objet Browser or in the 3D viewer) from which \r
+ the elements will be taken. And after confirmation of the operation SMESH \r
+ will create a new group consisting of geometrical elements of the previously \r
+ defined type.</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs8">\r
+       \r
+       <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Content </B></span>field<span style="font-weight: bold;"> \r
+ <B></B></span>allows to manually define the mesh elements which will form your \r
+ group. You can click on an element in the 3D viewer and it will be highlighted. \r
+ After that click the <span style="font-weight: bold;"><B>Add </B></span>button \r
+ and the ID of this element will be added to the list. To remove a selected \r
+ element or elements from the list click the <span style="font-weight: bold;"><B>Remove \r
+ </B></span>button. The <span style="font-weight: bold;"><B>Sort </B></span>button \r
+ allows to sort the list of elements IDs. The <span style="font-weight: bold;"><B>Set \r
+ filter </B></span><span>button allows to apply a definite filter to selection \r
+ of the elements of your group.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7"><span \r
+ style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
+ choose a submesh or an existing group whose elements of the previously \r
+ defined type will be added to the list of elements which will form your \r
+ group.</p></li>\r
+</ul>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs7">2. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span><span>button to confirm creation of your group or </span><span \r
+ style="font-weight: bold;"><B>Cancel </B></span><span>to quit this dialog box.</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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/cutting_quadrangles.htm b/doc/salome/gui/SMESH/files/cutting_quadrangles.htm
new file mode 100755 (executable)
index 0000000..8e22206
--- /dev/null
@@ -0,0 +1,215 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Cutting quadrangles</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1356>\r
+<meta name=layout-width content=771>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 25px; height: 22px;}\r
+img_whs4 {border-style: none; border: none; width: 292px; height: 412px;}\r
+ul.whs5 {list-style: disc;}\r
+p.whs6 {margin-left: 40px; font-weight: normal;}\r
+p.whs7 {margin-left: 0px;}\r
+table.whs8 {x-cell-content-align: top; width: 100%; border-spacing: 0; border-spacing: 0px;}\r
+col.whs9 {width: 50%;}\r
+tr.whs10 {x-cell-content-align: top;}\r
+td.whs11 {width: 50%; padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
+img_whs12 {border-style: none; border: none; width: 353px; height: 300px;}\r
+td.whs13 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
+-->\r
+</style>\r
+<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-left:1; }";\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nCutting quadrangles");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Cutting quadrangles</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This operation allows to cut one or several quadrangle \r
+ elements by addition of a supplementary edge which will connect two opposite \r
+ corners. </p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To cut quadrangles:</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">1. Display a mesh or a submesh in the 3D \r
+ viewer.</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu select the <span style="font-weight: bold;"><B>Cutting of quadrangles \r
+ </B></span>item or click <img src="../image82.gif" width="25px" height="22px" border="0" class="img_whs3"> button in the toolbar. The following \r
+ dialog box will appear:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs2"><img src="../image50.jpg" width="292px" height="412px" border="0" class="img_whs4"></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<ul type="disc" class="whs5">\r
+       \r
+       <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>The main list </B></span>shall contain the quadrangles \r
+ which will be cutted. You can click on an quadrangle in the 3D viewer \r
+ and it will be highlighted. After that click the <span style="font-weight: bold;"><B>Add \r
+ </B></span>button and the ID of this quadrangle will be added to the list. \r
+ To remove a selected element or elements from the list click the <span \r
+ style="font-weight: bold;"><B>Remove </B></span>button. The <span style="font-weight: bold;"><B>Sort \r
+ </B></span>button allows to sort the list of IDs. The <span style="font-weight: bold;"><B>Set \r
+ filter </B></span>button allows to apply a definite filter to selection of \r
+ quadrangles.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Apply to all </B></span>radio button allows to \r
+ modify the orientation of all quadrangles of the currently displayed mesh \r
+ or submesh.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Use diagonal 2-4 </B></span>radio button allows \r
+ to specify the opposite corners which will be connected by the cutting \r
+ edge.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Preview </B></span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
+ choose a submesh or an existing group whose quadrangle elements will be \r
+ automatically added to the list.</p></li>\r
+</ul>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
+ the operation.</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs8">\r
+<col class="whs9">\r
+<col class="whs9">\r
+\r
+<tr valign="top" class="whs10">\r
+<td width="50%" class="whs11">\r
+<p><img src="../image52.jpg" width="353px" height="300px" border="0" class="img_whs12"></td>\r
+<td width="50%" class="whs13">\r
+<p><img src="../image51.jpg" width="353px" height="300px" border="0" class="img_whs12"></td></tr>\r
+</table>\r
+\r
+<p class="whs7">&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
+\r
+</html>\r
index 47ffdae9216123d5894971495ddcb11645bc7d5f..50612ac083fb68bb5810258f25f36030c468b006 100755 (executable)
@@ -8,7 +8,7 @@
 \r
 <head>\r
 \r
-<title>Deflection 1D</title>\r
+<title>Local Length hypothesis</title>\r
 \r
 <!--(Meta)==========================================================-->\r
 \r
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=663>\r
-<meta name=layout-width content=402>\r
+<meta name=layout-height content=868>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -35,11 +35,13 @@ if (navigator.appName !="Netscape")
 <style type="text/css">\r
 <!--\r
 img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 318px; height: 195px;}\r
-p.whs4 {margin-left: 0px;}\r
-ul.whs5 {list-style: disc;}\r
-p.whs6 {font-weight: bold;}\r
+p.whs2 {font-weight: bold; margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 367px; height: 224px;}\r
+p.whs4 {margin-left: 40px;}\r
+p.whs5 {margin-left: 80px;}\r
+img_whs6 {border-style: none; border: none; width: 304px; height: 233px;}\r
+p.whs7 {margin-left: 0px;}\r
+ul.whs8 {list-style: disc;}\r
 -->\r
 </style>\r
 <script type="text/javascript" language="JavaScript">\r
@@ -47,7 +49,7 @@ p.whs6 {font-weight: bold;}
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs4 {margin-left:1; }";\r
+  strNSS += "p.whs7 {margin-left:1; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -113,45 +115,51 @@ else
        document.location.reload();\r
 //-->\r
 </script>\r
-<h1>Deflection 1D hypothesis</h1>\r
+<h1>Average Length hypothesis</h1>\r
 \r
-<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Deflection 1D</B></span> \r
- hypothesis is used to build 1D mesh on geometrical edges.</p>\r
-\r
-<p>A geometrical edge is divided into equal segments so that the maximum \r
- distance between the edge curve and the line connecting segment ends is \r
- not more than the specified deflection value. Then mesh nodes are constructed \r
- at segment ends location and 1D mesh elements are constructed on them.</p>\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Average Length </B></span>hypothesis \r
+ can be applied for meshing of edges composing your geometrical object. \r
+ Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>length</B></span> \r
+ of segments, which will split these edges. The points on the edges generated \r
+ by these segments will represent nodes of your mesh. Later these nodes \r
+ will be used for meshing of the faces abutting to these edges.</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class=TODO>To define the Deflection 1D hypothesis:</p>\r
+<p class="whs2"><img src="../image41.gif" width="367px" height="224px" border="0" class="img_whs3"></p>\r
 \r
-<p class=TODO>&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Create \r
- Hypotheses </B></span>menu select <span style="font-weight: bold;"><B>Deflection \r
- 1D </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>. The \r
- following dialog box will appear:</p>\r
+<p class=TODO>To define the Average Length hypothesis:</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs2"><img src="../image17.jpg" width="318px" height="195px" border="0" class="img_whs3"></p>\r
+<p class="whs4">Select this hypothesis in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>. The following dialog \r
+ box will appear:</p>\r
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs4">In this dialog box you can set:</p>\r
+<p class="whs5"><img src="../image43.gif" width="304px" height="233px" border="0" class="img_whs6"></p>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs7">In this dialog box you can set:</p>\r
 \r
-<ul type="disc" class="whs5">\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs8">\r
        \r
-       <li class=kadov-p><p class="whs4"><span style="font-weight: bold;"><B>Name \r
- </B></span>of your Deflection 1D hypothesis;</p></li>\r
+       <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Name \r
+ </B></span>of your Average Length hypothesis</p></li>\r
        \r
-       <li class=kadov-p><p class="whs6">Deflection <span style="font-weight: normal;">value</span></p></li>\r
+       <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Length \r
+ </B></span>of segments which will split the edges of your geometrical object</p></li>\r
 </ul>\r
 \r
+<p class="whs7">&nbsp;</p>\r
+\r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
 if (window.writeIntopicBar)\r
index 911138019bd5ac279df6e22d3bb6952672a1cb11..e736e199e52cedbb00ecedd5c8538a604224b9d7 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=573>\r
+<meta name=layout-height content=745>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -32,6 +32,19 @@ if (navigator.appName !="Netscape")
 {   document.write("<link rel='stylesheet' href='../default.css'>");}\r
 //-->\r
 </script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 24px; height: 22px;}\r
+img_whs3 {border-style: none; border: none; width: 298px; height: 150px;}\r
+table.whs4 {x-cell-content-align: top; width: 100%; border-spacing: 0px; border-spacing: 0px;}\r
+col.whs5 {width: 50%;}\r
+tr.whs6 {x-cell-content-align: top;}\r
+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;}\r
+img_whs8 {border-style: none; border: none; width: 300px; height: 224px;}\r
+td.whs9 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
+-->\r
+</style>\r
 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
 function reDo() {\r
@@ -94,7 +107,52 @@ else
 </script>\r
 <h1>Diagonal inversion of elements</h1>\r
 \r
-<p>Type topic text here.</p>\r
+<p>&nbsp;In SMESH \r
+ you can inverse the diagonal (edge) of a pseudo-quadrangle formed by two \r
+ neighboring triangles with one common edge.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To inverse the diagonal:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Diagonal inversion \r
+ </B></span>item or click <img src="../image70.gif" width="24px" height="22px" border="0" class="img_whs2"> button in the toolbar. The following \r
+ dialog box shall appear:</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image69.gif" width="298px" height="150px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. Enter the ID of the required edge in the \r
+ <span style="font-weight: bold;"><B>Edge </B></span>&nbsp;field \r
+ or select this edge in the 3D viewer. </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">3. 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 class=TODO\r
+       style="margin-left: 40px;">&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs4">\r
+<col class="whs5">\r
+<col class="whs5">\r
+\r
+<tr valign="top" class="whs6">\r
+<td width="50%" class="whs7">\r
+<p><img src="../image38.jpg" width="300px" height="224px" border="0" class="img_whs8"></td>\r
+<td width="50%" class="whs9">\r
+<p><img src="../image36.jpg" width="300px" height="224px" border="0" class="img_whs8"></td></tr>\r
+</table>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index b813693006c4a75adeed01a597de468050c46082..79e32e4b5f78e5c058a8aa9736eaba441db74364 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
+<meta name=layout-height content=949>\r
+<meta name=layout-width content=765>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -32,6 +32,32 @@ if (navigator.appName !="Netscape")
 {   document.write("<link rel='stylesheet' href='../default.css'>");}\r
 //-->\r
 </script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 24px; height: 22px;}\r
+img_whs3 {border-style: none; border: none; width: 373px; height: 262px;}\r
+table.whs4 {x-cell-content-align: top; width: 100%; border-spacing: 0px; border-spacing: 0px;}\r
+col.whs5 {width: 50%;}\r
+tr.whs6 {x-cell-content-align: top;}\r
+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;}\r
+img_whs8 {border-style: none; border: none; width: 350px; height: 224px;}\r
+td.whs9 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
+img_whs10 {border-style: none; border: none; width: 350px; height: 225px;}\r
+p.whs11 {margin-left: 0px;}\r
+-->\r
+</style>\r
+<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.whs11 {margin-left:1; }";\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
@@ -69,7 +95,7 @@ if (window.gbWhTopic)
 {\r
        if (window.addTocInfo)\r
        {\r
-       addTocInfo("SMESH module\nModifying meshes\nDisplacing nodes");\r
+       addTocInfo("SMESH module\nModifying meshes\nMoving nodes");\r
 addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
 \r
        }\r
@@ -92,9 +118,64 @@ else
        document.location.reload();\r
 //-->\r
 </script>\r
-<h1>Displacing nodes</h1>\r
+<h1>Moving nodes</h1>\r
+\r
+<p>In SMESH you can change the location of any node of your mesh. In this \r
+ case all adjacent elements (edges) will be also transformed right after \r
+ the displaced node.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To displace a node:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Move node </B></span>item \r
+ or click <img src="../image67.gif" width="24px" height="22px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
+ shall appear:</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image68.gif" width="373px" height="262px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. Enter the ID of the required node in the \r
+ <span style="font-weight: bold;"><B>Node ID </B></span>&nbsp;field \r
+ or select this node in the 3D viewer. The coordinates of your node will \r
+ be automatically displayed in the <span style="font-weight: bold;"><B>Coordinates \r
+ </B></span>set of fields.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">3. Set new coordinates for your node in the \r
+ <span style="font-weight: bold;"><B>Coordinates </B></span>set of fields.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">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 class="whs1">&nbsp;</p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs4">\r
+<col class="whs5">\r
+<col class="whs5">\r
+\r
+<tr valign="top" class="whs6">\r
+<td width="50%" class="whs7">\r
+<p><img src="../image35.jpg" width="350px" height="224px" border="0" class="img_whs8"></td>\r
+<td width="50%" class="whs9">\r
+<p><img src="../image34.jpg" width="350px" height="225px" border="0" class="img_whs10"></td></tr>\r
+</table>\r
+\r
+<p class="whs11">&nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
 \r
-<p>Type topic text here.</p>\r
+<p class="whs11">&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index cf8d702b3a39e7131d2d7cbe4449bc6c634516c8..8cc308b5b248140915193e9639c13af8720d9e08 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=687>\r
-<meta name=layout-width content=700>\r
+<meta name=layout-height content=706>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -125,8 +125,9 @@ else
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Numbering \r
- </B></span>menu select<span style="font-weight: bold;"><B> Display Elements #</B></span>.</p>\r
+<p class="whs1">2. Right-click on the mesh in the 3D viewer \r
+ and from the associated pop-up menu choose <span style="font-weight: bold;"><B>Numbering \r
+ &gt; Display Elements #</B></span>.</p>\r
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
index c51eba23e90640d1938ee4bfce79250db462384a..292f99a303875e66d77f23ba4594692f8dd0b5ed 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=685>\r
-<meta name=layout-width content=700>\r
+<meta name=layout-height content=704>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -125,9 +125,9 @@ else
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Numbering \r
- </B></span>menu select <span style="font-weight: bold;"><B>&nbsp;Display \r
- Nodes #</B></span>.</p>\r
+<p class="whs1">2. Right-click on the mesh in the 3D viewer \r
+ and from the associated pop-up menu choose <span style="font-weight: bold;"><B>Numbering \r
&gt; Display Nodes #</B></span>.</p>\r
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
diff --git a/doc/salome/gui/SMESH/files/editing_groups.htm b/doc/salome/gui/SMESH/files/editing_groups.htm
new file mode 100755 (executable)
index 0000000..eee766b
--- /dev/null
@@ -0,0 +1,139 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Editing groups</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=757>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 21px; height: 22px;}\r
+img_whs3 {border-style: none; border: none; width: 250px; height: 468px;}\r
+p.whs4 {font-weight: normal;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nGrouping elements\nEditing groups");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Editing groups</h1>\r
+\r
+<p class=TODO\r
+       style="margin-left: 0px;">To edit an existing group of elements:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">1. Select your group in the Object Browser \r
+ and in the <span style="font-weight: bold;"><B>Mesh </B></span>menu click the \r
+ <span style="font-weight: bold;"><B>Edit Group </B></span>item or <img src="../image74.gif" width="21px" height="22px" border="0" class="img_whs2"> icon in the toolbar. The following dialog box will appear:</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image49.jpg" width="250px" height="468px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs1">In this dialog box you can modify the name<span \r
+ style="font-weight: bold;"> <B></B></span>of your group and add or remove the \r
+ elements forming it. For more information <a href="creating_groups.htm">see \r
+ here</a>.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span><span>or </span><span style="font-weight: bold;"><B>&nbsp;Apply \r
+ </B></span><span>button to confirm modification of the group.</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
+\r
+</html>\r
index 9a35c061fc4aa843987b60012c2e0f87bf15d611..a0d30a3f6c60f282d92cf68f050338d9d1c193ae 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
+<meta name=layout-height content=587>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -32,6 +32,12 @@ if (navigator.appName !="Netscape")
 {   document.write("<link rel='stylesheet' href='../default.css'>");}\r
 //-->\r
 </script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 347px; height: 145px;}\r
+-->\r
+</style>\r
 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
 function reDo() {\r
@@ -69,7 +75,7 @@ if (window.gbWhTopic)
 {\r
        if (window.addTocInfo)\r
        {\r
-       addTocInfo("SMESH module\nEditing meshes\nEditing hypotheses");\r
+       addTocInfo("SMESH module\nEditing meshes\nEditing hypotheses and algorithms");\r
 addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
 \r
        }\r
@@ -92,10 +98,50 @@ else
        document.location.reload();\r
 //-->\r
 </script>\r
-<h1>Editing hypotheses</h1>\r
+<h1>Editing hypotheses and algorithms</h1>\r
+\r
+<p>In SMESH you can <span style="font-weight: bold;"><B>rename</B></span> created \r
+ and already applied hypotheses and algorithms and <span style="font-weight: bold;"><B>edit</B></span> \r
+ the input data of the created and already applied hypotheses.</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
+<p class=TODO>To rename a hypothesis or algorithm:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">1. Select the required hypothesis or algorithm \r
+ in the Object Browser and right-click on it. From the associated popup \r
+ menu select the <span style="font-weight: bold;"><B>Rename </B></span>item, the \r
+ following dialog box will appear:</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image46.jpg" width="347px" height="145px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. In this dialog box enter a new name for \r
+ your hypothesis or algorithm and click the <span style="font-weight: bold;"><B>OK \r
+ </B></span>button.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class=TODO>To edit the input data of a hypothesis:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">1. Select the required hypothesis &nbsp;in \r
+ the Object Browser and right-click on it. From the associated popup menu \r
+ select the <span style="font-weight: bold;"><B>Edit </B></span>item and in the \r
+ appeared dialog box (it will differ depending on the type of the edited \r
+ hypothesis) enter a new input value for your hypothesis.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span>button to confirm your changes.</p>\r
+\r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
 if (window.writeIntopicBar)\r
index 86ccb437d53c0bbe17747ed9227f90a64414fd0b..148ecd02373725f95779b856fbaa2f3ef381b587 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=287>\r
-<meta name=layout-width content=557>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -110,7 +110,15 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To apply the Length from edges hypothesis:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs2">Select this hypotheses in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
index 77d30b63c7e7c6df9c178f0da0301ae977217417..a53261d0388fa96230e076c954f162a024c2b25d 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=963>\r
-<meta name=layout-width content=429>\r
+<meta name=layout-height content=868>\r
+<meta name=layout-width content=741>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -134,10 +134,10 @@ else
 \r
 <p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs4">From the <span style="font-weight: bold;"><B>Creat\r
- Hypotheses </B></span>menu select <span style="font-weight: bold;"><B>Average \r
- Length </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>. \r
The following dialog box will appear:</p>\r
+<p class="whs4">Select this hypotheses in <a href="about_hypotheses.htm#CreateHyp">th\r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>. The following dialog \r
+ box will appear:</p>\r
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
index f424e9eaf6be4d0bcf8b158ac37a20e904af8fe3..ef7a55ebf9f2420c856955bea58a8ac7255e0c86 100755 (executable)
@@ -8,7 +8,7 @@
 \r
 <head>\r
 \r
-<title>Max. Element Area hypothesis</title>\r
+<title>Length from edges</title>\r
 \r
 <!--(Meta)==========================================================-->\r
 \r
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=644>\r
-<meta name=layout-width content=557>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -36,23 +36,8 @@ if (navigator.appName !="Netscape")
 <!--\r
 img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
 p.whs2 {margin-left: 40px;}\r
-p.whs3 {margin-left: 80px;}\r
-img_whs4 {border-style: none; border: none; width: 304px; height: 233px;}\r
-p.whs5 {margin-left: 0px;}\r
-ul.whs6 {list-style: disc;}\r
 -->\r
 </style>\r
-<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.whs5 {margin-left:1; }";\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
@@ -113,47 +98,31 @@ else
        document.location.reload();\r
 //-->\r
 </script>\r
-<h1>Max Element Area hypothesis</h1>\r
+<h1>Length from edges (2D hypothesis for Triangulator) hypothesis</h1>\r
 \r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Max Element Area </B></span>hypothesis \r
- can be applied for meshing of 2D faces composing your geometrical object. \r
- Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>maximum \r
- area </B></span>of meshing elements (depending on the chosen meshing algorithm \r
- it can be <span style="font-weight: bold;"><B>triangles</B></span> or <span style="font-weight: bold;"><B>quadrangles</B></span>), \r
- which will compose the mesh of these 2D faces. </p>\r
+<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Length from edges</B></span> \r
+ hypothesis builds 1D mesh segments having a length calculated as an average \r
+ edge length for a given wire. </p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class=TODO>To define the Max Element Area hypothesis:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Max Element Area </B></span>and<span \r
- style="font-weight: bold;"> <B></B></span>click <span style="font-weight: bold;"><B>Create</B></span>. \r
- The following dialog box will appear:</p>\r
+<p>This hypothesis has no parameters.</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p>&nbsp;</p>\r
 \r
-<p class="whs3"><img src="../image48.gif" width="304px" height="233px" border="0" class="img_whs4"></p>\r
+<p>&nbsp;</p>\r
 \r
-<p class="whs3">&nbsp;</p>\r
+<p class=TODO>To apply the Length from edges hypothesis:</p>\r
 \r
-<p class="whs5">In this dialog box you can set:</p>\r
+<p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs2">Select this hypothesis in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
 \r
-<ul type="disc" class="whs6">\r
-       \r
-       <li class=kadov-p><p class="whs5"><span style="font-weight: bold;"><B>Name \r
- </B></span>of your Max Element Area hypothesis</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs5"><span style="font-weight: bold;"><B>Max. \r
- Area</B></span>:<span style="font-weight: bold;"> <B></B></span>the maximum area<span \r
- style="font-weight: bold;"> <B></B></span>of meshing elements</p></li>\r
-</ul>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index cf424bc9ac37db7ba4a44cf3b9bcd0a23fcea731..7eb80ee6adfb4e73f649eac74f3e679221e4fa87 100755 (executable)
@@ -8,7 +8,7 @@
 \r
 <head>\r
 \r
-<title>Max. Element volume hypothsis</title>\r
+<title>Non conform mesh allowed hypothesis</title>\r
 \r
 <!--(Meta)==========================================================-->\r
 \r
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=663>\r
-<meta name=layout-width content=557>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -36,23 +36,8 @@ if (navigator.appName !="Netscape")
 <!--\r
 img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
 p.whs2 {margin-left: 40px;}\r
-p.whs3 {margin-left: 80px;}\r
-img_whs4 {border-style: none; border: none; width: 304px; height: 233px;}\r
-p.whs5 {margin-left: 0px;}\r
-ul.whs6 {list-style: disc;}\r
 -->\r
 </style>\r
-<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.whs5 {margin-left:1; }";\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
@@ -113,48 +98,25 @@ else
        document.location.reload();\r
 //-->\r
 </script>\r
-<h1>Max Element Volume hypothesis</h1>\r
+<h1>Non conform mesh allowed hypothesis</h1>\r
 \r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Max Element Area </B></span>hypothesis \r
- can be applied for meshing of 3D objects composing your geometrical object. \r
- Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>maximum \r
- volume </B></span>of 3D meshing elements (depending on the chosen meshing \r
- algorithm it can be <span style="font-weight: bold;"><B>hexahedrons </B></span>or \r
- <span style="font-weight: bold;"><B>tetrahedrons</B></span>), which will compose \r
- the mesh of these 3D objects. </p>\r
+<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Non Conform mesh allowed</B></span> \r
+ hypothesis allows to generate non-conform meshes (that is, meshes having \r
+ some edges ending on an edge or face of adjacent elements). </p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class=TODO>To define the Max Element Volume hypothesis:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
+<p>This hypothesis has no parameters.</p>\r
 \r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Max Element Volume \r
- </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>. The following \r
- dialog box will appear:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image49.gif" width="304px" height="233px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs5">In this dialog box you can set:</p>\r
+<p>&nbsp;</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class=TODO>To apply this hypothesis:</p>\r
 \r
-<ul type="disc" class="whs6">\r
-       \r
-       <li class=kadov-p><p class="whs5"><span style="font-weight: bold;"><B>Name \r
- </B></span>of your Max Element Volume hypothesis</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs5"><span style="font-weight: bold;"><B>Max. \r
- Volume</B></span>:<span style="font-weight: bold;"> <B></B></span>the maximum volume \r
- of 3D meshing elements</p></li>\r
-</ul>\r
+<p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs2">Select this hypothesis s in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>. </p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
diff --git a/doc/salome/gui/SMESH/files/merging_nodes.htm b/doc/salome/gui/SMESH/files/merging_nodes.htm
new file mode 100755 (executable)
index 0000000..e324b05
--- /dev/null
@@ -0,0 +1,136 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Merging nodes</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=747>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 258px; height: 450px;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nMerging nodes");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Merging nodes</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This functionality allows user to detect groups of coincident \r
+ nodes with desirable tolerance, edit these groups and merge.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To merge nodes of your mesh:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs2">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
+ &nbsp;from its \r
+ sub-menu select the <span style="font-weight: bold;"><B>Merge nodes </B></span>item. \r
+ The following dialog box shall appear:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs2"><img src="../image53.jpg" width="258px" height="450px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">This dialog box allows to create groups of \r
+ coincident nodes and to merge them. </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
index f047f5844d8beecbe492ac78f8ad9bf62d9dd1cd..baecc1235c0d1d0ec652da2fdb58dc14670cd48f 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=246>\r
-<meta name=layout-width content=560>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -35,6 +35,7 @@ if (navigator.appName !="Netscape")
 <style type="text/css">\r
 <!--\r
 img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
 -->\r
 </style>\r
 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
@@ -107,6 +108,16 @@ else
 \r
 <p>This hypothesis has no parameters.</p>\r
 \r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To apply this hypothesis:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs2">Select this hypothesis s in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>. </p>\r
+\r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
 if (window.writeIntopicBar)\r
index ef227a24697c39bf0f957f51fdd5ce91b8f5c33d..ae5c977827c4ce2b1015f53acfcc4b1ce402a713 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=397>\r
-<meta name=layout-width content=547>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -35,20 +35,9 @@ if (navigator.appName !="Netscape")
 <style type="text/css">\r
 <!--\r
 img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
-p.whs2 {margin-left: 0px;}\r
+p.whs2 {margin-left: 40px;}\r
 -->\r
 </style>\r
-<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.whs2 {margin-left:1; }";\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
@@ -119,7 +108,13 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class=TODO>To apply this hypothesis:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs2">Select this hypothesis s in <a href="about_hypotheses.htm#CreateHyp">the \r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>. </p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index c3abe59f4bbeebe8b7e37ac9abf0980e6cc975a6..51938ab6a4e8401eb9138ce8cebae31bf3fba271 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=380>\r
-<meta name=layout-width content=700>\r
+<meta name=layout-height content=1107>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -32,6 +32,27 @@ if (navigator.appName !="Netscape")
 {   document.write("<link rel='stylesheet' href='../default.css'>");}\r
 //-->\r
 </script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 300px; height: 449px;}\r
+ul.whs3 {list-style: disc;}\r
+p.whs4 {margin-left: 40px; font-weight: bold;}\r
+p.whs5 {margin-left: 0px;}\r
+img_whs6 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+-->\r
+</style>\r
+<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.whs5 {margin-left:1; }";\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
@@ -94,8 +115,98 @@ else
 </script>\r
 <h1>Reassigning hypotheses and algorithms</h1>\r
 \r
+<p>After you have created a mesh or submesh with definite applied hypotheses \r
+ and algorithms you can edit your mesh by <span style="font-weight: bold;"><B>assigning</B></span> \r
+ new hypotheses and algorithms or <span style="font-weight: bold;"><B>unassigning \r
+ </B></span>the applied hypotheses and algorithms.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To assign or unassign algorithms and hypotheses:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">1. In the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span><span>menu select the </span><span style="font-weight: bold;"><B>Edit \r
+ Hypothesis</B></span><span>, the following dialog box will appear:</span><span \r
+ style="font-weight: bold;"> <B></B></span></p>\r
+\r
 <p>&nbsp;</p>\r
 \r
+<p class="whs1"><img src="../image41.jpg" width="300px" height="449px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">This dialog box contains the following fields: \r
+ </p>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Mesh \r
+ or SubMesh </B></span>field: here you should enter the name of the mesh or \r
+ submesh for which you would like to assign or unassign hypotheses and \r
+ algorithms. It can be also done by choosing the required mesh or submesh \r
+ in the Object Browser or in the 3D viewer;</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs4">Hypotheses \r
+ <span style="font-weight: normal;">set of fields containing two columns: \r
+ </span></p></li>\r
+       \r
+       <ul type="disc" class="whs3">\r
+               \r
+               <li class=kadov-p><p class="whs4">Available: \r
+ <span style="font-weight: normal;">the hypotheses which have been created \r
+ in the current study;</span></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs4"><span \r
+ style="margin-left: 40px; font-weight: bold;"><B>Used: </B></span><span style="margin-left: 40px; font-weight: normal;">the \r
+ hypotheses which have been applied to previously selected mesh or submesh.</span><span \r
+ style="margin-left: 40px; font-weight: bold;"> <B></B></span></p></li>\r
+       </ul>\r
+       \r
+       <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Algorithms \r
+ </B></span>set of fields containing two columns:</p></li>\r
+       \r
+       <ul type="disc" class="whs3">\r
+               \r
+               <li class=kadov-p><p class="whs4">Available: \r
+ <span style="font-weight: normal;">the algorithms which have been created \r
+ in the current study.</span></p></li>\r
+               \r
+               <li class=kadov-p><p class="whs4">Used: \r
+ <span style="font-weight: normal;">the algorithms which have been applied \r
+ to previously selected mesh or submesh.</span> </p></li>\r
+       </ul>\r
+</ul>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. Double-click on the definite algorithm \r
+ or hypothesis to move it from the <span style="font-weight: bold;"><B>Available \r
+ </B></span>column into the <span style="font-weight: bold;"><B>Used </B></span>column \r
+ and vice versa. &nbsp;Thus \r
+ you will be able to apply new hypotheses and algorithms to your mesh or \r
+ unassign<span style="font-weight: bold;"> <B></B></span>the applied hypotheses \r
+ and algorithms.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">3. Confirm your changes by clicking the <span \r
+ style="font-weight: bold;"><B>OK </B></span>button.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs5">After modification of applied algorithms you \r
+ should recompute your mesh once again.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs5"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs6"> You can also unassign an \r
+ applied algorithm or hypothesis by right-clicking on it in the Object \r
+ Browser and choosing from the associated popup menu the <span style="font-weight: bold;"><B>Unassign \r
+ Algorithm </B></span>or <span style="font-weight: bold;"><B>Unassign Hypothesis \r
+ </B></span><span>item.</span></p>\r
+\r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
 if (window.writeIntopicBar)\r
index 4b9073fb74dc4a8cd970c0a0eead813eb3579ee6..c8b506969d4ac0f175ae17fcd363e008ed2f6e0d 100755 (executable)
@@ -18,9 +18,9 @@
 <meta name=generator-minor-version content=1>\r
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
-<meta name=page-count content=0>\r
-<meta name=layout-height content=0>\r
-<meta name=layout-width content=0>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1633>\r
+<meta name=layout-width content=765>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -32,6 +32,34 @@ if (navigator.appName !="Netscape")
 {   document.write("<link rel='stylesheet' href='../default.css'>");}\r
 //-->\r
 </script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 27px; height: 25px;}\r
+img_whs3 {border-style: none; border: none; width: 315px; height: 217px;}\r
+p.whs4 {margin-left: 0px;}\r
+img_whs5 {border-style: none; border: none; width: 36px; height: 38px; float: none;}\r
+table.whs6 {x-cell-content-align: top; width: 100%; border-spacing: 0; border-spacing: 0px;}\r
+col.whs7 {width: 50%;}\r
+tr.whs8 {x-cell-content-align: top;}\r
+td.whs9 {width: 50%; padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
+img_whs10 {border-style: none; border: none; width: 350px; height: 183px;}\r
+td.whs11 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
+img_whs12 {border-style: none; border: none; width: 318px; height: 218px;}\r
+img_whs13 {border-style: none; border: none; width: 350px; height: 184px;}\r
+-->\r
+</style>\r
+<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.whs4 {margin-left:1; }";\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
@@ -94,7 +122,116 @@ else
 </script>\r
 <h1>Removing nodes and elements</h1>\r
 \r
-<p>Type topic text here.</p>\r
+<p>In SMESH you can remove nodes and all types of cells of your mesh. </p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To remove a node:</p>\r
+\r
+<p class=TODO\r
+       style="margin-left: 40px;">&nbsp;</p>\r
+\r
+<p class="whs1">1. Select your mesh in the Object Browser \r
+ or in the 3D viewer.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose <span style="font-weight: bold;"><B>Remove </B></span>and \r
+ from the associated submenu select the <span style="font-weight: bold;"><B>Remove \r
+ nodes</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs2"> icon in the toolbar. The \r
+ following dialog box will appear:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image87.gif" width="315px" height="217px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">In this dialog box you can specify one or \r
+ several nodes (with pressed Shift button) by choosing them in the 3D viewer.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">3. Click <span style="font-weight: bold;"><B>OK \r
+ </B></span>or <span style="font-weight: bold;"><B>Apply </B></span>&nbsp;to \r
+ confirm deletion of the specified nodes.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../note1.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs5">Be careful while removing \r
+ nodes because if you remove a definite node of your mesh all adjacent \r
+ elements will be also deleted.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs6">\r
+<col class="whs7">\r
+<col class="whs7">\r
+\r
+<tr valign="top" class="whs8">\r
+<td width="50%" class="whs9">\r
+<p><img src="../image73.jpg" width="350px" height="183px" border="0" class="img_whs10"></td>\r
+<td width="50%" class="whs11">\r
+<p><img src="../image72.jpg" width="350px" height="183px" border="0" class="img_whs10"></td></tr>\r
+</table>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To remove an element:</p>\r
+\r
+<p class=TODO\r
+       style="margin-left: 40px;">&nbsp;</p>\r
+\r
+<p class="whs1">1. Select your mesh in the Object Browser \r
+ or in the 3D viewer.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose <span style="font-weight: bold;"><B>Remove </B></span>and \r
+ from the associated submenu select the <span style="font-weight: bold;"><B>Remove \r
+ elements</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs2"> icon in the toolbar. The \r
+ following dialog box will appear:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image89.gif" width="318px" height="218px" border="0" class="img_whs12"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">In this dialog box you can specify one or \r
+ several elements of your mesh (with pressed Shift button) by choosing \r
+ them in the 3D viewer.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">3. Click <span style="font-weight: bold;"><B>OK \r
+ </B></span>or <span style="font-weight: bold;"><B>Apply </B></span>&nbsp;to \r
+ confirm deletion of the specified elements.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs6">\r
+<col class="whs7">\r
+<col class="whs7">\r
+\r
+<tr valign="top" class="whs8">\r
+<td width="50%" class="whs9">\r
+<p><img src="../image75.jpg" width="350px" height="183px" border="0" class="img_whs10"></td>\r
+<td width="50%" class="whs11">\r
+<p><img src="../image74.jpg" width="350px" height="184px" border="0" class="img_whs13"></td></tr>\r
+</table>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
diff --git a/doc/salome/gui/SMESH/files/renumbering_nodes_and_elements.htm b/doc/salome/gui/SMESH/files/renumbering_nodes_and_elements.htm
new file mode 100755 (executable)
index 0000000..6bf37d0
--- /dev/null
@@ -0,0 +1,184 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Renumbering nodes and elements</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1068>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 29px; height: 23px;}\r
+img_whs3 {border-style: none; border: none; width: 314px; height: 217px;}\r
+img_whs4 {border-style: none; border: none; width: 26px; height: 25px;}\r
+img_whs5 {border-style: none; border: none; width: 318px; height: 220px;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nRenumbering nodes and elements");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Renumbering nodes and elements</h1>\r
+\r
+<p>In SMESH you can renumber the nodes and elements of your mesh.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To renumber the nodes of your mesh:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">1. In the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu select <span style="font-weight: bold;"><B>Renumbering </B></span>submenu \r
+ and choose the <span style="font-weight: bold;"><B>Nodes </B></span>item or click \r
+ <img src="../image63.gif" width="29px" height="23px" border="0" class="img_whs2"> button in the toolbar. The following dialog box will \r
+ appear: </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image66.gif" width="314px" height="217px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. Fill the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span>field by selecting your mesh in the Object Browser or in the 3D \r
+ viewer.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span><span>or </span><span style="font-weight: bold;"><B>OK </B></span><span>button \r
+ to perform the operation.</span></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class=TODO>To renumber the elements of your mesh:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">1. In the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu select <span style="font-weight: bold;"><B>Renumbering </B></span>submenu \r
+ and choose the <span style="font-weight: bold;"><B>Elements </B></span>item or \r
+ click <img src="../image64.gif" width="26px" height="25px" border="0" class="img_whs4"> button in the toolbar. The following dialog box will \r
+ appear: </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image65.gif" width="318px" height="220px" border="0" class="img_whs5"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. Fill the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span>field by selecting your mesh in the Object Browser or in the 3D \r
+ viewer.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span><span>or </span><span style="font-weight: bold;"><B>OK </B></span><span>button \r
+ to perform the operation.</span></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/rotation.htm b/doc/salome/gui/SMESH/files/rotation.htm
new file mode 100755 (executable)
index 0000000..7ec631e
--- /dev/null
@@ -0,0 +1,151 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Rotation</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=604>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 310px; height: 265px;}\r
+ul.whs3 {list-style: disc;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nRotation");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Rotation</h1>\r
+\r
+<p>This geometrical operation allows to rotate in space your mesh or some \r
+ of its elements.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>&nbsp;To \r
+ rotate your mesh:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
+ &nbsp;from its \r
+ sub-menu select the <span style="font-weight: bold;"><B>Rotation </B></span>item. \r
+ The following dialog box shall appear:</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image55.jpg" width="310px" height="265px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">In this dialog box you can specify the elements \r
+ which should be rotated and the rotation parameters:</p>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Axis:</B></span> \r
+ point and vector</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Angle \r
+ </B></span>of rotation </p></li>\r
+</ul>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><span style="font-weight: bold;"><B>Create a \r
+ copy </B></span><span>radio button allows to copy the rotated object.</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
+\r
+</html>\r
index 2d349f8ab2a6dad15c1cd2921d025790372ca517..2e301a78f5d5c183188fbcc3ff58e5e915a126c0 100755 (executable)
@@ -69,8 +69,7 @@ if (window.gbWhTopic)
 {\r
        if (window.addTocInfo)\r
        {\r
-       addTocInfo("SMESH module\nSetting SMESH preferences\nScalar Bar properties");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
 \r
        }\r
        if (window.writeBtnStyle)\r
diff --git a/doc/salome/gui/SMESH/files/sewing_meshes.htm b/doc/salome/gui/SMESH/files/sewing_meshes.htm
new file mode 100755 (executable)
index 0000000..e27d967
--- /dev/null
@@ -0,0 +1,328 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Sewing meshes</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=3595>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+ul.whs2 {list-style: disc;}\r
+p.whs3 {font-weight: bold;}\r
+p.whs4 {margin-left: 40px;}\r
+img_whs5 {border-style: none; border: none; width: 311px; height: 456px;}\r
+img_whs6 {border-style: none; border: none; width: 297px; height: 62px;}\r
+img_whs7 {border-style: none; border: none; width: 612px; height: 225px;}\r
+img_whs8 {border-style: none; border: none; width: 612px; height: 230px;}\r
+img_whs9 {border-style: none; border: none; width: 600px; height: 227px;}\r
+img_whs10 {border-style: none; border: none; width: 620px; height: 228px;}\r
+img_whs11 {border-style: none; border: none; width: 304px; height: 222px;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nSewing meshes");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Sewing meshes</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> In SMESH you can sew elements of &nbsp;different \r
+ meshes. The current functionality allows you to sew:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<ul type="disc" class="whs2">\r
+       \r
+       <li class=kadov-p><p class="whs3"><a href="#free bord">Free \r
+ borders </a></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3"><a href="#conform">Conform \r
+ free borders</a></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3"><a href="#border to side">Border \r
+ to side</a></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3"><a href="#side elements">Side \r
+ elements</a></p></li>\r
+</ul>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class=TODO>To sew elements of different meshes:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs4">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Transformation \r
+ </B></span>item and &nbsp;from \r
+ its sub-menu select the <span style="font-weight: bold;"><B>Sewing </B></span>item. \r
+ The following dialog box shall appear:</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../image57.gif" width="311px" height="456px" border="0" class="img_whs5"></p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4">2. In the upper part of this dialog box check \r
+ one of the radio buttons corresponding to the type of sewing operation \r
+ you would like to perform: </p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../image61.gif" width="297px" height="62px" border="0" class="img_whs6"> </p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4">3. Fill the other fields available in the \r
+ dialog box</p>\r
+\r
+<p class="whs4">4. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span><span>or </span><span style="font-weight: bold;"><B>Apply </B></span>button \r
+ to perform the operation of sewing. </p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<h3><a name="free bord"></a>Sew free borders</h3>\r
+\r
+<p>This functionality allows you to unite two free borders of a 2D mesh.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>For sewing free borders you should define three points on each border: \r
+ first, second and the last node: </p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<ul type="disc" class="whs2">\r
+       \r
+       <li class=kadov-p><p>&nbsp;the \r
+ first node specifies beginning of the border ;</p></li>\r
+       \r
+       <li class=kadov-p><p>&nbsp;the \r
+ second node specifies the part of the border which should be considered \r
+ (as far as the free border usually forms a closed contour);</p></li>\r
+       \r
+       <li class=kadov-p><p>&nbsp;the \r
+ last node specifies the end of the border.</p></li>\r
+</ul>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>You can select these nodes in the 3D viewer or define by its id.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>The first and the second nodes should belong to the same link of a face. \r
+ The second and the last nodes of a border can be the same. The first and \r
+ the last nodes of two borders can be the same. The corresponding end nodes \r
+ of two borders will be merged. Intermediate nodes of two borders will \r
+ be either merged or inserted into faces of the opposite border.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>The sewing algorithm is as follows:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs4">1. The parameter (U) of each node within \r
+ a border is computed. So that the first node has U=0.0, the last node \r
+ has U=1.0, for the rest nodes 0.0 &lt; U &lt; 1.0;</p>\r
+\r
+<p class="whs4">2. Compare node parameters of the two borders. \r
+ If two nodes of the opposite borders have close parameters, they are merged, \r
+ i.e. a node of the first border is replaced in all elements by a node \r
+ of the second border. If a node has no node with a close parameter in \r
+ the opposite border, it is inserted into an edge of element of the opposite \r
+ border, an element is split. Two nodes are considered close enough to \r
+ merge, if difference of their parameters is less than one fifth of minimum \r
+ length of adjacent face edges on the borders.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../image22.jpg" width="612px" height="225px" border="0" class="img_whs7"></p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<h3><a name=conform></a>Sew conform free borders</h3>\r
+\r
+<p>This functionality can be used to unite two free borders of a 2D mesh.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>The borders of meshes for sewing are defined as for &quot;Sew free borders&quot; \r
+ except that the second free border is not limited and can be defined by \r
+ the first and the second nodes only. The first nodes of two borders can \r
+ be the same.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../image23.jpg" width="612px" height="230px" border="0" class="img_whs8"></p>\r
+\r
+<p>The algorithm is following: counting nodes starting at the first ones, \r
+ the n-th node of the first border is merged with the n-th node of the \r
+ other border, until the end of either of borders. Nodes of the first border \r
+ are replaced in all elements with corresponding nodes of the second border.</p>\r
+\r
+<p>For sewing conform free borders you should define three points on the \r
+ first border and two points on the second one. User can select these nodes \r
+ in 3D viewer or define node by its id.</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<h3><a name="border to side"></a>Sew border to side</h3>\r
+\r
+<p>&quot;Sew border to side&quot; is intended to sew a free border to a \r
+ mesh surface.</p>\r
+\r
+<p>The free border is defined as for &quot;Sewing of free borders&quot;. \r
+ The place where to sew the border is defined by two nodes, between which \r
+ the border faces are placed, so that the first border node is merged with \r
+ the first node on the side and the last node of the border is merged with \r
+ the second specified node on the side.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../image30.jpg" width="600px" height="227px" border="0" class="img_whs9"></p>\r
+\r
+<p>The algorithm is following.</p>\r
+\r
+<p>1. Find a sequence of linked nodes on the side such that the found links \r
+ to be most co-directed with the links of the free border.</p>\r
+\r
+<p>2. Sew two sequences of nodes using algorithm of &quot;Sewing of free \r
+ berders&quot;.</p>\r
+\r
+<p>For sewing border to side you should define three points on the border \r
+ and two points on the side. User can select these nodes in 3D viewer or \r
+ define node by its id.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<h3><a name="side elements"></a>Sew side elements</h3>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../image31.jpg" width="620px" height="228px" border="0" class="img_whs10"></p>\r
+\r
+<p>This operation is intended to unite two mesh surfaces.</p>\r
+\r
+<p>Surfaces may be defined by either 2d or 3d elements. The number of given \r
+ elements of the sides must be the same. The sets of given elements must \r
+ be topologically equal, i.e. each node of one element set must have a \r
+ corresponding node in the other element set and corresponding nodes must \r
+ be equally linked. If there are 3d elements in a set, only their free \r
+ faces must obey to that rule.</p>\r
+\r
+<p>Two corresponding nodes on each side must be specified. They must belong \r
+ to one element and must be located on an element set boundary.</p>\r
+\r
+<p>Sewing algorithm finds and merges the corresponding nodes starting from \r
+ the specified ones.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../image32.jpg" width="304px" height="222px" border="0" class="img_whs11"></p>\r
+\r
+<p>For sewing side elements you should define elements for sewing and two \r
+ nodes for merging on the each side. User can select these elements and \r
+ nodes in 3D viewer or define them by its id.</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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/smoothing.htm b/doc/salome/gui/SMESH/files/smoothing.htm
new file mode 100755 (executable)
index 0000000..8d87e63
--- /dev/null
@@ -0,0 +1,217 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Smoothing</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1451>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 24px; height: 25px;}\r
+img_whs4 {border-style: none; border: none; width: 319px; height: 369px;}\r
+ul.whs5 {list-style: disc;}\r
+p.whs6 {margin-left: 40px; font-weight: normal;}\r
+p.whs7 {font-weight: bold;}\r
+p.whs8 {margin-left: 80px;}\r
+img_whs9 {border-style: none; border: none; width: 527px; height: 281px;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nSmoothing");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Smoothing</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Smoothing is used to adjust the locations of element \r
+ corners (nodes) to reduce distortions in these elements.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To apply smoothing to the elements of your mesh:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs2">1. Display a mesh or a submesh in the 3D \r
+ viewer.</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu select the <span style="font-weight: bold;"><B>Smoothing </B></span>item \r
+ or click <img src="../image84.gif" width="24px" height="25px" border="0" class="img_whs3"> button in the toolbar. The following dialog box \r
+ will appear:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs2"><img src="../image85.gif" width="319px" height="369px" border="0" class="img_whs4"></p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">This dialog box contains the following fields \r
+ which should be specified:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<ul type="disc" class="whs5">\r
+       \r
+       <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Id Elements </B></span><span>field allows to specify \r
+ the elements which should be smoothed by selecting them in the 3D viewer. \r
+ Note: to select several elements press </span><span style="font-weight: bold;"><B>Shift \r
+ </B></span><span>button.</span></p></li>\r
+       \r
+       <ul type="disc" class="whs5">\r
+               \r
+               <li class=kadov-p><p class="whs7">Smoothing is applied \r
+ to the whole mesh or its part</p></li>\r
+               \r
+               <li class=kadov-p><p><span style="font-weight: bold;"><B>Fixed nodes \r
+ ids</B></span>: some nodes keep their location during smoothing. If a mesh \r
+ is built on a geometry shape, the nodes built on geometrical edges are \r
+ always fixed. If smoothing is applied to a part of a mesh then the boundary \r
+ nodes of an elements set are also fixed. Any other nodes may be additionally \r
+ fixed.</p></li>\r
+               \r
+               <li class=kadov-p><p>&nbsp;</p></li>\r
+               \r
+               <li class=kadov-p><p><span style="font-weight: bold;"><B>Smoothing \r
+ method</B></span>:</p></li>\r
+               \r
+               <ul type="disc" class="whs5">\r
+                       \r
+                       <li class=kadov-p><p><span style="font-weight: bold;"><B>Laplacian</B></span> \r
+ smoothing pulls a node toward the center of surrounding nodes directly \r
+ connected to that node along an element edge. Centroidal smoothing pulls \r
+ a node toward the element-area-weighted centroid of the surrounding elements. \r
+ Typically, the Laplacian method will produce the mesh with the least element \r
+ distortion. It is also the faster method. </p></li>\r
+                       \r
+                       <li class=kadov-p><p><span style="font-weight: bold;"><B>Centroidal</B></span> \r
+ smoothing usually produces a mesh that has more uniform element sizes. \r
+ Both methods produce good results with &quot;free&quot; meshes.</p></li>\r
+               </ul>\r
+       </ul>\r
+</ul>\r
+\r
+<p class="whs8"><img src="../image83.gif" width="527px" height="281px" border="0" class="img_whs9"></p>\r
+\r
+<ul type="disc" class="whs5">\r
+       \r
+       <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Iteration limit: </B></span>both of the smoothing \r
+ methods use an iterative procedure to converge toward a smoothed mesh. \r
+ All nodes are smoothed according to one of the techniques shown above. \r
+ Then the smoothing is reevaluated with the updated nodal locations. This \r
+ process continues until the maximum number of iterations has been exceeded, \r
+ or all elements has aspect ratio less or equal than the specified one.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Max. aspect ratio</B></span>.</p></li>\r
+</ul>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
+ the operation.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
index 3cbddfdcc1ade1d3f1ecb193605a4293c38a40cc..3a8059d2982c5c88e120ac856dc90a9ab5293844 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=633>\r
-<meta name=layout-width content=557>\r
+<meta name=layout-height content=614>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -130,10 +130,10 @@ else
 \r
 <p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Creat\r
- Hypotheses </B></span>menu select <span style="font-weight: bold;"><B>Start and \r
- End Length </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>. \r
The following dialog box will appear:</p>\r
+<p class="whs2">Select this hypothesis s in <a href="about_hypotheses.htm#CreateHyp">th\r
+ <span style="font-weight: bold;"><B>Create Hypotheses </B></span>dialog box</a> \r
+ click <span style="font-weight: bold;"><B>Create</B></span>. The following dialog \r
+ box will appear:</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
diff --git a/doc/salome/gui/SMESH/files/symmetry.htm b/doc/salome/gui/SMESH/files/symmetry.htm
new file mode 100755 (executable)
index 0000000..446029c
--- /dev/null
@@ -0,0 +1,164 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Symmetry</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1155>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 350px; height: 258px;}\r
+img_whs3 {border-style: none; border: none; width: 350px; height: 253px;}\r
+img_whs4 {border-style: none; border: none; width: 350px; height: 248px;}\r
+ul.whs5 {list-style: disc;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nSymmetry");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Symmetry</h1>\r
+\r
+<p>This geometrical operation allows to perform a symmetrical copy of your \r
+ mesh or some of its elements.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>&nbsp;To \r
+ apply symmetry to your mesh:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
+ &nbsp;from its \r
+ sub-menu select the <span style="font-weight: bold;"><B>Symmetry </B></span>item. \r
+ The following dialog box shall appear:</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image59.jpg" width="350px" height="258px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image58.jpg" width="350px" height="253px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image57.jpg" width="350px" height="248px" border="0" class="img_whs4"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">This operation has three options, you can \r
+ symmetrically copy your mesh or some of its elements specifying: </p>\r
+\r
+<ul type="disc" class="whs5">\r
+       \r
+       <li class=kadov-p><p class="whs1">one point</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">one axis (point and \r
+ vector)</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">one plane (point and \r
+ normal)</p></li>\r
+</ul>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><span style="font-weight: bold;"><B>Create a \r
+ copy </B></span><span>radio button allows to keep the initial elements or \r
+ mesh.</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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/tetrahedron_(ghs3d)_meshing_algorithm.htm b/doc/salome/gui/SMESH/files/tetrahedron_(ghs3d)_meshing_algorithm.htm
new file mode 100755 (executable)
index 0000000..f2364d1
--- /dev/null
@@ -0,0 +1,130 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Tetrahedron (GHS3D) meshing algorithm</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=460>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\n3D meshing algorithms\nTetrahedron (GHS3D) meshing algorithm");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Tetrahedron (GHS3D) meshing algorithm</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This algorithm is used for meshing of 3D entities of \r
+ geometrical objects - <span style="font-weight: bold;"><B>volume objects</B></span>. \r
+ While <a href="tetrahedron_(netgen)_meshing_algorithm.htm">NETGEN</a> \r
+ generates 3D elements having a volume less than the one specified by hypothesis, \r
+ GHS3D does not need any hypotheses, all it needs is a surface mesh built \r
+ in advance</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To apply the Tetrahedron GHS3D meshing algorithm:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
+ the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
+ select this algorithm and click <span style="font-weight: bold;"><B>Create</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
+\r
+</html>\r
index 75a49992354d57f7591a629b417c2dea4b2e6e1a..c788450f2397f5526bf03948d80b210e0dd1b904 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=755>\r
-<meta name=layout-width content=473>\r
+<meta name=layout-height content=673>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -36,10 +36,9 @@ if (navigator.appName !="Netscape")
 <!--\r
 img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
 p.whs2 {margin-left: 40px;}\r
-img_whs3 {border-style: none; border: none; width: 23px; height: 23px;}\r
-p.whs4 {margin-left: 0px;}\r
-p.whs5 {margin-left: 0px; font-weight: bold;}\r
-img_whs6 {border-style: none; border: none; width: 386px; height: 414px;}\r
+p.whs3 {margin-left: 0px;}\r
+p.whs4 {margin-left: 0px; font-weight: bold;}\r
+img_whs5 {border-style: none; border: none; width: 386px; height: 414px;}\r
 -->\r
 </style>\r
 <script type="text/javascript" language="JavaScript">\r
@@ -47,8 +46,8 @@ img_whs6 {border-style: none; border: none; width: 386px; height: 414px;}
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs3 {margin-left:1; }";\r
   strNSS += "p.whs4 {margin-left:1; }";\r
-  strNSS += "p.whs5 {margin-left:1; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -126,18 +125,17 @@ else
 \r
 <p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
- </B></span>menu select <span style="font-weight: bold;"><B>Create Algorithms \r
- &gt;</B></span> <img src="../image12.gif" width="23px" height="23px" border="0" class="img_whs3"><span style="font-weight: bold;"><B>Tetrahedron \r
- (Netgen) </B></span>and click <span style="font-weight: bold;"><B>Create</B></span>..</p>\r
+<p class="whs2"><a href="about_meshing_algorithms.htm#ApplyAlgo">In \r
+ the <span style="font-weight: bold;"><B>Create Algorithms </B></span>dialog box</a> \r
+ select this algorithm and click <span style="font-weight: bold;"><B>Create</B></span>.</p>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs5">Example:</p>\r
+<p class="whs4">Example:</p>\r
 \r
-<p class="whs2"><img src="../image9.gif" width="386px" height="414px" border="0" class="img_whs6"></p>\r
+<p class="whs2"><img src="../image9.gif" width="386px" height="414px" border="0" class="img_whs5"></p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
diff --git a/doc/salome/gui/SMESH/files/translation.htm b/doc/salome/gui/SMESH/files/translation.htm
new file mode 100755 (executable)
index 0000000..3202565
--- /dev/null
@@ -0,0 +1,148 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Translation</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=551>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 645px; height: 231px;}\r
+ul.whs3 {list-style: disc;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nTranslation");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Translation</h1>\r
+\r
+<p>This geometrical operation allows to translate in space your mesh or \r
+ some of its elements.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>&nbsp;To \r
+ translate your mesh:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
+ &nbsp;from its \r
+ sub-menu select the <span style="font-weight: bold;"><B>Translation </B></span>item. \r
+ The following dialog box shall appear:</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image54.jpg" width="645px" height="231px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">This operation has two options, you can translate \r
+ in space your mesh or some of its elements specifying: </p>\r
+\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p class="whs1">two points (starting \r
+ and ending)</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">one vector</p></li>\r
+</ul>\r
+\r
+<p class="whs1"><span style="font-weight: bold;"><B>Create a \r
+ copy </B></span><span>radio button allows to copy the translated object.</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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/uniting_a_set_of_triangles.htm b/doc/salome/gui/SMESH/files/uniting_a_set_of_triangles.htm
new file mode 100755 (executable)
index 0000000..4605996
--- /dev/null
@@ -0,0 +1,191 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Uniting a set of triangles</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=945>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 23px; height: 24px;}\r
+img_whs4 {border-style: none; border: none; width: 295px; height: 362px;}\r
+ul.whs5 {list-style: disc;}\r
+p.whs6 {margin-left: 40px; font-weight: normal;}\r
+p.whs7 {margin-left: 0px;}\r
+-->\r
+</style>\r
+<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-left:1; }";\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nUniting a set of triangles");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Uniting a set of triangles</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> In contrast to <a href="uniting_two_triangles.htm">the \r
+ previous operation</a> this one allows to unite at once many triangles \r
+ if they have adjacent edges. </p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To union several triangles:</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">1. Display a mesh or a submesh in the 3D \r
+ viewer.</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu select the <span style="font-weight: bold;"><B>Union of triangles \r
+ </B></span>item or click <img src="../image80.gif" width="23px" height="24px" border="0" class="img_whs3"> button in the toolbar. The following \r
+ dialog box will appear:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs2"><img src="../image81.gif" width="295px" height="362px" border="0" class="img_whs4"></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<ul type="disc" class="whs5">\r
+       \r
+       <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>The main list </B></span>shall contain the triangles \r
+ which will be united. You can click on an triangle in the 3D viewer and \r
+ it will be highlighted. After that click the <span style="font-weight: bold;"><B>Add \r
+ </B></span>button and the ID of this triangle will be added to the list. To \r
+ remove a selected element or elements from the list click the <span style="font-weight: bold;"><B>Remove \r
+ </B></span>button. The <span style="font-weight: bold;"><B>Sort </B></span>button \r
+ allows to sort the list of IDs. The <span style="font-weight: bold;"><B>Set \r
+ filter </B></span>button allows to apply a definite filter to selection of \r
+ triangles.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Apply to all </B></span><span>radio button allows \r
+ to modify the orientation of all triangles of the currently displayed \r
+ mesh or submesh.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs6"><span \r
+ style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
+ choose a submesh or an existing group whose triangle elements will be \r
+ automatically added to the list.</p></li>\r
+</ul>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply \r
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
+ the operation.</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs7"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> If some selected triangle \r
+ elements have no adjacent edges with one of the others, the operation \r
+ on these elements shall take no effect.</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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/uniting_two_triangles.htm b/doc/salome/gui/SMESH/files/uniting_two_triangles.htm
new file mode 100755 (executable)
index 0000000..7d1d999
--- /dev/null
@@ -0,0 +1,166 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Uniting two triangles</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=725>\r
+<meta name=layout-width content=763>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 23px; height: 23px;}\r
+img_whs3 {border-style: none; border: none; width: 295px; height: 148px;}\r
+table.whs4 {x-cell-content-align: top; width: 100%; border-spacing: 0px; border-spacing: 0px;}\r
+col.whs5 {width: 50%;}\r
+tr.whs6 {x-cell-content-align: top;}\r
+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;}\r
+img_whs8 {border-style: none; border: none; width: 348px; height: 224px;}\r
+td.whs9 {width: 50%; padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
+img_whs10 {border-style: none; border: none; width: 350px; height: 224px;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nUniting two triangles");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Uniting two triangles</h1>\r
+\r
+<p>&nbsp;In SMESH \r
+ you can union two neighboring triangles (cells) by deletion of the common \r
+ edge.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To unite two triangles:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Union of two triangles \r
+ </B></span>item or click <img src="../image71.gif" width="23px" height="23px" border="0" class="img_whs2"> button in the toolbar. The following \r
+ dialog box shall appear:</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="../image72.gif" width="295px" height="148px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. Enter the ID of the required edge in the \r
+ <span style="font-weight: bold;"><B>Edge </B></span>&nbsp;field \r
+ or select this edge in the 3D viewer. </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">3. 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 class=TODO\r
+       style="margin-left: 40px;">&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs4">\r
+<col class="whs5">\r
+<col class="whs5">\r
+\r
+<tr valign="top" class="whs6">\r
+<td width="50%" class="whs7">\r
+<p><img src="../image40.jpg" width="348px" height="224px" border="0" class="img_whs8"></td>\r
+<td width="50%" class="whs9">\r
+<p><img src="../image39.jpg" width="350px" height="224px" border="0" class="img_whs10"></td></tr>\r
+</table>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/using_operations_on_groups.htm b/doc/salome/gui/SMESH/files/using_operations_on_groups.htm
new file mode 100755 (executable)
index 0000000..3320787
--- /dev/null
@@ -0,0 +1,243 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Using operations on groups</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1909>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+ul.whs2 {list-style: disc;}\r
+p.whs3 {font-weight: bold;}\r
+p.whs4 {margin-left: 40px;}\r
+img_whs5 {border-style: none; border: none; width: 290px; height: 245px;}\r
+img_whs6 {border-style: none; border: none; width: 290px; height: 244px;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nGrouping elements\nUsing operations on groups");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Using operations on groups</h1>\r
+\r
+<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> </B></span>In SMESH you can \r
+ perform &nbsp;Boolean \r
+ operations on groups such as:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<ul type="disc" class="whs2">\r
+       \r
+       <li class=kadov-p><p class="whs3"><a href="#Union">Union</a> \r
+ </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3"><a href="#Intersection">Intersection</a></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3"><a href="#Cut">Cut</a></p></li>\r
+</ul>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<h3><a name=Union></a>Union of two groups</h3>\r
+\r
+<p>This operation allows to create a new group in such a way that all mesh \r
+ elements that are present in the initial groups will be added to the new \r
+ one.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To union two groups:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span>menu select the <span style="font-weight: bold;"><B>Union Groups </B></span>item. \r
+ The following dialog box will appear:</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../image77.gif" width="290px" height="245px" border="0" class="img_whs5"></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs4">In this dialog box you should specify the \r
+ name<span style="font-weight: bold;"> <B></B></span>of the resulting group and \r
+ two groups which will be united.</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4">2. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply \r
+ </B></span>button to confirm creation of the group. </p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<h3><a name=Intersection></a>Intersection of two groups</h3>\r
+\r
+<p>This operation allows to create a new group in such a way that all mesh \r
+ elements that are present in both initial groups are added to the new \r
+ one.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To intersect two groups:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span>menu select the <span style="font-weight: bold;"><B>Intersect Groups \r
+ </B></span>item. The following dialog box will appear:</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../image76.gif" width="290px" height="245px" border="0" class="img_whs5"></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs4">In this dialog box you should specify the \r
+ name<span style="font-weight: bold;"> <B></B></span>of the resulting group and \r
+ two groups which will be intersected.</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4">2. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply \r
+ </B></span>button to confirm creation of the group. </p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<h3><a name=Cut></a>Cut of two groups</h3>\r
+\r
+<p>This operation allows to create a new group in such a way that all mesh \r
+ elements that are present in the main group but are absent in the tool \r
+ group are added to the new one.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To cut two groups:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span>menu select the <span style="font-weight: bold;"><B>Cut Groups </B></span>item. \r
+ The following dialog box will appear:</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../image75.gif" width="290px" height="244px" border="0" class="img_whs6"></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs4">In this dialog box you should specify the \r
+ name<span style="font-weight: bold;"> <B></B></span>of the resulting group and \r
+ two groups which will be cut.</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4">2. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply \r
+ </B></span>button to confirm creation of the group. &nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
index 65f81adf7cbaedf774ba208c9b4c2a0800b9f22a..add17849a79a43d9602ae3453661212d012941f8 100755 (executable)
@@ -74,8 +74,7 @@ if (window.gbWhTopic)
 {\r
        if (window.addTocInfo)\r
        {\r
-       addTocInfo("SMESH module\nSetting SMESH preferences\nView update");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
 \r
        }\r
        if (window.writeBtnStyle)\r
index 47d6eb6b5fdc8d6bb96076ea210fae3d382252ad..012d1bca30ffdb357956caf30e642b69f9ad213e 100755 (executable)
@@ -19,8 +19,8 @@
 <meta name=filetype content=kadov>\r
 <meta name=filetype-version content=1>\r
 <meta name=page-count content=1>\r
-<meta name=layout-height content=588>\r
-<meta name=layout-width content=547>\r
+<meta name=layout-height content=656>\r
+<meta name=layout-width content=740>\r
 \r
 \r
 <!--(Links)=========================================================-->\r
@@ -38,7 +38,7 @@ p.whs1 {margin-left: 40px;}
 img_whs2 {border-style: none; border: none; width: 21px; height: 20px;}\r
 p.whs3 {margin-left: 0px;}\r
 p.whs4 {margin-left: 80px;}\r
-img_whs5 {border-style: none; border: none; width: 258px; height: 282px;}\r
+img_whs5 {border: none; width: 190px; height: 350px;}\r
 -->\r
 </style>\r
 <script type="text/javascript" language="JavaScript">\r
@@ -135,7 +135,7 @@ else
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs4"><img src="../image27.gif" width="258px" height="282px" border="0" class="img_whs5"></p>\r
+<p class="whs4"><img src="../image82.jpg" width="190px" height="350px" border="0" class="img_whs5"></p>\r
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
index 829e9e3947e27158d457377d7a3d4f3f9456bc45..731b8b0eed70613a4b20a0fbef1468c708ddfc13 100755 (executable)
@@ -77,8 +77,7 @@ if (window.gbWhTopic)
 {\r
        if (window.addTocInfo)\r
        {\r
-       addTocInfo("SMESH module\nSetting SMESH preferences\nVisualization modes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
 \r
        }\r
        if (window.writeBtnStyle)\r
index 9ab5c022cac13b75814914a12b53687a8414759b..eb7d83c498edb46b3449167b0a42036577ac503b 100755 (executable)
@@ -69,8 +69,7 @@ if (window.gbWhTopic)
 {\r
        if (window.addTocInfo)\r
        {\r
-       addTocInfo("SMESH module\nSetting SMESH preferences\nVisualization properties");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+       addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
 \r
        }\r
        if (window.writeBtnStyle)\r
diff --git a/doc/salome/gui/SMESH/image22.jpg b/doc/salome/gui/SMESH/image22.jpg
new file mode 100755 (executable)
index 0000000..b6a5e8d
Binary files /dev/null and b/doc/salome/gui/SMESH/image22.jpg differ
diff --git a/doc/salome/gui/SMESH/image23.jpg b/doc/salome/gui/SMESH/image23.jpg
new file mode 100755 (executable)
index 0000000..74f899b
Binary files /dev/null and b/doc/salome/gui/SMESH/image23.jpg differ
diff --git a/doc/salome/gui/SMESH/image30.jpg b/doc/salome/gui/SMESH/image30.jpg
new file mode 100755 (executable)
index 0000000..997a36e
Binary files /dev/null and b/doc/salome/gui/SMESH/image30.jpg differ
diff --git a/doc/salome/gui/SMESH/image31.jpg b/doc/salome/gui/SMESH/image31.jpg
new file mode 100755 (executable)
index 0000000..aa00403
Binary files /dev/null and b/doc/salome/gui/SMESH/image31.jpg differ
diff --git a/doc/salome/gui/SMESH/image32.jpg b/doc/salome/gui/SMESH/image32.jpg
new file mode 100755 (executable)
index 0000000..77d595d
Binary files /dev/null and b/doc/salome/gui/SMESH/image32.jpg differ
diff --git a/doc/salome/gui/SMESH/image34.jpg b/doc/salome/gui/SMESH/image34.jpg
new file mode 100755 (executable)
index 0000000..3f4b042
Binary files /dev/null and b/doc/salome/gui/SMESH/image34.jpg differ
diff --git a/doc/salome/gui/SMESH/image35.jpg b/doc/salome/gui/SMESH/image35.jpg
new file mode 100755 (executable)
index 0000000..bc9c85e
Binary files /dev/null and b/doc/salome/gui/SMESH/image35.jpg differ
diff --git a/doc/salome/gui/SMESH/image36.jpg b/doc/salome/gui/SMESH/image36.jpg
new file mode 100755 (executable)
index 0000000..9b44dc7
Binary files /dev/null and b/doc/salome/gui/SMESH/image36.jpg differ
diff --git a/doc/salome/gui/SMESH/image38.jpg b/doc/salome/gui/SMESH/image38.jpg
new file mode 100755 (executable)
index 0000000..29d5e71
Binary files /dev/null and b/doc/salome/gui/SMESH/image38.jpg differ
diff --git a/doc/salome/gui/SMESH/image39.jpg b/doc/salome/gui/SMESH/image39.jpg
new file mode 100755 (executable)
index 0000000..16e6215
Binary files /dev/null and b/doc/salome/gui/SMESH/image39.jpg differ
diff --git a/doc/salome/gui/SMESH/image40.jpg b/doc/salome/gui/SMESH/image40.jpg
new file mode 100755 (executable)
index 0000000..93369a5
Binary files /dev/null and b/doc/salome/gui/SMESH/image40.jpg differ
diff --git a/doc/salome/gui/SMESH/image41.jpg b/doc/salome/gui/SMESH/image41.jpg
new file mode 100755 (executable)
index 0000000..53a9de2
Binary files /dev/null and b/doc/salome/gui/SMESH/image41.jpg differ
diff --git a/doc/salome/gui/SMESH/image42.jpg b/doc/salome/gui/SMESH/image42.jpg
new file mode 100755 (executable)
index 0000000..159c805
Binary files /dev/null and b/doc/salome/gui/SMESH/image42.jpg differ
diff --git a/doc/salome/gui/SMESH/image43.jpg b/doc/salome/gui/SMESH/image43.jpg
new file mode 100755 (executable)
index 0000000..b216f6c
Binary files /dev/null and b/doc/salome/gui/SMESH/image43.jpg differ
diff --git a/doc/salome/gui/SMESH/image44.jpg b/doc/salome/gui/SMESH/image44.jpg
new file mode 100755 (executable)
index 0000000..c99348a
Binary files /dev/null and b/doc/salome/gui/SMESH/image44.jpg differ
diff --git a/doc/salome/gui/SMESH/image45.jpg b/doc/salome/gui/SMESH/image45.jpg
new file mode 100755 (executable)
index 0000000..22b7036
Binary files /dev/null and b/doc/salome/gui/SMESH/image45.jpg differ
diff --git a/doc/salome/gui/SMESH/image46.jpg b/doc/salome/gui/SMESH/image46.jpg
new file mode 100755 (executable)
index 0000000..d9faec3
Binary files /dev/null and b/doc/salome/gui/SMESH/image46.jpg differ
diff --git a/doc/salome/gui/SMESH/image47.jpg b/doc/salome/gui/SMESH/image47.jpg
new file mode 100755 (executable)
index 0000000..d66f5e8
Binary files /dev/null and b/doc/salome/gui/SMESH/image47.jpg differ
diff --git a/doc/salome/gui/SMESH/image48.jpg b/doc/salome/gui/SMESH/image48.jpg
new file mode 100755 (executable)
index 0000000..a3a2a0a
Binary files /dev/null and b/doc/salome/gui/SMESH/image48.jpg differ
diff --git a/doc/salome/gui/SMESH/image49.jpg b/doc/salome/gui/SMESH/image49.jpg
new file mode 100755 (executable)
index 0000000..00506cb
Binary files /dev/null and b/doc/salome/gui/SMESH/image49.jpg differ
diff --git a/doc/salome/gui/SMESH/image50.jpg b/doc/salome/gui/SMESH/image50.jpg
new file mode 100755 (executable)
index 0000000..7f0b1aa
Binary files /dev/null and b/doc/salome/gui/SMESH/image50.jpg differ
diff --git a/doc/salome/gui/SMESH/image51.jpg b/doc/salome/gui/SMESH/image51.jpg
new file mode 100755 (executable)
index 0000000..dfe3bc6
Binary files /dev/null and b/doc/salome/gui/SMESH/image51.jpg differ
diff --git a/doc/salome/gui/SMESH/image52.jpg b/doc/salome/gui/SMESH/image52.jpg
new file mode 100755 (executable)
index 0000000..1c83b35
Binary files /dev/null and b/doc/salome/gui/SMESH/image52.jpg differ
diff --git a/doc/salome/gui/SMESH/image53.jpg b/doc/salome/gui/SMESH/image53.jpg
new file mode 100755 (executable)
index 0000000..4fd2baa
Binary files /dev/null and b/doc/salome/gui/SMESH/image53.jpg differ
diff --git a/doc/salome/gui/SMESH/image54.jpg b/doc/salome/gui/SMESH/image54.jpg
new file mode 100755 (executable)
index 0000000..066a572
Binary files /dev/null and b/doc/salome/gui/SMESH/image54.jpg differ
diff --git a/doc/salome/gui/SMESH/image55.jpg b/doc/salome/gui/SMESH/image55.jpg
new file mode 100755 (executable)
index 0000000..c707a8a
Binary files /dev/null and b/doc/salome/gui/SMESH/image55.jpg differ
diff --git a/doc/salome/gui/SMESH/image57.gif b/doc/salome/gui/SMESH/image57.gif
new file mode 100755 (executable)
index 0000000..5f43c24
Binary files /dev/null and b/doc/salome/gui/SMESH/image57.gif differ
diff --git a/doc/salome/gui/SMESH/image57.jpg b/doc/salome/gui/SMESH/image57.jpg
new file mode 100755 (executable)
index 0000000..d87bb4d
Binary files /dev/null and b/doc/salome/gui/SMESH/image57.jpg differ
diff --git a/doc/salome/gui/SMESH/image58.jpg b/doc/salome/gui/SMESH/image58.jpg
new file mode 100755 (executable)
index 0000000..28ec009
Binary files /dev/null and b/doc/salome/gui/SMESH/image58.jpg differ
diff --git a/doc/salome/gui/SMESH/image59.jpg b/doc/salome/gui/SMESH/image59.jpg
new file mode 100755 (executable)
index 0000000..ef979c3
Binary files /dev/null and b/doc/salome/gui/SMESH/image59.jpg differ
diff --git a/doc/salome/gui/SMESH/image60.jpg b/doc/salome/gui/SMESH/image60.jpg
new file mode 100755 (executable)
index 0000000..2d2f4d9
Binary files /dev/null and b/doc/salome/gui/SMESH/image60.jpg differ
diff --git a/doc/salome/gui/SMESH/image61.gif b/doc/salome/gui/SMESH/image61.gif
new file mode 100755 (executable)
index 0000000..17aac18
Binary files /dev/null and b/doc/salome/gui/SMESH/image61.gif differ
diff --git a/doc/salome/gui/SMESH/image61.jpg b/doc/salome/gui/SMESH/image61.jpg
new file mode 100755 (executable)
index 0000000..d173332
Binary files /dev/null and b/doc/salome/gui/SMESH/image61.jpg differ
diff --git a/doc/salome/gui/SMESH/image62.jpg b/doc/salome/gui/SMESH/image62.jpg
new file mode 100755 (executable)
index 0000000..390f770
Binary files /dev/null and b/doc/salome/gui/SMESH/image62.jpg differ
diff --git a/doc/salome/gui/SMESH/image63.gif b/doc/salome/gui/SMESH/image63.gif
new file mode 100755 (executable)
index 0000000..6a9c2c8
Binary files /dev/null and b/doc/salome/gui/SMESH/image63.gif differ
diff --git a/doc/salome/gui/SMESH/image63.jpg b/doc/salome/gui/SMESH/image63.jpg
new file mode 100755 (executable)
index 0000000..a453635
Binary files /dev/null and b/doc/salome/gui/SMESH/image63.jpg differ
diff --git a/doc/salome/gui/SMESH/image64.gif b/doc/salome/gui/SMESH/image64.gif
new file mode 100755 (executable)
index 0000000..1d92c81
Binary files /dev/null and b/doc/salome/gui/SMESH/image64.gif differ
diff --git a/doc/salome/gui/SMESH/image64.jpg b/doc/salome/gui/SMESH/image64.jpg
new file mode 100755 (executable)
index 0000000..6ff8943
Binary files /dev/null and b/doc/salome/gui/SMESH/image64.jpg differ
diff --git a/doc/salome/gui/SMESH/image65.gif b/doc/salome/gui/SMESH/image65.gif
new file mode 100755 (executable)
index 0000000..8ac6138
Binary files /dev/null and b/doc/salome/gui/SMESH/image65.gif differ
diff --git a/doc/salome/gui/SMESH/image65.jpg b/doc/salome/gui/SMESH/image65.jpg
new file mode 100755 (executable)
index 0000000..d999dcd
Binary files /dev/null and b/doc/salome/gui/SMESH/image65.jpg differ
diff --git a/doc/salome/gui/SMESH/image66.gif b/doc/salome/gui/SMESH/image66.gif
new file mode 100755 (executable)
index 0000000..3040b1b
Binary files /dev/null and b/doc/salome/gui/SMESH/image66.gif differ
diff --git a/doc/salome/gui/SMESH/image66.jpg b/doc/salome/gui/SMESH/image66.jpg
new file mode 100755 (executable)
index 0000000..dd770ef
Binary files /dev/null and b/doc/salome/gui/SMESH/image66.jpg differ
diff --git a/doc/salome/gui/SMESH/image67.gif b/doc/salome/gui/SMESH/image67.gif
new file mode 100755 (executable)
index 0000000..68bd3e3
Binary files /dev/null and b/doc/salome/gui/SMESH/image67.gif differ
diff --git a/doc/salome/gui/SMESH/image67.jpg b/doc/salome/gui/SMESH/image67.jpg
new file mode 100755 (executable)
index 0000000..5166140
Binary files /dev/null and b/doc/salome/gui/SMESH/image67.jpg differ
diff --git a/doc/salome/gui/SMESH/image68.gif b/doc/salome/gui/SMESH/image68.gif
new file mode 100755 (executable)
index 0000000..325eb90
Binary files /dev/null and b/doc/salome/gui/SMESH/image68.gif differ
diff --git a/doc/salome/gui/SMESH/image68.jpg b/doc/salome/gui/SMESH/image68.jpg
new file mode 100755 (executable)
index 0000000..1414356
Binary files /dev/null and b/doc/salome/gui/SMESH/image68.jpg differ
diff --git a/doc/salome/gui/SMESH/image69.gif b/doc/salome/gui/SMESH/image69.gif
new file mode 100755 (executable)
index 0000000..91707d1
Binary files /dev/null and b/doc/salome/gui/SMESH/image69.gif differ
diff --git a/doc/salome/gui/SMESH/image69.jpg b/doc/salome/gui/SMESH/image69.jpg
new file mode 100755 (executable)
index 0000000..6998984
Binary files /dev/null and b/doc/salome/gui/SMESH/image69.jpg differ
diff --git a/doc/salome/gui/SMESH/image70.gif b/doc/salome/gui/SMESH/image70.gif
new file mode 100755 (executable)
index 0000000..120b8e8
Binary files /dev/null and b/doc/salome/gui/SMESH/image70.gif differ
diff --git a/doc/salome/gui/SMESH/image70.jpg b/doc/salome/gui/SMESH/image70.jpg
new file mode 100755 (executable)
index 0000000..0df360f
Binary files /dev/null and b/doc/salome/gui/SMESH/image70.jpg differ
diff --git a/doc/salome/gui/SMESH/image71.gif b/doc/salome/gui/SMESH/image71.gif
new file mode 100755 (executable)
index 0000000..0008354
Binary files /dev/null and b/doc/salome/gui/SMESH/image71.gif differ
diff --git a/doc/salome/gui/SMESH/image71.jpg b/doc/salome/gui/SMESH/image71.jpg
new file mode 100755 (executable)
index 0000000..cb1223d
Binary files /dev/null and b/doc/salome/gui/SMESH/image71.jpg differ
diff --git a/doc/salome/gui/SMESH/image72.gif b/doc/salome/gui/SMESH/image72.gif
new file mode 100755 (executable)
index 0000000..43a40df
Binary files /dev/null and b/doc/salome/gui/SMESH/image72.gif differ
diff --git a/doc/salome/gui/SMESH/image72.jpg b/doc/salome/gui/SMESH/image72.jpg
new file mode 100755 (executable)
index 0000000..21070c6
Binary files /dev/null and b/doc/salome/gui/SMESH/image72.jpg differ
diff --git a/doc/salome/gui/SMESH/image73.gif b/doc/salome/gui/SMESH/image73.gif
new file mode 100755 (executable)
index 0000000..504816a
Binary files /dev/null and b/doc/salome/gui/SMESH/image73.gif differ
diff --git a/doc/salome/gui/SMESH/image73.jpg b/doc/salome/gui/SMESH/image73.jpg
new file mode 100755 (executable)
index 0000000..d13b0e5
Binary files /dev/null and b/doc/salome/gui/SMESH/image73.jpg differ
diff --git a/doc/salome/gui/SMESH/image74.gif b/doc/salome/gui/SMESH/image74.gif
new file mode 100755 (executable)
index 0000000..c66029e
Binary files /dev/null and b/doc/salome/gui/SMESH/image74.gif differ
diff --git a/doc/salome/gui/SMESH/image74.jpg b/doc/salome/gui/SMESH/image74.jpg
new file mode 100755 (executable)
index 0000000..177fa20
Binary files /dev/null and b/doc/salome/gui/SMESH/image74.jpg differ
diff --git a/doc/salome/gui/SMESH/image75.gif b/doc/salome/gui/SMESH/image75.gif
new file mode 100755 (executable)
index 0000000..1a9b432
Binary files /dev/null and b/doc/salome/gui/SMESH/image75.gif differ
diff --git a/doc/salome/gui/SMESH/image75.jpg b/doc/salome/gui/SMESH/image75.jpg
new file mode 100755 (executable)
index 0000000..3bb1a13
Binary files /dev/null and b/doc/salome/gui/SMESH/image75.jpg differ
diff --git a/doc/salome/gui/SMESH/image76.gif b/doc/salome/gui/SMESH/image76.gif
new file mode 100755 (executable)
index 0000000..f8c0ec0
Binary files /dev/null and b/doc/salome/gui/SMESH/image76.gif differ
diff --git a/doc/salome/gui/SMESH/image76.jpg b/doc/salome/gui/SMESH/image76.jpg
new file mode 100755 (executable)
index 0000000..88ec89f
Binary files /dev/null and b/doc/salome/gui/SMESH/image76.jpg differ
diff --git a/doc/salome/gui/SMESH/image77.gif b/doc/salome/gui/SMESH/image77.gif
new file mode 100755 (executable)
index 0000000..750a890
Binary files /dev/null and b/doc/salome/gui/SMESH/image77.gif differ
diff --git a/doc/salome/gui/SMESH/image77.jpg b/doc/salome/gui/SMESH/image77.jpg
new file mode 100755 (executable)
index 0000000..c253eac
Binary files /dev/null and b/doc/salome/gui/SMESH/image77.jpg differ
diff --git a/doc/salome/gui/SMESH/image78.gif b/doc/salome/gui/SMESH/image78.gif
new file mode 100755 (executable)
index 0000000..f956a22
Binary files /dev/null and b/doc/salome/gui/SMESH/image78.gif differ
diff --git a/doc/salome/gui/SMESH/image78.jpg b/doc/salome/gui/SMESH/image78.jpg
new file mode 100755 (executable)
index 0000000..80c2a16
Binary files /dev/null and b/doc/salome/gui/SMESH/image78.jpg differ
diff --git a/doc/salome/gui/SMESH/image79.gif b/doc/salome/gui/SMESH/image79.gif
new file mode 100755 (executable)
index 0000000..9711ccb
Binary files /dev/null and b/doc/salome/gui/SMESH/image79.gif differ
diff --git a/doc/salome/gui/SMESH/image80.gif b/doc/salome/gui/SMESH/image80.gif
new file mode 100755 (executable)
index 0000000..399af0a
Binary files /dev/null and b/doc/salome/gui/SMESH/image80.gif differ
diff --git a/doc/salome/gui/SMESH/image80.jpg b/doc/salome/gui/SMESH/image80.jpg
new file mode 100755 (executable)
index 0000000..c3bb979
Binary files /dev/null and b/doc/salome/gui/SMESH/image80.jpg differ
diff --git a/doc/salome/gui/SMESH/image81.gif b/doc/salome/gui/SMESH/image81.gif
new file mode 100755 (executable)
index 0000000..ed3413a
Binary files /dev/null and b/doc/salome/gui/SMESH/image81.gif differ
diff --git a/doc/salome/gui/SMESH/image81.jpg b/doc/salome/gui/SMESH/image81.jpg
new file mode 100755 (executable)
index 0000000..5055860
Binary files /dev/null and b/doc/salome/gui/SMESH/image81.jpg differ
diff --git a/doc/salome/gui/SMESH/image82.gif b/doc/salome/gui/SMESH/image82.gif
new file mode 100755 (executable)
index 0000000..93c6c9b
Binary files /dev/null and b/doc/salome/gui/SMESH/image82.gif differ
diff --git a/doc/salome/gui/SMESH/image82.jpg b/doc/salome/gui/SMESH/image82.jpg
new file mode 100755 (executable)
index 0000000..b9f28a5
Binary files /dev/null and b/doc/salome/gui/SMESH/image82.jpg differ
diff --git a/doc/salome/gui/SMESH/image83.gif b/doc/salome/gui/SMESH/image83.gif
new file mode 100755 (executable)
index 0000000..331b64a
Binary files /dev/null and b/doc/salome/gui/SMESH/image83.gif differ
diff --git a/doc/salome/gui/SMESH/image84.gif b/doc/salome/gui/SMESH/image84.gif
new file mode 100755 (executable)
index 0000000..ea8ec56
Binary files /dev/null and b/doc/salome/gui/SMESH/image84.gif differ
diff --git a/doc/salome/gui/SMESH/image85.gif b/doc/salome/gui/SMESH/image85.gif
new file mode 100755 (executable)
index 0000000..9f55d31
Binary files /dev/null and b/doc/salome/gui/SMESH/image85.gif differ
diff --git a/doc/salome/gui/SMESH/image87.gif b/doc/salome/gui/SMESH/image87.gif
new file mode 100755 (executable)
index 0000000..916dbf0
Binary files /dev/null and b/doc/salome/gui/SMESH/image87.gif differ
diff --git a/doc/salome/gui/SMESH/image88.gif b/doc/salome/gui/SMESH/image88.gif
new file mode 100755 (executable)
index 0000000..b2d4b73
Binary files /dev/null and b/doc/salome/gui/SMESH/image88.gif differ
diff --git a/doc/salome/gui/SMESH/image89.gif b/doc/salome/gui/SMESH/image89.gif
new file mode 100755 (executable)
index 0000000..dc6b07e
Binary files /dev/null and b/doc/salome/gui/SMESH/image89.gif differ
diff --git a/doc/salome/gui/SMESH/image90.gif b/doc/salome/gui/SMESH/image90.gif
new file mode 100755 (executable)
index 0000000..e6e552b
Binary files /dev/null and b/doc/salome/gui/SMESH/image90.gif differ
diff --git a/doc/salome/gui/SMESH/image91.gif b/doc/salome/gui/SMESH/image91.gif
new file mode 100755 (executable)
index 0000000..a09ab9e
Binary files /dev/null and b/doc/salome/gui/SMESH/image91.gif differ
diff --git a/doc/salome/gui/SMESH/image92.gif b/doc/salome/gui/SMESH/image92.gif
new file mode 100755 (executable)
index 0000000..9e0517f
Binary files /dev/null and b/doc/salome/gui/SMESH/image92.gif differ
diff --git a/doc/salome/gui/SMESH/image93.gif b/doc/salome/gui/SMESH/image93.gif
new file mode 100755 (executable)
index 0000000..eec8b57
Binary files /dev/null and b/doc/salome/gui/SMESH/image93.gif differ
diff --git a/doc/salome/gui/SMESH/image94.gif b/doc/salome/gui/SMESH/image94.gif
new file mode 100755 (executable)
index 0000000..7313f5d
Binary files /dev/null and b/doc/salome/gui/SMESH/image94.gif differ
diff --git a/doc/salome/gui/SMESH/image95.gif b/doc/salome/gui/SMESH/image95.gif
new file mode 100755 (executable)
index 0000000..6491f27
Binary files /dev/null and b/doc/salome/gui/SMESH/image95.gif differ
diff --git a/doc/salome/gui/SMESH/image96.gif b/doc/salome/gui/SMESH/image96.gif
new file mode 100755 (executable)
index 0000000..1392ee7
Binary files /dev/null and b/doc/salome/gui/SMESH/image96.gif differ
diff --git a/doc/salome/gui/SMESH/image97.gif b/doc/salome/gui/SMESH/image97.gif
new file mode 100755 (executable)
index 0000000..480b584
Binary files /dev/null and b/doc/salome/gui/SMESH/image97.gif differ
diff --git a/doc/salome/gui/SMESH/image98.gif b/doc/salome/gui/SMESH/image98.gif
new file mode 100755 (executable)
index 0000000..5f375b7
Binary files /dev/null and b/doc/salome/gui/SMESH/image98.gif differ
diff --git a/doc/salome/gui/SMESH/pattern_mapping.htm b/doc/salome/gui/SMESH/pattern_mapping.htm
new file mode 100755 (executable)
index 0000000..a1eabee
--- /dev/null
@@ -0,0 +1,307 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Pattern mapping</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=3341>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 626px; height: 471px;}\r
+img_whs4 {border: none; width: 22px; height: 28px;}\r
+table.whs5 {x-cell-content-align: top; width: 100%; border-spacing: 0;}\r
+col.whs6 {width: 50%;}\r
+td.whs7 {padding-right: 10px; padding-left: 10px; border-right-style: none; border-left-style: none; border-top-style: none; border-bottom-style: none;}\r
+img_whs8 {border: none; width: 232px; height: 400px;}\r
+td.whs9 {padding-right: 10px; padding-left: 10px; border-top-style: none; border-bottom-style: none; border-right-style: none;}\r
+p.whs10 {margin-left: 0px;}\r
+img_whs11 {border-style: none; border: none; width: 554px; height: 279px;}\r
+img_whs12 {border-style: none; border: none; width: 572px; height: 233px;}\r
+img_whs13 {border-style: none; border: none; width: 606px; height: 249px;}\r
+-->\r
+</style>\r
+<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.whs10 {margin-left:1; }";\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nPattern mapping");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Pattern mapping</h1>\r
+\r
+<h3>About patterns</h3>\r
+\r
+<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 \r
+ nodes within a geometrical domain and nodal connectivity of elements. \r
+ As well, a pattern specifies the so-called key-points, i.e. nodes that \r
+ will be located at geometrical vertices. Pattern description is stored \r
+ in &lt;pattern_name&gt;.smp file.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>The smp file contains 4 sections:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs2">1. The first line holds the number of nodes \r
+ (N).</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">2. The next N lines describe nodes coordinates. \r
+ Each line holds 2 coordinates of a node.</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">3. A key-points line: indices of nodes to \r
+ be mapped on geometrical vertices. An index n refers to a node described \r
+ on an n-th line of section 2. The first node index is zero.</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">4. The rest lines describe nodal connectivity \r
+ of elements, one line for an element. A line holds indices of nodes forming \r
+ an element. An index n refers to a node described on an n-th line of the \r
+ section 2. The first node index is zero. There must be 3 or 4 indices \r
+ on a line: only 2d elements are allowed.</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p>The 2D pattern must contain at least one element and at least one key-point. \r
+ All key-points must lay on boundaries.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>An example of a simple smp file and a preview of a pattern described \r
+ in this file:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p><img src="image94.gif" width="626px" height="471px" border="0" class="img_whs3"></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<h3>Creating patterns</h3>\r
+\r
+<p>The pattern description can be created manually or automatically. Manual \r
+ pattern creation implies creation of pattern file by hands. For an automatic \r
+ generation the user just specifies a geometrical face having a mesh built \r
+ on it. Mesh nodes lying on face vertices become key-points. Additionally, \r
+ the user may choose the way of getting nodes coordinates by projecting \r
+ nodes on the face instead of using &quot;positions on face&quot; generated \r
+ by mesher (if there are any). Faces having a seam edge can\92t be used for \r
+ automatic pattern creation.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>When creating a pattern from an existing mesh, there are two possible \r
+ cases:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>1. A sub-mesh on face is selected. A pattern is created from the 2d \r
+ elements bound to a face by mesher. Node coordinates are either &quot;positions \r
+ on face&quot; computed by mesher, or coordinates got by node projection \r
+ on a geometrical surface, according to your choice.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>2. A mesh where the main shape is a face, is selected. A pattern is \r
+ created from all the 2d elements in a mesh. If all mesh elements are build \r
+ by mesher, the user can select the way of getting nodes coordinates, else \r
+ all nodes are projected on a face surface.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<h3>Application of pattern mapping</h3>\r
+\r
+<p class=TODO>To apply pattern mapping to a geometrical object:</p>\r
+\r
+<p class=TODO>&nbsp;</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>Pattern Mapping \r
+ </B></span>item or click <img src="image98.gif" width="22px" height="28px" border="0" class="img_whs4"> button in the toolbar. The following \r
+ dialog box shall appear:</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<!--(Table)=========================================================-->\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs5">\r
+<col class="whs6">\r
+<col class="whs6">\r
+\r
+<tr valign=top>\r
+<td width="50%" class="whs7">\r
+<p><img src="image81.jpg" width="232px" height="400px" border="0" class="img_whs8"></td>\r
+<td width="50%" class="whs9">\r
+<p><img src="image80.jpg" width="232px" height="400px" border="0" class="img_whs8"></td></tr>\r
+</table>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p>To apply a pattern to a geometrical object, you should specify:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs2">- a face having the number of vertices equal \r
+ to the number of key-points in the pattern; the number of key-points on \r
+ internal boundaries of a pattern must also be equal to the number of vertices \r
+ on internal boundaries of a face;</p>\r
+\r
+<p class="whs2">- a vertex to which the first key-point should \r
+ be mapped,</p>\r
+\r
+<p class="whs2">- reverse or not the order of key-points. \r
+ (The order of vertices of a face is counterclockwise looking from outside).</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<h3>Mapping algorithm:</h3>\r
+\r
+<p class="whs10">The mapping algorithm is as follows:</p>\r
+\r
+<p class="whs10">&nbsp;</p>\r
+\r
+<p class="whs2">1. Key-points are set in the order that they \r
+ are encountered when walking along a pattern boundary so that elements \r
+ are on the left. The first key-point is preserved.</p>\r
+\r
+<p class="whs2">2. Find geometrical vertices corresponding \r
+ to key-points by vertices order in a face boundary; here, &quot;Reverse \r
+ order of key-points&quot; flag is taken into account.</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2"><img src="image95.gif" width="554px" height="279px" border="0" class="img_whs11"></p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">3. Boundary nodes of a pattern are mapped \r
+ onto edges of a face: a node located between certain key-points on a pattern \r
+ boundary is mapped on a geometrical edge limited by corresponding geometrical \r
+ vertices. Node position on an edge reflects its distance from two key-points.</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2"><img src="image96.gif" width="572px" height="233px" border="0" class="img_whs12"></p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2">4. Coordinates of a non-boundary node in \r
+ a parametric space of a face are defined as following. In a parametric \r
+ space of a pattern, a node lays at the intersection of two iso-lines, \r
+ each of which intersects a pattern boundary at least at two points. Knowing \r
+ mapped positions of boundary nodes, we find where isoline-boundary intersection \r
+ points are mapped to, and hence we can find mapped isolines direction \r
+ and then, two node positions on two mapped isolines. The eventual mapped \r
+ position of a node is found as an average of positions on mapped isolines.</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2"><img src="image97.gif" width="606px" height="249px" border="0" class="img_whs13"></p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/revolution.htm b/doc/salome/gui/SMESH/revolution.htm
new file mode 100755 (executable)
index 0000000..515b1a4
--- /dev/null
@@ -0,0 +1,171 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Revolution</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1182>\r
+<meta name=layout-width content=740>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 24px; height: 25px;}\r
+img_whs3 {border-style: none; border: none; width: 519px; height: 438px;}\r
+ul.whs4 {list-style: disc;}\r
+img_whs5 {border-style: none; border: none; width: 350px; height: 201px;}\r
+-->\r
+</style>\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
+-->\r
+</style>\r
+<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
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nRevolution");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("smesh.htm");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Revolution</h1>\r
+\r
+<p>Revolution is a type of surface meshing by generation from discretized \r
+ lines. It is used to build mesh elements of plus one dimension than the \r
+ swept ones. Each swept 1D element produces one or more quadrangles (or \r
+ triangles if one node of a rotated element lays on the revolution axis).</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To apply revolution:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Revolution </B></span>item \r
+ or click <img src="image92.gif" width="24px" height="25px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
+ shall appear:</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="image93.gif" width="519px" height="438px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. In this dialog box you should specify:</p>\r
+\r
+<ul type="disc" class="whs4">\r
+       \r
+       <li class=kadov-p><p class="whs1">the type of elements \r
+ which will be extruded (1D or 2D),</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">specify the IDs of \r
+ the elements which will be revolved by selecting them in the 3D viewer \r
+ or select the whole mesh or submesh,</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">specify the axis (point \r
+ and vector) around which the elements will be revolved,</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">angle of rotation,</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">number of steps,</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">tolerance of rotation</p></li>\r
+</ul>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">3. 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 class="whs1">&nbsp;</p>\r
+\r
+<p class=TODO\r
+       style="margin-left: 40px;"><img src="image78.jpg" width="350px" height="201px" border="0" class="img_whs5"></p>\r
+\r
+<p class=TODO>&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
+\r
+</html>\r
index 544350aebec01ede6b6dcd59d30e8e8cab42e91b..22a15d7e597da17c744093df5a59c11b2d66e102 100755 (executable)
@@ -10,6 +10,7 @@
 </script>\r
 <script language="javascript">\r
 <!--\r
+aTE("Extrusion","extrusion.htm");\r
 aTE("1D meshing algorithm","files/1d_meshing_algorithm.htm");\r
 aTE("2D (Quadrangle) meshing algorithm","files/2d_(quadrangle)_meshing_algorithm.htm");\r
 aTE("2D meshing algorithm","files/2d_meshing_algorithm.htm");\r
@@ -26,40 +27,56 @@ aTE("Aspect Ratio","files/aspect_ratio.htm");
 aTE("Changing orientation of elements","files/changing_orientation_of_elements.htm");\r
 aTE("Computing meshes","files/computing_meshes.htm");\r
 aTE("Connectivity","files/connectivity.htm");\r
+aTE("Constructing groups of specific elements","files/constructing_groups_of_specific_elements.htm");\r
 aTE("Constructing meshes","files/constructing_meshes.htm");\r
 aTE("Constructing submeshes","files/constructing_submeshes.htm");\r
-aTE("Deflection 1D","files/deflection_1d.htm");\r
+aTE("Creating groups","files/creating_groups.htm");\r
+aTE("Cutting quadrangles","files/cutting_quadrangles.htm");\r
+aTE("Local Length hypothesis","files/deflection_1d.htm");\r
 aTE("Diagonal iversion of elements","files/diagonal_iversion_of_elements.htm");\r
 aTE("Displacing nodes","files/displacing_nodes.htm");\r
 aTE("Displaying elements numbers","files/displaying_elements_numbers.htm");\r
 aTE("Displaying nodes numbers","files/displaying_nodes_numbers.htm");\r
+aTE("Editing groups","files/editing_groups.htm");\r
 aTE("Editing hypotheses","files/editing_hypotheses.htm");\r
 aTE("Importing and exporting meshes","files/importing_and_exporting_meshes.htm");\r
 aTE("Introduction to SMESH","files/introduction_to_smesh.htm");\r
 aTE("Length from edges","files/length_from_edges.htm");\r
 aTE("Length of edges","files/length_of_edges.htm");\r
 aTE("Local Length hypothesis","files/local_length_hypothesis.htm");\r
-aTE("Max. Element Area hypothesis","files/max._element_area_hypothesis.htm");\r
-aTE("Max. Element volume hypothsis","files/max._element_volume_hypothsis.htm");\r
+aTE("Length from edges","files/max._element_area_hypothesis.htm");\r
+aTE("Non conform mesh allowed hypothesis","files/max._element_volume_hypothsis.htm");\r
+aTE("Merging nodes","files/merging_nodes.htm");\r
 aTE("Minimum angle","files/minimum_angle.htm");\r
 aTE("Non conform mesh allowed hypothesis","files/non_conform_mesh_allowed_hypothesis.htm");\r
 aTE("Number of segments hypothesis","files/number_of_segments_hypothesis.htm");\r
 aTE("Propagation of 1D Hypothesis on opposite edges","files/propagation_of_1d_hypothesis_on_opposite_edges.htm");\r
 aTE("Reassigning hypotheses and algorithms","files/reassigning_hypotheses_and_algorithms.htm");\r
 aTE("Removing nodes and elements","files/removing_nodes_and_elements.htm");\r
+aTE("Renumbering nodes and elements","files/renumbering_nodes_and_elements.htm");\r
+aTE("Rotation","files/rotation.htm");\r
 aTE("Running SMESH module","files/running_smesh_module.htm");\r
 aTE("Scalar Bar properties","files/scalar_bar_properties.htm");\r
+aTE("Sewing meshes","files/sewing_meshes.htm");\r
 aTE("Skew","files/skew.htm");\r
+aTE("Smoothing","files/smoothing.htm");\r
 aTE("Start and End Length hypothesis","files/start_and_end_length_hypothesis.htm");\r
+aTE("Symmetry","files/symmetry.htm");\r
 aTE("Taper","files/taper.htm");\r
+aTE("Tetrahedron (GHS3D) meshing algorithm","files/tetrahedron_(ghs3d)_meshing_algorithm.htm");\r
 aTE("Tetrahedron (Netgen) meshing algorithm","files/tetrahedron_(netgen)_meshing_algorithm.htm");\r
+aTE("Translation","files/translation.htm");\r
+aTE("Uniting a set of triangles","files/uniting_a_set_of_triangles.htm");\r
+aTE("Uniting two triangles","files/uniting_two_triangles.htm");\r
+aTE("Using operations on groups","files/using_operations_on_groups.htm");\r
 aTE("Using SMESH module","files/using_smesh_module.htm");\r
 aTE("View update","files/view_update.htm");\r
 aTE("Viewing mesh info","files/viewing_mesh_info.htm");\r
 aTE("Visualization modes","files/visualization_modes.htm");\r
 aTE("Visualization properties","files/visualization_properties.htm");\r
 aTE("Warp","files/warp.htm");\r
-aTE("Tetrahedron (GHS3D) meshing algorithm","tetrahedron_(ghs3d)_meshing_algorithm.htm");\r
+aTE("Pattern mapping","pattern_mapping.htm");\r
+aTE("Revolution","revolution.htm");\r
 \r
 //-->\r
 </script>\r
index 67c11bde83db967d96d9f13874b0093ebe74b3ad..e76c5260668c7b33201b60de2bfcc29d2b895e58 100755 (executable)
@@ -1,5 +1,6 @@
 <?xml version='1.0' encoding='ISO-8859-1' ?>\r
 <ftstdata>\r
+<topic name="Extrusion" url="extrusion.htm" />\r
 <topic name="1D meshing algorithm" url="files/1d_meshing_algorithm.htm" />\r
 <topic name="2D (Quadrangle) meshing algorithm" url="files/2d_(quadrangle)_meshing_algorithm.htm" />\r
 <topic name="2D meshing algorithm" url="files/2d_meshing_algorithm.htm" />\r
 <topic name="Changing orientation of elements" url="files/changing_orientation_of_elements.htm" />\r
 <topic name="Computing meshes" url="files/computing_meshes.htm" />\r
 <topic name="Connectivity" url="files/connectivity.htm" />\r
+<topic name="Constructing groups of specific elements" url="files/constructing_groups_of_specific_elements.htm" />\r
 <topic name="Constructing meshes" url="files/constructing_meshes.htm" />\r
 <topic name="Constructing submeshes" url="files/constructing_submeshes.htm" />\r
-<topic name="Deflection 1D" url="files/deflection_1d.htm" />\r
+<topic name="Creating groups" url="files/creating_groups.htm" />\r
+<topic name="Cutting quadrangles" url="files/cutting_quadrangles.htm" />\r
+<topic name="Local Length hypothesis" url="files/deflection_1d.htm" />\r
 <topic name="Diagonal iversion of elements" url="files/diagonal_iversion_of_elements.htm" />\r
 <topic name="Displacing nodes" url="files/displacing_nodes.htm" />\r
 <topic name="Displaying elements numbers" url="files/displaying_elements_numbers.htm" />\r
 <topic name="Displaying nodes numbers" url="files/displaying_nodes_numbers.htm" />\r
+<topic name="Editing groups" url="files/editing_groups.htm" />\r
 <topic name="Editing hypotheses" url="files/editing_hypotheses.htm" />\r
 <topic name="Importing and exporting meshes" url="files/importing_and_exporting_meshes.htm" />\r
 <topic name="Introduction to SMESH" url="files/introduction_to_smesh.htm" />\r
 <topic name="Length from edges" url="files/length_from_edges.htm" />\r
 <topic name="Length of edges" url="files/length_of_edges.htm" />\r
 <topic name="Local Length hypothesis" url="files/local_length_hypothesis.htm" />\r
-<topic name="Max. Element Area hypothesis" url="files/max._element_area_hypothesis.htm" />\r
-<topic name="Max. Element volume hypothsis" url="files/max._element_volume_hypothsis.htm" />\r
+<topic name="Length from edges" url="files/max._element_area_hypothesis.htm" />\r
+<topic name="Non conform mesh allowed hypothesis" url="files/max._element_volume_hypothsis.htm" />\r
+<topic name="Merging nodes" url="files/merging_nodes.htm" />\r
 <topic name="Minimum angle" url="files/minimum_angle.htm" />\r
 <topic name="Non conform mesh allowed hypothesis" url="files/non_conform_mesh_allowed_hypothesis.htm" />\r
 <topic name="Number of segments hypothesis" url="files/number_of_segments_hypothesis.htm" />\r
 <topic name="Propagation of 1D Hypothesis on opposite edges" url="files/propagation_of_1d_hypothesis_on_opposite_edges.htm" />\r
 <topic name="Reassigning hypotheses and algorithms" url="files/reassigning_hypotheses_and_algorithms.htm" />\r
 <topic name="Removing nodes and elements" url="files/removing_nodes_and_elements.htm" />\r
+<topic name="Renumbering nodes and elements" url="files/renumbering_nodes_and_elements.htm" />\r
+<topic name="Rotation" url="files/rotation.htm" />\r
 <topic name="Running SMESH module" url="files/running_smesh_module.htm" />\r
 <topic name="Scalar Bar properties" url="files/scalar_bar_properties.htm" />\r
+<topic name="Sewing meshes" url="files/sewing_meshes.htm" />\r
 <topic name="Skew" url="files/skew.htm" />\r
+<topic name="Smoothing" url="files/smoothing.htm" />\r
 <topic name="Start and End Length hypothesis" url="files/start_and_end_length_hypothesis.htm" />\r
+<topic name="Symmetry" url="files/symmetry.htm" />\r
 <topic name="Taper" url="files/taper.htm" />\r
+<topic name="Tetrahedron (GHS3D) meshing algorithm" url="files/tetrahedron_(ghs3d)_meshing_algorithm.htm" />\r
 <topic name="Tetrahedron (Netgen) meshing algorithm" url="files/tetrahedron_(netgen)_meshing_algorithm.htm" />\r
+<topic name="Translation" url="files/translation.htm" />\r
+<topic name="Uniting a set of triangles" url="files/uniting_a_set_of_triangles.htm" />\r
+<topic name="Uniting two triangles" url="files/uniting_two_triangles.htm" />\r
+<topic name="Using operations on groups" url="files/using_operations_on_groups.htm" />\r
 <topic name="Using SMESH module" url="files/using_smesh_module.htm" />\r
 <topic name="View update" url="files/view_update.htm" />\r
 <topic name="Viewing mesh info" url="files/viewing_mesh_info.htm" />\r
 <topic name="Visualization modes" url="files/visualization_modes.htm" />\r
 <topic name="Visualization properties" url="files/visualization_properties.htm" />\r
 <topic name="Warp" url="files/warp.htm" />\r
-<topic name="Tetrahedron (GHS3D) meshing algorithm" url="tetrahedron_(ghs3d)_meshing_algorithm.htm" />\r
+<topic name="Pattern mapping" url="pattern_mapping.htm" />\r
+<topic name="Revolution" url="revolution.htm" />\r
 \r
 </ftstdata>  \r
index 778f78b8fd3f0f5f118123c0319498d501357d60..c66f6baf47b3100b3d234d7be504b895c196a351 100755 (executable)
@@ -6,9 +6,9 @@
 <script language="javascript" src="whfts.js"></script>\r
 <script language="javascript">\r
 <!--\r
-iWM("0","z","whfwdata0.htm");\r
+iWM("0","zero","whfwdata0.htm");\r
 \r
-iTM(0,49,"whftdata0.htm");\r
+iTM(0,66,"whftdata0.htm");\r
 \r
 -->\r
 </script>\r
index d17f2e6c928934366b3fada16ccd17c96428988d..f8bc49348df81683d8ec3640e46562715e92dea0 100755 (executable)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='ISO-8859-1' ?>\r
 <fts>\r
-<chunkinfo url="whfwdata0.xml" first="0" last="z"/>\r
+<chunkinfo url="whfwdata0.xml" first="0" last="zero"/>\r
 \r
-<tchunkinfo first="0" last="49" url="whftdata0.xml" />\r
+<tchunkinfo first="0" last="66" url="whftdata0.xml" />\r
 \r
 </fts>\r
index 97a4c6667cbb324d3ad9843daffedaa4e6346c06..36480d595cfc900c97ee8cfeee61a35a749ae024 100755 (executable)
 </script>\r
 <script language="javascript">\r
 <!--\r
-aWE("0",5);\r
-aWE("0d",5);\r
-aWE("1",10,11,12,14,21,22,24,27,31,39,41,45,46,48);\r
-aWE("1d",0,4,5,6,11,18,25,26,34,40);\r
-aWE("2",10,12,14,21,22,24,27,31,39,41,45,46,48);\r
-aWE("2d",1,2,5,6,10,12,25,26,29,31,48);\r
-aWE("3",5,10,12,24,37,39,48);\r
-aWE("3d",3,5,6,25,30,49,42);\r
-aWE("3rd",5);\r
-aWE("4",5,10,12,39,41,48);\r
-aWE("5th",5);\r
-aWE("abut",28,33);\r
-aWE("accord",8,10,12,27,31,39,41,48);\r
-aWE("account",4);\r
-aWE("ad",9);\r
-aWE("addition",25);\r
-aWE("additional",5,37);\r
-aWE("adjacent",31,32);\r
-aWE("advanc",49);\r
-aWE("algorithm",0,1,2,3,4,5,6,8,10,11,16,17,25,29,30,35,49,42);\r
-aWE("allow",4,11,24,25,32,34);\r
-aWE("angl",8,25,31,39,48);\r
-aWE("anoth",34);\r
-aWE("any",5,49);\r
-aWE("ap",0,1,2,3,6,10,12,25,27,31,39,41,49,42,48);\r
-aWE("appear",4,6,11,16,17,18,28,29,30,33,37,40);\r
-aWE("appli",10,12,27,28,29,30,31,33,39,41,48);\r
-aWE("application",8);\r
-aWE("apply",4,16,17);\r
-aWE("approximate",33);\r
-aWE("arcsin",48);\r
-aWE("area",4,8,10,25,29,30,41);\r
-aWE("arithmetic",4,11);\r
-aWE("aspect",8,12,25);\r
-aWE("assign",48);\r
-aWE("averag",4,26,28,40,48);\r
-aWE("axi",48);\r
-aWE("bar",8,38);\r
-aWE("bas",4,10,25,48);\r
-aWE("basi",5);\r
-aWE("basic",4);\r
-aWE("befor",37);\r
-aWE("begin",11);\r
-aWE("bisect",48);\r
-aWE("bisector",48);\r
-aWE("border",25);\r
-aWE("bottom",37);\r
-aWE("bound",5);\r
-aWE("boundary",4);\r
-aWE("box",11,16,17,18,24,28,29,30,33,37,40);\r
-aWE("brows",14,45,46);\r
-aWE("build",18,26,40);\r
-aWE("built",49);\r
-aWE("button",10,12,14,16,17,24,27,31,39,41,45,48);\r
-aWE("cad",5);\r
-aWE("calculat",8,12,26,41);\r
-aWE("calculation",4,10,27,31);\r
-aWE("chang",11,13);\r
-aWE("characteristic",8);\r
-aWE("characteriz",5);\r
-aWE("choic",4);\r
-aWE("choos",10,12,24,27,31,37,39,41,48);\r
-aWE("chosen",29,30);\r
-aWE("click",0,1,2,3,4,6,10,11,12,14,16,17,18,24,27,28,29,30,31,33,37,39,40,41,49,42,45,46,48);\r
-aWE("clos",5);\r
-aWE("color",8,10,12,27,31,39,41,48);\r
-aWE("combin",27);\r
-aWE("component",25,37);\r
-aWE("compos",4,5,6,8,21,28,29,30,33,39);\r
-aWE("comput",14);\r
-aWE("computation",14,16,17);\r
-aWE("condition",4);\r
-aWE("conform",4,32);\r
-aWE("connect",18);\r
-aWE("connection",5,25);\r
-aWE("connectivity",15);\r
-aWE("consider",5);\r
-aWE("consist",8,10,12,16,17,27,28,29,30,31,33,41);\r
-aWE("constant",40);\r
-aWE("construct",16,17,18,40);\r
-aWE("construction",16,17);\r
-aWE("contain",5,6,24);\r
-aWE("contour",5);\r
-aWE("control",8,10,12,25,27,31,39,41,48);\r
-aWE("coordinat",5);\r
-aWE("corn",48);\r
-aWE("corner",48);\r
-aWE("correspond",5,8,24);\r
-aWE("could",5);\r
-aWE("creat",0,1,2,3,4,5,6,11,18,25,28,29,30,33,37,40,49,42,48);\r
-aWE("creation",5,37);\r
-aWE("criteria",25);\r
-aWE("criterion",10,12,27,31,39,41,48);\r
-aWE("cros",48);\r
-aWE("curv",5,18);\r
-aWE("d",11);\r
-aWE("deal",5);\r
-aWE("default",37);\r
-aWE("defin",5,11,12,18,28,29,30,33,40);\r
-aWE("definit",5,8,25,33);\r
-aWE("definition",28,29,30,33);\r
-aWE("deflection",4,18);\r
-aWE("deletion",25);\r
-aWE("depend",4,5,29,30);\r
-aWE("describ",5);\r
-aWE("desktop",37);\r
-aWE("destin",5,8,25);\r
-aWE("detail",4);\r
-aWE("diagonal",19,41);\r
-aWE("dialog",11,16,17,18,24,28,29,30,33,40);\r
-aWE("differ",40);\r
-aWE("different",4);\r
-aWE("dimension",5);\r
-aWE("direct",5);\r
-aWE("direction",48);\r
-aWE("discretization",0,5,6);\r
-aWE("displac",20);\r
-aWE("display",8,10,12,21,22,27,31,39,41,45,46,48);\r
-aWE("disposal",8);\r
-aWE("distanc",18,48);\r
-aWE("divid",18,40);\r
-aWE("do",49);\r
-aWE("don",5);\r
-aWE("edg",0,4,5,6,8,11,12,18,25,26,27,28,32,33,34,40,48);\r
-aWE("edit",23);\r
-aWE("element",4,5,8,9,10,12,13,18,19,21,25,27,29,30,31,32,36,39,40,41,49,48);\r
-aWE("encapsulat",17);\r
-aWE("end",4,11,18,32,40);\r
-aWE("ent",24);\r
-aWE("entiti",0,1,2,3,5,6,49,42);\r
-aWE("entity",5);\r
-aWE("equal",12,18);\r
-aWE("equilateral",12);\r
-aWE("etc",8);\r
-aWE("every",48);\r
-aWE("exampl",5,42);\r
-aWE("export",24,25);\r
-aWE("exportation",24);\r
-aWE("extend",48);\r
-aWE("fac",1,2,4,5,6,25,28,29,32,33,34,48);\r
-aWE("factor",40);\r
-aWE("fil",24);\r
-aWE("final",14);\r
-aWE("find",24);\r
-aWE("first",40);\r
-aWE("fix",5);\r
-aWE("follow",4,5,6,8,11,12,16,17,18,21,22,28,29,30,33,37,40,45);\r
-aWE("format",24,25);\r
-aWE("four",5,48);\r
-aWE("fre",5,25);\r
-aWE("function",5);\r
-aWE("functionality",5,24);\r
-aWE("generat",4,5,8,25,28,32,33,37,49);\r
-aWE("generation",14);\r
-aWE("geom",5,25);\r
-aWE("geometric",5,8);\r
-aWE("geometrical",0,1,2,3,4,5,6,16,17,18,25,28,29,30,33,40,49,42);\r
-aWE("ghs3d",49);\r
-aWE("given",11,26);\r
-aWE("global",16);\r
-aWE("group",25);\r
-aWE("h",48);\r
-aWE("h1",12);\r
-aWE("h2",12);\r
-aWE("half",48);\r
-aWE("hav",26,32,49);\r
-aWE("height",12,48);\r
-aWE("help",8);\r
-aWE("her",5,7,9,13,15,19,20,36,38,47);\r
-aWE("hexahedron",3,5,6,30);\r
-aWE("high",5);\r
-aWE("hyp",16,17);\r
-aWE("hypothes",0,1,2,3,4,6,11,16,17,18,23,25,28,29,30,33,35,40,49,42);\r
-aWE("hypothesi",4,11,18,26,28,29,30,32,33,34,40,49);\r
-aWE("i",3);\r
-aWE("icon",37);\r
-aWE("id",21,22);\r
-aWE("if",5,34);\r
-aWE("imp",5);\r
-aWE("import",24,25);\r
-aWE("importation",24);\r
-aWE("includ",5);\r
-aWE("indicat",48);\r
-aWE("info",45);\r
-aWE("information",5,45);\r
-aWE("initial",37);\r
-aWE("interest",5);\r
-aWE("introduction",25);\r
-aWE("invers",5);\r
-aWE("inversion",19);\r
-aWE("item",4,6,24);\r
-aWE("j",3);\r
-aWE("join",39);\r
-aWE("k",3);\r
-aWE("kind",6);\r
-aWE("l",48);\r
-aWE("largest",12);\r
-aWE("last",40);\r
-aWE("launch",37);\r
-aWE("length",4,8,11,12,25,26,27,28,33,40,48);\r
-aWE("les",49);\r
-aWE("level",4);\r
-aWE("lik",21,22,37);\r
-aWE("lin",5,18,39);\r
-aWE("lk",11);\r
-aWE("local",17,25,33,34);\r
-aWE("location",18,24,40);\r
-aWE("longest",12);\r
-aWE("look",21,22,37);\r
-aWE("low",5);\r
-aWE("main",4,6,37);\r
-aWE("manag",4);\r
-aWE("map",1);\r
-aWE("max",4,25,29,30);\r
-aWE("maximum",18,29,30,39);\r
-aWE("mean",5);\r
-aWE("meaningful",5);\r
-aWE("measur",48);\r
-aWE("mefisto",2);\r
-aWE("menu",0,1,2,3,4,6,11,14,16,17,18,21,22,24,28,29,30,33,37,40,49,42,45,46);\r
-aWE("mesh",0,1,2,3,4,5,6,7,8,10,12,14,16,17,18,21,22,24,25,26,27,28,29,30,31,32,33,37,39,40,41,49,42,45,46,48);\r
-aWE("minimum",8,25,31);\r
-aWE("mod",46);\r
-aWE("model",5,25);\r
-aWE("modification",5,7,25);\r
-aWE("modul",5,6,25,37);\r
-aWE("mov",25);\r
-aWE("multi",25);\r
-aWE("multipli",12);\r
-aWE("nam",11,18,24,28,29,30,33,40);\r
-aWE("nb",33);\r
-aWE("ne",49);\r
-aWE("need",49);\r
-aWE("netgen",49,42);\r
-aWE("new",37);\r
-aWE("nod",5,9,10,12,18,20,22,25,28,33,36,39,40,41,48);\r
-aWE("normal",48);\r
-aWE("notic",5);\r
-aWE("numb",4,5,25,33);\r
-aWE("number",21,22);\r
-aWE("object",0,1,2,3,4,6,14,16,17,28,29,30,33,49,42,45,46);\r
-aWE("ok",24);\r
-aWE("on",4,5,6,16,17,34,40,49);\r
-aWE("onto",34);\r
-aWE("operation",25);\r
-aWE("opposit",4,34,39);\r
-aWE("option",5);\r
-aWE("ord",5);\r
-aWE("orientation",13);\r
-aWE("origin",48);\r
-aWE("own",5);\r
-aWE("paramet",5);\r
-aWE("parameter",4,26,32);\r
-aWE("parametric",5);\r
-aWE("particularity",5);\r
-aWE("perfect",12);\r
-aWE("perform",25);\r
-aWE("plan",48);\r
-aWE("planar",48);\r
-aWE("platform",37);\r
-aWE("point",5,28,33,48);\r
-aWE("pop",46);\r
-aWE("position",5);\r
-aWE("possibl",4);\r
-aWE("present",5);\r
-aWE("presentation",8);\r
-aWE("preset",4);\r
-aWE("previou",40);\r
-aWE("previous",16,17,25);\r
-aWE("procedur",12);\r
-aWE("produc",5);\r
-aWE("product",48);\r
-aWE("progression",11);\r
-aWE("projection",48);\r
-aWE("propagat",34);\r
-aWE("propagation",4,34);\r
-aWE("properti",38,46,47);\r
-aWE("quad",48);\r
-aWE("quadrangl",1,5,6,10,12,27,29,31,39);\r
-aWE("quadrangular",34);\r
-aWE("quality",8,10,12,25,27,31,39,41,48);\r
-aWE("quantity",4);\r
-aWE("ratio",8,12,25,41,48);\r
-aWE("reassign",35);\r
-aWE("referenc",5,8);\r
-aWE("refin",4);\r
-aWE("reflect",39);\r
-aWE("regular",11);\r
-aWE("relat",37);\r
-aWE("relation",5);\r
-aWE("relationship",5);\r
-aWE("remain",12);\r
-aWE("remov",36);\r
-aWE("repeat",12);\r
-aWE("represent",4,5,28,33,41);\r
-aWE("representation",5);\r
-aWE("restrict",5);\r
-aWE("result",4);\r
-aWE("retain",12);\r
-aWE("retriev",5);\r
-aWE("right",46);\r
-aWE("rough",4);\r
-aWE("run",37);\r
-aWE("s",12);\r
-aWE("salom",25,37);\r
-aWE("sam",5,33,34);\r
-aWE("scalar",8,38);\r
-aWE("se",5);\r
-aWE("search",24);\r
-aWE("segment",4,11,18,25,26,28,33,40);\r
-aWE("select",0,1,2,3,4,6,11,14,16,17,18,21,22,24,28,29,30,33,37,40,49,42,45,46);\r
-aWE("sens",5);\r
-aWE("separat",41);\r
-aWE("set",5,6,11,18,25,28,29,30,33,34,37,40,46);\r
-aWE("shad",46);\r
-aWE("shap",4,5,12);\r
-aWE("shortest",12,48);\r
-aWE("should",37);\r
-aWE("shown",8);\r
-aWE("shrink",46);\r
-aWE("sid",12,31,39);\r
-aWE("similar",11);\r
-aWE("simpl",5);\r
-aWE("skew",8,25,39);\r
-aWE("smesh",4,5,6,8,21,22,24,25,37,43,46);\r
-aWE("so",4,12,18,40,41);\r
-aWE("spac",5);\r
-aWE("specifi",18,40,49);\r
-aWE("split",11,28,33);\r
-aWE("standard",24,37);\r
-aWE("start",4,11,37,40);\r
-aWE("step",14);\r
-aWE("study",37);\r
-aWE("sub",24);\r
-aWE("submesh",4,17);\r
-aWE("surfac",5,49);\r
-aWE("surround",5);\r
-aWE("t",5);\r
-aWE("taken",4);\r
-aWE("tap",8,25,41);\r
-aWE("tetrahedron",5,6,30,49,42);\r
-aWE("text",7,9,13,15,19,20,36,38,47);\r
-aWE("them",18,40);\r
-aWE("thre",5,46);\r
-aWE("toolbar",12,14,16,17,27,37,39,41,45,48);\r
-aWE("topic",7,9,13,15,19,20,36,38,47);\r
-aWE("topological",5);\r
-aWE("topology",5);\r
-aWE("triangl",2,5,6,10,12,27,29,31,39,41);\r
-aWE("triangulator",26);\r
-aWE("two",5,12,31,41);\r
-aWE("typ",5,7,9,13,15,19,20,36,38,47);\r
-aWE("u",5);\r
-aWE("unles",34);\r
-aWE("unv",24);\r
-aWE("up",11,46);\r
-aWE("updat",37,44);\r
-aWE("us",0,1,2,3,5,6,16,17,18,28,33,40,49,42,43);\r
-aWE("usag",8);\r
-aWE("v",5);\r
-aWE("valu",8,11,12,18,31,39);\r
-aWE("vector",48);\r
-aWE("vertex",5);\r
-aWE("view",10,12,21,22,27,31,37,39,41,44,45,46,48);\r
-aWE("visual",8);\r
-aWE("visualization",46,47);\r
-aWE("volum",3,4,5,6,25,30,49,42);\r
-aWE("vtk",37);\r
-aWE("warp",8,25,48);\r
-aWE("way",5);\r
-aWE("whil",49);\r
-aWE("will",4,5,6,10,11,12,16,17,18,21,22,24,27,28,29,30,31,33,34,37,39,40,41,45,48);\r
-aWE("window",37);\r
-aWE("wir",0,6,26);\r
-aWE("wirefram",46);\r
-aWE("word",33);\r
-aWE("work",37);\r
-aWE("x",5,48);\r
-aWE("y",5);\r
-aWE("your",4,5,8,10,11,12,14,17,18,21,22,24,27,28,29,30,31,33,39,40,41,45,46,48);\r
-aWE("z",5);\r
+aWE("0",6,47);\r
+aWE("0d",6);\r
+aWE("1",10,11,12,13,14,15,20,21,23,24,25,26,27,28,0,29,32,36,37,65,41,42,43,66,47,48,49,52,56,57,58,61,62,64);\r
+aWE("1d",1,5,6,7,12,0,30,34,31,40,66,50);\r
+aWE("2",10,11,13,14,15,20,21,23,24,25,26,27,28,0,29,32,37,65,41,42,43,66,47,48,49,52,56,57,58,61,62,64);\r
+aWE("2d",2,3,6,7,11,13,0,30,34,31,37,65,66,47,64);\r
+aWE("3",6,11,13,14,21,23,24,0,29,65,41,42,43,66,45,47,48,49,56,57,64);\r
+aWE("3d",4,6,7,10,14,20,21,23,24,25,26,0,30,41,42,43,66,47,49,53,54,56,57);\r
+aWE("3rd",6);\r
+aWE("4",6,11,13,21,24,65,47,48,52,64);\r
+aWE("5th",6);\r
+aWE("abl",41);\r
+aWE("abov",49);\r
+aWE("absent",58);\r
+aWE("abut",33,22,39);\r
+aWE("accord",9,11,13,32,37,65,48,49,52,64);\r
+aWE("account",5,65);\r
+aWE("ad",10,14,20,21,56,58);\r
+aWE("add",10,14,20,21,27,56);\r
+aWE("addition",21,30);\r
+aWE("additional",6,65,45,49);\r
+aWE("adjacent",24,37,35,38,42,47,56);\r
+aWE("adjust",49);\r
+aWE("advanc",53);\r
+aWE("again",41);\r
+aWE("algorithm",1,2,3,4,5,6,7,9,11,12,18,19,28,30,65,41,47,53,54);\r
+aWE("allow",5,12,14,20,21,29,30,36,35,38,65,40,44,47,49,51,55,56,58);\r
+aWE("along",0,65,49);\r
+aWE("already",28);\r
+aWE("alway",49);\r
+aWE("angl",9,30,37,66,44,48,64);\r
+aWE("anoth",40);\r
+aWE("any",6,24,65,49,53);\r
+aWE("ap",1,2,3,4,7,10,11,13,14,20,21,23,24,27,0,30,34,31,32,37,35,38,65,40,41,42,43,66,47,48,49,51,52,53,54,56,57,58,64);\r
+aWE("appear",5,7,10,12,14,18,19,20,21,23,24,27,28,0,33,22,36,39,65,41,42,43,66,44,45,47,49,50,51,55,56,57,58);\r
+aWE("appli",11,13,18,19,28,32,33,22,37,39,41,48,49,52,64);\r
+aWE("application",9,65);\r
+aWE("apply",5,18,19);\r
+aWE("approximate",39);\r
+aWE("arcsin",64);\r
+aWE("area",5,9,11,30,49,52);\r
+aWE("arithmetic",5,12);\r
+aWE("around",66);\r
+aWE("aspect",9,13,30,49);\r
+aWE("assign",41,64);\r
+aWE("associat",10,25,26,28,41,42);\r
+aWE("automatic",65);\r
+aWE("automatical",14,21,24,65,56);\r
+aWE("availabl",41,47);\r
+aWE("averag",5,34,31,33,22,65,50,64);\r
+aWE("axi",0,66,44,51,64);\r
+aWE("bar",9,46);\r
+aWE("bas",5,11,30,64);\r
+aWE("basi",6,18,19);\r
+aWE("basic",5);\r
+aWE("becom",65);\r
+aWE("befor",45);\r
+aWE("begin",12,47);\r
+aWE("belong",47);\r
+aWE("berder",47);\r
+aWE("bisect",64);\r
+aWE("bisector",64);\r
+aWE("boolean",58);\r
+aWE("bord",47);\r
+aWE("border",30,47);\r
+aWE("both",49,58);\r
+aWE("bottom",45);\r
+aWE("bound",6,65);\r
+aWE("boundari",65);\r
+aWE("boundary",5,65,47,49);\r
+aWE("box",1,2,3,4,5,10,12,14,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,45,47,49,50,51,53,54,55,56,57,58);\r
+aWE("brows",5,7,10,15,17,18,19,20,27,28,41,42,43,61,62);\r
+aWE("build",0,34,31,65,66,50);\r
+aWE("built",65,49,53);\r
+aWE("button",10,11,13,14,15,18,19,20,21,23,24,27,28,0,29,32,37,65,41,42,43,66,44,47,48,49,51,52,55,56,57,58,61,64);\r
+aWE("cad",6);\r
+aWE("cal",65);\r
+aWE("calculat",9,13,34,31,52);\r
+aWE("calculation",5,11,32,37);\r
+aWE("cancel",20);\r
+aWE("careful",42);\r
+aWE("cas",24,65);\r
+aWE("cel",42,57);\r
+aWE("cent",49);\r
+aWE("centroid",49);\r
+aWE("centroidal",49);\r
+aWE("certain",65);\r
+aWE("chang",12,14,20,24,28,41);\r
+aWE("characteristic",9);\r
+aWE("characteriz",6);\r
+aWE("check",47);\r
+aWE("choic",5,65);\r
+aWE("choos",10,11,13,14,17,20,21,23,24,25,26,0,29,32,36,37,65,41,42,43,66,44,45,47,48,51,52,55,56,57,64);\r
+aWE("chos",17);\r
+aWE("chosen",5);\r
+aWE("click",1,2,3,4,5,7,10,11,12,13,14,15,17,18,19,20,21,23,24,25,26,27,28,0,29,34,31,32,33,22,37,35,38,39,65,40,41,42,43,66,45,47,48,49,50,52,53,54,56,57,58,61,62,64);\r
+aWE("clos",6,47);\r
+aWE("co",47);\r
+aWE("coincident",36);\r
+aWE("color",9,11,13,32,37,48,52,64);\r
+aWE("column",41);\r
+aWE("combin",32);\r
+aWE("common",23,57);\r
+aWE("compar",47);\r
+aWE("component",30,45);\r
+aWE("compos",5,6,7,9,25,33,22,39,48);\r
+aWE("comput",15,65,47);\r
+aWE("computation",15,18,19);\r
+aWE("condition",5);\r
+aWE("confirm",14,20,21,27,28,41,42,49,56,58);\r
+aWE("confirmation",20);\r
+aWE("conform",5,35,38,47);\r
+aWE("connect",21,49);\r
+aWE("connection",6,30);\r
+aWE("connectivity",16,65);\r
+aWE("consider",6,47);\r
+aWE("consist",9,11,13,17,18,19,20,32,33,22,37,39,52);\r
+aWE("constant",50);\r
+aWE("construct",17,18,19,50);\r
+aWE("construction",18,19);\r
+aWE("contain",6,7,14,18,19,20,21,29,65,41,49,56);\r
+aWE("content",20);\r
+aWE("continu",49);\r
+aWE("contour",6,47);\r
+aWE("contrast",56);\r
+aWE("control",9,11,13,30,32,37,48,52,64);\r
+aWE("converg",49);\r
+aWE("coordinat",6,10,24,65);\r
+aWE("copy",44,51,55);\r
+aWE("corn",64);\r
+aWE("corner",21,49,64);\r
+aWE("correspond",5,6,9,10,29,65,47);\r
+aWE("could",6);\r
+aWE("count",47);\r
+aWE("counterclockwis",65);\r
+aWE("creat",1,2,3,4,5,6,7,10,12,20,28,30,34,31,33,22,36,35,38,39,65,40,41,44,45,50,51,53,54,55,58,64);\r
+aWE("creation",6,20,65,45,58);\r
+aWE("criteria",30);\r
+aWE("criterion",11,13,32,37,48,52,64);\r
+aWE("cros",64);\r
+aWE("current",14,21,41,47,56);\r
+aWE("curv",6);\r
+aWE("cut",21,58);\r
+aWE("d",12);\r
+aWE("data",5,28);\r
+aWE("deal",6);\r
+aWE("default",45);\r
+aWE("defin",6,12,13,20,33,22,39,65,47,50);\r
+aWE("definit",6,9,14,17,20,21,30,39,41,42,56);\r
+aWE("definition",33,22,39);\r
+aWE("deflection",5);\r
+aWE("delet",42);\r
+aWE("deletion",30,42,57);\r
+aWE("depend",5,6,28);\r
+aWE("describ",6,65);\r
+aWE("description",65);\r
+aWE("desirabl",36);\r
+aWE("desktop",45);\r
+aWE("destin",6,9,30);\r
+aWE("detail",5);\r
+aWE("detect",36);\r
+aWE("diagonal",21,23,52);\r
+aWE("dialog",1,2,3,4,5,10,12,14,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,47,49,50,51,53,54,55,56,57,58);\r
+aWE("dif",28);\r
+aWE("differ",50);\r
+aWE("differenc",47);\r
+aWE("different",5,10,20,47);\r
+aWE("dimension",6,0,66);\r
+aWE("direct",6,47,49);\r
+aWE("direction",65,64);\r
+aWE("discretiz",0,66);\r
+aWE("discretization",1,6,7);\r
+aWE("displac",24);\r
+aWE("display",9,11,13,14,18,19,21,24,25,26,32,37,48,49,52,56,61,62,64);\r
+aWE("disposal",9);\r
+aWE("distanc",65,64);\r
+aWE("distortion",49);\r
+aWE("divid",50);\r
+aWE("do",53);\r
+aWE("domain",65);\r
+aWE("don",6,41);\r
+aWE("doubl",41);\r
+aWE("e",65,47);\r
+aWE("easi",17);\r
+aWE("edg",1,5,6,7,9,10,12,13,17,20,21,23,24,30,34,31,32,33,22,35,38,39,65,40,47,49,50,56,57,64);\r
+aWE("edit",27,28,36,41);\r
+aWE("effect",56);\r
+aWE("eith",65,47);\r
+aWE("element",5,6,9,10,11,13,14,17,20,21,23,24,25,27,0,30,32,37,35,38,65,42,43,66,44,47,48,49,50,51,52,53,55,56,58,64);\r
+aWE("els",65);\r
+aWE("encapsulat",19);\r
+aWE("encounter",65);\r
+aWE("end",5,12,35,38,47,50,55);\r
+aWE("enough",47);\r
+aWE("ent",20,23,24,28,29,41,57);\r
+aWE("entiti",1,2,3,4,6,7,53,54);\r
+aWE("entity",6);\r
+aWE("equal",13,65,47,49);\r
+aWE("equilateral",13);\r
+aWE("etc",9);\r
+aWE("eventual",65);\r
+aWE("every",64);\r
+aWE("exampl",6,65,54);\r
+aWE("exceed",49);\r
+aWE("except",47);\r
+aWE("exist",14,20,21,27,65,56);\r
+aWE("export",29,30);\r
+aWE("exportation",29);\r
+aWE("extend",64);\r
+aWE("extrud",0,66);\r
+aWE("extrusion",0);\r
+aWE("fac",2,3,5,6,7,17,20,30,33,22,35,38,39,65,40,47,64);\r
+aWE("factor",50);\r
+aWE("far",47);\r
+aWE("fast",49);\r
+aWE("field",10,14,20,21,23,24,41,43,47,49,56,57);\r
+aWE("fifth",47);\r
+aWE("fil",20,29,65);\r
+aWE("fill",43,47);\r
+aWE("filt",14,20,21,56);\r
+aWE("final",15);\r
+aWE("find",29,65,47);\r
+aWE("first",65,47,50);\r
+aWE("fix",6,49);\r
+aWE("flag",65);\r
+aWE("fold",5,7,18,19);\r
+aWE("follow",5,6,7,9,10,12,13,14,18,19,20,21,23,24,25,26,27,28,0,33,22,36,39,65,41,42,43,66,44,45,47,49,50,51,55,56,57,58,61);\r
+aWE("form",23,27,65,47);\r
+aWE("format",29,30);\r
+aWE("four",6,64);\r
+aWE("fre",6,30,47,49);\r
+aWE("function",6);\r
+aWE("functionality",6,29,36,47);\r
+aWE("generat",5,6,9,30,33,22,35,38,39,65,45,53);\r
+aWE("generation",15,0,65,66);\r
+aWE("geom",6,30);\r
+aWE("geometric",6,9);\r
+aWE("geometrical",1,2,3,4,5,6,7,18,19,20,30,33,22,39,65,44,49,50,51,53,54,55);\r
+aWE("geometry",20,49);\r
+aWE("get",65);\r
+aWE("ghs3d",53);\r
+aWE("given",12,34,31,47);\r
+aWE("global",18);\r
+aWE("good",49);\r
+aWE("got",65);\r
+aWE("group",14,17,20,21,27,30,36,56,58);\r
+aWE("h",64);\r
+aWE("h1",13);\r
+aWE("h2",13);\r
+aWE("half",64);\r
+aWE("hand",65);\r
+aWE("hav",20,34,31,35,38,65,53);\r
+aWE("height",13,64);\r
+aWE("help",9);\r
+aWE("henc",65);\r
+aWE("her",6,16,27,65,41,46,63);\r
+aWE("hexahedron",4,6,7,10);\r
+aWE("high",6);\r
+aWE("highlight",14,20,21,56);\r
+aWE("hold",65);\r
+aWE("hyp",18,19);\r
+aWE("hypothes",5,7,12,18,19,28,30,34,31,33,22,35,38,39,40,41,50,53);\r
+aWE("hypothesi",5,12,28,34,31,33,22,35,38,39,40,41,50,53);\r
+aWE("i",65,47);\r
+aWE("icon",27,42,45);\r
+aWE("id",14,20,21,23,24,25,26,0,66,47,49,56,57);\r
+aWE("if",6,20,0,65,40,42,66,47,49,56);\r
+aWE("imp",6);\r
+aWE("impli",65);\r
+aWE("import",29,30);\r
+aWE("importation",29);\r
+aWE("includ",6);\r
+aWE("index",65);\r
+aWE("indic",65);\r
+aWE("indicat",64);\r
+aWE("info",61);\r
+aWE("information",6,27,61);\r
+aWE("initial",45,51,58);\r
+aWE("input",5,28);\r
+aWE("insert",47);\r
+aWE("instead",65);\r
+aWE("intend",47);\r
+aWE("interest",6);\r
+aWE("intermediat",47);\r
+aWE("internal",65);\r
+aWE("intersect",65,58);\r
+aWE("intersection",65,58);\r
+aWE("introduction",30);\r
+aWE("invers",6,23);\r
+aWE("inversion",23);\r
+aWE("iso",65);\r
+aWE("isolin",65);\r
+aWE("item",5,7,10,14,17,21,23,24,27,28,0,29,36,65,41,43,66,44,47,49,51,55,56,57,58);\r
+aWE("iteration",49);\r
+aWE("iterativ",49);\r
+aWE("join",48);\r
+aWE("just",65,42);\r
+aWE("keep",49,51);\r
+aWE("key",65);\r
+aWE("kind",7);\r
+aWE("know",65);\r
+aWE("l",64);\r
+aWE("laplacian",49);\r
+aWE("largest",13);\r
+aWE("last",47,50);\r
+aWE("launch",45);\r
+aWE("lay",0,65,66);\r
+aWE("least",65,49);\r
+aWE("left",65);\r
+aWE("length",5,9,12,13,30,34,31,32,33,22,39,47,50,64);\r
+aWE("les",47,49,53);\r
+aWE("level",5);\r
+aWE("lik",10,20,25,26,41,45,47);\r
+aWE("limit",65,47,49);\r
+aWE("lin",6,0,65,66,48);\r
+aWE("link",47);\r
+aWE("list",14,20,21,56);\r
+aWE("lk",12);\r
+aWE("local",19,30,39,40);\r
+aWE("locat",65,47);\r
+aWE("location",24,29,49,50);\r
+aWE("longest",13);\r
+aWE("look",20,25,26,65,45);\r
+aWE("low",6);\r
+aWE("ly",65);\r
+aWE("main",5,7,14,21,65,45,56,58);\r
+aWE("manag",5);\r
+aWE("manual",20,65);\r
+aWE("map",65);\r
+aWE("max",5,30,49);\r
+aWE("maximum",48,49);\r
+aWE("mean",6);\r
+aWE("meaningful",6);\r
+aWE("measur",64);\r
+aWE("mefisto",3);\r
+aWE("menu",5,7,10,14,15,17,18,19,20,21,23,24,25,26,27,28,0,29,36,39,65,41,42,43,66,44,45,47,49,51,55,56,57,58,61,62);\r
+aWE("merg",36,47);\r
+aWE("mesh",1,2,3,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,24,25,26,27,0,29,30,34,31,32,33,22,36,37,35,38,39,65,41,42,43,66,44,45,47,48,49,50,51,52,53,54,55,56,58,61,62,64);\r
+aWE("method",49);\r
+aWE("minimum",9,30,37,47);\r
+aWE("mod",62);\r
+aWE("model",6,30);\r
+aWE("modification",6,8,10,14,21,23,24,27,0,30,36,65,41,42,43,66,44,47,49,51,55,56,57);\r
+aWE("modify",14,21,27,56);\r
+aWE("modul",6,7,30,45);\r
+aWE("mov",24,30,41);\r
+aWE("multi",30);\r
+aWE("multipli",13);\r
+aWE("must",65,47);\r
+aWE("n",65,47);\r
+aWE("nam",12,20,27,28,29,33,22,39,41,50,58);\r
+aWE("nb",39);\r
+aWE("ne",53);\r
+aWE("need",53);\r
+aWE("neighbor",23,57);\r
+aWE("netgen",53,54);\r
+aWE("new",18,19,20,24,28,41,45,58);\r
+aWE("next",65);\r
+aWE("nod",6,10,11,13,14,17,20,24,26,0,30,33,22,36,39,65,42,43,66,47,48,49,50,52,64);\r
+aWE("nodal",65,49);\r
+aWE("normal",51,64);\r
+aWE("not",49);\r
+aWE("notic",6);\r
+aWE("numb",5,6,0,30,39,65,66,47,49);\r
+aWE("number",25,26);\r
+aWE("obey",47);\r
+aWE("object",1,2,3,4,5,7,10,15,17,18,19,20,27,28,33,22,39,65,41,42,43,44,53,54,55,61,62);\r
+aWE("objet",20);\r
+aWE("ok",10,14,20,21,23,24,27,28,0,29,41,42,43,66,47,49,56,57,58);\r
+aWE("on",5,6,7,18,19,21,23,0,65,40,42,66,47,49,50,51,53,55,56,58);\r
+aWE("onc",41,56);\r
+aWE("onto",65,40);\r
+aWE("operation",14,20,21,30,43,44,47,49,51,55,56,58);\r
+aWE("opposit",5,21,40,47,48);\r
+aWE("option",6,51,55);\r
+aWE("ord",6,14,65);\r
+aWE("orientation",14,21,56);\r
+aWE("origin",64);\r
+aWE("other",56);\r
+aWE("outsid",65);\r
+aWE("own",6);\r
+aWE("paramet",6,47);\r
+aWE("parameter",5,34,31,35,38,44,47);\r
+aWE("parametric",6,65);\r
+aWE("part",47,49);\r
+aWE("particularity",6);\r
+aWE("pattern",65);\r
+aWE("pattern_nam",65);\r
+aWE("perfect",13);\r
+aWE("perform",30,43,47,51,58);\r
+aWE("plac",47);\r
+aWE("plan",51,64);\r
+aWE("planar",64);\r
+aWE("platform",45);\r
+aWE("plu",0,66);\r
+aWE("point",6,33,22,39,65,66,44,47,51,55,64);\r
+aWE("pop",25,26,62);\r
+aWE("popup",28,41);\r
+aWE("position",6,65);\r
+aWE("possibl",5,65);\r
+aWE("pres",10,42,49);\r
+aWE("present",6,58);\r
+aWE("presentation",9);\r
+aWE("preserv",65);\r
+aWE("preset",5);\r
+aWE("preview",21,65);\r
+aWE("previou",50,56);\r
+aWE("previous",18,19,20,30,41);\r
+aWE("procedur",13,49);\r
+aWE("proces",49);\r
+aWE("produc",6,0,66,49);\r
+aWE("product",64);\r
+aWE("progression",12);\r
+aWE("project",65);\r
+aWE("projection",65,64);\r
+aWE("propagat",40);\r
+aWE("propagation",5,40);\r
+aWE("properti",20,46,62,63);\r
+aWE("pseudo",23);\r
+aWE("pul",49);\r
+aWE("quad",64);\r
+aWE("quadrangl",2,6,7,10,11,13,21,23,0,32,37,66,48);\r
+aWE("quadrangular",40);\r
+aWE("quality",9,11,13,30,32,37,48,52,64);\r
+aWE("quantity",5);\r
+aWE("quit",20);\r
+aWE("radio",14,20,21,44,47,51,55,56);\r
+aWE("ratio",9,13,30,49,52,64);\r
+aWE("reassign",41);\r
+aWE("recomput",41);\r
+aWE("reduc",49);\r
+aWE("reevaluat",49);\r
+aWE("refer",65);\r
+aWE("referenc",6,9,18,19);\r
+aWE("refin",5);\r
+aWE("reflect",65,48);\r
+aWE("regular",12);\r
+aWE("relat",45);\r
+aWE("relation",6);\r
+aWE("relationship",6);\r
+aWE("remain",13);\r
+aWE("remov",14,20,21,27,42,56);\r
+aWE("renam",28);\r
+aWE("renumb",43);\r
+aWE("renumber",43);\r
+aWE("reorient",14);\r
+aWE("repeat",13);\r
+aWE("replac",47);\r
+aWE("represent",5,6,33,22,39,52);\r
+aWE("representation",6);\r
+aWE("requir",23,24,28,41,57);\r
+aWE("rest",65,47);\r
+aWE("restrict",6);\r
+aWE("result",5,49,58);\r
+aWE("retain",13);\r
+aWE("retriev",6);\r
+aWE("revers",65);\r
+aWE("revert",14);\r
+aWE("revolution",0,66);\r
+aWE("revolv",66);\r
+aWE("right",17,24,25,26,28,41,62);\r
+aWE("rotat",0,66,44);\r
+aWE("rotation",66,44);\r
+aWE("rough",5);\r
+aWE("rul",47);\r
+aWE("run",45);\r
+aWE("s",13,35,38,40,50);\r
+aWE("salom",30,45);\r
+aWE("sam",6,39,40,47);\r
+aWE("scalar",9,46);\r
+aWE("se",6,27);\r
+aWE("seam",65);\r
+aWE("search",29);\r
+aWE("second",47);\r
+aWE("section",65);\r
+aWE("segment",5,12,30,34,31,33,22,39,50);\r
+aWE("select",1,2,3,4,5,7,10,12,14,15,17,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,45,47,49,50,51,53,54,55,56,57,58,61,62);\r
+aWE("selection",14,20,21,56);\r
+aWE("sens",6);\r
+aWE("separat",52);\r
+aWE("sequenc",47);\r
+aWE("set",6,7,10,12,14,20,21,24,30,33,22,39,65,40,41,45,47,49,50,56,62);\r
+aWE("sew",47);\r
+aWE("shad",62);\r
+aWE("shall",5,7,10,14,21,23,24,0,36,65,66,44,47,51,55,56,57);\r
+aWE("shap",5,6,13,65,49);\r
+aWE("shift",10,42,49);\r
+aWE("shortest",13,64);\r
+aWE("should",20,0,65,41,66,44,45,47,49,58);\r
+aWE("shown",9,49);\r
+aWE("shrink",62);\r
+aWE("sid",13,37,47,48);\r
+aWE("similar",12);\r
+aWE("simpl",6,65);\r
+aWE("siz",49);\r
+aWE("skew",9,30,48);\r
+aWE("smesh",5,6,7,9,10,17,20,23,24,25,26,28,29,30,42,43,45,47,57,58,59,62);\r
+aWE("smooth",49);\r
+aWE("smp",65);\r
+aWE("so",5,13,65,47,50,52);\r
+aWE("sort",14,20,21,56);\r
+aWE("spac",6,65,44,55);\r
+aWE("specifi",65,42,47,49,50,53);\r
+aWE("specific",17);\r
+aWE("specify",10,21,0,65,42,66,44,49,51,55,58);\r
+aWE("split",12,33,22,39,47);\r
+aWE("standalon",20);\r
+aWE("standard",29,45);\r
+aWE("start",5,12,45,47,50,55);\r
+aWE("step",15,0,66);\r
+aWE("stor",65);\r
+aWE("structur",18,19);\r
+aWE("study",41,45);\r
+aWE("sub",29,36,65,44,47,51,55);\r
+aWE("submenu",10,42,43);\r
+aWE("submesh",5,14,17,19,20,21,0,41,66,49,56);\r
+aWE("supplementary",21);\r
+aWE("surfac",6,0,65,66,47,53);\r
+aWE("surround",6,49);\r
+aWE("swept",0,66);\r
+aWE("symmetrical",51);\r
+aWE("symmetry",51);\r
+aWE("t",6,65);\r
+aWE("tak",56);\r
+aWE("taken",5,17,20,65);\r
+aWE("tap",9,30,52);\r
+aWE("techniqu",49);\r
+aWE("tetrahedron",6,7,10,53,54);\r
+aWE("text",16,46,63);\r
+aWE("th",65,47);\r
+aWE("them",10,0,36,42,66,47,49,50);\r
+aWE("thre",6,47,51,62);\r
+aWE("thu",41);\r
+aWE("toleranc",36,66);\r
+aWE("tool",58);\r
+aWE("toolbar",13,14,15,18,19,21,23,24,27,0,32,65,42,43,66,45,48,49,52,56,57,61,64);\r
+aWE("topic",16,46,63);\r
+aWE("topological",6,47);\r
+aWE("topology",6);\r
+aWE("toward",49);\r
+aWE("transform",24);\r
+aWE("transformation",36,44,47,51,55);\r
+aWE("translat",55);\r
+aWE("translation",55);\r
+aWE("triangl",3,6,7,10,11,13,23,0,32,37,66,48,52,56,57);\r
+aWE("triangulator",34,31);\r
+aWE("two",6,13,21,23,37,65,41,47,52,55,57,58);\r
+aWE("typ",5,6,10,16,17,20,28,0,42,66,46,47,63);\r
+aWE("typical",49);\r
+aWE("u",6,47);\r
+aWE("unassign",41);\r
+aWE("uniform",49);\r
+aWE("union",56,57,58);\r
+aWE("unit",47,56,57,58);\r
+aWE("unles",40);\r
+aWE("unv",29);\r
+aWE("up",12,25,26,47,62);\r
+aWE("updat",45,49,60);\r
+aWE("us",1,2,3,4,6,7,18,19,0,33,22,36,39,65,41,66,47,49,50,53,54,58,59);\r
+aWE("usag",9);\r
+aWE("usual",47,49);\r
+aWE("v",6);\r
+aWE("valu",9,12,13,28,37,48);\r
+aWE("vector",0,66,44,51,55,64);\r
+aWE("versa",41);\r
+aWE("vertex",6,65);\r
+aWE("vertic",65);\r
+aWE("vic",41);\r
+aWE("view",10,11,13,14,20,21,23,24,25,26,0,32,37,41,42,43,66,45,47,48,49,52,56,57,60,61,62,64);\r
+aWE("visual",9);\r
+aWE("visualization",62,63);\r
+aWE("volum",4,5,6,7,20,30,53,54);\r
+aWE("vtk",45);\r
+aWE("walk",65);\r
+aWE("warp",9,30,64);\r
+aWE("way",6,65,58);\r
+aWE("weight",49);\r
+aWE("well",65);\r
+aWE("whil",42,53);\r
+aWE("whol",0,66,49);\r
+aWE("whos",14,20,21,56);\r
+aWE("will",5,6,7,10,11,12,13,14,17,18,19,20,21,24,25,26,27,28,0,29,32,33,22,37,39,65,40,41,42,43,66,45,47,48,49,50,52,56,58,61,64);\r
+aWE("window",45);\r
+aWE("wir",1,7,34,31);\r
+aWE("wirefram",62);\r
+aWE("within",65,47);\r
+aWE("word",39);\r
+aWE("work",45);\r
+aWE("would",10,41,47);\r
+aWE("x",6,64);\r
+aWE("y",6);\r
+aWE("your",5,6,9,10,11,12,13,14,15,17,19,20,24,25,26,27,28,29,32,33,22,36,37,39,65,41,42,43,44,48,49,50,51,52,55,61,62,64);\r
+aWE("z",6);\r
+aWE("zero",65);\r
 \r
 //-->\r
 </script>\r
index fd09428b7a1d8e8387385f4b17cb6e5e6b20a756..608b52b45ca8cea6294525f5317103ae4948655a 100755 (executable)
 <?xml version='1.0' encoding='ISO-8859-1' ?>\r
 <ftswdata>\r
-<key name="0"> 5, </key>\r
-<key name="0d"> 5, </key>\r
-<key name="1"> 10,11,12,14,21,22,24,27,31,39,41,45,46,48, </key>\r
-<key name="1d"> 0,4,5,6,11,18,25,26,34,40, </key>\r
-<key name="2"> 10,12,14,21,22,24,27,31,39,41,45,46,48, </key>\r
-<key name="2d"> 1,2,5,6,10,12,25,26,29,31,48, </key>\r
-<key name="3"> 5,10,12,24,37,39,48, </key>\r
-<key name="3d"> 3,5,6,25,30,49,42, </key>\r
-<key name="3rd"> 5, </key>\r
-<key name="4"> 5,10,12,39,41,48, </key>\r
-<key name="5th"> 5, </key>\r
-<key name="abut"> 28,33, </key>\r
-<key name="accord"> 8,10,12,27,31,39,41,48, </key>\r
-<key name="account"> 4, </key>\r
-<key name="ad"> 9, </key>\r
-<key name="addition"> 25, </key>\r
-<key name="additional"> 5,37, </key>\r
-<key name="adjacent"> 31,32, </key>\r
-<key name="advanc"> 49, </key>\r
-<key name="algorithm"> 0,1,2,3,4,5,6,8,10,11,16,17,25,29,30,35,49,42, </key>\r
-<key name="allow"> 4,11,24,25,32,34, </key>\r
-<key name="angl"> 8,25,31,39,48, </key>\r
-<key name="anoth"> 34, </key>\r
-<key name="any"> 5,49, </key>\r
-<key name="ap"> 0,1,2,3,6,10,12,25,27,31,39,41,49,42,48, </key>\r
-<key name="appear"> 4,6,11,16,17,18,28,29,30,33,37,40, </key>\r
-<key name="appli"> 10,12,27,28,29,30,31,33,39,41,48, </key>\r
-<key name="application"> 8, </key>\r
-<key name="apply"> 4,16,17, </key>\r
-<key name="approximate"> 33, </key>\r
-<key name="arcsin"> 48, </key>\r
-<key name="area"> 4,8,10,25,29,30,41, </key>\r
-<key name="arithmetic"> 4,11, </key>\r
-<key name="aspect"> 8,12,25, </key>\r
-<key name="assign"> 48, </key>\r
-<key name="averag"> 4,26,28,40,48, </key>\r
-<key name="axi"> 48, </key>\r
-<key name="bar"> 8,38, </key>\r
-<key name="bas"> 4,10,25,48, </key>\r
-<key name="basi"> 5, </key>\r
-<key name="basic"> 4, </key>\r
-<key name="befor"> 37, </key>\r
-<key name="begin"> 11, </key>\r
-<key name="bisect"> 48, </key>\r
-<key name="bisector"> 48, </key>\r
-<key name="border"> 25, </key>\r
-<key name="bottom"> 37, </key>\r
-<key name="bound"> 5, </key>\r
-<key name="boundary"> 4, </key>\r
-<key name="box"> 11,16,17,18,24,28,29,30,33,37,40, </key>\r
-<key name="brows"> 14,45,46, </key>\r
-<key name="build"> 18,26,40, </key>\r
-<key name="built"> 49, </key>\r
-<key name="button"> 10,12,14,16,17,24,27,31,39,41,45,48, </key>\r
-<key name="cad"> 5, </key>\r
-<key name="calculat"> 8,12,26,41, </key>\r
-<key name="calculation"> 4,10,27,31, </key>\r
-<key name="chang"> 11,13, </key>\r
-<key name="characteristic"> 8, </key>\r
-<key name="characteriz"> 5, </key>\r
-<key name="choic"> 4, </key>\r
-<key name="choos"> 10,12,24,27,31,37,39,41,48, </key>\r
-<key name="chosen"> 29,30, </key>\r
-<key name="click"> 0,1,2,3,4,6,10,11,12,14,16,17,18,24,27,28,29,30,31,33,37,39,40,41,49,42,45,46,48, </key>\r
-<key name="clos"> 5, </key>\r
-<key name="color"> 8,10,12,27,31,39,41,48, </key>\r
-<key name="combin"> 27, </key>\r
-<key name="component"> 25,37, </key>\r
-<key name="compos"> 4,5,6,8,21,28,29,30,33,39, </key>\r
-<key name="comput"> 14, </key>\r
-<key name="computation"> 14,16,17, </key>\r
-<key name="condition"> 4, </key>\r
-<key name="conform"> 4,32, </key>\r
-<key name="connect"> 18, </key>\r
-<key name="connection"> 5,25, </key>\r
-<key name="connectivity"> 15, </key>\r
-<key name="consider"> 5, </key>\r
-<key name="consist"> 8,10,12,16,17,27,28,29,30,31,33,41, </key>\r
-<key name="constant"> 40, </key>\r
-<key name="construct"> 16,17,18,40, </key>\r
-<key name="construction"> 16,17, </key>\r
-<key name="contain"> 5,6,24, </key>\r
-<key name="contour"> 5, </key>\r
-<key name="control"> 8,10,12,25,27,31,39,41,48, </key>\r
-<key name="coordinat"> 5, </key>\r
-<key name="corn"> 48, </key>\r
-<key name="corner"> 48, </key>\r
-<key name="correspond"> 5,8,24, </key>\r
-<key name="could"> 5, </key>\r
-<key name="creat"> 0,1,2,3,4,5,6,11,18,25,28,29,30,33,37,40,49,42,48, </key>\r
-<key name="creation"> 5,37, </key>\r
-<key name="criteria"> 25, </key>\r
-<key name="criterion"> 10,12,27,31,39,41,48, </key>\r
-<key name="cros"> 48, </key>\r
-<key name="curv"> 5,18, </key>\r
-<key name="d"> 11, </key>\r
-<key name="deal"> 5, </key>\r
-<key name="default"> 37, </key>\r
-<key name="defin"> 5,11,12,18,28,29,30,33,40, </key>\r
-<key name="definit"> 5,8,25,33, </key>\r
-<key name="definition"> 28,29,30,33, </key>\r
-<key name="deflection"> 4,18, </key>\r
-<key name="deletion"> 25, </key>\r
-<key name="depend"> 4,5,29,30, </key>\r
-<key name="describ"> 5, </key>\r
-<key name="desktop"> 37, </key>\r
-<key name="destin"> 5,8,25, </key>\r
-<key name="detail"> 4, </key>\r
-<key name="diagonal"> 19,41, </key>\r
-<key name="dialog"> 11,16,17,18,24,28,29,30,33,40, </key>\r
-<key name="differ"> 40, </key>\r
-<key name="different"> 4, </key>\r
-<key name="dimension"> 5, </key>\r
-<key name="direct"> 5, </key>\r
-<key name="direction"> 48, </key>\r
-<key name="discretization"> 0,5,6, </key>\r
-<key name="displac"> 20, </key>\r
-<key name="display"> 8,10,12,21,22,27,31,39,41,45,46,48, </key>\r
-<key name="disposal"> 8, </key>\r
-<key name="distanc"> 18,48, </key>\r
-<key name="divid"> 18,40, </key>\r
-<key name="do"> 49, </key>\r
-<key name="don"> 5, </key>\r
-<key name="edg"> 0,4,5,6,8,11,12,18,25,26,27,28,32,33,34,40,48, </key>\r
-<key name="edit"> 23, </key>\r
-<key name="element"> 4,5,8,9,10,12,13,18,19,21,25,27,29,30,31,32,36,39,40,41,49,48, </key>\r
-<key name="encapsulat"> 17, </key>\r
-<key name="end"> 4,11,18,32,40, </key>\r
-<key name="ent"> 24, </key>\r
-<key name="entiti"> 0,1,2,3,5,6,49,42, </key>\r
-<key name="entity"> 5, </key>\r
-<key name="equal"> 12,18, </key>\r
-<key name="equilateral"> 12, </key>\r
-<key name="etc"> 8, </key>\r
-<key name="every"> 48, </key>\r
-<key name="exampl"> 5,42, </key>\r
-<key name="export"> 24,25, </key>\r
-<key name="exportation"> 24, </key>\r
-<key name="extend"> 48, </key>\r
-<key name="fac"> 1,2,4,5,6,25,28,29,32,33,34,48, </key>\r
-<key name="factor"> 40, </key>\r
-<key name="fil"> 24, </key>\r
-<key name="final"> 14, </key>\r
-<key name="find"> 24, </key>\r
-<key name="first"> 40, </key>\r
-<key name="fix"> 5, </key>\r
-<key name="follow"> 4,5,6,8,11,12,16,17,18,21,22,28,29,30,33,37,40,45, </key>\r
-<key name="format"> 24,25, </key>\r
-<key name="four"> 5,48, </key>\r
-<key name="fre"> 5,25, </key>\r
-<key name="function"> 5, </key>\r
-<key name="functionality"> 5,24, </key>\r
-<key name="generat"> 4,5,8,25,28,32,33,37,49, </key>\r
-<key name="generation"> 14, </key>\r
-<key name="geom"> 5,25, </key>\r
-<key name="geometric"> 5,8, </key>\r
-<key name="geometrical"> 0,1,2,3,4,5,6,16,17,18,25,28,29,30,33,40,49,42, </key>\r
-<key name="ghs3d"> 49, </key>\r
-<key name="given"> 11,26, </key>\r
-<key name="global"> 16, </key>\r
-<key name="group"> 25, </key>\r
-<key name="h"> 48, </key>\r
-<key name="h1"> 12, </key>\r
-<key name="h2"> 12, </key>\r
-<key name="half"> 48, </key>\r
-<key name="hav"> 26,32,49, </key>\r
-<key name="height"> 12,48, </key>\r
-<key name="help"> 8, </key>\r
-<key name="her"> 5,7,9,13,15,19,20,36,38,47, </key>\r
-<key name="hexahedron"> 3,5,6,30, </key>\r
-<key name="high"> 5, </key>\r
-<key name="hyp"> 16,17, </key>\r
-<key name="hypothes"> 0,1,2,3,4,6,11,16,17,18,23,25,28,29,30,33,35,40,49,42, </key>\r
-<key name="hypothesi"> 4,11,18,26,28,29,30,32,33,34,40,49, </key>\r
-<key name="i"> 3, </key>\r
-<key name="icon"> 37, </key>\r
-<key name="id"> 21,22, </key>\r
-<key name="if"> 5,34, </key>\r
-<key name="imp"> 5, </key>\r
-<key name="import"> 24,25, </key>\r
-<key name="importation"> 24, </key>\r
-<key name="includ"> 5, </key>\r
-<key name="indicat"> 48, </key>\r
-<key name="info"> 45, </key>\r
-<key name="information"> 5,45, </key>\r
-<key name="initial"> 37, </key>\r
-<key name="interest"> 5, </key>\r
-<key name="introduction"> 25, </key>\r
-<key name="invers"> 5, </key>\r
-<key name="inversion"> 19, </key>\r
-<key name="item"> 4,6,24, </key>\r
-<key name="j"> 3, </key>\r
-<key name="join"> 39, </key>\r
-<key name="k"> 3, </key>\r
-<key name="kind"> 6, </key>\r
-<key name="l"> 48, </key>\r
-<key name="largest"> 12, </key>\r
-<key name="last"> 40, </key>\r
-<key name="launch"> 37, </key>\r
-<key name="length"> 4,8,11,12,25,26,27,28,33,40,48, </key>\r
-<key name="les"> 49, </key>\r
-<key name="level"> 4, </key>\r
-<key name="lik"> 21,22,37, </key>\r
-<key name="lin"> 5,18,39, </key>\r
-<key name="lk"> 11, </key>\r
-<key name="local"> 17,25,33,34, </key>\r
-<key name="location"> 18,24,40, </key>\r
-<key name="longest"> 12, </key>\r
-<key name="look"> 21,22,37, </key>\r
-<key name="low"> 5, </key>\r
-<key name="main"> 4,6,37, </key>\r
-<key name="manag"> 4, </key>\r
-<key name="map"> 1, </key>\r
-<key name="max"> 4,25,29,30, </key>\r
-<key name="maximum"> 18,29,30,39, </key>\r
-<key name="mean"> 5, </key>\r
-<key name="meaningful"> 5, </key>\r
-<key name="measur"> 48, </key>\r
-<key name="mefisto"> 2, </key>\r
-<key name="menu"> 0,1,2,3,4,6,11,14,16,17,18,21,22,24,28,29,30,33,37,40,49,42,45,46, </key>\r
-<key name="mesh"> 0,1,2,3,4,5,6,7,8,10,12,14,16,17,18,21,22,24,25,26,27,28,29,30,31,32,33,37,39,40,41,49,42,45,46,48, </key>\r
-<key name="minimum"> 8,25,31, </key>\r
-<key name="mod"> 46, </key>\r
-<key name="model"> 5,25, </key>\r
-<key name="modification"> 5,7,25, </key>\r
-<key name="modul"> 5,6,25,37, </key>\r
-<key name="mov"> 25, </key>\r
-<key name="multi"> 25, </key>\r
-<key name="multipli"> 12, </key>\r
-<key name="nam"> 11,18,24,28,29,30,33,40, </key>\r
-<key name="nb"> 33, </key>\r
-<key name="ne"> 49, </key>\r
-<key name="need"> 49, </key>\r
-<key name="netgen"> 49,42, </key>\r
-<key name="new"> 37, </key>\r
-<key name="nod"> 5,9,10,12,18,20,22,25,28,33,36,39,40,41,48, </key>\r
-<key name="normal"> 48, </key>\r
-<key name="notic"> 5, </key>\r
-<key name="numb"> 4,5,25,33, </key>\r
-<key name="number"> 21,22, </key>\r
-<key name="object"> 0,1,2,3,4,6,14,16,17,28,29,30,33,49,42,45,46, </key>\r
-<key name="ok"> 24, </key>\r
-<key name="on"> 4,5,6,16,17,34,40,49, </key>\r
-<key name="onto"> 34, </key>\r
-<key name="operation"> 25, </key>\r
-<key name="opposit"> 4,34,39, </key>\r
-<key name="option"> 5, </key>\r
-<key name="ord"> 5, </key>\r
-<key name="orientation"> 13, </key>\r
-<key name="origin"> 48, </key>\r
-<key name="own"> 5, </key>\r
-<key name="paramet"> 5, </key>\r
-<key name="parameter"> 4,26,32, </key>\r
-<key name="parametric"> 5, </key>\r
-<key name="particularity"> 5, </key>\r
-<key name="perfect"> 12, </key>\r
-<key name="perform"> 25, </key>\r
-<key name="plan"> 48, </key>\r
-<key name="planar"> 48, </key>\r
-<key name="platform"> 37, </key>\r
-<key name="point"> 5,28,33,48, </key>\r
-<key name="pop"> 46, </key>\r
-<key name="position"> 5, </key>\r
-<key name="possibl"> 4, </key>\r
-<key name="present"> 5, </key>\r
-<key name="presentation"> 8, </key>\r
-<key name="preset"> 4, </key>\r
-<key name="previou"> 40, </key>\r
-<key name="previous"> 16,17,25, </key>\r
-<key name="procedur"> 12, </key>\r
-<key name="produc"> 5, </key>\r
-<key name="product"> 48, </key>\r
-<key name="progression"> 11, </key>\r
-<key name="projection"> 48, </key>\r
-<key name="propagat"> 34, </key>\r
-<key name="propagation"> 4,34, </key>\r
-<key name="properti"> 38,46,47, </key>\r
-<key name="quad"> 48, </key>\r
-<key name="quadrangl"> 1,5,6,10,12,27,29,31,39, </key>\r
-<key name="quadrangular"> 34, </key>\r
-<key name="quality"> 8,10,12,25,27,31,39,41,48, </key>\r
-<key name="quantity"> 4, </key>\r
-<key name="ratio"> 8,12,25,41,48, </key>\r
-<key name="reassign"> 35, </key>\r
-<key name="referenc"> 5,8, </key>\r
-<key name="refin"> 4, </key>\r
-<key name="reflect"> 39, </key>\r
-<key name="regular"> 11, </key>\r
-<key name="relat"> 37, </key>\r
-<key name="relation"> 5, </key>\r
-<key name="relationship"> 5, </key>\r
-<key name="remain"> 12, </key>\r
-<key name="remov"> 36, </key>\r
-<key name="repeat"> 12, </key>\r
-<key name="represent"> 4,5,28,33,41, </key>\r
-<key name="representation"> 5, </key>\r
-<key name="restrict"> 5, </key>\r
-<key name="result"> 4, </key>\r
-<key name="retain"> 12, </key>\r
-<key name="retriev"> 5, </key>\r
-<key name="right"> 46, </key>\r
-<key name="rough"> 4, </key>\r
-<key name="run"> 37, </key>\r
-<key name="s"> 12, </key>\r
-<key name="salom"> 25,37, </key>\r
-<key name="sam"> 5,33,34, </key>\r
-<key name="scalar"> 8,38, </key>\r
-<key name="se"> 5, </key>\r
-<key name="search"> 24, </key>\r
-<key name="segment"> 4,11,18,25,26,28,33,40, </key>\r
-<key name="select"> 0,1,2,3,4,6,11,14,16,17,18,21,22,24,28,29,30,33,37,40,49,42,45,46, </key>\r
-<key name="sens"> 5, </key>\r
-<key name="separat"> 41, </key>\r
-<key name="set"> 5,6,11,18,25,28,29,30,33,34,37,40,46, </key>\r
-<key name="shad"> 46, </key>\r
-<key name="shap"> 4,5,12, </key>\r
-<key name="shortest"> 12,48, </key>\r
-<key name="should"> 37, </key>\r
-<key name="shown"> 8, </key>\r
-<key name="shrink"> 46, </key>\r
-<key name="sid"> 12,31,39, </key>\r
-<key name="similar"> 11, </key>\r
-<key name="simpl"> 5, </key>\r
-<key name="skew"> 8,25,39, </key>\r
-<key name="smesh"> 4,5,6,8,21,22,24,25,37,43,46, </key>\r
-<key name="so"> 4,12,18,40,41, </key>\r
-<key name="spac"> 5, </key>\r
-<key name="specifi"> 18,40,49, </key>\r
-<key name="split"> 11,28,33, </key>\r
-<key name="standard"> 24,37, </key>\r
-<key name="start"> 4,11,37,40, </key>\r
-<key name="step"> 14, </key>\r
-<key name="study"> 37, </key>\r
-<key name="sub"> 24, </key>\r
-<key name="submesh"> 4,17, </key>\r
-<key name="surfac"> 5,49, </key>\r
-<key name="surround"> 5, </key>\r
-<key name="t"> 5, </key>\r
-<key name="taken"> 4, </key>\r
-<key name="tap"> 8,25,41, </key>\r
-<key name="tetrahedron"> 5,6,30,49,42, </key>\r
-<key name="text"> 7,9,13,15,19,20,36,38,47, </key>\r
-<key name="them"> 18,40, </key>\r
-<key name="thre"> 5,46, </key>\r
-<key name="toolbar"> 12,14,16,17,27,37,39,41,45,48, </key>\r
-<key name="topic"> 7,9,13,15,19,20,36,38,47, </key>\r
-<key name="topological"> 5, </key>\r
-<key name="topology"> 5, </key>\r
-<key name="triangl"> 2,5,6,10,12,27,29,31,39,41, </key>\r
-<key name="triangulator"> 26, </key>\r
-<key name="two"> 5,12,31,41, </key>\r
-<key name="typ"> 5,7,9,13,15,19,20,36,38,47, </key>\r
-<key name="u"> 5, </key>\r
-<key name="unles"> 34, </key>\r
-<key name="unv"> 24, </key>\r
-<key name="up"> 11,46, </key>\r
-<key name="updat"> 37,44, </key>\r
-<key name="us"> 0,1,2,3,5,6,16,17,18,28,33,40,49,42,43, </key>\r
-<key name="usag"> 8, </key>\r
-<key name="v"> 5, </key>\r
-<key name="valu"> 8,11,12,18,31,39, </key>\r
-<key name="vector"> 48, </key>\r
-<key name="vertex"> 5, </key>\r
-<key name="view"> 10,12,21,22,27,31,37,39,41,44,45,46,48, </key>\r
-<key name="visual"> 8, </key>\r
-<key name="visualization"> 46,47, </key>\r
-<key name="volum"> 3,4,5,6,25,30,49,42, </key>\r
-<key name="vtk"> 37, </key>\r
-<key name="warp"> 8,25,48, </key>\r
-<key name="way"> 5, </key>\r
-<key name="whil"> 49, </key>\r
-<key name="will"> 4,5,6,10,11,12,16,17,18,21,22,24,27,28,29,30,31,33,34,37,39,40,41,45,48, </key>\r
-<key name="window"> 37, </key>\r
-<key name="wir"> 0,6,26, </key>\r
-<key name="wirefram"> 46, </key>\r
-<key name="word"> 33, </key>\r
-<key name="work"> 37, </key>\r
-<key name="x"> 5,48, </key>\r
-<key name="y"> 5, </key>\r
-<key name="your"> 4,5,8,10,11,12,14,17,18,21,22,24,27,28,29,30,31,33,39,40,41,45,46,48, </key>\r
-<key name="z"> 5, </key>\r
+<key name="0"> 6,47, </key>\r
+<key name="0d"> 6, </key>\r
+<key name="1"> 10,11,12,13,14,15,20,21,23,24,25,26,27,28,0,29,32,36,37,65,41,42,43,66,47,48,49,52,56,57,58,61,62,64, </key>\r
+<key name="1d"> 1,5,6,7,12,0,30,34,31,40,66,50, </key>\r
+<key name="2"> 10,11,13,14,15,20,21,23,24,25,26,27,28,0,29,32,37,65,41,42,43,66,47,48,49,52,56,57,58,61,62,64, </key>\r
+<key name="2d"> 2,3,6,7,11,13,0,30,34,31,37,65,66,47,64, </key>\r
+<key name="3"> 6,11,13,14,21,23,24,0,29,65,41,42,43,66,45,47,48,49,56,57,64, </key>\r
+<key name="3d"> 4,6,7,10,14,20,21,23,24,25,26,0,30,41,42,43,66,47,49,53,54,56,57, </key>\r
+<key name="3rd"> 6, </key>\r
+<key name="4"> 6,11,13,21,24,65,47,48,52,64, </key>\r
+<key name="5th"> 6, </key>\r
+<key name="abl"> 41, </key>\r
+<key name="abov"> 49, </key>\r
+<key name="absent"> 58, </key>\r
+<key name="abut"> 33,22,39, </key>\r
+<key name="accord"> 9,11,13,32,37,65,48,49,52,64, </key>\r
+<key name="account"> 5,65, </key>\r
+<key name="ad"> 10,14,20,21,56,58, </key>\r
+<key name="add"> 10,14,20,21,27,56, </key>\r
+<key name="addition"> 21,30, </key>\r
+<key name="additional"> 6,65,45,49, </key>\r
+<key name="adjacent"> 24,37,35,38,42,47,56, </key>\r
+<key name="adjust"> 49, </key>\r
+<key name="advanc"> 53, </key>\r
+<key name="again"> 41, </key>\r
+<key name="algorithm"> 1,2,3,4,5,6,7,9,11,12,18,19,28,30,65,41,47,53,54, </key>\r
+<key name="allow"> 5,12,14,20,21,29,30,36,35,38,65,40,44,47,49,51,55,56,58, </key>\r
+<key name="along"> 0,65,49, </key>\r
+<key name="already"> 28, </key>\r
+<key name="alway"> 49, </key>\r
+<key name="angl"> 9,30,37,66,44,48,64, </key>\r
+<key name="anoth"> 40, </key>\r
+<key name="any"> 6,24,65,49,53, </key>\r
+<key name="ap"> 1,2,3,4,7,10,11,13,14,20,21,23,24,27,0,30,34,31,32,37,35,38,65,40,41,42,43,66,47,48,49,51,52,53,54,56,57,58,64, </key>\r
+<key name="appear"> 5,7,10,12,14,18,19,20,21,23,24,27,28,0,33,22,36,39,65,41,42,43,66,44,45,47,49,50,51,55,56,57,58, </key>\r
+<key name="appli"> 11,13,18,19,28,32,33,22,37,39,41,48,49,52,64, </key>\r
+<key name="application"> 9,65, </key>\r
+<key name="apply"> 5,18,19, </key>\r
+<key name="approximate"> 39, </key>\r
+<key name="arcsin"> 64, </key>\r
+<key name="area"> 5,9,11,30,49,52, </key>\r
+<key name="arithmetic"> 5,12, </key>\r
+<key name="around"> 66, </key>\r
+<key name="aspect"> 9,13,30,49, </key>\r
+<key name="assign"> 41,64, </key>\r
+<key name="associat"> 10,25,26,28,41,42, </key>\r
+<key name="automatic"> 65, </key>\r
+<key name="automatical"> 14,21,24,65,56, </key>\r
+<key name="availabl"> 41,47, </key>\r
+<key name="averag"> 5,34,31,33,22,65,50,64, </key>\r
+<key name="axi"> 0,66,44,51,64, </key>\r
+<key name="bar"> 9,46, </key>\r
+<key name="bas"> 5,11,30,64, </key>\r
+<key name="basi"> 6,18,19, </key>\r
+<key name="basic"> 5, </key>\r
+<key name="becom"> 65, </key>\r
+<key name="befor"> 45, </key>\r
+<key name="begin"> 12,47, </key>\r
+<key name="belong"> 47, </key>\r
+<key name="berder"> 47, </key>\r
+<key name="bisect"> 64, </key>\r
+<key name="bisector"> 64, </key>\r
+<key name="boolean"> 58, </key>\r
+<key name="bord"> 47, </key>\r
+<key name="border"> 30,47, </key>\r
+<key name="both"> 49,58, </key>\r
+<key name="bottom"> 45, </key>\r
+<key name="bound"> 6,65, </key>\r
+<key name="boundari"> 65, </key>\r
+<key name="boundary"> 5,65,47,49, </key>\r
+<key name="box"> 1,2,3,4,5,10,12,14,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,45,47,49,50,51,53,54,55,56,57,58, </key>\r
+<key name="brows"> 5,7,10,15,17,18,19,20,27,28,41,42,43,61,62, </key>\r
+<key name="build"> 0,34,31,65,66,50, </key>\r
+<key name="built"> 65,49,53, </key>\r
+<key name="button"> 10,11,13,14,15,18,19,20,21,23,24,27,28,0,29,32,37,65,41,42,43,66,44,47,48,49,51,52,55,56,57,58,61,64, </key>\r
+<key name="cad"> 6, </key>\r
+<key name="cal"> 65, </key>\r
+<key name="calculat"> 9,13,34,31,52, </key>\r
+<key name="calculation"> 5,11,32,37, </key>\r
+<key name="cancel"> 20, </key>\r
+<key name="careful"> 42, </key>\r
+<key name="cas"> 24,65, </key>\r
+<key name="cel"> 42,57, </key>\r
+<key name="cent"> 49, </key>\r
+<key name="centroid"> 49, </key>\r
+<key name="centroidal"> 49, </key>\r
+<key name="certain"> 65, </key>\r
+<key name="chang"> 12,14,20,24,28,41, </key>\r
+<key name="characteristic"> 9, </key>\r
+<key name="characteriz"> 6, </key>\r
+<key name="check"> 47, </key>\r
+<key name="choic"> 5,65, </key>\r
+<key name="choos"> 10,11,13,14,17,20,21,23,24,25,26,0,29,32,36,37,65,41,42,43,66,44,45,47,48,51,52,55,56,57,64, </key>\r
+<key name="chos"> 17, </key>\r
+<key name="chosen"> 5, </key>\r
+<key name="click"> 1,2,3,4,5,7,10,11,12,13,14,15,17,18,19,20,21,23,24,25,26,27,28,0,29,34,31,32,33,22,37,35,38,39,65,40,41,42,43,66,45,47,48,49,50,52,53,54,56,57,58,61,62,64, </key>\r
+<key name="clos"> 6,47, </key>\r
+<key name="co"> 47, </key>\r
+<key name="coincident"> 36, </key>\r
+<key name="color"> 9,11,13,32,37,48,52,64, </key>\r
+<key name="column"> 41, </key>\r
+<key name="combin"> 32, </key>\r
+<key name="common"> 23,57, </key>\r
+<key name="compar"> 47, </key>\r
+<key name="component"> 30,45, </key>\r
+<key name="compos"> 5,6,7,9,25,33,22,39,48, </key>\r
+<key name="comput"> 15,65,47, </key>\r
+<key name="computation"> 15,18,19, </key>\r
+<key name="condition"> 5, </key>\r
+<key name="confirm"> 14,20,21,27,28,41,42,49,56,58, </key>\r
+<key name="confirmation"> 20, </key>\r
+<key name="conform"> 5,35,38,47, </key>\r
+<key name="connect"> 21,49, </key>\r
+<key name="connection"> 6,30, </key>\r
+<key name="connectivity"> 16,65, </key>\r
+<key name="consider"> 6,47, </key>\r
+<key name="consist"> 9,11,13,17,18,19,20,32,33,22,37,39,52, </key>\r
+<key name="constant"> 50, </key>\r
+<key name="construct"> 17,18,19,50, </key>\r
+<key name="construction"> 18,19, </key>\r
+<key name="contain"> 6,7,14,18,19,20,21,29,65,41,49,56, </key>\r
+<key name="content"> 20, </key>\r
+<key name="continu"> 49, </key>\r
+<key name="contour"> 6,47, </key>\r
+<key name="contrast"> 56, </key>\r
+<key name="control"> 9,11,13,30,32,37,48,52,64, </key>\r
+<key name="converg"> 49, </key>\r
+<key name="coordinat"> 6,10,24,65, </key>\r
+<key name="copy"> 44,51,55, </key>\r
+<key name="corn"> 64, </key>\r
+<key name="corner"> 21,49,64, </key>\r
+<key name="correspond"> 5,6,9,10,29,65,47, </key>\r
+<key name="could"> 6, </key>\r
+<key name="count"> 47, </key>\r
+<key name="counterclockwis"> 65, </key>\r
+<key name="creat"> 1,2,3,4,5,6,7,10,12,20,28,30,34,31,33,22,36,35,38,39,65,40,41,44,45,50,51,53,54,55,58,64, </key>\r
+<key name="creation"> 6,20,65,45,58, </key>\r
+<key name="criteria"> 30, </key>\r
+<key name="criterion"> 11,13,32,37,48,52,64, </key>\r
+<key name="cros"> 64, </key>\r
+<key name="current"> 14,21,41,47,56, </key>\r
+<key name="curv"> 6, </key>\r
+<key name="cut"> 21,58, </key>\r
+<key name="d"> 12, </key>\r
+<key name="data"> 5,28, </key>\r
+<key name="deal"> 6, </key>\r
+<key name="default"> 45, </key>\r
+<key name="defin"> 6,12,13,20,33,22,39,65,47,50, </key>\r
+<key name="definit"> 6,9,14,17,20,21,30,39,41,42,56, </key>\r
+<key name="definition"> 33,22,39, </key>\r
+<key name="deflection"> 5, </key>\r
+<key name="delet"> 42, </key>\r
+<key name="deletion"> 30,42,57, </key>\r
+<key name="depend"> 5,6,28, </key>\r
+<key name="describ"> 6,65, </key>\r
+<key name="description"> 65, </key>\r
+<key name="desirabl"> 36, </key>\r
+<key name="desktop"> 45, </key>\r
+<key name="destin"> 6,9,30, </key>\r
+<key name="detail"> 5, </key>\r
+<key name="detect"> 36, </key>\r
+<key name="diagonal"> 21,23,52, </key>\r
+<key name="dialog"> 1,2,3,4,5,10,12,14,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,47,49,50,51,53,54,55,56,57,58, </key>\r
+<key name="dif"> 28, </key>\r
+<key name="differ"> 50, </key>\r
+<key name="differenc"> 47, </key>\r
+<key name="different"> 5,10,20,47, </key>\r
+<key name="dimension"> 6,0,66, </key>\r
+<key name="direct"> 6,47,49, </key>\r
+<key name="direction"> 65,64, </key>\r
+<key name="discretiz"> 0,66, </key>\r
+<key name="discretization"> 1,6,7, </key>\r
+<key name="displac"> 24, </key>\r
+<key name="display"> 9,11,13,14,18,19,21,24,25,26,32,37,48,49,52,56,61,62,64, </key>\r
+<key name="disposal"> 9, </key>\r
+<key name="distanc"> 65,64, </key>\r
+<key name="distortion"> 49, </key>\r
+<key name="divid"> 50, </key>\r
+<key name="do"> 53, </key>\r
+<key name="domain"> 65, </key>\r
+<key name="don"> 6,41, </key>\r
+<key name="doubl"> 41, </key>\r
+<key name="e"> 65,47, </key>\r
+<key name="easi"> 17, </key>\r
+<key name="edg"> 1,5,6,7,9,10,12,13,17,20,21,23,24,30,34,31,32,33,22,35,38,39,65,40,47,49,50,56,57,64, </key>\r
+<key name="edit"> 27,28,36,41, </key>\r
+<key name="effect"> 56, </key>\r
+<key name="eith"> 65,47, </key>\r
+<key name="element"> 5,6,9,10,11,13,14,17,20,21,23,24,25,27,0,30,32,37,35,38,65,42,43,66,44,47,48,49,50,51,52,53,55,56,58,64, </key>\r
+<key name="els"> 65, </key>\r
+<key name="encapsulat"> 19, </key>\r
+<key name="encounter"> 65, </key>\r
+<key name="end"> 5,12,35,38,47,50,55, </key>\r
+<key name="enough"> 47, </key>\r
+<key name="ent"> 20,23,24,28,29,41,57, </key>\r
+<key name="entiti"> 1,2,3,4,6,7,53,54, </key>\r
+<key name="entity"> 6, </key>\r
+<key name="equal"> 13,65,47,49, </key>\r
+<key name="equilateral"> 13, </key>\r
+<key name="etc"> 9, </key>\r
+<key name="eventual"> 65, </key>\r
+<key name="every"> 64, </key>\r
+<key name="exampl"> 6,65,54, </key>\r
+<key name="exceed"> 49, </key>\r
+<key name="except"> 47, </key>\r
+<key name="exist"> 14,20,21,27,65,56, </key>\r
+<key name="export"> 29,30, </key>\r
+<key name="exportation"> 29, </key>\r
+<key name="extend"> 64, </key>\r
+<key name="extrud"> 0,66, </key>\r
+<key name="extrusion"> 0, </key>\r
+<key name="fac"> 2,3,5,6,7,17,20,30,33,22,35,38,39,65,40,47,64, </key>\r
+<key name="factor"> 50, </key>\r
+<key name="far"> 47, </key>\r
+<key name="fast"> 49, </key>\r
+<key name="field"> 10,14,20,21,23,24,41,43,47,49,56,57, </key>\r
+<key name="fifth"> 47, </key>\r
+<key name="fil"> 20,29,65, </key>\r
+<key name="fill"> 43,47, </key>\r
+<key name="filt"> 14,20,21,56, </key>\r
+<key name="final"> 15, </key>\r
+<key name="find"> 29,65,47, </key>\r
+<key name="first"> 65,47,50, </key>\r
+<key name="fix"> 6,49, </key>\r
+<key name="flag"> 65, </key>\r
+<key name="fold"> 5,7,18,19, </key>\r
+<key name="follow"> 5,6,7,9,10,12,13,14,18,19,20,21,23,24,25,26,27,28,0,33,22,36,39,65,41,42,43,66,44,45,47,49,50,51,55,56,57,58,61, </key>\r
+<key name="form"> 23,27,65,47, </key>\r
+<key name="format"> 29,30, </key>\r
+<key name="four"> 6,64, </key>\r
+<key name="fre"> 6,30,47,49, </key>\r
+<key name="function"> 6, </key>\r
+<key name="functionality"> 6,29,36,47, </key>\r
+<key name="generat"> 5,6,9,30,33,22,35,38,39,65,45,53, </key>\r
+<key name="generation"> 15,0,65,66, </key>\r
+<key name="geom"> 6,30, </key>\r
+<key name="geometric"> 6,9, </key>\r
+<key name="geometrical"> 1,2,3,4,5,6,7,18,19,20,30,33,22,39,65,44,49,50,51,53,54,55, </key>\r
+<key name="geometry"> 20,49, </key>\r
+<key name="get"> 65, </key>\r
+<key name="ghs3d"> 53, </key>\r
+<key name="given"> 12,34,31,47, </key>\r
+<key name="global"> 18, </key>\r
+<key name="good"> 49, </key>\r
+<key name="got"> 65, </key>\r
+<key name="group"> 14,17,20,21,27,30,36,56,58, </key>\r
+<key name="h"> 64, </key>\r
+<key name="h1"> 13, </key>\r
+<key name="h2"> 13, </key>\r
+<key name="half"> 64, </key>\r
+<key name="hand"> 65, </key>\r
+<key name="hav"> 20,34,31,35,38,65,53, </key>\r
+<key name="height"> 13,64, </key>\r
+<key name="help"> 9, </key>\r
+<key name="henc"> 65, </key>\r
+<key name="her"> 6,16,27,65,41,46,63, </key>\r
+<key name="hexahedron"> 4,6,7,10, </key>\r
+<key name="high"> 6, </key>\r
+<key name="highlight"> 14,20,21,56, </key>\r
+<key name="hold"> 65, </key>\r
+<key name="hyp"> 18,19, </key>\r
+<key name="hypothes"> 5,7,12,18,19,28,30,34,31,33,22,35,38,39,40,41,50,53, </key>\r
+<key name="hypothesi"> 5,12,28,34,31,33,22,35,38,39,40,41,50,53, </key>\r
+<key name="i"> 65,47, </key>\r
+<key name="icon"> 27,42,45, </key>\r
+<key name="id"> 14,20,21,23,24,25,26,0,66,47,49,56,57, </key>\r
+<key name="if"> 6,20,0,65,40,42,66,47,49,56, </key>\r
+<key name="imp"> 6, </key>\r
+<key name="impli"> 65, </key>\r
+<key name="import"> 29,30, </key>\r
+<key name="importation"> 29, </key>\r
+<key name="includ"> 6, </key>\r
+<key name="index"> 65, </key>\r
+<key name="indic"> 65, </key>\r
+<key name="indicat"> 64, </key>\r
+<key name="info"> 61, </key>\r
+<key name="information"> 6,27,61, </key>\r
+<key name="initial"> 45,51,58, </key>\r
+<key name="input"> 5,28, </key>\r
+<key name="insert"> 47, </key>\r
+<key name="instead"> 65, </key>\r
+<key name="intend"> 47, </key>\r
+<key name="interest"> 6, </key>\r
+<key name="intermediat"> 47, </key>\r
+<key name="internal"> 65, </key>\r
+<key name="intersect"> 65,58, </key>\r
+<key name="intersection"> 65,58, </key>\r
+<key name="introduction"> 30, </key>\r
+<key name="invers"> 6,23, </key>\r
+<key name="inversion"> 23, </key>\r
+<key name="iso"> 65, </key>\r
+<key name="isolin"> 65, </key>\r
+<key name="item"> 5,7,10,14,17,21,23,24,27,28,0,29,36,65,41,43,66,44,47,49,51,55,56,57,58, </key>\r
+<key name="iteration"> 49, </key>\r
+<key name="iterativ"> 49, </key>\r
+<key name="join"> 48, </key>\r
+<key name="just"> 65,42, </key>\r
+<key name="keep"> 49,51, </key>\r
+<key name="key"> 65, </key>\r
+<key name="kind"> 7, </key>\r
+<key name="know"> 65, </key>\r
+<key name="l"> 64, </key>\r
+<key name="laplacian"> 49, </key>\r
+<key name="largest"> 13, </key>\r
+<key name="last"> 47,50, </key>\r
+<key name="launch"> 45, </key>\r
+<key name="lay"> 0,65,66, </key>\r
+<key name="least"> 65,49, </key>\r
+<key name="left"> 65, </key>\r
+<key name="length"> 5,9,12,13,30,34,31,32,33,22,39,47,50,64, </key>\r
+<key name="les"> 47,49,53, </key>\r
+<key name="level"> 5, </key>\r
+<key name="lik"> 10,20,25,26,41,45,47, </key>\r
+<key name="limit"> 65,47,49, </key>\r
+<key name="lin"> 6,0,65,66,48, </key>\r
+<key name="link"> 47, </key>\r
+<key name="list"> 14,20,21,56, </key>\r
+<key name="lk"> 12, </key>\r
+<key name="local"> 19,30,39,40, </key>\r
+<key name="locat"> 65,47, </key>\r
+<key name="location"> 24,29,49,50, </key>\r
+<key name="longest"> 13, </key>\r
+<key name="look"> 20,25,26,65,45, </key>\r
+<key name="low"> 6, </key>\r
+<key name="ly"> 65, </key>\r
+<key name="main"> 5,7,14,21,65,45,56,58, </key>\r
+<key name="manag"> 5, </key>\r
+<key name="manual"> 20,65, </key>\r
+<key name="map"> 65, </key>\r
+<key name="max"> 5,30,49, </key>\r
+<key name="maximum"> 48,49, </key>\r
+<key name="mean"> 6, </key>\r
+<key name="meaningful"> 6, </key>\r
+<key name="measur"> 64, </key>\r
+<key name="mefisto"> 3, </key>\r
+<key name="menu"> 5,7,10,14,15,17,18,19,20,21,23,24,25,26,27,28,0,29,36,39,65,41,42,43,66,44,45,47,49,51,55,56,57,58,61,62, </key>\r
+<key name="merg"> 36,47, </key>\r
+<key name="mesh"> 1,2,3,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,24,25,26,27,0,29,30,34,31,32,33,22,36,37,35,38,39,65,41,42,43,66,44,45,47,48,49,50,51,52,53,54,55,56,58,61,62,64, </key>\r
+<key name="method"> 49, </key>\r
+<key name="minimum"> 9,30,37,47, </key>\r
+<key name="mod"> 62, </key>\r
+<key name="model"> 6,30, </key>\r
+<key name="modification"> 6,8,10,14,21,23,24,27,0,30,36,65,41,42,43,66,44,47,49,51,55,56,57, </key>\r
+<key name="modify"> 14,21,27,56, </key>\r
+<key name="modul"> 6,7,30,45, </key>\r
+<key name="mov"> 24,30,41, </key>\r
+<key name="multi"> 30, </key>\r
+<key name="multipli"> 13, </key>\r
+<key name="must"> 65,47, </key>\r
+<key name="n"> 65,47, </key>\r
+<key name="nam"> 12,20,27,28,29,33,22,39,41,50,58, </key>\r
+<key name="nb"> 39, </key>\r
+<key name="ne"> 53, </key>\r
+<key name="need"> 53, </key>\r
+<key name="neighbor"> 23,57, </key>\r
+<key name="netgen"> 53,54, </key>\r
+<key name="new"> 18,19,20,24,28,41,45,58, </key>\r
+<key name="next"> 65, </key>\r
+<key name="nod"> 6,10,11,13,14,17,20,24,26,0,30,33,22,36,39,65,42,43,66,47,48,49,50,52,64, </key>\r
+<key name="nodal"> 65,49, </key>\r
+<key name="normal"> 51,64, </key>\r
+<key name="not"> 49, </key>\r
+<key name="notic"> 6, </key>\r
+<key name="numb"> 5,6,0,30,39,65,66,47,49, </key>\r
+<key name="number"> 25,26, </key>\r
+<key name="obey"> 47, </key>\r
+<key name="object"> 1,2,3,4,5,7,10,15,17,18,19,20,27,28,33,22,39,65,41,42,43,44,53,54,55,61,62, </key>\r
+<key name="objet"> 20, </key>\r
+<key name="ok"> 10,14,20,21,23,24,27,28,0,29,41,42,43,66,47,49,56,57,58, </key>\r
+<key name="on"> 5,6,7,18,19,21,23,0,65,40,42,66,47,49,50,51,53,55,56,58, </key>\r
+<key name="onc"> 41,56, </key>\r
+<key name="onto"> 65,40, </key>\r
+<key name="operation"> 14,20,21,30,43,44,47,49,51,55,56,58, </key>\r
+<key name="opposit"> 5,21,40,47,48, </key>\r
+<key name="option"> 6,51,55, </key>\r
+<key name="ord"> 6,14,65, </key>\r
+<key name="orientation"> 14,21,56, </key>\r
+<key name="origin"> 64, </key>\r
+<key name="other"> 56, </key>\r
+<key name="outsid"> 65, </key>\r
+<key name="own"> 6, </key>\r
+<key name="paramet"> 6,47, </key>\r
+<key name="parameter"> 5,34,31,35,38,44,47, </key>\r
+<key name="parametric"> 6,65, </key>\r
+<key name="part"> 47,49, </key>\r
+<key name="particularity"> 6, </key>\r
+<key name="pattern"> 65, </key>\r
+<key name="pattern_nam"> 65, </key>\r
+<key name="perfect"> 13, </key>\r
+<key name="perform"> 30,43,47,51,58, </key>\r
+<key name="plac"> 47, </key>\r
+<key name="plan"> 51,64, </key>\r
+<key name="planar"> 64, </key>\r
+<key name="platform"> 45, </key>\r
+<key name="plu"> 0,66, </key>\r
+<key name="point"> 6,33,22,39,65,66,44,47,51,55,64, </key>\r
+<key name="pop"> 25,26,62, </key>\r
+<key name="popup"> 28,41, </key>\r
+<key name="position"> 6,65, </key>\r
+<key name="possibl"> 5,65, </key>\r
+<key name="pres"> 10,42,49, </key>\r
+<key name="present"> 6,58, </key>\r
+<key name="presentation"> 9, </key>\r
+<key name="preserv"> 65, </key>\r
+<key name="preset"> 5, </key>\r
+<key name="preview"> 21,65, </key>\r
+<key name="previou"> 50,56, </key>\r
+<key name="previous"> 18,19,20,30,41, </key>\r
+<key name="procedur"> 13,49, </key>\r
+<key name="proces"> 49, </key>\r
+<key name="produc"> 6,0,66,49, </key>\r
+<key name="product"> 64, </key>\r
+<key name="progression"> 12, </key>\r
+<key name="project"> 65, </key>\r
+<key name="projection"> 65,64, </key>\r
+<key name="propagat"> 40, </key>\r
+<key name="propagation"> 5,40, </key>\r
+<key name="properti"> 20,46,62,63, </key>\r
+<key name="pseudo"> 23, </key>\r
+<key name="pul"> 49, </key>\r
+<key name="quad"> 64, </key>\r
+<key name="quadrangl"> 2,6,7,10,11,13,21,23,0,32,37,66,48, </key>\r
+<key name="quadrangular"> 40, </key>\r
+<key name="quality"> 9,11,13,30,32,37,48,52,64, </key>\r
+<key name="quantity"> 5, </key>\r
+<key name="quit"> 20, </key>\r
+<key name="radio"> 14,20,21,44,47,51,55,56, </key>\r
+<key name="ratio"> 9,13,30,49,52,64, </key>\r
+<key name="reassign"> 41, </key>\r
+<key name="recomput"> 41, </key>\r
+<key name="reduc"> 49, </key>\r
+<key name="reevaluat"> 49, </key>\r
+<key name="refer"> 65, </key>\r
+<key name="referenc"> 6,9,18,19, </key>\r
+<key name="refin"> 5, </key>\r
+<key name="reflect"> 65,48, </key>\r
+<key name="regular"> 12, </key>\r
+<key name="relat"> 45, </key>\r
+<key name="relation"> 6, </key>\r
+<key name="relationship"> 6, </key>\r
+<key name="remain"> 13, </key>\r
+<key name="remov"> 14,20,21,27,42,56, </key>\r
+<key name="renam"> 28, </key>\r
+<key name="renumb"> 43, </key>\r
+<key name="renumber"> 43, </key>\r
+<key name="reorient"> 14, </key>\r
+<key name="repeat"> 13, </key>\r
+<key name="replac"> 47, </key>\r
+<key name="represent"> 5,6,33,22,39,52, </key>\r
+<key name="representation"> 6, </key>\r
+<key name="requir"> 23,24,28,41,57, </key>\r
+<key name="rest"> 65,47, </key>\r
+<key name="restrict"> 6, </key>\r
+<key name="result"> 5,49,58, </key>\r
+<key name="retain"> 13, </key>\r
+<key name="retriev"> 6, </key>\r
+<key name="revers"> 65, </key>\r
+<key name="revert"> 14, </key>\r
+<key name="revolution"> 0,66, </key>\r
+<key name="revolv"> 66, </key>\r
+<key name="right"> 17,24,25,26,28,41,62, </key>\r
+<key name="rotat"> 0,66,44, </key>\r
+<key name="rotation"> 66,44, </key>\r
+<key name="rough"> 5, </key>\r
+<key name="rul"> 47, </key>\r
+<key name="run"> 45, </key>\r
+<key name="s"> 13,35,38,40,50, </key>\r
+<key name="salom"> 30,45, </key>\r
+<key name="sam"> 6,39,40,47, </key>\r
+<key name="scalar"> 9,46, </key>\r
+<key name="se"> 6,27, </key>\r
+<key name="seam"> 65, </key>\r
+<key name="search"> 29, </key>\r
+<key name="second"> 47, </key>\r
+<key name="section"> 65, </key>\r
+<key name="segment"> 5,12,30,34,31,33,22,39,50, </key>\r
+<key name="select"> 1,2,3,4,5,7,10,12,14,15,17,18,19,20,21,23,24,27,28,0,29,34,31,33,22,36,35,38,39,65,40,41,42,43,66,44,45,47,49,50,51,53,54,55,56,57,58,61,62, </key>\r
+<key name="selection"> 14,20,21,56, </key>\r
+<key name="sens"> 6, </key>\r
+<key name="separat"> 52, </key>\r
+<key name="sequenc"> 47, </key>\r
+<key name="set"> 6,7,10,12,14,20,21,24,30,33,22,39,65,40,41,45,47,49,50,56,62, </key>\r
+<key name="sew"> 47, </key>\r
+<key name="shad"> 62, </key>\r
+<key name="shall"> 5,7,10,14,21,23,24,0,36,65,66,44,47,51,55,56,57, </key>\r
+<key name="shap"> 5,6,13,65,49, </key>\r
+<key name="shift"> 10,42,49, </key>\r
+<key name="shortest"> 13,64, </key>\r
+<key name="should"> 20,0,65,41,66,44,45,47,49,58, </key>\r
+<key name="shown"> 9,49, </key>\r
+<key name="shrink"> 62, </key>\r
+<key name="sid"> 13,37,47,48, </key>\r
+<key name="similar"> 12, </key>\r
+<key name="simpl"> 6,65, </key>\r
+<key name="siz"> 49, </key>\r
+<key name="skew"> 9,30,48, </key>\r
+<key name="smesh"> 5,6,7,9,10,17,20,23,24,25,26,28,29,30,42,43,45,47,57,58,59,62, </key>\r
+<key name="smooth"> 49, </key>\r
+<key name="smp"> 65, </key>\r
+<key name="so"> 5,13,65,47,50,52, </key>\r
+<key name="sort"> 14,20,21,56, </key>\r
+<key name="spac"> 6,65,44,55, </key>\r
+<key name="specifi"> 65,42,47,49,50,53, </key>\r
+<key name="specific"> 17, </key>\r
+<key name="specify"> 10,21,0,65,42,66,44,49,51,55,58, </key>\r
+<key name="split"> 12,33,22,39,47, </key>\r
+<key name="standalon"> 20, </key>\r
+<key name="standard"> 29,45, </key>\r
+<key name="start"> 5,12,45,47,50,55, </key>\r
+<key name="step"> 15,0,66, </key>\r
+<key name="stor"> 65, </key>\r
+<key name="structur"> 18,19, </key>\r
+<key name="study"> 41,45, </key>\r
+<key name="sub"> 29,36,65,44,47,51,55, </key>\r
+<key name="submenu"> 10,42,43, </key>\r
+<key name="submesh"> 5,14,17,19,20,21,0,41,66,49,56, </key>\r
+<key name="supplementary"> 21, </key>\r
+<key name="surfac"> 6,0,65,66,47,53, </key>\r
+<key name="surround"> 6,49, </key>\r
+<key name="swept"> 0,66, </key>\r
+<key name="symmetrical"> 51, </key>\r
+<key name="symmetry"> 51, </key>\r
+<key name="t"> 6,65, </key>\r
+<key name="tak"> 56, </key>\r
+<key name="taken"> 5,17,20,65, </key>\r
+<key name="tap"> 9,30,52, </key>\r
+<key name="techniqu"> 49, </key>\r
+<key name="tetrahedron"> 6,7,10,53,54, </key>\r
+<key name="text"> 16,46,63, </key>\r
+<key name="th"> 65,47, </key>\r
+<key name="them"> 10,0,36,42,66,47,49,50, </key>\r
+<key name="thre"> 6,47,51,62, </key>\r
+<key name="thu"> 41, </key>\r
+<key name="toleranc"> 36,66, </key>\r
+<key name="tool"> 58, </key>\r
+<key name="toolbar"> 13,14,15,18,19,21,23,24,27,0,32,65,42,43,66,45,48,49,52,56,57,61,64, </key>\r
+<key name="topic"> 16,46,63, </key>\r
+<key name="topological"> 6,47, </key>\r
+<key name="topology"> 6, </key>\r
+<key name="toward"> 49, </key>\r
+<key name="transform"> 24, </key>\r
+<key name="transformation"> 36,44,47,51,55, </key>\r
+<key name="translat"> 55, </key>\r
+<key name="translation"> 55, </key>\r
+<key name="triangl"> 3,6,7,10,11,13,23,0,32,37,66,48,52,56,57, </key>\r
+<key name="triangulator"> 34,31, </key>\r
+<key name="two"> 6,13,21,23,37,65,41,47,52,55,57,58, </key>\r
+<key name="typ"> 5,6,10,16,17,20,28,0,42,66,46,47,63, </key>\r
+<key name="typical"> 49, </key>\r
+<key name="u"> 6,47, </key>\r
+<key name="unassign"> 41, </key>\r
+<key name="uniform"> 49, </key>\r
+<key name="union"> 56,57,58, </key>\r
+<key name="unit"> 47,56,57,58, </key>\r
+<key name="unles"> 40, </key>\r
+<key name="unv"> 29, </key>\r
+<key name="up"> 12,25,26,47,62, </key>\r
+<key name="updat"> 45,49,60, </key>\r
+<key name="us"> 1,2,3,4,6,7,18,19,0,33,22,36,39,65,41,66,47,49,50,53,54,58,59, </key>\r
+<key name="usag"> 9, </key>\r
+<key name="usual"> 47,49, </key>\r
+<key name="v"> 6, </key>\r
+<key name="valu"> 9,12,13,28,37,48, </key>\r
+<key name="vector"> 0,66,44,51,55,64, </key>\r
+<key name="versa"> 41, </key>\r
+<key name="vertex"> 6,65, </key>\r
+<key name="vertic"> 65, </key>\r
+<key name="vic"> 41, </key>\r
+<key name="view"> 10,11,13,14,20,21,23,24,25,26,0,32,37,41,42,43,66,45,47,48,49,52,56,57,60,61,62,64, </key>\r
+<key name="visual"> 9, </key>\r
+<key name="visualization"> 62,63, </key>\r
+<key name="volum"> 4,5,6,7,20,30,53,54, </key>\r
+<key name="vtk"> 45, </key>\r
+<key name="walk"> 65, </key>\r
+<key name="warp"> 9,30,64, </key>\r
+<key name="way"> 6,65,58, </key>\r
+<key name="weight"> 49, </key>\r
+<key name="well"> 65, </key>\r
+<key name="whil"> 42,53, </key>\r
+<key name="whol"> 0,66,49, </key>\r
+<key name="whos"> 14,20,21,56, </key>\r
+<key name="will"> 5,6,7,10,11,12,13,14,17,18,19,20,21,24,25,26,27,28,0,29,32,33,22,37,39,65,40,41,42,43,66,45,47,48,49,50,52,56,58,61,64, </key>\r
+<key name="window"> 45, </key>\r
+<key name="wir"> 1,7,34,31, </key>\r
+<key name="wirefram"> 62, </key>\r
+<key name="within"> 65,47, </key>\r
+<key name="word"> 39, </key>\r
+<key name="work"> 45, </key>\r
+<key name="would"> 10,41,47, </key>\r
+<key name="x"> 6,64, </key>\r
+<key name="y"> 6, </key>\r
+<key name="your"> 5,6,9,10,11,12,13,14,15,17,19,20,24,25,26,27,28,29,32,33,22,36,37,39,65,41,42,43,44,48,49,50,51,52,55,61,62,64, </key>\r
+<key name="z"> 6, </key>\r
+<key name="zero"> 65, </key>\r
 \r
 </ftswdata>  \r
index 7583fc28ef0e48b1523bf78d50c4c9099a6a5042..827bf7b7c0517b6841acaedf4d858bd16cf33d70 100755 (executable)
@@ -6,7 +6,7 @@
 <script LANGUAGE="JavaScript" SRC="whtdata.js"></script>\r
 <script language="javascript">\r
 <!--\r
- aTE(1,59,"SMESH module");\r
+ aTE(1,72,"SMESH module");\r
    aTE(2,0,"Introduction to SMESH","files/introduction_to_smesh.htm");\r
    aTE(2,0,"Running SMESH module","files/running_smesh_module.htm");\r
    aTE(1,28,"Creating meshes");\r
        aTE(1,3,"3D meshing algorithms");\r
          aTE(2,0,"Hexahedron meshing algorithm","files/3d_meshing_algorithm.htm");\r
          aTE(2,0,"Tetrahedron (Netgen) meshing algorithm","files/tetrahedron_(netgen)_meshing_algorithm.htm");\r
-         aTE(2,0,"Tetrahedron (GHS3D) meshing algorithm","tetrahedron_(ghs3d)_meshing_algorithm.htm");\r
+         aTE(2,0,"Tetrahedron (GHS3D) meshing algorithm","files/tetrahedron_(ghs3d)_meshing_algorithm.htm");\r
      aTE(2,0,"Constructing meshes","files/constructing_meshes.htm");\r
      aTE(2,0,"Constructing submeshes","files/constructing_submeshes.htm");\r
      aTE(2,0,"Computing meshes","files/computing_meshes.htm");\r
    aTE(1,2,"Editing meshes");\r
      aTE(2,0,"Reassigning hypotheses and algorithms","files/reassigning_hypotheses_and_algorithms.htm");\r
-     aTE(2,0,"Editing hypotheses","files/editing_hypotheses.htm");\r
+     aTE(2,0,"Editing hypotheses and algorithms","files/editing_hypotheses.htm");\r
    aTE(1,8,"Quality controls");\r
      aTE(2,0,"About quality controls","files/about_quality_controls.htm");\r
      aTE(2,0,"Length of edges","files/length_of_edges.htm");\r
      aTE(2,0,"Minimum angle","files/minimum_angle.htm");\r
      aTE(2,0,"Warping","files/warp.htm");\r
      aTE(2,0,"Skew angle","files/skew.htm");\r
-   aTE(1,6,"Modifying meshes");\r
-     aTE(2,0,"About modification of meshes","files/about_modification_of_meshes.htm");\r
+   aTE(1,4,"Grouping elements");\r
+     aTE(2,0,"Creating groups","files/creating_groups.htm");\r
+     aTE(2,0,"Editing groups","files/editing_groups.htm");\r
+     aTE(2,0,"Using operations on groups","files/using_operations_on_groups.htm");\r
+     aTE(2,0,"Constructing groups of specific elements","files/constructing_groups_of_specific_elements.htm");\r
+   aTE(1,19,"Modifying meshes");\r
      aTE(2,0,"Adding nodes and elements","files/adding_nodes_and_elements.htm");\r
      aTE(2,0,"Removing nodes and elements","files/removing_nodes_and_elements.htm");\r
-     aTE(2,0,"Displacing nodes","files/displacing_nodes.htm");\r
-     aTE(2,0,"Changing orientation of elements","files/changing_orientation_of_elements.htm");\r
+     aTE(2,0,"Renumbering nodes and elements","files/renumbering_nodes_and_elements.htm");\r
+     aTE(1,5,"Transforming meshes");\r
+       aTE(2,0,"Translation","files/translation.htm");\r
+       aTE(2,0,"Rotation","files/rotation.htm");\r
+       aTE(2,0,"Symmetry","files/symmetry.htm");\r
+       aTE(2,0,"Sewing meshes","files/sewing_meshes.htm");\r
+       aTE(2,0,"Merging nodes","files/merging_nodes.htm");\r
+     aTE(2,0,"Moving nodes","files/displacing_nodes.htm");\r
      aTE(2,0,"Diagonal inversion of elements","files/diagonal_iversion_of_elements.htm");\r
+     aTE(2,0,"Uniting two triangles","files/uniting_two_triangles.htm");\r
+     aTE(2,0,"Uniting a set of triangles","files/uniting_a_set_of_triangles.htm");\r
+     aTE(2,0,"Changing orientation of elements","files/changing_orientation_of_elements.htm");\r
+     aTE(2,0,"Cutting quadrangles","files/cutting_quadrangles.htm");\r
+     aTE(2,0,"Smoothing","files/smoothing.htm");\r
+     aTE(2,0,"Extrusion","extrusion.htm");\r
+     aTE(2,0,"Revolution","revolution.htm");\r
+     aTE(2,0,"Pattern mapping","pattern_mapping.htm");\r
    aTE(1,3,"Mesh info");\r
      aTE(2,0,"Viewing mesh info","files/viewing_mesh_info.htm");\r
      aTE(2,0,"Displaying nodes numbers","files/displaying_nodes_numbers.htm");\r
      aTE(2,0,"Displaying elements numbers","files/displaying_elements_numbers.htm");\r
-   aTE(1,4,"Setting SMESH preferences");\r
-     aTE(2,0,"Visualization modes","files/visualization_modes.htm");\r
-     aTE(2,0,"Visualization properties","files/visualization_properties.htm");\r
-     aTE(2,0,"View update","files/view_update.htm");\r
-     aTE(2,0,"Scalar Bar properties","files/scalar_bar_properties.htm");\r
 \r
 //-->\r
 </script>\r
index 4518d14d8550da7912f5e9ffe9ee0455b86d7b5a..27bb8721ba08d2c223183350028c00cdf05a2800 100755 (executable)
@@ -31,7 +31,7 @@
       <book name="3D meshing algorithms" >\r
         <item name="Hexahedron meshing algorithm" url="files/3d_meshing_algorithm.htm" />\r
         <item name="Tetrahedron (Netgen) meshing algorithm" url="files/tetrahedron_(netgen)_meshing_algorithm.htm" />\r
-        <item name="Tetrahedron (GHS3D) meshing algorithm" url="tetrahedron_(ghs3d)_meshing_algorithm.htm" />\r
+        <item name="Tetrahedron (GHS3D) meshing algorithm" url="files/tetrahedron_(ghs3d)_meshing_algorithm.htm" />\r
       </book>\r
     </book>\r
     <item name="Constructing meshes" url="files/constructing_meshes.htm" />\r
@@ -40,7 +40,7 @@
   </book>\r
   <book name="Editing meshes" >\r
     <item name="Reassigning hypotheses and algorithms" url="files/reassigning_hypotheses_and_algorithms.htm" />\r
-    <item name="Editing hypotheses" url="files/editing_hypotheses.htm" />\r
+    <item name="Editing hypotheses and algorithms" url="files/editing_hypotheses.htm" />\r
   </book>\r
   <book name="Quality controls" >\r
     <item name="About quality controls" url="files/about_quality_controls.htm" />\r
     <item name="Warping" url="files/warp.htm" />\r
     <item name="Skew angle" url="files/skew.htm" />\r
   </book>\r
+  <book name="Grouping elements" >\r
+    <item name="Creating groups" url="files/creating_groups.htm" />\r
+    <item name="Editing groups" url="files/editing_groups.htm" />\r
+    <item name="Using operations on groups" url="files/using_operations_on_groups.htm" />\r
+    <item name="Constructing groups of specific elements" url="files/constructing_groups_of_specific_elements.htm" />\r
+  </book>\r
   <book name="Modifying meshes" >\r
-    <item name="About modification of meshes" url="files/about_modification_of_meshes.htm" />\r
     <item name="Adding nodes and elements" url="files/adding_nodes_and_elements.htm" />\r
     <item name="Removing nodes and elements" url="files/removing_nodes_and_elements.htm" />\r
-    <item name="Displacing nodes" url="files/displacing_nodes.htm" />\r
-    <item name="Changing orientation of elements" url="files/changing_orientation_of_elements.htm" />\r
+    <item name="Renumbering nodes and elements" url="files/renumbering_nodes_and_elements.htm" />\r
+    <book name="Transforming meshes" >\r
+      <item name="Translation" url="files/translation.htm" />\r
+      <item name="Rotation" url="files/rotation.htm" />\r
+      <item name="Symmetry" url="files/symmetry.htm" />\r
+      <item name="Sewing meshes" url="files/sewing_meshes.htm" />\r
+      <item name="Merging nodes" url="files/merging_nodes.htm" />\r
+    </book>\r
+    <item name="Moving nodes" url="files/displacing_nodes.htm" />\r
     <item name="Diagonal inversion of elements" url="files/diagonal_iversion_of_elements.htm" />\r
+    <item name="Uniting two triangles" url="files/uniting_two_triangles.htm" />\r
+    <item name="Uniting a set of triangles" url="files/uniting_a_set_of_triangles.htm" />\r
+    <item name="Changing orientation of elements" url="files/changing_orientation_of_elements.htm" />\r
+    <item name="Cutting quadrangles" url="files/cutting_quadrangles.htm" />\r
+    <item name="Smoothing" url="files/smoothing.htm" />\r
+    <item name="Extrusion" url="extrusion.htm" />\r
+    <item name="Revolution" url="revolution.htm" />\r
+    <item name="Pattern mapping" url="pattern_mapping.htm" />\r
   </book>\r
   <book name="Mesh info" >\r
     <item name="Viewing mesh info" url="files/viewing_mesh_info.htm" />\r
     <item name="Displaying nodes numbers" url="files/displaying_nodes_numbers.htm" />\r
     <item name="Displaying elements numbers" url="files/displaying_elements_numbers.htm" />\r
   </book>\r
-  <book name="Setting SMESH preferences" >\r
-    <item name="Visualization modes" url="files/visualization_modes.htm" />\r
-    <item name="Visualization properties" url="files/visualization_properties.htm" />\r
-    <item name="View update" url="files/view_update.htm" />\r
-    <item name="Scalar Bar properties" url="files/scalar_bar_properties.htm" />\r
-  </book>\r
 </book>\r
 \r
 </tocdata>\r
index 2894934eee76fb4b4afff72d2cc9dc3da4c53954..a3aefffefdf8a04ae0f3c740b2c6d20cdeb53c0d 100755 (executable)
@@ -34,13 +34,11 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <p class="ftsbody">\r
 \r
 \r
-<a name="bm_{"></a><a name="subkey_{D"></a><a href="../files/about_meshes.htm"><b>0d</b></a> <br><nobr>1d <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/length_from_edges.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/deflection_1d.htm"><b>8</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>9</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>10</b></a> </nobr><br><nobr>2d <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>8</b></a> <a href="../files/length_from_edges.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/warp.htm"><b>11</b></a> </nobr><br><nobr>3d <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>6</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>7</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>3rd</b></a> <br><a href="../files/about_meshes.htm"><b>5th</b></a> <br>\r
+<a name="bm_{"></a><a name="subkey_{D"></a><a href="../files/about_meshes.htm"><b>0d</b></a> <br><nobr>1d <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/length_from_edges.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><nobr>2d <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../extrusion.htm"><b>7</b></a> <a href="../files/length_from_edges.htm"><b>8</b></a> <a href="../files/introduction_to_smesh.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/minimum_angle.htm"><b>11</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>12</b></a> <a href="../revolution.htm"><b>13</b></a> <a href="../pattern_mapping.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><nobr>3d <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>8</b></a> <a href="../files/displaying_elements_numbers.htm"><b>9</b></a> <a href="../files/displacing_nodes.htm"><b>10</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>15</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>16</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>17</b></a> <a href="../files/uniting_two_triangles.htm"><b>18</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>19</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>20</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../revolution.htm"><b>23</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>3rd</b></a> <br><a href="../files/about_meshes.htm"><b>5th</b></a> <br>\r
 <br><br>\r
-<nobr><a name="bm_A"></a><a name="subkey_AB"></a>abutting <a href="../files/local_length_hypothesis.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_AC"></a><a name="subkey_AC"></a>according <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>account</b></a> <br><a name="bms_AD"></a><a name="subkey_AD"></a><a href="../files/adding_nodes_and_elements.htm"><b>adding</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>addition</b></a> <br><nobr>additional <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>adjacent <a href="../files/minimum_angle.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>advance</b></a> <br><nobr><a name="bms_AL"></a><a name="subkey_AL"></a>algorithm <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>8</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>9</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>12</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>13</b></a> </nobr><br><nobr>algorithms <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>10</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>11</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>12</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>allow</b></a> <br><nobr>allowed <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>allowing</b></a> <br><nobr>allows <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_AN"></a><a name="subkey_AN"></a>angle <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/skew.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br><a href="../files/skew.htm"><b>angles</b></a> <br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>another</b></a> <br><nobr>any <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_AP"></a><a name="subkey_AP"></a>appear <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>10</b></a> <a href="../files/running_smesh_module.htm"><b>11</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>12</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>application</b></a> <br><nobr>applied <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../files/length_of_edges.htm"><b>7</b></a> <a href="../files/taper.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>10</b></a> <a href="../files/warp.htm"><b>11</b></a> </nobr><br><nobr>apply <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/minimum_angle.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>11</b></a> <a href="../files/taper.htm"><b>12</b></a> <a href="../files/skew.htm"><b>13</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><nobr>applying <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/number_of_segments_hypothesis.htm"><b>approximately</b></a> <br><a name="bms_AR"></a><a name="subkey_AR"></a><a href="../files/warp.htm"><b>arcsine</b></a> <br><nobr>area <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> </nobr><br><a href="../files/taper.htm"><b>areas</b></a> <br><nobr>arithmetic <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_AS"></a><a name="subkey_AS"></a>aspect <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>assigned</b></a> <br><nobr><a name="bms_AV"></a><a name="subkey_AV"></a>average <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/local_length_hypothesis.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br><a name="bms_AX"></a><a name="subkey_AX"></a><a href="../files/warp.htm"><b>axis</b></a> <br>\r
+<a name="bm_A"></a><a name="subkey_AB"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>able</b></a> <br><a href="../files/smoothing.htm"><b>above</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>absent</b></a> <br><nobr>abutting <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_AC"></a><a name="subkey_AC"></a>according <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> </nobr><br><nobr>account <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_AD"></a><a name="subkey_AD"></a>add <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><nobr>added <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>adding</b></a> <br><nobr>addition <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> </nobr><br><nobr>additional <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>additionally <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>adjacent <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a href="../files/smoothing.htm"><b>adjust</b></a> <br><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>advance</b></a> <br><a name="bms_AG"></a><a name="subkey_AG"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>again</b></a> <br><nobr><a name="bms_AL"></a><a name="subkey_AL"></a>algorithm <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>8</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>9</b></a> <a href="../files/editing_hypotheses.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>12</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>13</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>14</b></a> <a href="../pattern_mapping.htm"><b>15</b></a> </nobr><br><nobr>algorithms <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/editing_hypotheses.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/constructing_meshes.htm"><b>10</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>11</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>12</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>13</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>allow</b></a> <br><nobr>allowed <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>allowing</b></a> <br><nobr>allows <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/rotation.htm"><b>7</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>8</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../files/merging_nodes.htm"><b>10</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>11</b></a> <a href="../files/using_operations_on_groups.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../files/translation.htm"><b>14</b></a> <a href="../files/symmetry.htm"><b>15</b></a> <a href="../files/smoothing.htm"><b>16</b></a> </nobr><br><nobr>along <a href="../extrusion.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>already</b></a> <br><a href="../files/smoothing.htm"><b>always</b></a> <br><nobr><a name="bms_AN"></a><a name="subkey_AN"></a>angle <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> <a href="../revolution.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> </nobr><br><a href="../files/skew.htm"><b>angles</b></a> <br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>another</b></a> <br><nobr>any <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_AP"></a><a name="subkey_AP"></a>appear <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/editing_hypotheses.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/deflection_1d.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/sewing_meshes.htm"><b>16</b></a> <a href="../files/running_smesh_module.htm"><b>17</b></a> <a href="../files/rotation.htm"><b>18</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>19</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>20</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>21</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>22</b></a> <a href="../files/merging_nodes.htm"><b>23</b></a> <a href="../files/local_length_hypothesis.htm"><b>24</b></a> <a href="../files/using_operations_on_groups.htm"><b>25</b></a> <a href="../files/uniting_two_triangles.htm"><b>26</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>27</b></a> <a href="../files/translation.htm"><b>28</b></a> <a href="../files/symmetry.htm"><b>29</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>30</b></a> <a href="../files/smoothing.htm"><b>31</b></a> <a href="../revolution.htm"><b>32</b></a> <a href="../pattern_mapping.htm"><b>33</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>appeared</b></a> <br><nobr>application <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>applied <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/editing_hypotheses.htm"><b>3</b></a> <a href="../files/deflection_1d.htm"><b>4</b></a> <a href="../files/constructing_submeshes.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../files/local_length_hypothesis.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../files/taper.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/skew.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><nobr>apply <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_meshing_algorithms.htm"><b>5</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>8</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>9</b></a> <a href="../extrusion.htm"><b>10</b></a> <a href="../files/length_from_edges.htm"><b>11</b></a> <a href="../files/introduction_to_smesh.htm"><b>12</b></a> <a href="../files/editing_groups.htm"><b>13</b></a> <a href="../files/displacing_nodes.htm"><b>14</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>15</b></a> <a href="../files/cutting_quadrangles.htm"><b>16</b></a> <a href="../files/creating_groups.htm"><b>17</b></a> <a href="../files/sewing_meshes.htm"><b>18</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>19</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>20</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>21</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>22</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>23</b></a> <a href="../files/minimum_angle.htm"><b>24</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>25</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>26</b></a> <a href="../files/length_of_edges.htm"><b>27</b></a> <a href="../files/using_operations_on_groups.htm"><b>28</b></a> <a href="../files/uniting_two_triangles.htm"><b>29</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>30</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>31</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>32</b></a> <a href="../files/taper.htm"><b>33</b></a> <a href="../files/symmetry.htm"><b>34</b></a> <a href="../files/smoothing.htm"><b>35</b></a> <a href="../files/skew.htm"><b>36</b></a> <a href="../revolution.htm"><b>37</b></a> <a href="../pattern_mapping.htm"><b>38</b></a> <a href="../files/warp.htm"><b>39</b></a> </nobr><br><nobr>applying <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/number_of_segments_hypothesis.htm"><b>approximately</b></a> <br><a name="bms_AR"></a><a name="subkey_AR"></a><a href="../files/warp.htm"><b>arcsine</b></a> <br><nobr>area <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> </nobr><br><a href="../files/taper.htm"><b>areas</b></a> <br><nobr>arithmetic <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../revolution.htm"><b>around</b></a> <br><nobr><a name="bms_AS"></a><a name="subkey_AS"></a>aspect <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>assign</b></a> <br><a href="../files/warp.htm"><b>assigned</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>assigning</b></a> <br><nobr>associated <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> <a href="../files/displaying_elements_numbers.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> </nobr><br><a name="bms_AU"></a><a name="subkey_AU"></a><a href="../pattern_mapping.htm"><b>automatic</b></a> <br><nobr>automatically <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_AV"></a><a name="subkey_AV"></a>available <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr>average <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/length_from_edges.htm"><b>2</b></a> <a href="../files/deflection_1d.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><nobr><a name="bms_AX"></a><a name="subkey_AX"></a>axis <a href="../extrusion.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br>\r
 <br><br>\r
-<nobr><a name="bm_B"></a><a name="subkey_BA"></a>bar <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> </nobr><br><nobr>based <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>basic</b></a> <br><nobr>basing <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>basis</b></a> <br><a name="bms_BE"></a><a name="subkey_BE"></a><a href="../files/running_smesh_module.htm"><b>before</b></a> <br><a href="../files/arithmetic_1d.htm"><b>beginning</b></a> <br><a name="bms_BI"></a><a name="subkey_BI"></a><a href="../files/warp.htm"><b>bisecting</b></a> <br><a href="../files/warp.htm"><b>bisector</b></a> <br><a name="bms_BO"></a><a name="subkey_BO"></a><a href="../files/introduction_to_smesh.htm"><b>borders</b></a> <br><a href="../files/running_smesh_module.htm"><b>bottom</b></a> <br><a href="../files/about_hypotheses.htm"><b>boundary</b></a> <br><a href="../files/about_meshes.htm"><b>bounded</b></a> <br><a href="../files/about_meshes.htm"><b>bounding</b></a> <br><a href="../files/about_meshes.htm"><b>bounds</b></a> <br><nobr>box <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/deflection_1d.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>9</b></a> <a href="../files/running_smesh_module.htm"><b>10</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>11</b></a> </nobr><br><nobr><a name="bms_BR"></a><a name="subkey_BR"></a>browser <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> <a href="../files/viewing_mesh_info.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_BU"></a><a name="subkey_BU"></a>build <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/length_from_edges.htm"><b>builds</b></a> <br><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>built</b></a> <br><nobr>button <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/viewing_mesh_info.htm"><b>9</b></a> <a href="../files/taper.htm"><b>10</b></a> <a href="../files/skew.htm"><b>11</b></a> <a href="../files/warp.htm"><b>12</b></a> </nobr><br>\r
-<br><br>\r
-<a name="bm_C"></a><a name="subkey_CA"></a><a href="../files/about_meshes.htm"><b>cad</b></a> <br><nobr>calculated <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>calculates</b></a> <br><nobr>calculation <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>calculations</b></a> <br><a name="bms_CH"></a><a name="subkey_CH"></a><a href="../files/arithmetic_1d.htm"><b>changes</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>changing</b></a> <br><a href="../files/about_quality_controls.htm"><b>characteristic</b></a> <br><a href="../files/about_meshes.htm"><b>characterizes</b></a> <br><a href="../files/about_hypotheses.htm"><b>choice</b></a> <br><nobr>choose <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/running_smesh_module.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><nobr>chosen <a href="../files/max._element_volume_hypothsis.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_CL"></a><a name="subkey_CL"></a>click <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/about_meshing_algorithms.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>9</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>10</b></a> <a href="../files/minimum_angle.htm"><b>11</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>12</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>13</b></a> <a href="../files/local_length_hypothesis.htm"><b>14</b></a> <a href="../files/length_of_edges.htm"><b>15</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>16</b></a> <a href="../files/deflection_1d.htm"><b>17</b></a> <a href="../files/constructing_submeshes.htm"><b>18</b></a> <a href="../files/constructing_meshes.htm"><b>19</b></a> <a href="../files/visualization_modes.htm"><b>20</b></a> <a href="../files/viewing_mesh_info.htm"><b>21</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>22</b></a> <a href="../files/taper.htm"><b>23</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>24</b></a> <a href="../files/skew.htm"><b>25</b></a> <a href="../files/running_smesh_module.htm"><b>26</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>27</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>28</b></a> <a href="../files/warp.htm"><b>29</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>clicking</b></a> <br><a href="../files/about_meshes.htm"><b>closed</b></a> <br><nobr><a name="bms_CO"></a><a name="subkey_CO"></a>colored <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>coloring</b></a> <br><a href="../files/length_of_edges.htm"><b>combining</b></a> <br><nobr>component <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>compose <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> </nobr><br><nobr>composed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><nobr>composing <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/displaying_elements_numbers.htm"><b>6</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>7</b></a> </nobr><br><nobr>computation <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>compute</b></a> <br><a href="../files/computing_meshes.htm"><b>computing</b></a> <br><a href="../files/about_hypotheses.htm"><b>conditions</b></a> <br><nobr>conform <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/deflection_1d.htm"><b>connecting</b></a> <br><nobr>connections <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><a href="../files/connectivity.htm"><b>connectivity</b></a> <br><a href="../files/about_meshes.htm"><b>considered</b></a> <br><nobr>consisting <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> </nobr><br><nobr>consists <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>9</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>constant</b></a> <br><nobr>construct <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>constructed <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>constructing <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>construction <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>contain <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>containing</b></a> <br><a href="../files/about_meshing_algorithms.htm"><b>contains</b></a> <br><a href="../files/about_meshes.htm"><b>contour</b></a> <br><nobr>control <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><nobr>controls <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>coordinates</b></a> <br><a href="../files/warp.htm"><b>corner</b></a> <br><a href="../files/warp.htm"><b>corners</b></a> <br><nobr>corresponding <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>could</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<nobr><a name="bm_B"></a><a name="subkey_BA"></a>bar <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> </nobr><br><nobr>based <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>basic</b></a> <br><nobr>basing <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr>basis <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a name="bms_BE"></a><a name="subkey_BE"></a><a href="../pattern_mapping.htm"><b>become</b></a> <br><a href="../files/running_smesh_module.htm"><b>before</b></a> <br><nobr>beginning <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>belong</b></a> <br><a href="../files/sewing_meshes.htm"><b>berders</b></a> <br><a name="bms_BI"></a><a name="subkey_BI"></a><a href="../files/warp.htm"><b>bisecting</b></a> <br><a href="../files/warp.htm"><b>bisector</b></a> <br><a name="bms_BO"></a><a name="subkey_BO"></a><a href="../files/using_operations_on_groups.htm"><b>boolean</b></a> <br><a href="../files/sewing_meshes.htm"><b>border</b></a> <br><nobr>borders <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>both <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>bottom</b></a> <br><a href="../pattern_mapping.htm"><b>bound</b></a> <br><a href="../pattern_mapping.htm"><b>boundaries</b></a> <br><nobr>boundary <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>bounded</b></a> <br><a href="../files/about_meshes.htm"><b>bounding</b></a> <br><a href="../files/about_meshes.htm"><b>bounds</b></a> <br><nobr>box <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/length_from_edges.htm"><b>10</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>11</b></a> <a href="../files/editing_hypotheses.htm"><b>12</b></a> <a href="../files/editing_groups.htm"><b>13</b></a> <a href="../files/displacing_nodes.htm"><b>14</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>15</b></a> <a href="../files/deflection_1d.htm"><b>16</b></a> <a href="../files/cutting_quadrangles.htm"><b>17</b></a> <a href="../files/creating_groups.htm"><b>18</b></a> <a href="../files/constructing_submeshes.htm"><b>19</b></a> <a href="../files/constructing_meshes.htm"><b>20</b></a> <a href="../files/sewing_meshes.htm"><b>21</b></a> <a href="../files/running_smesh_module.htm"><b>22</b></a> <a href="../files/rotation.htm"><b>23</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>24</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>25</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>26</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>27</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>28</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>29</b></a> <a href="../files/merging_nodes.htm"><b>30</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>31</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>32</b></a> <a href="../files/local_length_hypothesis.htm"><b>33</b></a> <a href="../files/using_operations_on_groups.htm"><b>34</b></a> <a href="../files/uniting_two_triangles.htm"><b>35</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>36</b></a> <a href="../files/translation.htm"><b>37</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>38</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>39</b></a> <a href="../files/symmetry.htm"><b>40</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>41</b></a> <a href="../files/smoothing.htm"><b>42</b></a> <a href="../revolution.htm"><b>43</b></a> <a href="../pattern_mapping.htm"><b>44</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index e9db0931f039d2d1a876074dd4929d09073d9bf9..7a42fac21b3da8834deb2abd8345340bd89b3572 100755 (executable)
@@ -33,17 +33,9 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0">\r
 <p class="ftsbody" align="center"><a href="whlstf0.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody">\r
-<nobr><a name="bms_CR"></a><a name="subkey_CR"></a>create <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/local_length_hypothesis.htm"><b>11</b></a> <a href="../files/deflection_1d.htm"><b>12</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>13</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>14</b></a> <a href="../files/running_smesh_module.htm"><b>15</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>16</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>17</b></a> </nobr><br><nobr>created <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/warp.htm"><b>creating</b></a> <br><nobr>creation <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>criteria</b></a> <br><nobr>criterion <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> </nobr><br><a href="../files/warp.htm"><b>cross</b></a> <br><nobr><a name="bms_CU"></a><a name="subkey_CU"></a>curve <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> </nobr><br>\r
+<nobr><a name="bms_BR"></a><a name="subkey_BR"></a>browser <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>10</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>11</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>12</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>13</b></a> <a href="../files/visualization_modes.htm"><b>14</b></a> <a href="../files/viewing_mesh_info.htm"><b>15</b></a> </nobr><br><nobr><a name="bms_BU"></a><a name="subkey_BU"></a>build <a href="../extrusion.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>builds <a href="../files/length_from_edges.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>built <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>button <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_hypotheses.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displacing_nodes.htm"><b>10</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>11</b></a> <a href="../files/cutting_quadrangles.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/sewing_meshes.htm"><b>16</b></a> <a href="../files/rotation.htm"><b>17</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>18</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>19</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>20</b></a> <a href="../files/minimum_angle.htm"><b>21</b></a> <a href="../files/length_of_edges.htm"><b>22</b></a> <a href="../files/viewing_mesh_info.htm"><b>23</b></a> <a href="../files/using_operations_on_groups.htm"><b>24</b></a> <a href="../files/uniting_two_triangles.htm"><b>25</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>26</b></a> <a href="../files/translation.htm"><b>27</b></a> <a href="../files/taper.htm"><b>28</b></a> <a href="../files/symmetry.htm"><b>29</b></a> <a href="../files/smoothing.htm"><b>30</b></a> <a href="../files/skew.htm"><b>31</b></a> <a href="../revolution.htm"><b>32</b></a> <a href="../pattern_mapping.htm"><b>33</b></a> <a href="../files/warp.htm"><b>34</b></a> </nobr><br><nobr>buttons <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br>\r
 <br><br>\r
-<a name="bm_D"></a><a name="subkey_D{"></a><a href="../files/arithmetic_1d.htm"><b>d</b></a> <br><a name="bms_DE"></a><a name="subkey_DE"></a><a href="../files/about_meshes.htm"><b>dealing</b></a> <br><a href="../files/running_smesh_module.htm"><b>default</b></a> <br><nobr>define <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> <a href="../files/deflection_1d.htm"><b>5</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>6</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>7</b></a> </nobr><br><nobr>defined <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><nobr>definite <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>definition <a href="../files/max._element_volume_hypothsis.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>deflection <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>deletion</b></a> <br><nobr>depending <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> </nobr><br><nobr>depends <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>described</b></a> <br><a href="../files/running_smesh_module.htm"><b>desktop</b></a> <br><nobr>destined <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>detail</b></a> <br><nobr><a name="bms_DI"></a><a name="subkey_DI"></a>diagonal <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/taper.htm"><b>2</b></a> </nobr><br><nobr>dialog <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/deflection_1d.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>9</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>10</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>different</b></a> <br><a href="../files/start_and_end_length_hypothesis.htm"><b>differs</b></a> <br><a href="../files/about_meshes.htm"><b>dimension</b></a> <br><a href="../files/about_meshes.htm"><b>direct</b></a> <br><a href="../files/warp.htm"><b>direction</b></a> <br><nobr>discretization <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>3</b></a> </nobr><br><a href="../files/displacing_nodes.htm"><b>displacing</b></a> <br><nobr>display <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>5</b></a> <a href="../files/displaying_elements_numbers.htm"><b>6</b></a> <a href="../files/visualization_modes.htm"><b>7</b></a> <a href="../files/taper.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> </nobr><br><nobr>displayed <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/viewing_mesh_info.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><nobr>displaying <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/visualization_modes.htm"><b>3</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>disposal</b></a> <br><nobr>distance <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>divided <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><a name="bms_DO"></a><a name="subkey_DO"></a><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>does</b></a> <br><a href="../files/about_meshes.htm"><b>don</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_E"></a><a name="subkey_ED"></a>edge <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/deflection_1d.htm"><b>4</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>5</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>6</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><nobr>edges <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/local_length_hypothesis.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../files/length_from_edges.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.htm"><b>11</b></a> <a href="../files/deflection_1d.htm"><b>12</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>13</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>16</b></a> <a href="../files/warp.htm"><b>17</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>editing</b></a> <br><nobr><a name="bms_EL"></a><a name="subkey_EL"></a>element <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><nobr>elements <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_quality_controls.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../files/length_of_edges.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.htm"><b>11</b></a> <a href="../files/displaying_elements_numbers.htm"><b>12</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>13</b></a> <a href="../files/deflection_1d.htm"><b>14</b></a> <a href="../files/taper.htm"><b>15</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>16</b></a> <a href="../files/skew.htm"><b>17</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>18</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>19</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>20</b></a> <a href="../files/warp.htm"><b>21</b></a> </nobr><br><a name="bms_EN"></a><a name="subkey_EN"></a><a href="../files/constructing_submeshes.htm"><b>encapsulate</b></a> <br><nobr>end <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>ending</b></a> <br><nobr>ends <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>enter</b></a> <br><nobr>entities <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>7</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>8</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>entity</b></a> <br><nobr><a name="bms_EQ"></a><a name="subkey_EQ"></a>equal <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>equilateral</b></a> <br><a name="bms_ET"></a><a name="subkey_ET"></a><a href="../files/about_quality_controls.htm"><b>etc</b></a> <br><a name="bms_EV"></a><a name="subkey_EV"></a><a href="../files/warp.htm"><b>every</b></a> <br><nobr><a name="bms_EX"></a><a name="subkey_EX"></a>example <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>2</b></a> </nobr><br><nobr>export <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>exportation</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exporting</b></a> <br><a href="../files/warp.htm"><b>extends</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_F"></a><a name="subkey_FA"></a>face <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/warp.htm"><b>4</b></a> </nobr><br><nobr>faces <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> <a href="../files/local_length_hypothesis.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>9</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>factor</b></a> <br><a name="bms_FI"></a><a name="subkey_FI"></a><a href="../files/importing_and_exporting_meshes.htm"><b>file</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>files</b></a> <br><a href="../files/computing_meshes.htm"><b>final</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>find</b></a> <br><a href="../files/start_and_end_length_hypothesis.htm"><b>first</b></a> <br><a href="../files/about_meshes.htm"><b>fixed</b></a> <br><nobr><a name="bms_FO"></a><a name="subkey_FO"></a>following <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> <a href="../files/local_length_hypothesis.htm"><b>8</b></a> <a href="../files/deflection_1d.htm"><b>9</b></a> <a href="../files/constructing_submeshes.htm"><b>10</b></a> <a href="../files/constructing_meshes.htm"><b>11</b></a> <a href="../files/viewing_mesh_info.htm"><b>12</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>13</b></a> <a href="../files/running_smesh_module.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> </nobr><br><nobr>follows <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> <a href="../files/displaying_elements_numbers.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> </nobr><br><nobr>format <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><nobr>four <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FR"></a><a name="subkey_FR"></a>free <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FU"></a><a name="subkey_FU"></a>functionality <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>functions</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_G"></a><a name="subkey_GE"></a>generate <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>generated <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> </nobr><br><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>generates</b></a> <br><a href="../files/computing_meshes.htm"><b>generation</b></a> <br><nobr>geom <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr>geometric <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><nobr>geometrical <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../files/local_length_hypothesis.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.htm"><b>11</b></a> <a href="../files/deflection_1d.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>15</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>16</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>17</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>18</b></a> </nobr><br><a name="bms_GH"></a><a name="subkey_GH"></a><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>ghs3d</b></a> <br><nobr><a name="bms_GI"></a><a name="subkey_GI"></a>given <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/length_from_edges.htm"><b>2</b></a> </nobr><br><a name="bms_GL"></a><a name="subkey_GL"></a><a href="../files/constructing_meshes.htm"><b>global</b></a> <br><a name="bms_GR"></a><a name="subkey_GR"></a><a href="../files/introduction_to_smesh.htm"><b>grouping</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>groups</b></a> <br>\r
-<br><br>\r
-<a name="bm_H"></a><a name="subkey_H{"></a><a href="../files/warp.htm"><b>h</b></a> <br><a href="../files/aspect_ratio.htm"><b>h1</b></a> <br><a href="../files/aspect_ratio.htm"><b>h2</b></a> <br><a name="bms_HA"></a><a name="subkey_HA"></a><a href="../files/warp.htm"><b>half</b></a> <br><nobr>having <a href="../files/length_from_edges.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_HE"></a><a name="subkey_HE"></a>height <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>help</b></a> <br><nobr>here <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_modification_of_meshes.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/visualization_properties.htm"><b>8</b></a> <a href="../files/scalar_bar_properties.htm"><b>9</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>10</b></a> </nobr><br><nobr>hexahedron <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> </nobr><br><a href="../files/max._element_volume_hypothsis.htm"><b>hexahedrons</b></a> <br><a name="bms_HI"></a><a name="subkey_HI"></a><a href="../files/about_meshes.htm"><b>higher</b></a> <br><nobr><a name="bms_HY"></a><a name="subkey_HY"></a>hyp <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hypotheses <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../files/local_length_hypothesis.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.htm"><b>11</b></a> <a href="../files/editing_hypotheses.htm"><b>12</b></a> <a href="../files/deflection_1d.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>16</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>17</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>18</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>19</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>20</b></a> </nobr><br><nobr>hypothesis <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/length_from_edges.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>8</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>9</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>10</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>11</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>12</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<a name="bm_C"></a><a name="subkey_CA"></a><a href="../files/about_meshes.htm"><b>cad</b></a> <br><nobr>calculated <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>calculates</b></a> <br><nobr>calculation <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>calculations</b></a> <br><a href="../pattern_mapping.htm"><b>called</b></a> <br><a href="../files/creating_groups.htm"><b>cancel</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>careful</b></a> <br><a href="../files/displacing_nodes.htm"><b>case</b></a> <br><a href="../pattern_mapping.htm"><b>cases</b></a> <br><nobr><a name="bms_CE"></a><a name="subkey_CE"></a>cells <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>center</b></a> <br><a href="../files/smoothing.htm"><b>centroid</b></a> <br><a href="../files/smoothing.htm"><b>centroidal</b></a> <br><a href="../pattern_mapping.htm"><b>certain</b></a> <br><nobr><a name="bms_CH"></a><a name="subkey_CH"></a>change <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> </nobr><br><a href="../files/changing_orientation_of_elements.htm"><b>changed</b></a> <br><nobr>changes <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> </nobr><br><a href="../files/changing_orientation_of_elements.htm"><b>changing</b></a> <br><a href="../files/about_quality_controls.htm"><b>characteristic</b></a> <br><a href="../files/about_meshes.htm"><b>characterizes</b></a> <br><a href="../files/sewing_meshes.htm"><b>check</b></a> <br><nobr>choice <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>choose <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>7</b></a> <a href="../files/displaying_elements_numbers.htm"><b>8</b></a> <a href="../files/displacing_nodes.htm"><b>9</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>10</b></a> <a href="../files/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.htm"><b>12</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/running_smesh_module.htm"><b>15</b></a> <a href="../files/rotation.htm"><b>16</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>17</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>18</b></a> <a href="../files/minimum_angle.htm"><b>19</b></a> <a href="../files/merging_nodes.htm"><b>20</b></a> <a href="../files/length_of_edges.htm"><b>21</b></a> <a href="../files/uniting_two_triangles.htm"><b>22</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>23</b></a> <a href="../files/translation.htm"><b>24</b></a> <a href="../files/taper.htm"><b>25</b></a> <a href="../files/symmetry.htm"><b>26</b></a> <a href="../files/skew.htm"><b>27</b></a> <a href="../revolution.htm"><b>28</b></a> <a href="../pattern_mapping.htm"><b>29</b></a> <a href="../files/warp.htm"><b>30</b></a> </nobr><br><nobr>choosing <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><a href="../files/constructing_groups_of_specific_elements.htm"><b>chose</b></a> <br><a href="../files/about_hypotheses.htm"><b>chosen</b></a> <br><nobr><a name="bms_CL"></a><a name="subkey_CL"></a>click <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>6</b></a> <a href="../files/about_meshing_algorithms.htm"><b>7</b></a> <a href="../files/about_hypotheses.htm"><b>8</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>9</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>10</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>11</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>12</b></a> <a href="../extrusion.htm"><b>13</b></a> <a href="../files/length_from_edges.htm"><b>14</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>15</b></a> <a href="../files/editing_hypotheses.htm"><b>16</b></a> <a href="../files/editing_groups.htm"><b>17</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>18</b></a> <a href="../files/displaying_elements_numbers.htm"><b>19</b></a> <a href="../files/displacing_nodes.htm"><b>20</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>21</b></a> <a href="../files/deflection_1d.htm"><b>22</b></a> <a href="../files/cutting_quadrangles.htm"><b>23</b></a> <a href="../files/creating_groups.htm"><b>24</b></a> <a href="../files/constructing_submeshes.htm"><b>25</b></a> <a href="../files/constructing_meshes.htm"><b>26</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>27</b></a> <a href="../files/sewing_meshes.htm"><b>28</b></a> <a href="../files/running_smesh_module.htm"><b>29</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>30</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>31</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>32</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>33</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>34</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>35</b></a> <a href="../files/minimum_angle.htm"><b>36</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>37</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>38</b></a> <a href="../files/local_length_hypothesis.htm"><b>39</b></a> <a href="../files/length_of_edges.htm"><b>40</b></a> <a href="../files/visualization_modes.htm"><b>41</b></a> <a href="../files/viewing_mesh_info.htm"><b>42</b></a> <a href="../files/using_operations_on_groups.htm"><b>43</b></a> <a href="../files/uniting_two_triangles.htm"><b>44</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>45</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>46</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>47</b></a> <a href="../files/taper.htm"><b>48</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>49</b></a> <a href="../files/smoothing.htm"><b>50</b></a> <a href="../files/skew.htm"><b>51</b></a> <a href="../revolution.htm"><b>52</b></a> <a href="../pattern_mapping.htm"><b>53</b></a> <a href="../files/warp.htm"><b>54</b></a> </nobr><br><nobr>clicking <a href="../files/running_smesh_module.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>close</b></a> <br><nobr>closed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_CO"></a><a name="subkey_CO"></a><a href="../files/sewing_meshes.htm"><b>co</b></a> <br><a href="../files/merging_nodes.htm"><b>coincident</b></a> <br><nobr>colored <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>coloring</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>column</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>columns</b></a> <br><a href="../files/length_of_edges.htm"><b>combining</b></a> <br><nobr>common <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>compare</b></a> <br><nobr>component <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>compose</b></a> <br><nobr>composed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><nobr>composing <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/deflection_1d.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> </nobr><br><nobr>computation <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>compute</b></a> <br><nobr>computed <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>computing</b></a> <br><a href="../files/about_hypotheses.htm"><b>conditions</b></a> <br><nobr>confirm <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/using_operations_on_groups.htm"><b>8</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>confirmation</b></a> <br><nobr>conform <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> </nobr><br><a href="../files/cutting_quadrangles.htm"><b>connect</b></a> <br><nobr>connected <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>connections <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr>connectivity <a href="../files/connectivity.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>considered <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>consisting <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> </nobr><br><nobr>consists <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> <a href="../files/minimum_angle.htm"><b>6</b></a> <a href="../files/local_length_hypothesis.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>constant</b></a> <br><nobr>construct <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> </nobr><br><nobr>constructed <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>3</b></a> </nobr><br><nobr>constructing <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> </nobr><br><nobr>construction <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>contain <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><nobr>containing <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</b></a> </nobr><br><nobr>contains <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>content</b></a> <br><a href="../files/smoothing.htm"><b>continues</b></a> <br><nobr>contour <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/uniting_a_set_of_triangles.htm"><b>contrast</b></a> <br><nobr>control <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><nobr>controls <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a href="../files/smoothing.htm"><b>converge</b></a> <br><nobr>coordinates <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>copy <a href="../files/rotation.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>corner</b></a> <br><nobr>corners <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><nobr>corresponding <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>could</b></a> <br><a href="../pattern_mapping.htm"><b>counterclockwise</b></a> <br><a href="../files/sewing_meshes.htm"><b>counting</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index 2412622e60e7ad9ca91c36d1fd0a50d501cef4e0..9f0c11199b2b008a5185c82eebfae6d41bf4f080 100755 (executable)
@@ -33,25 +33,11 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0">\r
 <p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody">\r
-\r
-\r
-<a name="bm_I"></a><a name="subkey_I{"></a><a href="../files/3d_meshing_algorithm.htm"><b>i</b></a> <br><a name="bms_IC"></a><a name="subkey_IC"></a><a href="../files/running_smesh_module.htm"><b>icon</b></a> <br><nobr><a name="bms_ID"></a><a name="subkey_ID"></a>id <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_IF"></a><a name="subkey_IF"></a>if <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> </nobr><br><a name="bms_IM"></a><a name="subkey_IM"></a><a href="../files/about_meshes.htm"><b>imply</b></a> <br><nobr>import <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>importation</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>imported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>importing</b></a> <br><a name="bms_IN"></a><a name="subkey_IN"></a><a href="../files/about_meshes.htm"><b>including</b></a> <br><a href="../files/warp.htm"><b>indicates</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>info</b></a> <br><nobr>information <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>infos</b></a> <br><a href="../files/running_smesh_module.htm"><b>initial</b></a> <br><a href="../files/about_meshes.htm"><b>interested</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>introduction</b></a> <br><a href="../files/about_meshes.htm"><b>inverse</b></a> <br><a href="../files/diagonal_iversion_of_elements.htm"><b>inversion</b></a> <br><a name="bms_IT"></a><a name="subkey_IT"></a><a href="../files/importing_and_exporting_meshes.htm"><b>item</b></a> <br><nobr>items <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br>\r
-<br><br>\r
-<a name="bm_J"></a><a name="subkey_J{"></a><a href="../files/3d_meshing_algorithm.htm"><b>j</b></a> <br><a name="bms_JO"></a><a name="subkey_JO"></a><a href="../files/skew.htm"><b>join</b></a> <br>\r
-<br><br>\r
-<a name="bm_K"></a><a name="subkey_K{"></a><a href="../files/3d_meshing_algorithm.htm"><b>k</b></a> <br><a name="bms_KI"></a><a name="subkey_KI"></a><a href="../files/about_meshing_algorithms.htm"><b>kinds</b></a> <br>\r
-<br><br>\r
-<a name="bm_L"></a><a name="subkey_L{"></a><a href="../files/warp.htm"><b>l</b></a> <br><a name="bms_LA"></a><a name="subkey_LA"></a><a href="../files/aspect_ratio.htm"><b>largest</b></a> <br><a href="../files/start_and_end_length_hypothesis.htm"><b>last</b></a> <br><a href="../files/running_smesh_module.htm"><b>launching</b></a> <br><nobr><a name="bms_LE"></a><a name="subkey_LE"></a>length <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/length_from_edges.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>9</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>10</b></a> <a href="../files/warp.htm"><b>11</b></a> </nobr><br><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>less</b></a> <br><a href="../files/about_hypotheses.htm"><b>level</b></a> <br><nobr><a name="bms_LI"></a><a name="subkey_LI"></a>like <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> </nobr><br><nobr>line <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> </nobr><br><a href="../files/skew.htm"><b>lines</b></a> <br><a name="bms_LK"></a><a name="subkey_LK"></a><a href="../files/arithmetic_1d.htm"><b>lk</b></a> <br><nobr><a name="bms_LO"></a><a name="subkey_LO"></a>local <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>locally <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> </nobr><br><nobr>location <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>longest</b></a> <br><nobr>look <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>lower</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_M"></a><a name="subkey_MA"></a>main <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>manage</b></a> <br><a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>mapping</b></a> <br><nobr>max <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> </nobr><br><nobr>maximum <a href="../files/max._element_volume_hypothsis.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> <a href="../files/deflection_1d.htm"><b>3</b></a> <a href="../files/skew.htm"><b>4</b></a> </nobr><br><a name="bms_ME"></a><a name="subkey_ME"></a><a href="../files/about_meshes.htm"><b>meaning</b></a> <br><a href="../files/about_meshes.htm"><b>meaningful</b></a> <br><a href="../files/warp.htm"><b>measured</b></a> <br><a href="../files/2d_meshing_algorithm.htm"><b>mefisto</b></a> <br><nobr>menu <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/local_length_hypothesis.htm"><b>11</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displaying_elements_numbers.htm"><b>14</b></a> <a href="../files/deflection_1d.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/visualization_modes.htm"><b>18</b></a> <a href="../files/viewing_mesh_info.htm"><b>19</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>20</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>21</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>22</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>23</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>menus</b></a> <br><nobr>mesh <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/about_quality_controls.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../files/local_length_hypothesis.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../files/length_from_edges.htm"><b>12</b></a> <a href="../files/introduction_to_smesh.htm"><b>13</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>14</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>15</b></a> <a href="../files/displaying_elements_numbers.htm"><b>16</b></a> <a href="../files/deflection_1d.htm"><b>17</b></a> <a href="../files/constructing_submeshes.htm"><b>18</b></a> <a href="../files/constructing_meshes.htm"><b>19</b></a> <a href="../files/visualization_modes.htm"><b>20</b></a> <a href="../files/viewing_mesh_info.htm"><b>21</b></a> <a href="../files/taper.htm"><b>22</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>23</b></a> <a href="../files/skew.htm"><b>24</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>25</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>26</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>27</b></a> <a href="../files/warp.htm"><b>28</b></a> </nobr><br><nobr>meshed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><nobr>meshes <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_modification_of_meshes.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/visualization_modes.htm"><b>9</b></a> <a href="../files/viewing_mesh_info.htm"><b>10</b></a> <a href="../files/running_smesh_module.htm"><b>11</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>12</b></a> </nobr><br><nobr>meshing <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../files/local_length_hypothesis.htm"><b>12</b></a> <a href="../files/length_of_edges.htm"><b>13</b></a> <a href="../files/introduction_to_smesh.htm"><b>14</b></a> <a href="../files/displaying_elements_numbers.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>18</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>19</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>20</b></a> </nobr><br><nobr><a name="bms_MI"></a><a name="subkey_MI"></a>minimum <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><a name="bms_MO"></a><a name="subkey_MO"></a><a href="../files/visualization_modes.htm"><b>mode</b></a> <br><a href="../files/about_meshes.htm"><b>model</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>models</b></a> <br><a href="../files/visualization_modes.htm"><b>modes</b></a> <br><nobr>modification <a href="../files/about_modification_of_meshes.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><nobr>module <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>moving</b></a> <br><a name="bms_MU"></a><a name="subkey_MU"></a><a href="../files/introduction_to_smesh.htm"><b>multi</b></a> <br><a href="../files/aspect_ratio.htm"><b>multiplied</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_N"></a><a name="subkey_NA"></a>name <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/deflection_1d.htm"><b>6</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> </nobr><br><a name="bms_NB"></a><a name="subkey_NB"></a><a href="../files/number_of_segments_hypothesis.htm"><b>nb</b></a> <br><a name="bms_NE"></a><a name="subkey_NE"></a><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>need</b></a> <br><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>needs</b></a> <br><nobr>netgen <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>1</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>new</b></a> <br><a name="bms_NO"></a><a name="subkey_NO"></a><a href="../files/about_meshes.htm"><b>node</b></a> <br><nobr>nodes <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/deflection_1d.htm"><b>9</b></a> <a href="../files/taper.htm"><b>10</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>11</b></a> <a href="../files/skew.htm"><b>12</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>13</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><a href="../files/warp.htm"><b>normal</b></a> <br><a href="../files/about_meshes.htm"><b>notice</b></a> <br><nobr><a name="bms_NU"></a><a name="subkey_NU"></a>number <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>numbering <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br><nobr>numbers <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br>\r
-<br><br>\r
-<nobr><a name="bm_O"></a><a name="subkey_OB"></a>object <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/visualization_modes.htm"><b>8</b></a> <a href="../files/viewing_mesh_info.htm"><b>9</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>10</b></a> </nobr><br><nobr>objects <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>7</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>8</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>9</b></a> </nobr><br><a name="bms_OK"></a><a name="subkey_OK"></a><a href="../files/importing_and_exporting_meshes.htm"><b>ok</b></a> <br><nobr><a name="bms_ON"></a><a name="subkey_ON"></a>one <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>6</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>7</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>8</b></a> </nobr><br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>onto</b></a> <br><a name="bms_OP"></a><a name="subkey_OP"></a><a href="../files/introduction_to_smesh.htm"><b>operations</b></a> <br><nobr>opposite <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>options</b></a> <br><a name="bms_OR"></a><a name="subkey_OR"></a><a href="../files/about_meshes.htm"><b>order</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>orientation</b></a> <br><a href="../files/warp.htm"><b>origin</b></a> <br><a name="bms_OW"></a><a name="subkey_OW"></a><a href="../files/about_meshes.htm"><b>own</b></a> <br>\r
+<nobr><a name="bms_CR"></a><a name="subkey_CR"></a>create <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/length_from_edges.htm"><b>9</b></a> <a href="../files/deflection_1d.htm"><b>10</b></a> <a href="../files/creating_groups.htm"><b>11</b></a> <a href="../files/running_smesh_module.htm"><b>12</b></a> <a href="../files/rotation.htm"><b>13</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>16</b></a> <a href="../files/merging_nodes.htm"><b>17</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>18</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>19</b></a> <a href="../files/local_length_hypothesis.htm"><b>20</b></a> <a href="../files/using_operations_on_groups.htm"><b>21</b></a> <a href="../files/translation.htm"><b>22</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>23</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>24</b></a> <a href="../files/symmetry.htm"><b>25</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>26</b></a> </nobr><br><nobr>created <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><nobr>creating <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><nobr>creation <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>criteria</b></a> <br><nobr>criterion <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> </nobr><br><a href="../files/warp.htm"><b>cross</b></a> <br><nobr><a name="bms_CU"></a><a name="subkey_CU"></a>current <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr>currently <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>curve</b></a> <br><nobr>cut <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> </nobr><br><a href="../files/cutting_quadrangles.htm"><b>cutted</b></a> <br><a href="../files/cutting_quadrangles.htm"><b>cutting</b></a> <br>\r
 <br><br>\r
-<a name="bm_P"></a><a name="subkey_PA"></a><a href="../files/about_meshes.htm"><b>parameter</b></a> <br><nobr>parameters <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/length_from_edges.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>parametric</b></a> <br><a href="../files/about_meshes.htm"><b>particularity</b></a> <br><a name="bms_PE"></a><a name="subkey_PE"></a><a href="../files/aspect_ratio.htm"><b>perfect</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>performing</b></a> <br><a name="bms_PL"></a><a name="subkey_PL"></a><a href="../files/warp.htm"><b>planar</b></a> <br><a href="../files/warp.htm"><b>plane</b></a> <br><a href="../files/running_smesh_module.htm"><b>platform</b></a> <br><nobr><a name="bms_PO"></a><a name="subkey_PO"></a>point <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>points <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/local_length_hypothesis.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/visualization_modes.htm"><b>pop</b></a> <br><a href="../files/about_meshes.htm"><b>position</b></a> <br><a href="../files/about_hypotheses.htm"><b>possible</b></a> <br><a name="bms_PR"></a><a name="subkey_PR"></a><a href="../files/about_quality_controls.htm"><b>presentation</b></a> <br><a href="../files/about_meshes.htm"><b>presented</b></a> <br><a href="../files/about_hypotheses.htm"><b>preset</b></a> <br><a href="../files/start_and_end_length_hypothesis.htm"><b>previous</b></a> <br><nobr>previously <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>procedure</b></a> <br><a href="../files/about_meshes.htm"><b>produced</b></a> <br><a href="../files/warp.htm"><b>product</b></a> <br><a href="../files/arithmetic_1d.htm"><b>progression</b></a> <br><a href="../files/warp.htm"><b>projection</b></a> <br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>propagate</b></a> <br><nobr>propagation <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> </nobr><br><nobr>properties <a href="../files/visualization_properties.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> <a href="../files/scalar_bar_properties.htm"><b>3</b></a> </nobr><br>\r
+<a name="bm_D"></a><a name="subkey_D{"></a><a href="../files/arithmetic_1d.htm"><b>d</b></a> <br><nobr><a name="bms_DA"></a><a name="subkey_DA"></a>data <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> </nobr><br><a name="bms_DE"></a><a name="subkey_DE"></a><a href="../files/about_meshes.htm"><b>dealing</b></a> <br><a href="../files/running_smesh_module.htm"><b>default</b></a> <br><nobr>define <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>7</b></a> </nobr><br><nobr>defined <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>definite <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>7</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>8</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>9</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>10</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>11</b></a> </nobr><br><nobr>definition <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>deflection</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>deleted</b></a> <br><nobr>deletion <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> </nobr><br><nobr>depending <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> </nobr><br><nobr>depends <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>describe</b></a> <br><nobr>described <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>describes</b></a> <br><a href="../pattern_mapping.htm"><b>description</b></a> <br><a href="../files/merging_nodes.htm"><b>desirable</b></a> <br><a href="../files/running_smesh_module.htm"><b>desktop</b></a> <br><nobr>destined <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>detail</b></a> <br><a href="../files/merging_nodes.htm"><b>detect</b></a> <br><nobr><a name="bms_DI"></a><a name="subkey_DI"></a>diagonal <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> </nobr><br><nobr>dialog <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/length_from_edges.htm"><b>10</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>11</b></a> <a href="../files/editing_hypotheses.htm"><b>12</b></a> <a href="../files/editing_groups.htm"><b>13</b></a> <a href="../files/displacing_nodes.htm"><b>14</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>15</b></a> <a href="../files/deflection_1d.htm"><b>16</b></a> <a href="../files/cutting_quadrangles.htm"><b>17</b></a> <a href="../files/creating_groups.htm"><b>18</b></a> <a href="../files/constructing_submeshes.htm"><b>19</b></a> <a href="../files/constructing_meshes.htm"><b>20</b></a> <a href="../files/sewing_meshes.htm"><b>21</b></a> <a href="../files/rotation.htm"><b>22</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>23</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>24</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>25</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>26</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>27</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>28</b></a> <a href="../files/merging_nodes.htm"><b>29</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>30</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>31</b></a> <a href="../files/local_length_hypothesis.htm"><b>32</b></a> <a href="../files/using_operations_on_groups.htm"><b>33</b></a> <a href="../files/uniting_two_triangles.htm"><b>34</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>35</b></a> <a href="../files/translation.htm"><b>36</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>37</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>38</b></a> <a href="../files/symmetry.htm"><b>39</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>40</b></a> <a href="../files/smoothing.htm"><b>41</b></a> <a href="../revolution.htm"><b>42</b></a> <a href="../pattern_mapping.htm"><b>43</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>differ</b></a> <br><a href="../files/sewing_meshes.htm"><b>difference</b></a> <br><nobr>different <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>differs</b></a> <br><nobr>dimension <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>direct</b></a> <br><a href="../files/sewing_meshes.htm"><b>directed</b></a> <br><nobr>direction <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>directly</b></a> <br><nobr>discretization <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>3</b></a> </nobr><br><nobr>discretized <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../files/displacing_nodes.htm"><b>displace</b></a> <br><a href="../files/displacing_nodes.htm"><b>displaced</b></a> <br><nobr>display <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>4</b></a> <a href="../files/displaying_elements_numbers.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../files/visualization_modes.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> <a href="../files/taper.htm"><b>11</b></a> <a href="../files/smoothing.htm"><b>12</b></a> <a href="../files/skew.htm"><b>13</b></a> <a href="../files/warp.htm"><b>14</b></a> </nobr><br><nobr>displayed <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/about_quality_controls.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../files/length_of_edges.htm"><b>10</b></a> <a href="../files/viewing_mesh_info.htm"><b>11</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>12</b></a> <a href="../files/taper.htm"><b>13</b></a> <a href="../files/skew.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><nobr>displaying <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/visualization_modes.htm"><b>3</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>disposal</b></a> <br><nobr>distance <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>distortion</b></a> <br><a href="../files/smoothing.htm"><b>distortions</b></a> <br><a href="../files/start_and_end_length_hypothesis.htm"><b>divided</b></a> <br><a name="bms_DO"></a><a name="subkey_DO"></a><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>does</b></a> <br><a href="../pattern_mapping.htm"><b>domain</b></a> <br><a href="../files/about_meshes.htm"><b>don</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>done</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>double</b></a> <br>\r
 <br><br>\r
-<a name="bm_Q"></a><a name="subkey_QU"></a><a href="../files/warp.htm"><b>quad</b></a> <br><nobr>quadrangle <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> </nobr><br><nobr>quadrangles <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> </nobr><br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>quadrangular</b></a> <br><nobr>quality <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>quantity</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<nobr><a name="bm_E"></a><a name="subkey_E{"></a>e <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_EA"></a><a name="subkey_EA"></a><a href="../files/constructing_groups_of_specific_elements.htm"><b>easily</b></a> <br><nobr><a name="bms_ED"></a><a name="subkey_ED"></a>edge <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/length_from_edges.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>8</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../files/uniting_two_triangles.htm"><b>12</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>13</b></a> <a href="../files/smoothing.htm"><b>14</b></a> <a href="../pattern_mapping.htm"><b>15</b></a> <a href="../files/warp.htm"><b>16</b></a> </nobr><br><nobr>edges <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_quality_controls.htm"><b>4</b></a> <a href="../files/about_meshing_algorithms.htm"><b>5</b></a> <a href="../files/about_meshes.htm"><b>6</b></a> <a href="../files/about_hypotheses.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/length_from_edges.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/deflection_1d.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>14</b></a> <a href="../files/sewing_meshes.htm"><b>15</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>16</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>17</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>18</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>19</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>20</b></a> <a href="../files/local_length_hypothesis.htm"><b>21</b></a> <a href="../files/length_of_edges.htm"><b>22</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>23</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>24</b></a> <a href="../files/smoothing.htm"><b>25</b></a> <a href="../pattern_mapping.htm"><b>26</b></a> <a href="../files/warp.htm"><b>27</b></a> </nobr><br><nobr>edit <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../files/merging_nodes.htm"><b>4</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>edited</b></a> <br><nobr>editing <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> </nobr><br><a name="bms_EF"></a><a name="subkey_EF"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>effect</b></a> <br><nobr><a name="bms_EI"></a><a name="subkey_EI"></a>either <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_EL"></a><a name="subkey_EL"></a>element <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/creating_groups.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>11</b></a> <a href="../files/minimum_angle.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../files/smoothing.htm"><b>14</b></a> <a href="../files/skew.htm"><b>15</b></a> <a href="../revolution.htm"><b>16</b></a> <a href="../pattern_mapping.htm"><b>17</b></a> <a href="../files/warp.htm"><b>18</b></a> </nobr><br><nobr>elements <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_quality_controls.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../extrusion.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displaying_elements_numbers.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>12</b></a> <a href="../files/cutting_quadrangles.htm"><b>13</b></a> <a href="../files/creating_groups.htm"><b>14</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>15</b></a> <a href="../files/sewing_meshes.htm"><b>16</b></a> <a href="../files/rotation.htm"><b>17</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>18</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>19</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>20</b></a> <a href="../files/minimum_angle.htm"><b>21</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>22</b></a> <a href="../files/length_of_edges.htm"><b>23</b></a> <a href="../files/using_operations_on_groups.htm"><b>24</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>25</b></a> <a href="../files/translation.htm"><b>26</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>27</b></a> <a href="../files/taper.htm"><b>28</b></a> <a href="../files/symmetry.htm"><b>29</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>30</b></a> <a href="../files/smoothing.htm"><b>31</b></a> <a href="../files/skew.htm"><b>32</b></a> <a href="../revolution.htm"><b>33</b></a> <a href="../pattern_mapping.htm"><b>34</b></a> <a href="../files/warp.htm"><b>35</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>else</b></a> <br><a name="bms_EN"></a><a name="subkey_EN"></a><a href="../files/constructing_submeshes.htm"><b>encapsulate</b></a> <br><a href="../pattern_mapping.htm"><b>encountered</b></a> <br><nobr>end <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>ending <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>ends</b></a> <br><a href="../files/sewing_meshes.htm"><b>enough</b></a> <br><nobr>enter <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/uniting_two_triangles.htm"><b>7</b></a> </nobr><br><nobr>entities <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>8</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>entity</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index 22a31564fb5a9e92fd3d43a969eec9efc0bcf997..589a09631aa40a93871f3e47e6acbc30311e42c7 100755 (executable)
@@ -33,19 +33,15 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0">\r
 <p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody">\r
-\r
-\r
-<nobr><a name="bm_R"></a><a name="subkey_RA"></a>ratio <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br><a name="bms_RE"></a><a name="subkey_RE"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>reassigning</b></a> <br><nobr>reference <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>refined</b></a> <br><a href="../files/skew.htm"><b>reflects</b></a> <br><a href="../files/arithmetic_1d.htm"><b>regular</b></a> <br><a href="../files/running_smesh_module.htm"><b>related</b></a> <br><a href="../files/about_meshes.htm"><b>relations</b></a> <br><a href="../files/about_meshes.htm"><b>relationship</b></a> <br><a href="../files/about_meshes.htm"><b>relationships</b></a> <br><a href="../files/aspect_ratio.htm"><b>remaining</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>removing</b></a> <br><a href="../files/aspect_ratio.htm"><b>repeated</b></a> <br><nobr>represent <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/local_length_hypothesis.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>representation</b></a> <br><a href="../files/about_meshes.htm"><b>representations</b></a> <br><nobr>represents <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/taper.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>restricted</b></a> <br><a href="../files/about_hypotheses.htm"><b>resulting</b></a> <br><a href="../files/aspect_ratio.htm"><b>retained</b></a> <br><a href="../files/about_meshes.htm"><b>retrieve</b></a> <br><a name="bms_RI"></a><a name="subkey_RI"></a><a href="../files/visualization_modes.htm"><b>right</b></a> <br><a name="bms_RO"></a><a name="subkey_RO"></a><a href="../files/about_hypotheses.htm"><b>rough</b></a> <br><a name="bms_RU"></a><a name="subkey_RU"></a><a href="../files/running_smesh_module.htm"><b>run</b></a> <br><a href="../files/running_smesh_module.htm"><b>running</b></a> <br>\r
-<br><br>\r
-<a name="bm_S"></a><a name="subkey_S{"></a><a href="../files/aspect_ratio.htm"><b>s</b></a> <br><nobr><a name="bms_SA"></a><a name="subkey_SA"></a>salome <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>same <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_SC"></a><a name="subkey_SC"></a>scalar <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> </nobr><br><a name="bms_SE"></a><a name="subkey_SE"></a><a href="../files/importing_and_exporting_meshes.htm"><b>search</b></a> <br><a href="../files/about_meshes.htm"><b>see</b></a> <br><nobr>segment <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>segments <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> <a href="../files/length_from_edges.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/deflection_1d.htm"><b>6</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> </nobr><br><nobr>select <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/local_length_hypothesis.htm"><b>11</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displaying_elements_numbers.htm"><b>14</b></a> <a href="../files/deflection_1d.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/visualization_modes.htm"><b>18</b></a> <a href="../files/viewing_mesh_info.htm"><b>19</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>20</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>21</b></a> <a href="../files/running_smesh_module.htm"><b>22</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>23</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>24</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>selected</b></a> <br><nobr>selecting <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>sense</b></a> <br><a href="../files/taper.htm"><b>separated</b></a> <br><nobr>set <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/deflection_1d.htm"><b>8</b></a> <a href="../files/visualization_modes.htm"><b>9</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>10</b></a> <a href="../files/running_smesh_module.htm"><b>11</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>12</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>13</b></a> </nobr><br><nobr>setting <a href="../files/max._element_volume_hypothsis.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><a name="bms_SH"></a><a name="subkey_SH"></a><a href="../files/visualization_modes.htm"><b>shading</b></a> <br><nobr>shape <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>shapes</b></a> <br><nobr>shortest <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>should</b></a> <br><a href="../files/about_quality_controls.htm"><b>shown</b></a> <br><a href="../files/visualization_modes.htm"><b>shrink</b></a> <br><a name="bms_SI"></a><a name="subkey_SI"></a><a href="../files/aspect_ratio.htm"><b>side</b></a> <br><nobr>sides <a href="../files/minimum_angle.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>similar</b></a> <br><a href="../files/about_meshes.htm"><b>simple</b></a> <br><nobr><a name="bms_SK"></a><a name="subkey_SK"></a>skew <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/skew.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_SM"></a><a name="subkey_SM"></a>smesh <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>7</b></a> <a href="../files/displaying_elements_numbers.htm"><b>8</b></a> <a href="../files/visualization_modes.htm"><b>9</b></a> <a href="../files/using_smesh_module.htm"><b>10</b></a> <a href="../files/running_smesh_module.htm"><b>11</b></a> </nobr><br><nobr><a name="bms_SO"></a><a name="subkey_SO"></a>so <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/deflection_1d.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>5</b></a> </nobr><br><a name="bms_SP"></a><a name="subkey_SP"></a><a href="../files/about_meshes.htm"><b>space</b></a> <br><nobr>specified <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>3</b></a> </nobr><br><nobr>split <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/local_length_hypothesis.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_ST"></a><a name="subkey_ST"></a>standard <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>start <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>starting</b></a> <br><a href="../files/computing_meshes.htm"><b>step</b></a> <br><a href="../files/running_smesh_module.htm"><b>study</b></a> <br><a name="bms_SU"></a><a name="subkey_SU"></a><a href="../files/importing_and_exporting_meshes.htm"><b>sub</b></a> <br><nobr>submesh <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><nobr>submeshes <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><nobr>surface <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>surrounding</b></a> <br>\r
+<nobr><a name="bms_EQ"></a><a name="subkey_EQ"></a>equal <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>equally</b></a> <br><a href="../files/aspect_ratio.htm"><b>equilateral</b></a> <br><a name="bms_ET"></a><a name="subkey_ET"></a><a href="../files/about_quality_controls.htm"><b>etc</b></a> <br><a name="bms_EV"></a><a name="subkey_EV"></a><a href="../pattern_mapping.htm"><b>eventual</b></a> <br><a href="../files/warp.htm"><b>every</b></a> <br><nobr><a name="bms_EX"></a><a name="subkey_EX"></a>example <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../files/smoothing.htm"><b>exceeded</b></a> <br><a href="../files/sewing_meshes.htm"><b>except</b></a> <br><nobr>existing <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><nobr>export <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>exportation</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exporting</b></a> <br><a href="../files/warp.htm"><b>extends</b></a> <br><nobr>extruded <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../extrusion.htm"><b>extrusion</b></a> <br>\r
 <br><br>\r
-<a name="bm_T"></a><a name="subkey_T{"></a><a href="../files/about_meshes.htm"><b>t</b></a> <br><a name="bms_TA"></a><a name="subkey_TA"></a><a href="../files/about_hypotheses.htm"><b>taken</b></a> <br><nobr>taper <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_TE"></a><a name="subkey_TE"></a>tetrahedron <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>3</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>4</b></a> </nobr><br><a href="../files/max._element_volume_hypothsis.htm"><b>tetrahedrons</b></a> <br><nobr>text <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_modification_of_meshes.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/visualization_properties.htm"><b>7</b></a> <a href="../files/scalar_bar_properties.htm"><b>8</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>9</b></a> </nobr><br><nobr><a name="bms_TH"></a><a name="subkey_TH"></a>them <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>three <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_TO"></a><a name="subkey_TO"></a>toolbar <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/viewing_mesh_info.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/running_smesh_module.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>toolbars</b></a> <br><nobr>topic <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_modification_of_meshes.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/visualization_properties.htm"><b>7</b></a> <a href="../files/scalar_bar_properties.htm"><b>8</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>9</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>topological</b></a> <br><a href="../files/about_meshes.htm"><b>topology</b></a> <br><nobr><a name="bms_TR"></a><a name="subkey_TR"></a>triangle <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> </nobr><br><nobr>triangles <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> </nobr><br><a href="../files/length_from_edges.htm"><b>triangulator</b></a> <br><nobr><a name="bms_TW"></a><a name="subkey_TW"></a>two <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_TY"></a><a name="subkey_TY"></a>type <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_modification_of_meshes.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/visualization_properties.htm"><b>8</b></a> <a href="../files/scalar_bar_properties.htm"><b>9</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>10</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>types</b></a> <br>\r
+<nobr><a name="bm_F"></a><a name="subkey_FA"></a>face <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> </nobr><br><nobr>faces <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/creating_groups.htm"><b>8</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>11</b></a> <a href="../files/local_length_hypothesis.htm"><b>12</b></a> <a href="../pattern_mapping.htm"><b>13</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>factor</b></a> <br><a href="../files/sewing_meshes.htm"><b>far</b></a> <br><a href="../files/smoothing.htm"><b>faster</b></a> <br><nobr><a name="bms_FI"></a><a name="subkey_FI"></a>field <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/uniting_two_triangles.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> </nobr><br><nobr>fields <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> <a href="../files/smoothing.htm"><b>9</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>fifth</b></a> <br><nobr>file <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>files</b></a> <br><nobr>fill <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>2</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>filled</b></a> <br><nobr>filter <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>final</b></a> <br><nobr>find <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>finds</b></a> <br><nobr>first <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>fixed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a name="bms_FL"></a><a name="subkey_FL"></a><a href="../pattern_mapping.htm"><b>flag</b></a> <br><nobr><a name="bms_FO"></a><a name="subkey_FO"></a>folder <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> </nobr><br><nobr>following <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_quality_controls.htm"><b>4</b></a> <a href="../files/about_meshing_algorithms.htm"><b>5</b></a> <a href="../files/about_meshes.htm"><b>6</b></a> <a href="../files/about_hypotheses.htm"><b>7</b></a> <a href="../extrusion.htm"><b>8</b></a> <a href="../files/editing_hypotheses.htm"><b>9</b></a> <a href="../files/editing_groups.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>12</b></a> <a href="../files/deflection_1d.htm"><b>13</b></a> <a href="../files/cutting_quadrangles.htm"><b>14</b></a> <a href="../files/creating_groups.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/sewing_meshes.htm"><b>18</b></a> <a href="../files/running_smesh_module.htm"><b>19</b></a> <a href="../files/rotation.htm"><b>20</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>21</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>22</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>23</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>24</b></a> <a href="../files/merging_nodes.htm"><b>25</b></a> <a href="../files/local_length_hypothesis.htm"><b>26</b></a> <a href="../files/viewing_mesh_info.htm"><b>27</b></a> <a href="../files/using_operations_on_groups.htm"><b>28</b></a> <a href="../files/uniting_two_triangles.htm"><b>29</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>30</b></a> <a href="../files/translation.htm"><b>31</b></a> <a href="../files/symmetry.htm"><b>32</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>33</b></a> <a href="../files/smoothing.htm"><b>34</b></a> <a href="../revolution.htm"><b>35</b></a> <a href="../pattern_mapping.htm"><b>36</b></a> </nobr><br><nobr>follows <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> <a href="../files/displaying_elements_numbers.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/sewing_meshes.htm"><b>8</b></a> <a href="../files/running_smesh_module.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> </nobr><br><nobr>format <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/diagonal_iversion_of_elements.htm"><b>formed</b></a> <br><nobr>forming <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>forms</b></a> <br><nobr>four <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FR"></a><a name="subkey_FR"></a>free <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_FU"></a><a name="subkey_FU"></a>functionality <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/merging_nodes.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>functions</b></a> <br>\r
 <br><br>\r
-<a name="bm_U"></a><a name="subkey_U{"></a><a href="../files/about_meshes.htm"><b>u</b></a> <br><a name="bms_UN"></a><a name="subkey_UN"></a><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>unless</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>unv</b></a> <br><nobr><a name="bms_UP"></a><a name="subkey_UP"></a>up <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> </nobr><br><a href="../files/view_update.htm"><b>update</b></a> <br><a href="../files/running_smesh_module.htm"><b>updated</b></a> <br><a name="bms_US"></a><a name="subkey_US"></a><a href="../files/about_quality_controls.htm"><b>usage</b></a> <br><nobr>used <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>2</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>4</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>10</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>11</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>12</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>13</b></a> </nobr><br><nobr>using <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/using_smesh_module.htm"><b>2</b></a> </nobr><br>\r
+<nobr><a name="bm_G"></a><a name="subkey_GE"></a>generate <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><nobr>generated <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/deflection_1d.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>generates</b></a> <br><nobr>generation <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>geom <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr>geometric <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><nobr>geometrical <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/deflection_1d.htm"><b>9</b></a> <a href="../files/creating_groups.htm"><b>10</b></a> <a href="../files/constructing_submeshes.htm"><b>11</b></a> <a href="../files/constructing_meshes.htm"><b>12</b></a> <a href="../files/rotation.htm"><b>13</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>14</b></a> <a href="../files/local_length_hypothesis.htm"><b>15</b></a> <a href="../files/translation.htm"><b>16</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>17</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>18</b></a> <a href="../files/symmetry.htm"><b>19</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> </nobr><br><nobr>geometry <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>getting</b></a> <br><a name="bms_GH"></a><a name="subkey_GH"></a><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>ghs3d</b></a> <br><nobr><a name="bms_GI"></a><a name="subkey_GI"></a>given <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/length_from_edges.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> </nobr><br><a name="bms_GL"></a><a name="subkey_GL"></a><a href="../files/constructing_meshes.htm"><b>global</b></a> <br><a name="bms_GO"></a><a name="subkey_GO"></a><a href="../files/smoothing.htm"><b>good</b></a> <br><a href="../pattern_mapping.htm"><b>got</b></a> <br><nobr><a name="bms_GR"></a><a name="subkey_GR"></a>group <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>grouping</b></a> <br><nobr>groups <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>4</b></a> <a href="../files/merging_nodes.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> </nobr><br>\r
 <br><br>\r
-<a name="bm_V"></a><a name="subkey_V{"></a><a href="../files/about_meshes.htm"><b>v</b></a> <br><nobr><a name="bms_VA"></a><a name="subkey_VA"></a>value <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/deflection_1d.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> </nobr><br><nobr>values <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> </nobr><br><a name="bms_VE"></a><a name="subkey_VE"></a><a href="../files/warp.htm"><b>vector</b></a> <br><a href="../files/about_meshes.htm"><b>vertex</b></a> <br><nobr><a name="bms_VI"></a><a name="subkey_VI"></a>view <a href="../files/viewing_mesh_info.htm"><b>1</b></a> <a href="../files/view_update.htm"><b>2</b></a> </nobr><br><nobr>viewer <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>5</b></a> <a href="../files/displaying_elements_numbers.htm"><b>6</b></a> <a href="../files/visualization_modes.htm"><b>7</b></a> <a href="../files/taper.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> <a href="../files/running_smesh_module.htm"><b>10</b></a> <a href="../files/warp.htm"><b>11</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>viewing</b></a> <br><a href="../files/about_quality_controls.htm"><b>visual</b></a> <br><nobr>visualization <a href="../files/visualization_properties.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VO"></a><a name="subkey_VO"></a>volume <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>7</b></a> <a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>8</b></a> </nobr><br><nobr>volumes <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a name="bms_VT"></a><a name="subkey_VT"></a><a href="../files/running_smesh_module.htm"><b>vtk</b></a> <br>\r
+<a name="bm_H"></a><a name="subkey_H{"></a><a href="../files/warp.htm"><b>h</b></a> <br><a href="../files/aspect_ratio.htm"><b>h1</b></a> <br><a href="../files/aspect_ratio.htm"><b>h2</b></a> <br><a name="bms_HA"></a><a name="subkey_HA"></a><a href="../files/warp.htm"><b>half</b></a> <br><a href="../pattern_mapping.htm"><b>hands</b></a> <br><nobr>having <a href="../files/length_from_edges.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr><a name="bms_HE"></a><a name="subkey_HE"></a>height <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>help</b></a> <br><a href="../pattern_mapping.htm"><b>hence</b></a> <br><nobr>here <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/connectivity.htm"><b>3</b></a> <a href="../files/scalar_bar_properties.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/visualization_properties.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>hexahedron <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>hexahedrons</b></a> <br><a name="bms_HI"></a><a name="subkey_HI"></a><a href="../files/about_meshes.htm"><b>higher</b></a> <br><nobr>highlighted <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a name="bms_HO"></a><a name="subkey_HO"></a><a href="../pattern_mapping.htm"><b>holds</b></a> <br><nobr><a name="bms_HY"></a><a name="subkey_HY"></a>hyp <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hypotheses <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/length_from_edges.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/editing_hypotheses.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>10</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>11</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>12</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>13</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>14</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>15</b></a> <a href="../files/local_length_hypothesis.htm"><b>16</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>17</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>18</b></a> </nobr><br><nobr>hypothesis <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/editing_hypotheses.htm"><b>4</b></a> <a href="../files/deflection_1d.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../files/local_length_hypothesis.htm"><b>12</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>13</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>14</b></a> </nobr><br>\r
 <br><br>\r
-<a name="bm_W"></a><a name="subkey_WA"></a><a href="../files/warp.htm"><b>warp</b></a> <br><nobr>warping <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>way</b></a> <br><a name="bms_WH"></a><a name="subkey_WH"></a><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>while</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<nobr><a name="bm_I"></a><a name="subkey_I{"></a>i <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_IC"></a><a name="subkey_IC"></a>icon <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_ID"></a><a name="subkey_ID"></a>id <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/sewing_meshes.htm"><b>8</b></a> <a href="../files/uniting_two_triangles.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> </nobr><br><nobr>ids <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../revolution.htm"><b>7</b></a> </nobr><br><nobr><a name="bms_IF"></a><a name="subkey_IF"></a>if <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> <a href="../files/smoothing.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> </nobr><br><a name="bms_IM"></a><a name="subkey_IM"></a><a href="../pattern_mapping.htm"><b>implies</b></a> <br><a href="../files/about_meshes.htm"><b>imply</b></a> <br><nobr>import <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>importation</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>imported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>importing</b></a> <br><a name="bms_IN"></a><a name="subkey_IN"></a><a href="../files/about_meshes.htm"><b>including</b></a> <br><a href="../pattern_mapping.htm"><b>index</b></a> <br><a href="../files/warp.htm"><b>indicates</b></a> <br><a href="../pattern_mapping.htm"><b>indices</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>info</b></a> <br><nobr>information <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/viewing_mesh_info.htm"><b>3</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>infos</b></a> <br><nobr>initial <a href="../files/running_smesh_module.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> </nobr><br><nobr>input <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/editing_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>inserted</b></a> <br><a href="../pattern_mapping.htm"><b>instead</b></a> <br><a href="../files/sewing_meshes.htm"><b>intended</b></a> <br><a href="../files/about_meshes.htm"><b>interested</b></a> <br><a href="../files/sewing_meshes.htm"><b>intermediate</b></a> <br><a href="../pattern_mapping.htm"><b>internal</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>intersect</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>intersected</b></a> <br><nobr>intersection <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>intersects</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>introduction</b></a> <br><nobr>inverse <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> </nobr><br><a href="../files/diagonal_iversion_of_elements.htm"><b>inversion</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index 6480e55bdda35f63c57533036498b8a16449fa1b..d5432dcd9db93eb5dae5b61fcc1e2526a5150308 100755 (executable)
@@ -33,13 +33,18 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0">\r
 <p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody">\r
-<nobr><a name="bms_WI"></a><a name="subkey_WI"></a>will <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../files/local_length_hypothesis.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displaying_elements_numbers.htm"><b>14</b></a> <a href="../files/deflection_1d.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/viewing_mesh_info.htm"><b>18</b></a> <a href="../files/taper.htm"><b>19</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>20</b></a> <a href="../files/skew.htm"><b>21</b></a> <a href="../files/running_smesh_module.htm"><b>22</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>23</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>24</b></a> <a href="../files/warp.htm"><b>25</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>window</b></a> <br><nobr>wire <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> </nobr><br><a href="../files/visualization_modes.htm"><b>wireframe</b></a> <br><a name="bms_WO"></a><a name="subkey_WO"></a><a href="../files/number_of_segments_hypothesis.htm"><b>words</b></a> <br><a href="../files/running_smesh_module.htm"><b>work</b></a> <br>\r
+<a name="bms_IS"></a><a name="subkey_IS"></a><a href="../pattern_mapping.htm"><b>iso</b></a> <br><a href="../pattern_mapping.htm"><b>isoline</b></a> <br><a href="../pattern_mapping.htm"><b>isolines</b></a> <br><nobr><a name="bms_IT"></a><a name="subkey_IT"></a>item <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>8</b></a> <a href="../files/cutting_quadrangles.htm"><b>9</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/rotation.htm"><b>12</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>13</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>14</b></a> <a href="../files/merging_nodes.htm"><b>15</b></a> <a href="../files/using_operations_on_groups.htm"><b>16</b></a> <a href="../files/uniting_two_triangles.htm"><b>17</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>18</b></a> <a href="../files/translation.htm"><b>19</b></a> <a href="../files/symmetry.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../revolution.htm"><b>22</b></a> <a href="../pattern_mapping.htm"><b>23</b></a> </nobr><br><nobr>items <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>iteration</b></a> <br><a href="../files/smoothing.htm"><b>iterations</b></a> <br><a href="../files/smoothing.htm"><b>iterative</b></a> <br>\r
 <br><br>\r
-<nobr><a name="bm_X"></a><a name="subkey_X{"></a>x <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br>\r
+<a name="bm_J"></a><a name="subkey_JO"></a><a href="../files/skew.htm"><b>join</b></a> <br><nobr><a name="bms_JU"></a><a name="subkey_JU"></a>just <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br>\r
 <br><br>\r
-<a name="bm_Y"></a><a name="subkey_Y{"></a><a href="../files/about_meshes.htm"><b>y</b></a> <br><nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/about_quality_controls.htm"><b>5</b></a> <a href="../files/about_meshes.htm"><b>6</b></a> <a href="../files/about_hypotheses.htm"><b>7</b></a> <a href="../files/minimum_angle.htm"><b>8</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/local_length_hypothesis.htm"><b>11</b></a> <a href="../files/length_of_edges.htm"><b>12</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>13</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>14</b></a> <a href="../files/displaying_elements_numbers.htm"><b>15</b></a> <a href="../files/deflection_1d.htm"><b>16</b></a> <a href="../files/constructing_submeshes.htm"><b>17</b></a> <a href="../files/visualization_modes.htm"><b>18</b></a> <a href="../files/viewing_mesh_info.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>21</b></a> <a href="../files/skew.htm"><b>22</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>23</b></a> <a href="../files/warp.htm"><b>24</b></a> </nobr><br>\r
+<nobr><a name="bm_K"></a><a name="subkey_KE"></a>keep <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>key</b></a> <br><a name="bms_KI"></a><a name="subkey_KI"></a><a href="../files/about_meshing_algorithms.htm"><b>kinds</b></a> <br><a name="bms_KN"></a><a name="subkey_KN"></a><a href="../pattern_mapping.htm"><b>knowing</b></a> <br>\r
 <br><br>\r
-<a name="bm_Z"></a><a name="subkey_Z{"></a><a href="../files/about_meshes.htm"><b>z</b></a> <br><br><br></p>\r
+<a name="bm_L"></a><a name="subkey_L{"></a><a href="../files/warp.htm"><b>l</b></a> <br><a name="bms_LA"></a><a name="subkey_LA"></a><a href="../files/smoothing.htm"><b>laplacian</b></a> <br><a href="../files/aspect_ratio.htm"><b>largest</b></a> <br><nobr>last <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>launching</b></a> <br><a href="../pattern_mapping.htm"><b>lay</b></a> <br><nobr>lays <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_LE"></a><a name="subkey_LE"></a>least <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>left</b></a> <br><nobr>length <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/length_from_edges.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/sewing_meshes.htm"><b>8</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/local_length_hypothesis.htm"><b>11</b></a> <a href="../files/length_of_edges.htm"><b>12</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>13</b></a> <a href="../files/warp.htm"><b>14</b></a> </nobr><br><nobr>less <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>level</b></a> <br><nobr><a name="bms_LI"></a><a name="subkey_LI"></a>like <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/running_smesh_module.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> </nobr><br><a href="../files/smoothing.htm"><b>limit</b></a> <br><nobr>limited <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>line <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>lines <a href="../extrusion.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>link</b></a> <br><a href="../files/sewing_meshes.htm"><b>linked</b></a> <br><a href="../files/sewing_meshes.htm"><b>links</b></a> <br><nobr>list <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a name="bms_LK"></a><a name="subkey_LK"></a><a href="../files/arithmetic_1d.htm"><b>lk</b></a> <br><nobr><a name="bms_LO"></a><a name="subkey_LO"></a>local <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>locally <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> </nobr><br><nobr>located <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>location <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><a href="../files/smoothing.htm"><b>locations</b></a> <br><a href="../files/aspect_ratio.htm"><b>longest</b></a> <br><nobr>look <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>looking</b></a> <br><a href="../files/about_meshes.htm"><b>lower</b></a> <br><a name="bms_LY"></a><a name="subkey_LY"></a><a href="../pattern_mapping.htm"><b>lying</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_M"></a><a name="subkey_MA"></a>main <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> <a href="../pattern_mapping.htm"><b>8</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>manage</b></a> <br><a href="../pattern_mapping.htm"><b>manual</b></a> <br><nobr>manually <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>mapped</b></a> <br><a href="../pattern_mapping.htm"><b>mapping</b></a> <br><nobr>max <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> </nobr><br><nobr>maximum <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><a name="bms_ME"></a><a name="subkey_ME"></a><a href="../files/about_meshes.htm"><b>meaning</b></a> <br><a href="../files/about_meshes.htm"><b>meaningful</b></a> <br><a href="../files/warp.htm"><b>measured</b></a> <br><a href="../files/2d_meshing_algorithm.htm"><b>mefisto</b></a> <br><nobr>menu <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_hypotheses.htm"><b>8</b></a> <a href="../files/editing_groups.htm"><b>9</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>10</b></a> <a href="../files/displaying_elements_numbers.htm"><b>11</b></a> <a href="../files/displacing_nodes.htm"><b>12</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>13</b></a> <a href="../files/cutting_quadrangles.htm"><b>14</b></a> <a href="../files/creating_groups.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>18</b></a> <a href="../files/sewing_meshes.htm"><b>19</b></a> <a href="../files/rotation.htm"><b>20</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>21</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>22</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>23</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>24</b></a> <a href="../files/merging_nodes.htm"><b>25</b></a> <a href="../files/visualization_modes.htm"><b>26</b></a> <a href="../files/viewing_mesh_info.htm"><b>27</b></a> <a href="../files/using_operations_on_groups.htm"><b>28</b></a> <a href="../files/uniting_two_triangles.htm"><b>29</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>30</b></a> <a href="../files/translation.htm"><b>31</b></a> <a href="../files/symmetry.htm"><b>32</b></a> <a href="../files/smoothing.htm"><b>33</b></a> <a href="../revolution.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>menus</b></a> <br><nobr>merge <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/merging_nodes.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>merged</b></a> <br><a href="../files/sewing_meshes.htm"><b>merges</b></a> <br><nobr>merging <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/merging_nodes.htm"><b>2</b></a> </nobr><br><nobr>mesh <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/about_quality_controls.htm"><b>6</b></a> <a href="../files/about_meshes.htm"><b>7</b></a> <a href="../files/about_hypotheses.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/length_from_edges.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.htm"><b>11</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>12</b></a> <a href="../files/editing_groups.htm"><b>13</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>14</b></a> <a href="../files/displaying_elements_numbers.htm"><b>15</b></a> <a href="../files/displacing_nodes.htm"><b>16</b></a> <a href="../files/deflection_1d.htm"><b>17</b></a> <a href="../files/cutting_quadrangles.htm"><b>18</b></a> <a href="../files/creating_groups.htm"><b>19</b></a> <a href="../files/constructing_submeshes.htm"><b>20</b></a> <a href="../files/constructing_meshes.htm"><b>21</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>22</b></a> <a href="../files/sewing_meshes.htm"><b>23</b></a> <a href="../files/rotation.htm"><b>24</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>25</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>26</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>27</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>28</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>29</b></a> <a href="../files/minimum_angle.htm"><b>30</b></a> <a href="../files/merging_nodes.htm"><b>31</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>32</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>33</b></a> <a href="../files/local_length_hypothesis.htm"><b>34</b></a> <a href="../files/length_of_edges.htm"><b>35</b></a> <a href="../files/visualization_modes.htm"><b>36</b></a> <a href="../files/viewing_mesh_info.htm"><b>37</b></a> <a href="../files/using_operations_on_groups.htm"><b>38</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>39</b></a> <a href="../files/translation.htm"><b>40</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>41</b></a> <a href="../files/taper.htm"><b>42</b></a> <a href="../files/symmetry.htm"><b>43</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>44</b></a> <a href="../files/smoothing.htm"><b>45</b></a> <a href="../files/skew.htm"><b>46</b></a> <a href="../revolution.htm"><b>47</b></a> <a href="../pattern_mapping.htm"><b>48</b></a> <a href="../files/warp.htm"><b>49</b></a> </nobr><br><nobr>meshed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>mesher</b></a> <br><nobr>meshes <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_modification_of_meshes.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/running_smesh_module.htm"><b>10</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>11</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>12</b></a> <a href="../files/visualization_modes.htm"><b>13</b></a> <a href="../files/viewing_mesh_info.htm"><b>14</b></a> <a href="../files/smoothing.htm"><b>15</b></a> </nobr><br><nobr>meshing <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/displaying_elements_numbers.htm"><b>11</b></a> <a href="../files/deflection_1d.htm"><b>12</b></a> <a href="../files/constructing_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> <a href="../files/minimum_angle.htm"><b>16</b></a> <a href="../files/local_length_hypothesis.htm"><b>17</b></a> <a href="../files/length_of_edges.htm"><b>18</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>19</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>20</b></a> <a href="../revolution.htm"><b>21</b></a> </nobr><br><a href="../files/smoothing.htm"><b>method</b></a> <br><a href="../files/smoothing.htm"><b>methods</b></a> <br><nobr><a name="bms_MI"></a><a name="subkey_MI"></a>minimum <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> </nobr><br><a name="bms_MO"></a><a name="subkey_MO"></a><a href="../files/visualization_modes.htm"><b>mode</b></a> <br><a href="../files/about_meshes.htm"><b>model</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>models</b></a> <br><a href="../files/visualization_modes.htm"><b>modes</b></a> <br><nobr>modification <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_modification_of_meshes.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/editing_groups.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>9</b></a> <a href="../files/cutting_quadrangles.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/rotation.htm"><b>12</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>13</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>14</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>15</b></a> <a href="../files/merging_nodes.htm"><b>16</b></a> <a href="../files/uniting_two_triangles.htm"><b>17</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>18</b></a> <a href="../files/translation.htm"><b>19</b></a> <a href="../files/symmetry.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../revolution.htm"><b>22</b></a> <a href="../pattern_mapping.htm"><b>23</b></a> </nobr><br><nobr>modify <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr>module <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> </nobr><br><nobr>move <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr>moving <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> </nobr><br><a name="bms_MU"></a><a name="subkey_MU"></a><a href="../files/introduction_to_smesh.htm"><b>multi</b></a> <br><a href="../files/aspect_ratio.htm"><b>multiplied</b></a> <br><nobr>must <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br>\r
+<br><br>\r
+<nobr><a name="bm_N"></a><a name="subkey_N{"></a>n <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_NA"></a><a name="subkey_NA"></a>name <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/editing_hypotheses.htm"><b>3</b></a> <a href="../files/editing_groups.htm"><b>4</b></a> <a href="../files/deflection_1d.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> <a href="../files/local_length_hypothesis.htm"><b>9</b></a> <a href="../files/using_operations_on_groups.htm"><b>10</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>11</b></a> </nobr><br><a name="bms_NB"></a><a name="subkey_NB"></a><a href="../files/number_of_segments_hypothesis.htm"><b>nb</b></a> <br><a name="bms_NE"></a><a name="subkey_NE"></a><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>need</b></a> <br><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>needs</b></a> <br><nobr>neighboring <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> </nobr><br><nobr>netgen <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>1</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> </nobr><br><nobr>new <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/running_smesh_module.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/using_operations_on_groups.htm"><b>8</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>next</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf5.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+\r
 </body>\r
 \r
 </html>\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf5.htm b/doc/salome/gui/SMESH/whgdata/whlstf5.htm
new file mode 100755 (executable)
index 0000000..d35002e
--- /dev/null
@@ -0,0 +1,49 @@
+<html>\r
+<head>\r
+<title>Search Words List</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
+<p class="ftsbody">\r
+<nobr><a name="bms_NO"></a><a name="subkey_NO"></a>nodal <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>node <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> </nobr><br><nobr>nodes <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/deflection_1d.htm"><b>9</b></a> <a href="../files/creating_groups.htm"><b>10</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>11</b></a> <a href="../files/sewing_meshes.htm"><b>12</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>13</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> <a href="../files/merging_nodes.htm"><b>16</b></a> <a href="../files/local_length_hypothesis.htm"><b>17</b></a> <a href="../files/taper.htm"><b>18</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>19</b></a> <a href="../files/smoothing.htm"><b>20</b></a> <a href="../files/skew.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> <a href="../files/warp.htm"><b>23</b></a> </nobr><br><nobr>normal <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>note</b></a> <br><a href="../files/about_meshes.htm"><b>notice</b></a> <br><nobr><a name="bms_NU"></a><a name="subkey_NU"></a>number <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> </nobr><br><nobr>numbering <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br><nobr>numbers <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_O"></a><a name="subkey_OB"></a><a href="../files/sewing_meshes.htm"><b>obey</b></a> <br><nobr>object <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/creating_groups.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/constructing_meshes.htm"><b>10</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>11</b></a> <a href="../files/rotation.htm"><b>12</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>13</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>14</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>15</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>16</b></a> <a href="../files/local_length_hypothesis.htm"><b>17</b></a> <a href="../files/visualization_modes.htm"><b>18</b></a> <a href="../files/viewing_mesh_info.htm"><b>19</b></a> <a href="../files/translation.htm"><b>20</b></a> <a href="../pattern_mapping.htm"><b>21</b></a> </nobr><br><nobr>objects <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>8</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>objet</b></a> <br><nobr><a name="bms_OK"></a><a name="subkey_OK"></a>ok <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/editing_groups.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>8</b></a> <a href="../files/cutting_quadrangles.htm"><b>9</b></a> <a href="../files/creating_groups.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>12</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>13</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>14</b></a> <a href="../files/using_operations_on_groups.htm"><b>15</b></a> <a href="../files/uniting_two_triangles.htm"><b>16</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>17</b></a> <a href="../files/smoothing.htm"><b>18</b></a> <a href="../revolution.htm"><b>19</b></a> </nobr><br><nobr><a name="bms_ON"></a><a name="subkey_ON"></a>once <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>one <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>10</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>11</b></a> <a href="../files/using_operations_on_groups.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../files/translation.htm"><b>14</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>15</b></a> <a href="../files/symmetry.htm"><b>16</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>17</b></a> <a href="../files/smoothing.htm"><b>18</b></a> <a href="../revolution.htm"><b>19</b></a> <a href="../pattern_mapping.htm"><b>20</b></a> </nobr><br><nobr>ones <a href="../extrusion.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr>onto <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_OP"></a><a name="subkey_OP"></a>operation <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>6</b></a> <a href="../files/using_operations_on_groups.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> <a href="../files/translation.htm"><b>9</b></a> <a href="../files/symmetry.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> </nobr><br><nobr>operations <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> </nobr><br><nobr>opposite <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> </nobr><br><nobr>options <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_OR"></a><a name="subkey_OR"></a>order <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>orientation <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>origin</b></a> <br><a name="bms_OT"></a><a name="subkey_OT"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>others</b></a> <br><a name="bms_OU"></a><a name="subkey_OU"></a><a href="../pattern_mapping.htm"><b>outside</b></a> <br><a name="bms_OW"></a><a name="subkey_OW"></a><a href="../files/about_meshes.htm"><b>own</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_P"></a><a name="subkey_PA"></a>parameter <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>parameters <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/length_from_edges.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/rotation.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> </nobr><br><nobr>parametric <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>part <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>particularity</b></a> <br><a href="../pattern_mapping.htm"><b>pattern</b></a> <br><a href="../pattern_mapping.htm"><b>pattern_name</b></a> <br><a href="../pattern_mapping.htm"><b>patterns</b></a> <br><a name="bms_PE"></a><a name="subkey_PE"></a><a href="../files/aspect_ratio.htm"><b>perfect</b></a> <br><nobr>perform <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>performing</b></a> <br><a name="bms_PL"></a><a name="subkey_PL"></a><a href="../files/sewing_meshes.htm"><b>place</b></a> <br><a href="../files/sewing_meshes.htm"><b>placed</b></a> <br><a href="../files/warp.htm"><b>planar</b></a> <br><nobr>plane <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>platform</b></a> <br><nobr>plus <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_PO"></a><a name="subkey_PO"></a>point <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> </nobr><br><nobr>points <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/translation.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>pop <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/visualization_modes.htm"><b>3</b></a> </nobr><br><nobr>popup <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr>position <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>positions</b></a> <br><nobr>possible <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_PR"></a><a name="subkey_PR"></a><a href="../files/using_operations_on_groups.htm"><b>present</b></a> <br><a href="../files/about_quality_controls.htm"><b>presentation</b></a> <br><a href="../files/about_meshes.htm"><b>presented</b></a> <br><a href="../pattern_mapping.htm"><b>preserved</b></a> <br><a href="../files/about_hypotheses.htm"><b>preset</b></a> <br><a href="../files/smoothing.htm"><b>press</b></a> <br><nobr>pressed <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> </nobr><br><nobr>preview <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>previous <a href="../files/uniting_a_set_of_triangles.htm"><b>1</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>previously <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> </nobr><br><nobr>procedure <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>process</b></a> <br><a href="../files/smoothing.htm"><b>produce</b></a> <br><a href="../files/about_meshes.htm"><b>produced</b></a> <br><nobr>produces <a href="../extrusion.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>product</b></a> <br><a href="../files/arithmetic_1d.htm"><b>progression</b></a> <br><a href="../pattern_mapping.htm"><b>projected</b></a> <br><a href="../pattern_mapping.htm"><b>projecting</b></a> <br><nobr>projection <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>propagate</b></a> <br><nobr>propagation <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> </nobr><br><nobr>properties <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> <a href="../files/visualization_properties.htm"><b>3</b></a> <a href="../files/visualization_modes.htm"><b>4</b></a> </nobr><br><a name="bms_PS"></a><a name="subkey_PS"></a><a href="../files/diagonal_iversion_of_elements.htm"><b>pseudo</b></a> <br><a name="bms_PU"></a><a name="subkey_PU"></a><a href="../files/smoothing.htm"><b>pulls</b></a> <br>\r
+<br><br>\r
+<a name="bm_Q"></a><a name="subkey_QU"></a><a href="../files/warp.htm"><b>quad</b></a> <br><nobr>quadrangle <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> </nobr><br><nobr>quadrangles <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> </nobr><br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>quadrangular</b></a> <br><nobr>quality <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>quantity</b></a> <br><a href="../files/creating_groups.htm"><b>quit</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_R"></a><a name="subkey_RA"></a>radio <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> <a href="../files/translation.htm"><b>7</b></a> <a href="../files/symmetry.htm"><b>8</b></a> </nobr><br><nobr>ratio <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> </nobr><br><a name="bms_RE"></a><a name="subkey_RE"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>reassigning</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>recompute</b></a> <br><a href="../files/smoothing.htm"><b>reduce</b></a> <br><a href="../files/smoothing.htm"><b>reevaluated</b></a> <br><nobr>reference <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> </nobr><br><nobr>references <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>refers</b></a> <br><a href="../files/about_hypotheses.htm"><b>refined</b></a> <br><nobr>reflects <a href="../files/skew.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>regular</b></a> <br><a href="../files/running_smesh_module.htm"><b>related</b></a> <br><a href="../files/about_meshes.htm"><b>relations</b></a> <br><a href="../files/about_meshes.htm"><b>relationship</b></a> <br><a href="../files/about_meshes.htm"><b>relationships</b></a> <br><a href="../files/aspect_ratio.htm"><b>remaining</b></a> <br><nobr>remove <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><a href="../files/removing_nodes_and_elements.htm"><b>removing</b></a> <br><a href="../files/editing_hypotheses.htm"><b>rename</b></a> <br><a href="../files/renumbering_nodes_and_elements.htm"><b>renumber</b></a> <br><a href="../files/renumbering_nodes_and_elements.htm"><b>renumbering</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>reoriented</b></a> <br><a href="../files/aspect_ratio.htm"><b>repeated</b></a> <br><a href="../files/sewing_meshes.htm"><b>replaced</b></a> <br><nobr>represent <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>representation</b></a> <br><a href="../files/about_meshes.htm"><b>representations</b></a> <br><nobr>represents <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/taper.htm"><b>2</b></a> </nobr><br><nobr>required <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</b></a> <a href="../files/uniting_two_triangles.htm"><b>5</b></a> </nobr><br><nobr>rest <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>restricted</b></a> <br><nobr>resulting <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>results</b></a> <br><a href="../files/aspect_ratio.htm"><b>retained</b></a> <br><a href="../files/about_meshes.htm"><b>retrieve</b></a> <br><a href="../pattern_mapping.htm"><b>reverse</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>reverting</b></a> <br><nobr>revolution <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../revolution.htm"><b>revolved</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf6.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf6.htm b/doc/salome/gui/SMESH/whgdata/whlstf6.htm
new file mode 100755 (executable)
index 0000000..2158cef
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words List</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<p class="ftsbody" align="center"><a href="whlstf5.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
+<p class="ftsbody">\r
+<nobr><a name="bms_RI"></a><a name="subkey_RI"></a>right <a href="../files/editing_hypotheses.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/visualization_modes.htm"><b>7</b></a> </nobr><br><a name="bms_RO"></a><a name="subkey_RO"></a><a href="../files/rotation.htm"><b>rotate</b></a> <br><nobr>rotated <a href="../extrusion.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr>rotation <a href="../files/rotation.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>rough</b></a> <br><a name="bms_RU"></a><a name="subkey_RU"></a><a href="../files/sewing_meshes.htm"><b>rule</b></a> <br><a href="../files/running_smesh_module.htm"><b>run</b></a> <br><a href="../files/running_smesh_module.htm"><b>running</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_S"></a><a name="subkey_S{"></a>s <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_SA"></a><a name="subkey_SA"></a>salome <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>same <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_SC"></a><a name="subkey_SC"></a>scalar <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> </nobr><br><a name="bms_SE"></a><a name="subkey_SE"></a><a href="../pattern_mapping.htm"><b>seam</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>search</b></a> <br><a href="../files/sewing_meshes.htm"><b>second</b></a> <br><a href="../pattern_mapping.htm"><b>section</b></a> <br><a href="../pattern_mapping.htm"><b>sections</b></a> <br><nobr>see <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/editing_groups.htm"><b>2</b></a> </nobr><br><a href="../files/start_and_end_length_hypothesis.htm"><b>segment</b></a> <br><nobr>segments <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/deflection_1d.htm"><b>5</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> <a href="../files/local_length_hypothesis.htm"><b>8</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>9</b></a> </nobr><br><nobr>select <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_meshing_algorithms.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>9</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>10</b></a> <a href="../extrusion.htm"><b>11</b></a> <a href="../files/length_from_edges.htm"><b>12</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>13</b></a> <a href="../files/editing_hypotheses.htm"><b>14</b></a> <a href="../files/editing_groups.htm"><b>15</b></a> <a href="../files/displacing_nodes.htm"><b>16</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>17</b></a> <a href="../files/deflection_1d.htm"><b>18</b></a> <a href="../files/cutting_quadrangles.htm"><b>19</b></a> <a href="../files/creating_groups.htm"><b>20</b></a> <a href="../files/constructing_submeshes.htm"><b>21</b></a> <a href="../files/constructing_meshes.htm"><b>22</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>23</b></a> <a href="../files/sewing_meshes.htm"><b>24</b></a> <a href="../files/running_smesh_module.htm"><b>25</b></a> <a href="../files/rotation.htm"><b>26</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>27</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>28</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>29</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>30</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>31</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>32</b></a> <a href="../files/merging_nodes.htm"><b>33</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>34</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>35</b></a> <a href="../files/local_length_hypothesis.htm"><b>36</b></a> <a href="../files/visualization_modes.htm"><b>37</b></a> <a href="../files/viewing_mesh_info.htm"><b>38</b></a> <a href="../files/using_operations_on_groups.htm"><b>39</b></a> <a href="../files/uniting_two_triangles.htm"><b>40</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>41</b></a> <a href="../files/translation.htm"><b>42</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>43</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>44</b></a> <a href="../files/symmetry.htm"><b>45</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>46</b></a> <a href="../files/smoothing.htm"><b>47</b></a> <a href="../revolution.htm"><b>48</b></a> <a href="../pattern_mapping.htm"><b>49</b></a> </nobr><br><nobr>selected <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>selecting <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../revolution.htm"><b>7</b></a> </nobr><br><nobr>selection <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>sense</b></a> <br><a href="../files/taper.htm"><b>separated</b></a> <br><a href="../files/sewing_meshes.htm"><b>sequence</b></a> <br><a href="../files/sewing_meshes.htm"><b>sequences</b></a> <br><nobr>set <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/deflection_1d.htm"><b>8</b></a> <a href="../files/cutting_quadrangles.htm"><b>9</b></a> <a href="../files/creating_groups.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/running_smesh_module.htm"><b>12</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>13</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>14</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>15</b></a> <a href="../files/local_length_hypothesis.htm"><b>16</b></a> <a href="../files/visualization_modes.htm"><b>17</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>18</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>19</b></a> <a href="../files/smoothing.htm"><b>20</b></a> <a href="../pattern_mapping.htm"><b>21</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>sets</b></a> <br><nobr>setting <a href="../files/deflection_1d.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>sew</b></a> <br><a href="../files/sewing_meshes.htm"><b>sewing</b></a> <br><a name="bms_SH"></a><a name="subkey_SH"></a><a href="../files/visualization_modes.htm"><b>shading</b></a> <br><nobr>shall <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/rotation.htm"><b>10</b></a> <a href="../files/merging_nodes.htm"><b>11</b></a> <a href="../files/uniting_two_triangles.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../files/translation.htm"><b>14</b></a> <a href="../files/symmetry.htm"><b>15</b></a> <a href="../revolution.htm"><b>16</b></a> <a href="../pattern_mapping.htm"><b>17</b></a> </nobr><br><nobr>shape <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>shapes</b></a> <br><nobr>shift <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> </nobr><br><nobr>shortest <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>should <a href="../extrusion.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/using_operations_on_groups.htm"><b>7</b></a> <a href="../files/smoothing.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> </nobr><br><nobr>shown <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/visualization_modes.htm"><b>shrink</b></a> <br><nobr><a name="bms_SI"></a><a name="subkey_SI"></a>side <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>sides <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/skew.htm"><b>3</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>similar</b></a> <br><nobr>simple <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>sizes</b></a> <br><nobr><a name="bms_SK"></a><a name="subkey_SK"></a>skew <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/skew.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_SM"></a><a name="subkey_SM"></a>smesh <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_hypotheses.htm"><b>8</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>9</b></a> <a href="../files/displaying_elements_numbers.htm"><b>10</b></a> <a href="../files/displacing_nodes.htm"><b>11</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>14</b></a> <a href="../files/sewing_meshes.htm"><b>15</b></a> <a href="../files/running_smesh_module.htm"><b>16</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>17</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>18</b></a> <a href="../files/visualization_modes.htm"><b>19</b></a> <a href="../files/using_smesh_module.htm"><b>20</b></a> <a href="../files/using_operations_on_groups.htm"><b>21</b></a> <a href="../files/uniting_two_triangles.htm"><b>22</b></a> </nobr><br><a href="../files/smoothing.htm"><b>smoothed</b></a> <br><a href="../files/smoothing.htm"><b>smoothing</b></a> <br><a href="../pattern_mapping.htm"><b>smp</b></a> <br><nobr><a name="bms_SO"></a><a name="subkey_SO"></a>so <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><nobr>sort <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_SP"></a><a name="subkey_SP"></a>space <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/constructing_groups_of_specific_elements.htm"><b>specific</b></a> <br><nobr>specified <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>3</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> </nobr><br><nobr>specifies <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>specify <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/rotation.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> </nobr><br><nobr>specifying <a href="../files/translation.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> </nobr><br><nobr>split <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/deflection_1d.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> </nobr><br><a name="bms_ST"></a><a name="subkey_ST"></a><a href="../files/creating_groups.htm"><b>standalone</b></a> <br><nobr>standard <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>start <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>starting <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>step</b></a> <br><nobr>steps <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>stored</b></a> <br><nobr>structure <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>study <a href="../files/running_smesh_module.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_SU"></a><a name="subkey_SU"></a>sub <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../files/merging_nodes.htm"><b>4</b></a> <a href="../files/translation.htm"><b>5</b></a> <a href="../files/symmetry.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>submenu <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><nobr>submesh <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>7</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>8</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><nobr>submeshes <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><a href="../files/cutting_quadrangles.htm"><b>supplementary</b></a> <br><nobr>surface <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>4</b></a> <a href="../revolution.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>surfaces</b></a> <br><nobr>surrounding <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_SW"></a><a name="subkey_SW"></a>swept <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a name="bms_SY"></a><a name="subkey_SY"></a><a href="../files/symmetry.htm"><b>symmetrical</b></a> <br><a href="../files/symmetry.htm"><b>symmetrically</b></a> <br><a href="../files/symmetry.htm"><b>symmetry</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_T"></a><a name="subkey_T{"></a>t <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_TA"></a><a name="subkey_TA"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>take</b></a> <br><nobr>taken <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>taper <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> </nobr><br><a name="bms_TE"></a><a name="subkey_TE"></a><a href="../files/smoothing.htm"><b>techniques</b></a> <br><nobr>tetrahedron <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>4</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>5</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>tetrahedrons</b></a> <br><nobr>text <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> <a href="../files/visualization_properties.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_TH"></a><a name="subkey_TH"></a>th <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>them <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>4</b></a> <a href="../files/merging_nodes.htm"><b>5</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> </nobr><br><nobr>three <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/visualization_modes.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> </nobr><br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>thus</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf7.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf7.htm b/doc/salome/gui/SMESH/whgdata/whlstf7.htm
new file mode 100755 (executable)
index 0000000..36d6d93
--- /dev/null
@@ -0,0 +1,52 @@
+<html>\r
+<head>\r
+<title>Search Words List</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<p class="ftsbody" align="center"><a href="whlstf6.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
+<p class="ftsbody">\r
+<nobr><a name="bms_TO"></a><a name="subkey_TO"></a>tolerance <a href="../files/merging_nodes.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../files/using_operations_on_groups.htm"><b>tool</b></a> <br><nobr>toolbar <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/editing_groups.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/constructing_meshes.htm"><b>10</b></a> <a href="../files/running_smesh_module.htm"><b>11</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>12</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>13</b></a> <a href="../files/length_of_edges.htm"><b>14</b></a> <a href="../files/viewing_mesh_info.htm"><b>15</b></a> <a href="../files/uniting_two_triangles.htm"><b>16</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>17</b></a> <a href="../files/taper.htm"><b>18</b></a> <a href="../files/smoothing.htm"><b>19</b></a> <a href="../files/skew.htm"><b>20</b></a> <a href="../revolution.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> <a href="../files/warp.htm"><b>23</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>toolbars</b></a> <br><nobr>topic <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> <a href="../files/visualization_properties.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>topological</b></a> <br><a href="../files/sewing_meshes.htm"><b>topologically</b></a> <br><a href="../files/about_meshes.htm"><b>topology</b></a> <br><a href="../files/smoothing.htm"><b>toward</b></a> <br><nobr><a name="bms_TR"></a><a name="subkey_TR"></a>transformation <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/merging_nodes.htm"><b>3</b></a> <a href="../files/translation.htm"><b>4</b></a> <a href="../files/symmetry.htm"><b>5</b></a> </nobr><br><a href="../files/displacing_nodes.htm"><b>transformed</b></a> <br><a href="../files/translation.htm"><b>translate</b></a> <br><a href="../files/translation.htm"><b>translated</b></a> <br><a href="../files/translation.htm"><b>translation</b></a> <br><nobr>triangle <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><nobr>triangles <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/uniting_two_triangles.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> <a href="../files/taper.htm"><b>9</b></a> <a href="../files/skew.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><nobr>triangulator <a href="../files/length_from_edges.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_TW"></a><a name="subkey_TW"></a>two <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/using_operations_on_groups.htm"><b>8</b></a> <a href="../files/uniting_two_triangles.htm"><b>9</b></a> <a href="../files/translation.htm"><b>10</b></a> <a href="../files/taper.htm"><b>11</b></a> <a href="../pattern_mapping.htm"><b>12</b></a> </nobr><br><nobr><a name="bms_TY"></a><a name="subkey_TY"></a>type <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/editing_hypotheses.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>7</b></a> <a href="../files/connectivity.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/scalar_bar_properties.htm"><b>10</b></a> <a href="../files/visualization_properties.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><nobr>types <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><a href="../files/smoothing.htm"><b>typically</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_U"></a><a name="subkey_U{"></a>u <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_UN"></a><a name="subkey_UN"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>unassign</b></a> <br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>unassigning</b></a> <br><a href="../files/smoothing.htm"><b>uniform</b></a> <br><nobr>union <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><nobr>unite <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/uniting_two_triangles.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><nobr>united <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>uniting <a href="../files/uniting_two_triangles.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>unless</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>unv</b></a> <br><nobr><a name="bms_UP"></a><a name="subkey_UP"></a>up <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/displaying_elements_numbers.htm"><b>3</b></a> <a href="../files/visualization_modes.htm"><b>4</b></a> </nobr><br><a href="../files/view_update.htm"><b>update</b></a> <br><nobr>updated <a href="../files/running_smesh_module.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>upper</b></a> <br><a name="bms_US"></a><a name="subkey_US"></a><a href="../files/about_quality_controls.htm"><b>usage</b></a> <br><nobr>used <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>2</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>4</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../files/deflection_1d.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>11</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>12</b></a> <a href="../files/local_length_hypothesis.htm"><b>13</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>14</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>15</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>16</b></a> <a href="../files/smoothing.htm"><b>17</b></a> <a href="../revolution.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> </nobr><br><nobr>user <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/merging_nodes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>using <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/using_smesh_module.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>usually <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_V"></a><a name="subkey_V{"></a><a href="../files/about_meshes.htm"><b>v</b></a> <br><nobr><a name="bms_VA"></a><a name="subkey_VA"></a>value <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/editing_hypotheses.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> </nobr><br><nobr>values <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VE"></a><a name="subkey_VE"></a>vector <a href="../extrusion.htm"><b>1</b></a> <a href="../files/rotation.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../revolution.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> </nobr><br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>versa</b></a> <br><nobr>vertex <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>vertices</b></a> <br><a name="bms_VI"></a><a name="subkey_VI"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>vice</b></a> <br><nobr>view <a href="../files/viewing_mesh_info.htm"><b>1</b></a> <a href="../files/view_update.htm"><b>2</b></a> </nobr><br><nobr>viewer <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>6</b></a> <a href="../files/displaying_elements_numbers.htm"><b>7</b></a> <a href="../files/displacing_nodes.htm"><b>8</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>9</b></a> <a href="../files/cutting_quadrangles.htm"><b>10</b></a> <a href="../files/creating_groups.htm"><b>11</b></a> <a href="../files/sewing_meshes.htm"><b>12</b></a> <a href="../files/running_smesh_module.htm"><b>13</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>14</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>15</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>16</b></a> <a href="../files/minimum_angle.htm"><b>17</b></a> <a href="../files/length_of_edges.htm"><b>18</b></a> <a href="../files/visualization_modes.htm"><b>19</b></a> <a href="../files/uniting_two_triangles.htm"><b>20</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>21</b></a> <a href="../files/taper.htm"><b>22</b></a> <a href="../files/smoothing.htm"><b>23</b></a> <a href="../files/skew.htm"><b>24</b></a> <a href="../revolution.htm"><b>25</b></a> <a href="../files/warp.htm"><b>26</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>viewing</b></a> <br><a href="../files/about_quality_controls.htm"><b>visual</b></a> <br><nobr>visualization <a href="../files/visualization_properties.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VO"></a><a name="subkey_VO"></a>volume <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>7</b></a> </nobr><br><nobr>volumes <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> </nobr><br><a name="bms_VT"></a><a name="subkey_VT"></a><a href="../files/running_smesh_module.htm"><b>vtk</b></a> <br>\r
+<br><br>\r
+<a name="bm_W"></a><a name="subkey_WA"></a><a href="../pattern_mapping.htm"><b>walking</b></a> <br><a href="../files/warp.htm"><b>warp</b></a> <br><nobr>warping <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><nobr>way <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a name="bms_WE"></a><a name="subkey_WE"></a><a href="../files/smoothing.htm"><b>weighted</b></a> <br><a href="../pattern_mapping.htm"><b>well</b></a> <br><nobr><a name="bms_WH"></a><a name="subkey_WH"></a>while <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><b>2</b></a> </nobr><br><nobr>whole <a href="../extrusion.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr>whose <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_WI"></a><a name="subkey_WI"></a>will <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/area_of_elements.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/about_meshing_algorithms.htm"><b>6</b></a> <a href="../files/about_meshes.htm"><b>7</b></a> <a href="../files/about_hypotheses.htm"><b>8</b></a> <a href="../extrusion.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_hypotheses.htm"><b>11</b></a> <a href="../files/editing_groups.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displaying_elements_numbers.htm"><b>14</b></a> <a href="../files/displacing_nodes.htm"><b>15</b></a> <a href="../files/deflection_1d.htm"><b>16</b></a> <a href="../files/cutting_quadrangles.htm"><b>17</b></a> <a href="../files/creating_groups.htm"><b>18</b></a> <a href="../files/constructing_submeshes.htm"><b>19</b></a> <a href="../files/constructing_meshes.htm"><b>20</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>21</b></a> <a href="../files/sewing_meshes.htm"><b>22</b></a> <a href="../files/running_smesh_module.htm"><b>23</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>24</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>25</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>26</b></a> <a href="../files/propagation_of_1d_hypothesis_on_opposite_edges.htm"><b>27</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>28</b></a> <a href="../files/minimum_angle.htm"><b>29</b></a> <a href="../files/local_length_hypothesis.htm"><b>30</b></a> <a href="../files/length_of_edges.htm"><b>31</b></a> <a href="../files/viewing_mesh_info.htm"><b>32</b></a> <a href="../files/using_operations_on_groups.htm"><b>33</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>34</b></a> <a href="../files/taper.htm"><b>35</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>36</b></a> <a href="../files/smoothing.htm"><b>37</b></a> <a href="../files/skew.htm"><b>38</b></a> <a href="../revolution.htm"><b>39</b></a> <a href="../pattern_mapping.htm"><b>40</b></a> <a href="../files/warp.htm"><b>41</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>window</b></a> <br><nobr>wire <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>2</b></a> <a href="../files/length_from_edges.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> </nobr><br><a href="../files/visualization_modes.htm"><b>wireframe</b></a> <br><nobr>within <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_WO"></a><a name="subkey_WO"></a><a href="../files/number_of_segments_hypothesis.htm"><b>words</b></a> <br><a href="../files/running_smesh_module.htm"><b>work</b></a> <br><nobr>would <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> </nobr><br>\r
+<br><br>\r
+<nobr><a name="bm_X"></a><a name="subkey_X{"></a>x <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_Y"></a><a name="subkey_Y{"></a><a href="../files/about_meshes.htm"><b>y</b></a> <br><nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>6</b></a> <a href="../files/about_quality_controls.htm"><b>7</b></a> <a href="../files/about_meshes.htm"><b>8</b></a> <a href="../files/about_hypotheses.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_hypotheses.htm"><b>11</b></a> <a href="../files/editing_groups.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displaying_elements_numbers.htm"><b>14</b></a> <a href="../files/displacing_nodes.htm"><b>15</b></a> <a href="../files/deflection_1d.htm"><b>16</b></a> <a href="../files/creating_groups.htm"><b>17</b></a> <a href="../files/constructing_submeshes.htm"><b>18</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>19</b></a> <a href="../files/rotation.htm"><b>20</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>21</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>22</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>23</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>24</b></a> <a href="../files/minimum_angle.htm"><b>25</b></a> <a href="../files/merging_nodes.htm"><b>26</b></a> <a href="../files/local_length_hypothesis.htm"><b>27</b></a> <a href="../files/length_of_edges.htm"><b>28</b></a> <a href="../files/visualization_modes.htm"><b>29</b></a> <a href="../files/viewing_mesh_info.htm"><b>30</b></a> <a href="../files/translation.htm"><b>31</b></a> <a href="../files/taper.htm"><b>32</b></a> <a href="../files/symmetry.htm"><b>33</b></a> <a href="../files/start_and_end_length_hypothesis.htm"><b>34</b></a> <a href="../files/smoothing.htm"><b>35</b></a> <a href="../files/skew.htm"><b>36</b></a> <a href="../pattern_mapping.htm"><b>37</b></a> <a href="../files/warp.htm"><b>38</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_Z"></a><a name="subkey_Z{"></a><a href="../files/about_meshes.htm"><b>z</b></a> <br><a name="bms_ZE"></a><a name="subkey_ZE"></a><a href="../pattern_mapping.htm"><b>zero</b></a> <br><br><br></p>\r
+</body>\r
+\r
+</html>\r
+\r
index c3d21e37a65e16f9fff9d8ba4c15e878fa591fe4..6e96a51fe254ffd8cab9668636e6dc8e10d94631 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_A"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_A" target="ftslist" title="search letter AB"><b>AB</b></a> <a href="whlstf0.htm#bms_AC" target="ftslist" title="search letter AC"><b>AC</b></a> <a href="whlstf0.htm#bms_AD" target="ftslist" title="search letter AD"><b>AD</b></a> <a href="whlstf0.htm#bms_AL" target="ftslist" title="search letter AL"><b>AL</b></a> <a href="whlstf0.htm#bms_AN" target="ftslist" title="search letter AN"><b>AN</b></a> <a href="whlstf0.htm#bms_AP" target="ftslist" title="search letter AP"><b>AP</b></a> <a href="whlstf0.htm#bms_AR" target="ftslist" title="search letter AR"><b>AR</b></a> <a href="whlstf0.htm#bms_AS" target="ftslist" title="search letter AS"><b>AS</b></a> <a href="whlstf0.htm#bms_AV" target="ftslist" title="search letter AV"><b>AV</b></a> <a href="whlstf0.htm#bms_AX" target="ftslist" title="search letter AX"><b>AX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_A"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_A" target="ftslist" title="search letter AB"><b>AB</b></a> <a href="whlstf0.htm#bms_AC" target="ftslist" title="search letter AC"><b>AC</b></a> <a href="whlstf0.htm#bms_AD" target="ftslist" title="search letter AD"><b>AD</b></a> <a href="whlstf0.htm#bms_AG" target="ftslist" title="search letter AG"><b>AG</b></a> <a href="whlstf0.htm#bms_AL" target="ftslist" title="search letter AL"><b>AL</b></a> <a href="whlstf0.htm#bms_AN" target="ftslist" title="search letter AN"><b>AN</b></a> <a href="whlstf0.htm#bms_AP" target="ftslist" title="search letter AP"><b>AP</b></a> <a href="whlstf0.htm#bms_AR" target="ftslist" title="search letter AR"><b>AR</b></a> <a href="whlstf0.htm#bms_AS" target="ftslist" title="search letter AS"><b>AS</b></a> <a href="whlstf0.htm#bms_AU" target="ftslist" title="search letter AU"><b>AU</b></a> <a href="whlstf0.htm#bms_AV" target="ftslist" title="search letter AV"><b>AV</b></a> <a href="whlstf0.htm#bms_AX" target="ftslist" title="search letter AX"><b>AX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 9e477497ab6bfff7c918926945345690d8d77b79..6cc407bdff14972cbdc08744d59a926872781927 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_B"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_B" target="ftslist" title="search letter BA"><b>BA</b></a> <a href="whlstf0.htm#bms_BE" target="ftslist" title="search letter BE"><b>BE</b></a> <a href="whlstf0.htm#bms_BI" target="ftslist" title="search letter BI"><b>BI</b></a> <a href="whlstf0.htm#bms_BO" target="ftslist" title="search letter BO"><b>BO</b></a> <a href="whlstf0.htm#bms_BR" target="ftslist" title="search letter BR"><b>BR</b></a> <a href="whlstf0.htm#bms_BU" target="ftslist" title="search letter BU"><b>BU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_B"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_B" target="ftslist" title="search letter BA"><b>BA</b></a> <a href="whlstf0.htm#bms_BE" target="ftslist" title="search letter BE"><b>BE</b></a> <a href="whlstf0.htm#bms_BI" target="ftslist" title="search letter BI"><b>BI</b></a> <a href="whlstf0.htm#bms_BO" target="ftslist" title="search letter BO"><b>BO</b></a> <a href="whlstf1.htm#bms_BR" target="ftslist" title="search letter BR"><b>BR</b></a> <a href="whlstf1.htm#bms_BU" target="ftslist" title="search letter BU"><b>BU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index ca09c1d874303f2ae075b54fa924cd7a1cd0113a..279e88dfba6351bac7460bf9e1503d7f3919a79c 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_K"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_K" target="ftslist" title="search letter K "><b>K </b></a> <a href="whlstf2.htm#bms_KI" target="ftslist" title="search letter KI"><b>KI</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_K"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_K" target="ftslist" title="search letter KE"><b>KE</b></a> <a href="whlstf4.htm#bms_KI" target="ftslist" title="search letter KI"><b>KI</b></a> <a href="whlstf4.htm#bms_KN" target="ftslist" title="search letter KN"><b>KN</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 4fd967275c58ba250703a59654d3c2e3d0bb4a8e..a1f912d0e9eef93c9e3ccf381abb3292dd0b5603 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_L"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_L" target="ftslist" title="search letter L "><b>L </b></a> <a href="whlstf2.htm#bms_LA" target="ftslist" title="search letter LA"><b>LA</b></a> <a href="whlstf2.htm#bms_LE" target="ftslist" title="search letter LE"><b>LE</b></a> <a href="whlstf2.htm#bms_LI" target="ftslist" title="search letter LI"><b>LI</b></a> <a href="whlstf2.htm#bms_LK" target="ftslist" title="search letter LK"><b>LK</b></a> <a href="whlstf2.htm#bms_LO" target="ftslist" title="search letter LO"><b>LO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_L"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_L" target="ftslist" title="search letter L "><b>L </b></a> <a href="whlstf4.htm#bms_LA" target="ftslist" title="search letter LA"><b>LA</b></a> <a href="whlstf4.htm#bms_LE" target="ftslist" title="search letter LE"><b>LE</b></a> <a href="whlstf4.htm#bms_LI" target="ftslist" title="search letter LI"><b>LI</b></a> <a href="whlstf4.htm#bms_LK" target="ftslist" title="search letter LK"><b>LK</b></a> <a href="whlstf4.htm#bms_LO" target="ftslist" title="search letter LO"><b>LO</b></a> <a href="whlstf4.htm#bms_LY" target="ftslist" title="search letter LY"><b>LY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index bfe69020ac83248b23e8ba229819df11a3e763f8..9733f350c4254ac9418f59fa05cd3685c8129d4f 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_M"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_M" target="ftslist" title="search letter MA"><b>MA</b></a> <a href="whlstf2.htm#bms_ME" target="ftslist" title="search letter ME"><b>ME</b></a> <a href="whlstf2.htm#bms_MI" target="ftslist" title="search letter MI"><b>MI</b></a> <a href="whlstf2.htm#bms_MO" target="ftslist" title="search letter MO"><b>MO</b></a> <a href="whlstf2.htm#bms_MU" target="ftslist" title="search letter MU"><b>MU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_M"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_M" target="ftslist" title="search letter MA"><b>MA</b></a> <a href="whlstf4.htm#bms_ME" target="ftslist" title="search letter ME"><b>ME</b></a> <a href="whlstf4.htm#bms_MI" target="ftslist" title="search letter MI"><b>MI</b></a> <a href="whlstf4.htm#bms_MO" target="ftslist" title="search letter MO"><b>MO</b></a> <a href="whlstf4.htm#bms_MU" target="ftslist" title="search letter MU"><b>MU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index d0d0eeac6bde1f7134ef63629c6cddb6480cba95..359bc6d19ee8b5e96392b366c9ecf4364e62cef4 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_N"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_N" target="ftslist" title="search letter NA"><b>NA</b></a> <a href="whlstf2.htm#bms_NB" target="ftslist" title="search letter NB"><b>NB</b></a> <a href="whlstf2.htm#bms_NE" target="ftslist" title="search letter NE"><b>NE</b></a> <a href="whlstf2.htm#bms_NO" target="ftslist" title="search letter NO"><b>NO</b></a> <a href="whlstf2.htm#bms_NU" target="ftslist" title="search letter NU"><b>NU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_N"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_N" target="ftslist" title="search letter N "><b>N </b></a> <a href="whlstf4.htm#bms_NA" target="ftslist" title="search letter NA"><b>NA</b></a> <a href="whlstf4.htm#bms_NB" target="ftslist" title="search letter NB"><b>NB</b></a> <a href="whlstf4.htm#bms_NE" target="ftslist" title="search letter NE"><b>NE</b></a> <a href="whlstf5.htm#bms_NO" target="ftslist" title="search letter NO"><b>NO</b></a> <a href="whlstf5.htm#bms_NU" target="ftslist" title="search letter NU"><b>NU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 6ba06ed43bf811ef5caee319e9ddfc957443246e..d2d32a28a0c672ef9de18c2092e50d6967e0f223 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_O"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_O" target="ftslist" title="search letter OB"><b>OB</b></a> <a href="whlstf2.htm#bms_OK" target="ftslist" title="search letter OK"><b>OK</b></a> <a href="whlstf2.htm#bms_ON" target="ftslist" title="search letter ON"><b>ON</b></a> <a href="whlstf2.htm#bms_OP" target="ftslist" title="search letter OP"><b>OP</b></a> <a href="whlstf2.htm#bms_OR" target="ftslist" title="search letter OR"><b>OR</b></a> <a href="whlstf2.htm#bms_OW" target="ftslist" title="search letter OW"><b>OW</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_O"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_O" target="ftslist" title="search letter OB"><b>OB</b></a> <a href="whlstf5.htm#bms_OK" target="ftslist" title="search letter OK"><b>OK</b></a> <a href="whlstf5.htm#bms_ON" target="ftslist" title="search letter ON"><b>ON</b></a> <a href="whlstf5.htm#bms_OP" target="ftslist" title="search letter OP"><b>OP</b></a> <a href="whlstf5.htm#bms_OR" target="ftslist" title="search letter OR"><b>OR</b></a> <a href="whlstf5.htm#bms_OT" target="ftslist" title="search letter OT"><b>OT</b></a> <a href="whlstf5.htm#bms_OU" target="ftslist" title="search letter OU"><b>OU</b></a> <a href="whlstf5.htm#bms_OW" target="ftslist" title="search letter OW"><b>OW</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index c38ad9afc397fde35cedca79abe4d824e6b8767c..41d264168241b90b1d464ff06b2f1d1a8ee43470 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_P"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_P" target="ftslist" title="search letter PA"><b>PA</b></a> <a href="whlstf2.htm#bms_PE" target="ftslist" title="search letter PE"><b>PE</b></a> <a href="whlstf2.htm#bms_PL" target="ftslist" title="search letter PL"><b>PL</b></a> <a href="whlstf2.htm#bms_PO" target="ftslist" title="search letter PO"><b>PO</b></a> <a href="whlstf2.htm#bms_PR" target="ftslist" title="search letter PR"><b>PR</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_P"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_P" target="ftslist" title="search letter PA"><b>PA</b></a> <a href="whlstf5.htm#bms_PE" target="ftslist" title="search letter PE"><b>PE</b></a> <a href="whlstf5.htm#bms_PL" target="ftslist" title="search letter PL"><b>PL</b></a> <a href="whlstf5.htm#bms_PO" target="ftslist" title="search letter PO"><b>PO</b></a> <a href="whlstf5.htm#bms_PR" target="ftslist" title="search letter PR"><b>PR</b></a> <a href="whlstf5.htm#bms_PS" target="ftslist" title="search letter PS"><b>PS</b></a> <a href="whlstf5.htm#bms_PU" target="ftslist" title="search letter PU"><b>PU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index cc776b1a825b8bbad723b4f41ca9c6928c05804e..da1c3fb8ec9a5ff9ce76500344687182a77b4023 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_R"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_R" target="ftslist" title="search letter RA"><b>RA</b></a> <a href="whlstf3.htm#bms_RE" target="ftslist" title="search letter RE"><b>RE</b></a> <a href="whlstf3.htm#bms_RI" target="ftslist" title="search letter RI"><b>RI</b></a> <a href="whlstf3.htm#bms_RO" target="ftslist" title="search letter RO"><b>RO</b></a> <a href="whlstf3.htm#bms_RU" target="ftslist" title="search letter RU"><b>RU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_R"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf5.htm#bm_R" target="ftslist" title="search letter RA"><b>RA</b></a> <a href="whlstf5.htm#bms_RE" target="ftslist" title="search letter RE"><b>RE</b></a> <a href="whlstf6.htm#bms_RI" target="ftslist" title="search letter RI"><b>RI</b></a> <a href="whlstf6.htm#bms_RO" target="ftslist" title="search letter RO"><b>RO</b></a> <a href="whlstf6.htm#bms_RU" target="ftslist" title="search letter RU"><b>RU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 00a4f933c6261761d880a96d55d705aa94fd3b8b..018a269442be897f198bdd609e29d2e253754bec 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_S"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_S" target="ftslist" title="search letter S "><b>S </b></a> <a href="whlstf3.htm#bms_SA" target="ftslist" title="search letter SA"><b>SA</b></a> <a href="whlstf3.htm#bms_SC" target="ftslist" title="search letter SC"><b>SC</b></a> <a href="whlstf3.htm#bms_SE" target="ftslist" title="search letter SE"><b>SE</b></a> <a href="whlstf3.htm#bms_SH" target="ftslist" title="search letter SH"><b>SH</b></a> <a href="whlstf3.htm#bms_SI" target="ftslist" title="search letter SI"><b>SI</b></a> <a href="whlstf3.htm#bms_SK" target="ftslist" title="search letter SK"><b>SK</b></a> <a href="whlstf3.htm#bms_SM" target="ftslist" title="search letter SM"><b>SM</b></a> <a href="whlstf3.htm#bms_SO" target="ftslist" title="search letter SO"><b>SO</b></a> <a href="whlstf3.htm#bms_SP" target="ftslist" title="search letter SP"><b>SP</b></a> <a href="whlstf3.htm#bms_ST" target="ftslist" title="search letter ST"><b>ST</b></a> <a href="whlstf3.htm#bms_SU" target="ftslist" title="search letter SU"><b>SU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_S"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_S" target="ftslist" title="search letter S "><b>S </b></a> <a href="whlstf6.htm#bms_SA" target="ftslist" title="search letter SA"><b>SA</b></a> <a href="whlstf6.htm#bms_SC" target="ftslist" title="search letter SC"><b>SC</b></a> <a href="whlstf6.htm#bms_SE" target="ftslist" title="search letter SE"><b>SE</b></a> <a href="whlstf6.htm#bms_SH" target="ftslist" title="search letter SH"><b>SH</b></a> <a href="whlstf6.htm#bms_SI" target="ftslist" title="search letter SI"><b>SI</b></a> <a href="whlstf6.htm#bms_SK" target="ftslist" title="search letter SK"><b>SK</b></a> <a href="whlstf6.htm#bms_SM" target="ftslist" title="search letter SM"><b>SM</b></a> <a href="whlstf6.htm#bms_SO" target="ftslist" title="search letter SO"><b>SO</b></a> <a href="whlstf6.htm#bms_SP" target="ftslist" title="search letter SP"><b>SP</b></a> <a href="whlstf6.htm#bms_ST" target="ftslist" title="search letter ST"><b>ST</b></a> <a href="whlstf6.htm#bms_SU" target="ftslist" title="search letter SU"><b>SU</b></a> <a href="whlstf6.htm#bms_SW" target="ftslist" title="search letter SW"><b>SW</b></a> <a href="whlstf6.htm#bms_SY" target="ftslist" title="search letter SY"><b>SY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index a1ab8f7becfa57995edd4ffc9a75f1495cb13333..28b4bc669a4242ba22eb654396de45bdb998b1e5 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_T"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_T" target="ftslist" title="search letter T "><b>T </b></a> <a href="whlstf3.htm#bms_TA" target="ftslist" title="search letter TA"><b>TA</b></a> <a href="whlstf3.htm#bms_TE" target="ftslist" title="search letter TE"><b>TE</b></a> <a href="whlstf3.htm#bms_TH" target="ftslist" title="search letter TH"><b>TH</b></a> <a href="whlstf3.htm#bms_TO" target="ftslist" title="search letter TO"><b>TO</b></a> <a href="whlstf3.htm#bms_TR" target="ftslist" title="search letter TR"><b>TR</b></a> <a href="whlstf3.htm#bms_TW" target="ftslist" title="search letter TW"><b>TW</b></a> <a href="whlstf3.htm#bms_TY" target="ftslist" title="search letter TY"><b>TY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_T"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf6.htm#bm_T" target="ftslist" title="search letter T "><b>T </b></a> <a href="whlstf6.htm#bms_TA" target="ftslist" title="search letter TA"><b>TA</b></a> <a href="whlstf6.htm#bms_TE" target="ftslist" title="search letter TE"><b>TE</b></a> <a href="whlstf6.htm#bms_TH" target="ftslist" title="search letter TH"><b>TH</b></a> <a href="whlstf7.htm#bms_TO" target="ftslist" title="search letter TO"><b>TO</b></a> <a href="whlstf7.htm#bms_TR" target="ftslist" title="search letter TR"><b>TR</b></a> <a href="whlstf7.htm#bms_TW" target="ftslist" title="search letter TW"><b>TW</b></a> <a href="whlstf7.htm#bms_TY" target="ftslist" title="search letter TY"><b>TY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 354e37fba617b4b132806eb217fca386e8be3260..0c980e5dd76bacc368d7a31eda4b3c083af90af2 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_U"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_U" target="ftslist" title="search letter U "><b>U </b></a> <a href="whlstf3.htm#bms_UN" target="ftslist" title="search letter UN"><b>UN</b></a> <a href="whlstf3.htm#bms_UP" target="ftslist" title="search letter UP"><b>UP</b></a> <a href="whlstf3.htm#bms_US" target="ftslist" title="search letter US"><b>US</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_U"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_U" target="ftslist" title="search letter U "><b>U </b></a> <a href="whlstf7.htm#bms_UN" target="ftslist" title="search letter UN"><b>UN</b></a> <a href="whlstf7.htm#bms_UP" target="ftslist" title="search letter UP"><b>UP</b></a> <a href="whlstf7.htm#bms_US" target="ftslist" title="search letter US"><b>US</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 2893bcc1bd261830894fb3fc6d251b810cbeb193..10d30f51a1e8d5c5d2b691a54eb6cc20dd867685 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_C"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_C" target="ftslist" title="search letter CA"><b>CA</b></a> <a href="whlstf0.htm#bms_CH" target="ftslist" title="search letter CH"><b>CH</b></a> <a href="whlstf0.htm#bms_CL" target="ftslist" title="search letter CL"><b>CL</b></a> <a href="whlstf0.htm#bms_CO" target="ftslist" title="search letter CO"><b>CO</b></a> <a href="whlstf1.htm#bms_CR" target="ftslist" title="search letter CR"><b>CR</b></a> <a href="whlstf1.htm#bms_CU" target="ftslist" title="search letter CU"><b>CU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_C"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_C" target="ftslist" title="search letter CA"><b>CA</b></a> <a href="whlstf1.htm#bms_CE" target="ftslist" title="search letter CE"><b>CE</b></a> <a href="whlstf1.htm#bms_CH" target="ftslist" title="search letter CH"><b>CH</b></a> <a href="whlstf1.htm#bms_CL" target="ftslist" title="search letter CL"><b>CL</b></a> <a href="whlstf1.htm#bms_CO" target="ftslist" title="search letter CO"><b>CO</b></a> <a href="whlstf2.htm#bms_CR" target="ftslist" title="search letter CR"><b>CR</b></a> <a href="whlstf2.htm#bms_CU" target="ftslist" title="search letter CU"><b>CU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 92ab563e43507d608f53794c2df544b281626fb8..779c1e94dc9c80cac25d769ba4dbf217da0bf0cb 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_V"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_V" target="ftslist" title="search letter V "><b>V </b></a> <a href="whlstf3.htm#bms_VA" target="ftslist" title="search letter VA"><b>VA</b></a> <a href="whlstf3.htm#bms_VE" target="ftslist" title="search letter VE"><b>VE</b></a> <a href="whlstf3.htm#bms_VI" target="ftslist" title="search letter VI"><b>VI</b></a> <a href="whlstf3.htm#bms_VO" target="ftslist" title="search letter VO"><b>VO</b></a> <a href="whlstf3.htm#bms_VT" target="ftslist" title="search letter VT"><b>VT</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_V"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_V" target="ftslist" title="search letter V "><b>V </b></a> <a href="whlstf7.htm#bms_VA" target="ftslist" title="search letter VA"><b>VA</b></a> <a href="whlstf7.htm#bms_VE" target="ftslist" title="search letter VE"><b>VE</b></a> <a href="whlstf7.htm#bms_VI" target="ftslist" title="search letter VI"><b>VI</b></a> <a href="whlstf7.htm#bms_VO" target="ftslist" title="search letter VO"><b>VO</b></a> <a href="whlstf7.htm#bms_VT" target="ftslist" title="search letter VT"><b>VT</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 0548c7da9764523efe721e2ec8108e95c8e9f8ba..7aedae7909cb03cec5c5db5efeac52a6845846c7 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_W"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_W" target="ftslist" title="search letter WA"><b>WA</b></a> <a href="whlstf3.htm#bms_WH" target="ftslist" title="search letter WH"><b>WH</b></a> <a href="whlstf4.htm#bms_WI" target="ftslist" title="search letter WI"><b>WI</b></a> <a href="whlstf4.htm#bms_WO" target="ftslist" title="search letter WO"><b>WO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_W"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_W" target="ftslist" title="search letter WA"><b>WA</b></a> <a href="whlstf7.htm#bms_WE" target="ftslist" title="search letter WE"><b>WE</b></a> <a href="whlstf7.htm#bms_WH" target="ftslist" title="search letter WH"><b>WH</b></a> <a href="whlstf7.htm#bms_WI" target="ftslist" title="search letter WI"><b>WI</b></a> <a href="whlstf7.htm#bms_WO" target="ftslist" title="search letter WO"><b>WO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index c8b1ce0a4f97238db27a69ddd82666ce4b2ee615..26a585fb46d3620b34c0c9aa657e526e3d3d518f 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_Y"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_Y" target="ftslist" title="search letter Y "><b>Y </b></a> <a href="whlstf4.htm#bms_YO" target="ftslist" title="search letter YO"><b>YO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_Y"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_Y" target="ftslist" title="search letter Y "><b>Y </b></a> <a href="whlstf7.htm#bms_YO" target="ftslist" title="search letter YO"><b>YO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl23.htm b/doc/salome/gui/SMESH/whgdata/whlstfl23.htm
new file mode 100755 (executable)
index 0000000..afed4bf
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_Z"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf7.htm#bm_Z" target="ftslist" title="search letter Z "><b>Z </b></a> <a href="whlstf7.htm#bms_ZE" target="ftslist" title="search letter ZE"><b>ZE</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
index 5a38f48ff8fdab947cc0e15531189c035d9fbdf6..1f8c82d941a43159da8e318e323705c5ac5d3f0a 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_D"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_D" target="ftslist" title="search letter D "><b>D </b></a> <a href="whlstf1.htm#bms_DE" target="ftslist" title="search letter DE"><b>DE</b></a> <a href="whlstf1.htm#bms_DI" target="ftslist" title="search letter DI"><b>DI</b></a> <a href="whlstf1.htm#bms_DO" target="ftslist" title="search letter DO"><b>DO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_D"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_D" target="ftslist" title="search letter D "><b>D </b></a> <a href="whlstf2.htm#bms_DA" target="ftslist" title="search letter DA"><b>DA</b></a> <a href="whlstf2.htm#bms_DE" target="ftslist" title="search letter DE"><b>DE</b></a> <a href="whlstf2.htm#bms_DI" target="ftslist" title="search letter DI"><b>DI</b></a> <a href="whlstf2.htm#bms_DO" target="ftslist" title="search letter DO"><b>DO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 39d6e98e21be8bba9e0a264fd632ce7048c7432b..2c9f64dbb0c5dd6a46a70a67ac14587121588eca 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_E"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_E" target="ftslist" title="search letter ED"><b>ED</b></a> <a href="whlstf1.htm#bms_EL" target="ftslist" title="search letter EL"><b>EL</b></a> <a href="whlstf1.htm#bms_EN" target="ftslist" title="search letter EN"><b>EN</b></a> <a href="whlstf1.htm#bms_EQ" target="ftslist" title="search letter EQ"><b>EQ</b></a> <a href="whlstf1.htm#bms_ET" target="ftslist" title="search letter ET"><b>ET</b></a> <a href="whlstf1.htm#bms_EV" target="ftslist" title="search letter EV"><b>EV</b></a> <a href="whlstf1.htm#bms_EX" target="ftslist" title="search letter EX"><b>EX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_E"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_E" target="ftslist" title="search letter E "><b>E </b></a> <a href="whlstf2.htm#bms_EA" target="ftslist" title="search letter EA"><b>EA</b></a> <a href="whlstf2.htm#bms_ED" target="ftslist" title="search letter ED"><b>ED</b></a> <a href="whlstf2.htm#bms_EF" target="ftslist" title="search letter EF"><b>EF</b></a> <a href="whlstf2.htm#bms_EI" target="ftslist" title="search letter EI"><b>EI</b></a> <a href="whlstf2.htm#bms_EL" target="ftslist" title="search letter EL"><b>EL</b></a> <a href="whlstf2.htm#bms_EN" target="ftslist" title="search letter EN"><b>EN</b></a> <a href="whlstf3.htm#bms_EQ" target="ftslist" title="search letter EQ"><b>EQ</b></a> <a href="whlstf3.htm#bms_ET" target="ftslist" title="search letter ET"><b>ET</b></a> <a href="whlstf3.htm#bms_EV" target="ftslist" title="search letter EV"><b>EV</b></a> <a href="whlstf3.htm#bms_EX" target="ftslist" title="search letter EX"><b>EX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 1b78c5664dd038da6bb9b447e9df645f0ce24e7f..a4c02a33067b51ad52d52b6eae4aa1559364b66e 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_F"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_F" target="ftslist" title="search letter FA"><b>FA</b></a> <a href="whlstf1.htm#bms_FI" target="ftslist" title="search letter FI"><b>FI</b></a> <a href="whlstf1.htm#bms_FO" target="ftslist" title="search letter FO"><b>FO</b></a> <a href="whlstf1.htm#bms_FR" target="ftslist" title="search letter FR"><b>FR</b></a> <a href="whlstf1.htm#bms_FU" target="ftslist" title="search letter FU"><b>FU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_F"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_F" target="ftslist" title="search letter FA"><b>FA</b></a> <a href="whlstf3.htm#bms_FI" target="ftslist" title="search letter FI"><b>FI</b></a> <a href="whlstf3.htm#bms_FL" target="ftslist" title="search letter FL"><b>FL</b></a> <a href="whlstf3.htm#bms_FO" target="ftslist" title="search letter FO"><b>FO</b></a> <a href="whlstf3.htm#bms_FR" target="ftslist" title="search letter FR"><b>FR</b></a> <a href="whlstf3.htm#bms_FU" target="ftslist" title="search letter FU"><b>FU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index b1e04ea005bc30a909412760cebc957391dbdd44..7a68dcf42113e2c61eba1f5ab5fc80a0ec570cdf 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_G"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_G" target="ftslist" title="search letter GE"><b>GE</b></a> <a href="whlstf1.htm#bms_GH" target="ftslist" title="search letter GH"><b>GH</b></a> <a href="whlstf1.htm#bms_GI" target="ftslist" title="search letter GI"><b>GI</b></a> <a href="whlstf1.htm#bms_GL" target="ftslist" title="search letter GL"><b>GL</b></a> <a href="whlstf1.htm#bms_GR" target="ftslist" title="search letter GR"><b>GR</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_G"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_G" target="ftslist" title="search letter GE"><b>GE</b></a> <a href="whlstf3.htm#bms_GH" target="ftslist" title="search letter GH"><b>GH</b></a> <a href="whlstf3.htm#bms_GI" target="ftslist" title="search letter GI"><b>GI</b></a> <a href="whlstf3.htm#bms_GL" target="ftslist" title="search letter GL"><b>GL</b></a> <a href="whlstf3.htm#bms_GO" target="ftslist" title="search letter GO"><b>GO</b></a> <a href="whlstf3.htm#bms_GR" target="ftslist" title="search letter GR"><b>GR</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index c7fc1fb24f13e5b12dc44c68705abc81ac0f8462..93f24925363d6da5486b5f4cb4f0fc611691ec65 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_H"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_H" target="ftslist" title="search letter H "><b>H </b></a> <a href="whlstf1.htm#bms_HA" target="ftslist" title="search letter HA"><b>HA</b></a> <a href="whlstf1.htm#bms_HE" target="ftslist" title="search letter HE"><b>HE</b></a> <a href="whlstf1.htm#bms_HI" target="ftslist" title="search letter HI"><b>HI</b></a> <a href="whlstf1.htm#bms_HY" target="ftslist" title="search letter HY"><b>HY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_H"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_H" target="ftslist" title="search letter H "><b>H </b></a> <a href="whlstf3.htm#bms_HA" target="ftslist" title="search letter HA"><b>HA</b></a> <a href="whlstf3.htm#bms_HE" target="ftslist" title="search letter HE"><b>HE</b></a> <a href="whlstf3.htm#bms_HI" target="ftslist" title="search letter HI"><b>HI</b></a> <a href="whlstf3.htm#bms_HO" target="ftslist" title="search letter HO"><b>HO</b></a> <a href="whlstf3.htm#bms_HY" target="ftslist" title="search letter HY"><b>HY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index c6f77804839cd8938b32cb33086811b24c2d0850..c274d4d80877c94a43ca566d8b81d792a735db7e 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_I"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_I" target="ftslist" title="search letter I "><b>I </b></a> <a href="whlstf2.htm#bms_IC" target="ftslist" title="search letter IC"><b>IC</b></a> <a href="whlstf2.htm#bms_ID" target="ftslist" title="search letter ID"><b>ID</b></a> <a href="whlstf2.htm#bms_IF" target="ftslist" title="search letter IF"><b>IF</b></a> <a href="whlstf2.htm#bms_IM" target="ftslist" title="search letter IM"><b>IM</b></a> <a href="whlstf2.htm#bms_IN" target="ftslist" title="search letter IN"><b>IN</b></a> <a href="whlstf2.htm#bms_IT" target="ftslist" title="search letter IT"><b>IT</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_I"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_I" target="ftslist" title="search letter I "><b>I </b></a> <a href="whlstf3.htm#bms_IC" target="ftslist" title="search letter IC"><b>IC</b></a> <a href="whlstf3.htm#bms_ID" target="ftslist" title="search letter ID"><b>ID</b></a> <a href="whlstf3.htm#bms_IF" target="ftslist" title="search letter IF"><b>IF</b></a> <a href="whlstf3.htm#bms_IM" target="ftslist" title="search letter IM"><b>IM</b></a> <a href="whlstf3.htm#bms_IN" target="ftslist" title="search letter IN"><b>IN</b></a> <a href="whlstf4.htm#bms_IS" target="ftslist" title="search letter IS"><b>IS</b></a> <a href="whlstf4.htm#bms_IT" target="ftslist" title="search letter IT"><b>IT</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 230870801c0dc9544538cf057bca2bdabe104b7d..32bf89bb5dba4d86c13e7ccd554d7785e6551496 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0">\r
 \r
-<p class="ftsheader"><a name="subkey_J"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_J" target="ftslist" title="search letter J "><b>J </b></a> <a href="whlstf2.htm#bms_JO" target="ftslist" title="search letter JO"><b>JO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+<p class="ftsheader"><a name="subkey_J"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf4.htm#bm_J" target="ftslist" title="search letter JO"><b>JO</b></a> <a href="whlstf4.htm#bms_JU" target="ftslist" title="search letter JU"><b>JU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 7389506d8e6d881aeee742333a46fb6214b58120..6ecc52f02db60108f5dd49b05d3f6c5ca1e482d1 100755 (executable)
@@ -42,9 +42,9 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 &nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
 </p>\r
 \r
 </td></tr>\r
index cdd508f051ba64ef3dbdd1437bb92a61e61ab87b..c4b4843daff476ad4c41c5b0999efbf12c4fcdb7 100755 (executable)
@@ -42,15 +42,13 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 &nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt1.htm#10" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_modification_of_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About modification of meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/adding_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding nodes and elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/removing_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Removing nodes and elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displacing_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displacing nodes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/changing_orientation_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Changing orientation of elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/diagonal_iversion_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Diagonal inversion of elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt1.htm#10" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/creating_groups.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Creating groups</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/editing_groups.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Editing groups</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/using_operations_on_groups.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Using operations on groups</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_groups_of_specific_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing groups of specific elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
 </p>\r
 \r
 </td></tr>\r
index ca945ce80284882e157cf227f5dee5fab7ad71c2..a3763bf6e2972b6cb9b728380bcc5b0278afdea2 100755 (executable)
@@ -42,12 +42,23 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 &nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt1.htm#11" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/viewing_mesh_info.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Viewing mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displaying_nodes_numbers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying nodes numbers</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displaying_elements_numbers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying elements numbers</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt1.htm#11" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/adding_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding nodes and elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/removing_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Removing nodes and elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/renumbering_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Renumbering nodes and elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Transforming meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displacing_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Moving nodes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/diagonal_iversion_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Diagonal inversion of elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_two_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting two triangles</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_a_set_of_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting a set of triangles</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/changing_orientation_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Changing orientation of elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/cutting_quadrangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Cutting quadrangles</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/smoothing.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Smoothing</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../extrusion.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Extrusion</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../revolution.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Revolution</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../pattern_mapping.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Pattern mapping</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
 </p>\r
 \r
 </td></tr>\r
index 6603795ca43e3add941004e97ec28a0e97f888ec..2f8657804f886e611637afc531e16e8823b8da09 100755 (executable)
@@ -42,13 +42,28 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 &nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt1.htm#12" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/visualization_modes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Visualization modes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/visualization_properties.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Visualization properties</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/view_update.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> View update</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/scalar_bar_properties.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Scalar Bar properties</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt1.htm#11" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/adding_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding nodes and elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/removing_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Removing nodes and elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/renumbering_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Renumbering nodes and elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt11.htm#12" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Transforming meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/translation.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Translation</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/rotation.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Rotation</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/symmetry.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Symmetry</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/sewing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Sewing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/merging_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Merging nodes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displacing_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Moving nodes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/diagonal_iversion_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Diagonal inversion of elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_two_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting two triangles</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_a_set_of_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting a set of triangles</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/changing_orientation_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Changing orientation of elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/cutting_quadrangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Cutting quadrangles</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/smoothing.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Smoothing</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../extrusion.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Extrusion</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../revolution.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Revolution</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../pattern_mapping.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Pattern mapping</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
 </p>\r
 \r
 </td></tr>\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt13.htm b/doc/salome/gui/SMESH/whgdata/whlstt13.htm
new file mode 100755 (executable)
index 0000000..47edf38
--- /dev/null
@@ -0,0 +1,61 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt1.htm#13" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/viewing_mesh_info.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Viewing mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displaying_nodes_numbers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying nodes numbers</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displaying_elements_numbers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying elements numbers</a></nobr><br>\r
+</p>\r
+\r
+</td></tr>\r
+<tr><td>\r
+<p><img src="whexpbar.gif" > <p>\r
+</td></tr>\r
+</table>\r
+</body>\r
+\r
+</html>\r
+\r
index 48c3be721b1995b44456ea189fbd1e4a3c9dc926..269cecdc953e612d7df3d516ebd311edf100c111 100755 (executable)
@@ -49,9 +49,9 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
 </p>\r
 \r
 </td></tr>\r
index 30c7125d20cac0c2381652c41b488447c50d0ae2..52cd5358c00366475e391a88f01426cb2d0f5690 100755 (executable)
@@ -60,9 +60,9 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
 </p>\r
 \r
 </td></tr>\r
index 32e870982892caac801b6fb2cc7709caabe3c133..1ae2766f9ac542ae8b6673abf01f238a064e8574 100755 (executable)
@@ -53,9 +53,9 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
 </p>\r
 \r
 </td></tr>\r
index 4a129b809aa56346e93a0ba0cc8f57942519b431..8d35debfca31368cafb392e07d934ecb85a3e0e3 100755 (executable)
@@ -54,9 +54,9 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
 </p>\r
 \r
 </td></tr>\r
index 09f4e99d36350d067399c77155da932e023d0f99..f444902c37864aad93fd09cb7e0301858d31dd38 100755 (executable)
@@ -55,9 +55,9 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
 </p>\r
 \r
 </td></tr>\r
index ba0314837eb788198bcafb3cf45ebfcbdeeafb88..2881d925557f1ad98eb81edd65ff63904b51bca9 100755 (executable)
@@ -50,15 +50,15 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt4.htm#7" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> 3D meshing algorithms</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/3d_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Hexahedron meshing algorithm</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Tetrahedron (Netgen) meshing algorithm</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../tetrahedron_(ghs3d)_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Tetrahedron (GHS3D) meshing algorithm</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/tetrahedron_(ghs3d)_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Tetrahedron (GHS3D) meshing algorithm</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
 </p>\r
 \r
 </td></tr>\r
index 90c1ebfbb82daf2bcac292bcc6cc0787fcee57bc..d80bd46059d8674743d9a11f3658e2f25130a369 100755 (executable)
@@ -42,11 +42,11 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 &nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt1.htm#8" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/reassigning_hypotheses_and_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Reassigning hypotheses and algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/editing_hypotheses.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Editing hypotheses</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/editing_hypotheses.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Editing hypotheses and algorithms</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
 </p>\r
 \r
 </td></tr>\r
index 3fced36d3c710b91e5a9cfd61d279ada5f4d2cca..177d89c3ad7f64b4c884944e3fd2e208677135ea 100755 (executable)
@@ -50,9 +50,9 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/minimum_angle.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Minimum angle</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/warp.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Warping</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/skew.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Skew angle</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="13"></a><a href="whlstt13.htm#13" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
 </p>\r
 \r
 </td></tr>\r
index c3382d3890bba1fc748ed783304acd5227c79b8d..16efc2be37920ceaa935f2e2b924efe33cd11059 100755 (executable)
@@ -54,16 +54,16 @@ body {background-color:White; }
  <a href="whlstfl13.htm#subkey_N" target="_self"title="search letter N"><b>N</b></a> \r
  <a href="whlstfl14.htm#subkey_O" target="_self"title="search letter O"><b>O</b></a> \r
  <a href="whlstfl15.htm#subkey_P" target="_self"title="search letter P"><b>P</b></a> \r
- <a href="whlstf2.htm#bm_Q" target="ftslist"title="search letter Q" ><b>Q</b></a> \r
+ <a href="whlstf5.htm#bm_Q" target="ftslist"title="search letter Q" ><b>Q</b></a> \r
  <a href="whlstfl16.htm#subkey_R" target="_self"title="search letter R"><b>R</b></a> \r
  <a href="whlstfl17.htm#subkey_S" target="_self"title="search letter S"><b>S</b></a> \r
  <a href="whlstfl18.htm#subkey_T" target="_self"title="search letter T"><b>T</b></a> \r
  <a href="whlstfl19.htm#subkey_U" target="_self"title="search letter U"><b>U</b></a> \r
  <a href="whlstfl20.htm#subkey_V" target="_self"title="search letter V"><b>V</b></a> \r
  <a href="whlstfl21.htm#subkey_W" target="_self"title="search letter W"><b>W</b></a> \r
- <a href="whlstf4.htm#bm_X" target="ftslist"title="search letter X" ><b>X</b></a> \r
+ <a href="whlstf7.htm#bm_X" target="ftslist"title="search letter X" ><b>X</b></a> \r
  <a href="whlstfl22.htm#subkey_Y" target="_self"title="search letter Y"><b>Y</b></a> \r
- <a href="whlstf4.htm#bm_Z" target="ftslist"title="search letter Z" ><b>Z</b></a> \r
+ <a href="whlstfl23.htm#subkey_Z" target="_self"title="search letter Z"><b>Z</b></a> \r
 </p>\r
 \r
 <body>\r
index 937ce7c7e21907da32f1a0401ee5a249b8615201..a7a252fe25b921f21be88807e65185e704a31829 100755 (executable)
@@ -9,7 +9,7 @@
 <table>\r
 <tr><td> Start Page </td><td>smesh.htm</td></tr>\r
 <tr><td> Skin Name </td><td>Default</td></tr>\r
-<tr><td> Generating Time </td><td>16:04 09/24/2004</td></tr>\r
+<tr><td> Generating Time </td><td>18:32 11/11/2004</td></tr>\r
 <tr><td> Language ID </td><td>1033</td></tr>\r
 <tr><td> Compile Script </td><td>webhelp5_compile_script.xml</td></tr>\r
 <tr><td> Compile Build Version </td><td>10.00.949</td></tr>\r
index 9842df2f6f682ebace0a6870c513cfb17b73232e..a39c3445d00f2e876350a289bca476abcc79ab6f 100644 (file)
@@ -22,6 +22,7 @@
 //  Author : Sergey ANIKIN, OCC
 //  $Header$
 
+
 #ifndef _SMESH_GROUP_IDL_
 #define _SMESH_GROUP_IDL_
 
@@ -33,9 +34,9 @@
 module SMESH
 {
   /*!
-   * SMESH_Group: interface of group object
+   * SMESH_Group: base interface of group object
    */
-  interface SMESH_Group : SALOME::GenericObj
+  interface SMESH_GroupBase : SALOME::GenericObj, SMESH_IDSource
   {
     /*!
      * Sets group name
@@ -62,21 +63,11 @@ module SMESH
      */
     boolean IsEmpty();
 
-    /*!
-     * Clears the group's contents
-     */
-    void Clear();
-
     /*!
      * returns true if the group contains an element with ID == <elem_id> 
      */
     boolean Contains( in long elem_id );
 
-    /*!
-     * Adds elements to the group
-     */
-    long Add( in long_array elem_ids );
-
     /*!
      * Returns ID of an element at position <elem_index>
      */
@@ -87,16 +78,41 @@ module SMESH
      */
     long_array GetListOfID();
 
-    /*!
-     * Removes elements from the group
-     */
-    long Remove( in long_array elem_ids );
-
     /*!
      * Returns the mesh object this group belongs to
      */
     SMESH_Mesh GetMesh();
   }; 
+
+  /*!
+   * SMESH_Group: interface of group object
+   */
+  interface SMESH_Group : SMESH_GroupBase
+  {
+    /*!
+     * Clears the group's contents
+     */
+    void Clear();
+
+    /*!
+     * Adds elements to the group
+     */
+    long Add( in long_array elem_ids );
+
+    /*!
+     * Removes elements from the group
+     */
+    long Remove( in long_array elem_ids );
+
+  };
+  /*!
+   * SMESH_Group: interface of group object linked to geometry
+   */
+  interface SMESH_GroupOnGeom : SMESH_GroupBase
+  {
+    GEOM::GEOM_Object GetShape();
+  };
+
 };
 
 
index f789e5e12c2d56f9ff18a6fe2558d76c4d703821..d64d9389f269a7daab7e72e8e35a8a7ad4bd6842 100644 (file)
@@ -134,10 +134,21 @@ module SMESH
 
   typedef sequence<log_block> log_array;
 
+
+  interface SMESH_IDSource
+  {
+    /*!
+     * Returns a sequence of all element IDs
+     */
+    long_array GetIDs();
+  };
+  
+  interface SMESH_GroupBase;
   interface SMESH_Group;
+  interface SMESH_GroupOnGeom;
   interface SMESH_subMesh;
   interface SMESH_MeshEditor;
-  interface SMESH_Mesh : SALOME::GenericObj
+  interface SMESH_Mesh : SALOME::GenericObj, SMESH_IDSource
   {
     /*!
      * Associate a Shape to a Mesh created with NewEmpty
@@ -161,6 +172,12 @@ module SMESH
 //     SMESH_subMesh NewEmpty()
 //       raises (SALOME::SALOME_Exception);
 
+    /*!
+     * Get geom shape to mesh. A result may be nil
+     */
+    GEOM::GEOM_Object GetShapeToMesh()
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * Remove a submesh
      */
@@ -177,21 +194,21 @@ module SMESH
     /*!
      * Create a group from geometry group
      */
-    SMESH_Group CreateGroupFromGEOM( in ElementType elem_type,
-                                    in string name,
-                                    in GEOM::GEOM_Object theGEOMGroup )
+    SMESH_GroupOnGeom CreateGroupFromGEOM( in ElementType elem_type,
+                                          in string name,
+                                          in GEOM::GEOM_Object theGeomObject )
       raises (SALOME::SALOME_Exception);
 
     /*!
      * Remove a group
      */
-    void RemoveGroup(in SMESH_Group aGroup)
+    void RemoveGroup(in SMESH_GroupBase aGroup)
       raises (SALOME::SALOME_Exception);
 
      /*!
      *  Remove group with its contents
      */
-    void RemoveGroupWithContents( in SMESH_Group aGroup )
+    void RemoveGroupWithContents( in SMESH_GroupBase aGroup )
         raises (SALOME::SALOME_Exception);
 
     /*!
@@ -199,7 +216,9 @@ module SMESH
      *    New group is created. All mesh elements that are 
      *    present in initial groups are added to the new one
      */
-    SMESH_Group UnionGroups( in SMESH_Group aGroup1, in SMESH_Group aGroup2, in string name )
+    SMESH_Group UnionGroups (in SMESH_GroupBase aGroup1,
+                             in SMESH_GroupBase aGroup2,
+                             in string          name )
         raises (SALOME::SALOME_Exception);
 
     /*!
@@ -207,7 +226,9 @@ module SMESH
      *  New group is created. All mesh elements that are 
      *  present in both initial groups are added to the new one.
      */
-    SMESH_Group IntersectGroups( in SMESH_Group aGroup1, in SMESH_Group aGroup2, in string name )
+    SMESH_Group IntersectGroups (in SMESH_GroupBase aGroup1,
+                                 in SMESH_GroupBase aGroup2,
+                                 in string          name )
         raises (SALOME::SALOME_Exception);
 
       /*!
@@ -215,7 +236,9 @@ module SMESH
        *  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
        */
-      SMESH_Group CutGroups( in SMESH_Group aMainGroup, in SMESH_Group aToolGroup, in string name )
+      SMESH_Group CutGroups (in SMESH_GroupBase aMainGroup,
+                             in SMESH_GroupBase aToolGroup,
+                             in string          name )
           raises (SALOME::SALOME_Exception);
 
     /*!
@@ -345,7 +368,7 @@ module SMESH
     string Dump();
   };
 
-  interface SMESH_subMesh : SALOME::GenericObj
+  interface SMESH_subMesh : SALOME::GenericObj, SMESH_IDSource
   {
     /*!
      * 
@@ -377,6 +400,12 @@ module SMESH
     long_array GetNodesId()
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     * Get geom shape the submesh is dedicated to
+     */
+    GEOM::GEOM_Object GetSubShape()
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * Get SMESH_Mesh which stores nodes coordinates & elements definition
      */
@@ -421,17 +450,26 @@ module SMESH
     boolean DeleteDiag(in long NodeID1, in long NodeID2);
 
     boolean Reorient(in long_array IDsOfElements);
+    
+    boolean ReorientObject(in SMESH_IDSource  theObject);
 
     boolean TriToQuad(in long_array       IDsOfElements,
                       in NumericalFunctor Criterion,
                       in double           MaxAngle);
-
+    
+    boolean TriToQuadObject(in SMESH_IDSource   theObject,
+                           in NumericalFunctor Criterion,
+                           in double           MaxAngle);
+    
     boolean QuadToTri(in long_array       IDsOfElements,
                       in NumericalFunctor Criterion);
 
     boolean SplitQuad(in long_array IDsOfElements,
                       in boolean    Diag13);
 
+    boolean SplitQuadObject(in SMESH_IDSource   theObject,
+                           in boolean    Diag13);
+
     enum Smooth_Method { LAPLACIAN_SMOOTH, CENTROIDAL_SMOOTH };
 
     boolean Smooth(in long_array    IDsOfElements,
@@ -440,6 +478,12 @@ module SMESH
                    in double        MaxAspectRatio,
                    in Smooth_Method Method);
 
+    boolean SmoothObject(in SMESH_IDSource  theObject,
+                        in long_array      IDsOfFixedNodes,
+                        in long            MaxNbOfIterations,
+                        in double          MaxAspectRatio,
+                        in Smooth_Method   Method);
+
     void RenumberNodes();
 
     void RenumberElements();
@@ -449,11 +493,21 @@ module SMESH
                        in double           AngleInRadians,
                        in long             NbOfSteps,
                        in double           Tolerance);
+
+    void RotationSweepObject(in SMESH_IDSource  theObject,
+                            in AxisStruct      Axix,
+                            in double          AngleInRadians,
+                            in long            NbOfSteps,
+                            in double          Tolerance);
                        
     void ExtrusionSweep(in long_array      IDsOfElements,
                         in DirStruct       StepVector,
                         in long            NbOfSteps);
 
+    void ExtrusionSweepObject(in SMESH_IDSource  theObject,
+                             in DirStruct       StepVector,
+                             in long            NbOfSteps);
+
     enum MirrorType { POINT, AXIS, PLANE };
 
     void Mirror (in long_array       IDsOfElements,
@@ -461,15 +515,29 @@ module SMESH
                  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 FindCoincidentNodes (in  double              Tolerance,
                               out array_of_long_array GroupsOfNodes);
 
@@ -477,31 +545,45 @@ module SMESH
 
     void MergeEqualElements();
 
-    boolean SewFreeBorders (in long FirstNodeID1,
-                            in long SecondNodeID1,
-                            in long LastNodeID1,
-                            in long FirstNodeID2,
-                            in long SecondNodeID2,
-                            in long LastNodeID2);
-    
-    boolean SewConformFreeBorders (in long FirstNodeID1,
-                                   in long SecondNodeID1,
-                                   in long LastNodeID1,
-                                   in long FirstNodeID2,
-                                   in long SecondNodeID2);
-
-    boolean SewBorderToSide (in long FirstNodeIDOnFreeBorder,
-                             in long SecondNodeIDOnFreeBorder,
-                             in long LastNodeIDOnFreeBorder,
-                             in long FirstNodeIDOnSide,
-                             in long LastNodeIDOnSide);
-    
-    boolean SewSideElements (in long_array IDsOfSide1Elements,
-                             in long_array IDsOfSide2Elements,
-                             in long       NodeID1OfSide1ToMerge,
-                             in long       NodeID1OfSide2ToMerge,
-                             in long       NodeID2OfSide1ToMerge,
-                             in long       NodeID2OfSide2ToMerge);
+    enum Sew_Error {
+      SEW_OK,
+      SEW_BORDER1_NOT_FOUND,
+      SEW_BORDER2_NOT_FOUND,
+      SEW_BOTH_BORDERS_NOT_FOUND,
+      SEW_BAD_SIDE_NODES,
+      SEW_VOLUMES_TO_SPLIT,
+      // for SewSideElements() only:
+      SEW_DIFF_NB_OF_ELEMENTS,
+      SEW_TOPO_DIFF_SETS_OF_ELEMENTS,
+      SEW_BAD_SIDE1_NODES,
+      SEW_BAD_SIDE2_NODES
+      };
+
+    Sew_Error SewFreeBorders (in long FirstNodeID1,
+                              in long SecondNodeID1,
+                              in long LastNodeID1,
+                              in long FirstNodeID2,
+                              in long SecondNodeID2,
+                              in long LastNodeID2);
+
+    Sew_Error SewConformFreeBorders (in long FirstNodeID1,
+                                     in long SecondNodeID1,
+                                     in long LastNodeID1,
+                                     in long FirstNodeID2,
+                                     in long SecondNodeID2);
+
+    Sew_Error SewBorderToSide (in long FirstNodeIDOnFreeBorder,
+                               in long SecondNodeIDOnFreeBorder,
+                               in long LastNodeIDOnFreeBorder,
+                               in long FirstNodeIDOnSide,
+                               in long LastNodeIDOnSide);
+
+    Sew_Error SewSideElements (in long_array IDsOfSide1Elements,
+                               in long_array IDsOfSide2Elements,
+                               in long       NodeID1OfSide1ToMerge,
+                               in long       NodeID1OfSide2ToMerge,
+                               in long       NodeID2OfSide1ToMerge,
+                               in long       NodeID2OfSide2ToMerge);
 
   };
 };
index 0e7c64dc39a9c2fd9f4012d18544c9b3b92b7a76..102ea6ffdcb302ba5ba4c29d4386d2f1eea0bbf3 100644 (file)
@@ -16,7 +16,7 @@
                <component-username>Mesh</component-username>
                <component-type>MESH</component-type>
                <component-author>NRI</component-author>
-               <component-version> 1.0</component-version>
+               <component-version>2.1.0</component-version>
                <component-comment>New Mesh component</component-comment>
                <component-multistudy>1</component-multistudy>
                <component-icone>ModuleMesh.png</component-icone>
index aa368a57302b3c92f8591fe7c0332c461c6f2798..f40810c948fbbf35d8e9904e5c36c1ab42f11cae 100644 (file)
@@ -39,7 +39,7 @@ using namespace std;
 //=============================================================================
 list<DriverMED_FamilyPtr> DriverMED_Family::MakeFamilies
                          (const map <int, SMESHDS_SubMesh*>& theSubMeshes,
-                          const list<SMESHDS_Group*>& theGroups,
+                          const list<SMESHDS_GroupBase*>& theGroups,
                           const bool doGroupOfNodes,
                           const bool doGroupOfEdges,
                           const bool doGroupOfFaces,
@@ -62,6 +62,8 @@ list<DriverMED_FamilyPtr> DriverMED_Family::MakeFamilies
   map<int, SMESHDS_SubMesh*>::const_iterator aSMIter = theSubMeshes.begin();
   for (; aSMIter != theSubMeshes.end(); aSMIter++)
   {
+    if ( aSMIter->second->IsComplexSubmesh() )
+      continue; // submesh containing other submeshs
     list<DriverMED_FamilyPtr> aSMFams = SplitByType((*aSMIter).second, (*aSMIter).first);
     list<DriverMED_FamilyPtr>::iterator aSMFamsIter = aSMFams.begin();
     for (; aSMFamsIter != aSMFams.end(); aSMFamsIter++)
@@ -97,7 +99,7 @@ list<DriverMED_FamilyPtr> DriverMED_Family::MakeFamilies
   }
 
   // Process groups
-  list<SMESHDS_Group*>::const_iterator aGroupsIter = theGroups.begin();
+  list<SMESHDS_GroupBase*>::const_iterator aGroupsIter = theGroups.begin();
   for (; aGroupsIter != theGroups.end(); aGroupsIter++)
   {
     DriverMED_FamilyPtr aFam2 (new DriverMED_Family);
@@ -241,25 +243,25 @@ MEDA::PFamilyInfo DriverMED_Family::GetFamilyInfo
 
 //=============================================================================
 /*!
- *  Initialize the tool by SMESHDS_Group
+ *  Initialize the tool by SMESHDS_GroupBase
  */
 //=============================================================================
-void DriverMED_Family::Init (SMESHDS_Group* group)
+void DriverMED_Family::Init (SMESHDS_GroupBase* theGroup)
 {
   // Elements
   myElements.clear();
-  group->InitIterator();
-  while (group->More())
+  SMDS_ElemIteratorPtr elemIt = theGroup->GetElements();
+  while (elemIt->more())
   {
-    myElements.insert(group->Next());
+    myElements.insert(elemIt->next());
   }
 
   // Type
-  myType = group->GetType();
+  myType = theGroup->GetType();
 
   // Groups list
   myGroupNames.clear();
-  myGroupNames.insert(string(group->GetStoreName()));
+  myGroupNames.insert(string(theGroup->GetStoreName()));
 }
 
 //=============================================================================
index 6f9844c3e979721b763a7b280f8349ce69525c4e..b5fc51f2e36a5155f6b024f4b964537e45315afa 100644 (file)
@@ -29,7 +29,7 @@
 #define _INCLUDE_DRIVERMED_FAMILY
 
 #include "SMDS_Mesh.hxx"
-#include "SMESHDS_Group.hxx"
+#include "SMESHDS_GroupBase.hxx"
 #include "SMESHDS_SubMesh.hxx"
 #include "MEDA_Wrapper.hxx"
 
@@ -53,7 +53,7 @@ class DriverMED_Family
   // Methods for groups storing to MED
 
   static std::list<DriverMED_FamilyPtr> MakeFamilies (const std::map <int, SMESHDS_SubMesh*>& theSubMeshes,
-                                                     const std::list<SMESHDS_Group*>& theGroups,
+                                                     const std::list<SMESHDS_GroupBase*>& theGroups,
                                                      const bool doGroupOfNodes,
                                                      const bool doGroupOfEdges,
                                                      const bool doGroupOfFaces,
@@ -89,8 +89,8 @@ class DriverMED_Family
   const MED::TStringSet& GetGroupNames () const { return myGroupNames; }
 
  private:
-  void Init (SMESHDS_Group* group);
-  // Initialize the tool by SMESHDS_Group
+  void Init (SMESHDS_GroupBase* group);
+  // Initialize the tool by SMESHDS_GroupBase
 
   static std::list<DriverMED_FamilyPtr> SplitByType (SMESHDS_SubMesh* theSubMesh,
                                                     const int        theId);
index 36f07fd7f628d49acde7195c6b1af6e828f19c15..513454316ef57da8f9328384f0d6a4469eae7aad 100644 (file)
@@ -561,10 +561,14 @@ void DriverMED_R_SMESHDS_Mesh::GetGroup(SMESHDS_Group* theGroup)
     {
       const set<const SMDS_MeshElement *>& anElements = aFamily->GetElements();
       set<const SMDS_MeshElement *>::iterator anElemsIter = anElements.begin();
+      const SMDS_MeshElement * element = 0;
       for (; anElemsIter != anElements.end(); anElemsIter++)
       {
-        theGroup->SMDS_MeshGroup::Add(*anElemsIter);
+        element = *anElemsIter;
+        theGroup->SMDSGroup().Add(element);
       }
+      if ( element )
+        theGroup->SetType( element->GetType() );
     }
   }
 }
index 4d360379a3933294a9f779803585dd869c46c9d1..69afde96346b5ed15cacc9b5090608b71825a7fe 100644 (file)
@@ -56,7 +56,7 @@ void DriverMED_W_SMESHDS_Mesh::SetMeshName(const std::string& theMeshName)
   myMeshName = theMeshName;
 }
 
-void DriverMED_W_SMESHDS_Mesh::AddGroup(SMESHDS_Group* theGroup)
+void DriverMED_W_SMESHDS_Mesh::AddGroup(SMESHDS_GroupBase* theGroup)
 {
   myGroups.push_back(theGroup);
 }
index 3ca1c9939340a3a3a0c7e65ea441a14376233242..08c0ef3841dd79f8fb8819297cbd51c31a36a24c 100644 (file)
@@ -34,7 +34,7 @@
 #include <map>
 
 class SMESHDS_Mesh;
-class SMESHDS_Group;
+class SMESHDS_GroupBase;
 class SMESHDS_SubMesh;
 
 class DriverMED_W_SMESHDS_Mesh: public Driver_SMESHDS_Mesh
@@ -53,7 +53,7 @@ class DriverMED_W_SMESHDS_Mesh: public Driver_SMESHDS_Mesh
   /*! functions to prepare adding one mesh
    */
   void SetMeshName(const std::string& theMeshName);
-  void AddGroup(SMESHDS_Group* theGroup);
+  void AddGroup(SMESHDS_GroupBase * theGroup);
   void AddAllSubMeshes();
   void AddSubMesh(SMESHDS_SubMesh* theSubMesh, int theID);
 
@@ -64,7 +64,7 @@ class DriverMED_W_SMESHDS_Mesh: public Driver_SMESHDS_Mesh
  private:
 
   std::string myMeshName;
-  std::list<SMESHDS_Group*> myGroups;
+  std::list<SMESHDS_GroupBase*> myGroups;
   bool myAllSubMeshes;
   std::map<int,SMESHDS_SubMesh*> mySubMeshes;
   bool myDoGroupOfNodes;
index 3ba4b71d1a8e1f3b1b1f3aadfcedac2d56cb5c35..6621177cc32ed4f904eacaeaba8602d65d28dce2 100644 (file)
@@ -904,10 +904,10 @@ void SMESH_SubMeshObj::Update( int theIsClear )
 // function : SMESH_GroupObj
 // purpose  : Constructor
 //=================================================================================
-SMESH_GroupObj::SMESH_GroupObj( SMESH::SMESH_Group_ptr theGroup, 
-                                SMESH_MeshObj*         theMeshObj )
+SMESH_GroupObj::SMESH_GroupObj( SMESH::SMESH_GroupBase_ptr theGroup, 
+                                SMESH_MeshObj*             theMeshObj )
 : SMESH_SubMeshObj( theMeshObj ),
-  myGroupServer( SMESH::SMESH_Group::_duplicate(theGroup) )
+  myGroupServer( SMESH::SMESH_GroupBase::_duplicate(theGroup) )
 {
   if ( MYDEBUG ) MESSAGE("SMESH_GroupObj - theGroup->_is_nil() = "<<theGroup->_is_nil());
   myGroupServer->Register();
index 0692f065d047a9ecf01393bd7cddf3a37c36ee09..b70ccae7c52fe3391950de1931867937cbc35afe 100644 (file)
@@ -172,7 +172,7 @@ protected:
 class SMESH_GroupObj: public SMESH_SubMeshObj
 {
 public:
-                            SMESH_GroupObj( SMESH::SMESH_Group_ptr, SMESH_MeshObj* );
+                            SMESH_GroupObj( SMESH::SMESH_GroupBase_ptr, SMESH_MeshObj* );
   virtual                   ~SMESH_GroupObj();
 
   virtual int               GetNbEntities( const SMESH::ElementType) const;
@@ -181,7 +181,7 @@ public:
 
 private:
 
-  SMESH::SMESH_Group_var    myGroupServer;
+  SMESH::SMESH_GroupBase_var    myGroupServer;
 };
 
 
index 85f024f756554b50f050d3dd5da964da0107ee38..49cade1223924104ee1c0c85f9a352a78249b56e 100644 (file)
 //  Module : SMESH
 //  $Header$
 
-#include <SMESH_Group.hxx>
-#include <SMESH_Mesh.hxx>
-#include <SMESHDS_Group.hxx>
+#include "SMESH_Group.hxx"
+#include "SMESH_Mesh.hxx"
+#include "SMESHDS_Group.hxx"
+#include "SMESHDS_GroupOnGeom.hxx"
 
 //=============================================================================
 /*!
 SMESH_Group::SMESH_Group (int                       theID,
                           const SMESH_Mesh*         theMesh,
                           const SMDSAbs_ElementType theType,
-                          const char*               theName)
+                          const char*               theName,
+                          const TopoDS_Shape&       theShape)
      : myName(theName)
 {
-  myGroupDS = new SMESHDS_Group (theID,
-                                 const_cast<SMESH_Mesh*>(theMesh)->GetMeshDS(),
-                                 theType);
+  if ( theShape.IsNull() )
+    myGroupDS = new SMESHDS_Group (theID,
+                                   const_cast<SMESH_Mesh*>(theMesh)->GetMeshDS(),
+                                   theType);
+  else
+    myGroupDS = new SMESHDS_GroupOnGeom (theID,
+                                         const_cast<SMESH_Mesh*>(theMesh)->GetMeshDS(),
+                                         theType,
+                                         theShape);
 }
 
 //=============================================================================
index 4486d5f2dc986aa293b5fec40010adfa365033d0..26493e4e085296b3372c71cbdcc262bdaff916f9 100644 (file)
 
 #include <SMDSAbs_ElementType.hxx>
 #include <string>
+#include <TopoDS_Shape.hxx>
 
 
-class SMESHDS_Group;
+class SMESHDS_GroupBase;
 class SMESH_Mesh;
 
 class SMESH_Group
@@ -42,14 +43,15 @@ class SMESH_Group
   SMESH_Group (int                       theID,
                const SMESH_Mesh*         theMesh,
                const SMDSAbs_ElementType theType,
-               const char*               theName);
+               const char*               theName,
+               const TopoDS_Shape&       theShape = TopoDS_Shape());
   ~SMESH_Group ();
 
   void SetName (const char* theName) { myName = theName; }
 
   const char* GetName () const { return myName.c_str(); }
 
-  SMESHDS_Group * GetGroupDS () { return myGroupDS; }
+  SMESHDS_GroupBase * GetGroupDS () { return myGroupDS; }
 
  private:
   SMESH_Group (const SMESH_Group& theOther);
@@ -57,8 +59,8 @@ class SMESH_Group
   SMESH_Group& operator = (const SMESH_Group& theOther);
   // prohibited assign operator
 
-  SMESHDS_Group * myGroupDS;
-  std::string     myName;
+  SMESHDS_GroupBase * myGroupDS;
+  std::string         myName;
 
 };
 
index cf57edb1b861f887887e510db573cda7c145d490..50c79329676349c7da612d027644a3c3ebac9dec 100644 (file)
@@ -173,9 +173,11 @@ int SMESH_Mesh::MEDToMesh(const char* theFileName, const char* theMeshName)
     SMESH_Group* aGroup = AddGroup( SMDSAbs_All, it->c_str(), anId );
     if ( aGroup ) {
       if(MYDEBUG) MESSAGE("MEDToMesh - group added: "<<it->c_str());      
-      SMESHDS_Group* aGroupDS = aGroup->GetGroupDS();
-      aGroupDS->SetStoreName( it->c_str() );
-      myReader.GetGroup( aGroupDS );
+      SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( aGroup->GetGroupDS() );
+      if ( aGroupDS ) {
+        aGroupDS->SetStoreName( it->c_str() );
+        myReader.GetGroup( aGroupDS );
+      }
     }
   }
   return (int) status;
@@ -219,7 +221,9 @@ SMESH_Hypothesis::Hypothesis_Status
   Unexpect aCatch(SalomeException);
   if(MYDEBUG) MESSAGE("SMESH_Mesh::AddHypothesis");
 
-  if ( _myMeshDS->IsGroupOfSubShapes( aSubShape ))
+  SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
+  SMESHDS_SubMesh *subMeshDS = subMesh->GetSubMeshDS();
+  if ( subMeshDS && subMeshDS->IsComplexSubmesh() )
   {
     // return the worst but not fatal state of all group memebers
     SMESH_Hypothesis::Hypothesis_Status aBestRet, aWorstNotFatal, ret;
@@ -249,7 +253,6 @@ SMESH_Hypothesis::Hypothesis_Status
     throw SALOME_Exception(LOCALIZED("hypothesis does not exist"));
   }
 
-  SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
   SMESH_Hypothesis *anHyp = sc->mapHypothesis[anHypId];
   if(MYDEBUG) SCRUTE( anHyp->GetName() );
   int event;
@@ -307,7 +310,9 @@ SMESH_Hypothesis::Hypothesis_Status
   Unexpect aCatch(SalomeException);
   if(MYDEBUG) MESSAGE("SMESH_Mesh::RemoveHypothesis");
   
-  if ( _myMeshDS->IsGroupOfSubShapes( aSubShape ))
+  SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
+  SMESHDS_SubMesh *subMeshDS = subMesh->GetSubMeshDS();
+  if ( subMeshDS && subMeshDS->IsComplexSubmesh() )
   {
     // return the worst but not fatal state of all group memebers
     SMESH_Hypothesis::Hypothesis_Status aBestRet, aWorstNotFatal, ret;
@@ -330,7 +335,6 @@ SMESH_Hypothesis::Hypothesis_Status
   if (sc->mapHypothesis.find(anHypId) == sc->mapHypothesis.end())
     throw SALOME_Exception(LOCALIZED("hypothesis does not exist"));
   
-  SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
   SMESH_Hypothesis *anHyp = sc->mapHypothesis[anHypId];
   int hypType = anHyp->GetType();
   if(MYDEBUG) SCRUTE(hypType);
@@ -449,6 +453,13 @@ throw(SALOME_Exception)
   SMESH_subMesh *aSubMesh;
   int index = _myMeshDS->ShapeToIndex(aSubShape);
   
+  // for submeshes on GEOM Group
+  if ( !index && aSubShape.ShapeType() == TopAbs_COMPOUND ) {
+    TopoDS_Iterator it( aSubShape );
+    if ( it.More() )
+      index = _myMeshDS->AddCompoundSubmesh( aSubShape, it.Value().ShapeType() );
+  }
+
   if (_mapSubMesh.find(index) != _mapSubMesh.end())
     {
       aSubMesh = _mapSubMesh[index];
@@ -596,10 +607,12 @@ void SMESH_Mesh::ExportMED(const char *file, const char* theMeshName, bool theAu
   }
 
   for ( map<int, SMESH_Group*>::iterator it = _mapGroup.begin(); it != _mapGroup.end(); it++ ) {
-    SMESH_Group*     aGroup = it->second;
-    SMESHDS_Group* aGroupDS = aGroup->GetGroupDS();
-    aGroupDS->SetStoreName( aGroup->GetName() );
-    myWriter.AddGroup( aGroupDS );
+    SMESH_Group*       aGroup   = it->second;
+    SMESHDS_GroupBase* aGroupDS = aGroup->GetGroupDS();
+    if ( aGroupDS ) {
+      aGroupDS->SetStoreName( aGroup->GetName() );
+      myWriter.AddGroup( aGroupDS );
+    }
   }
 
   myWriter.Perform();
@@ -794,12 +807,13 @@ bool SMESH_Mesh::IsMainShape(const TopoDS_Shape& theShape) const
 
 SMESH_Group* SMESH_Mesh::AddGroup (const SMDSAbs_ElementType theType,
                                    const char*               theName,
-                                  int&                      theId)
+                                  int&                      theId,
+                                   const TopoDS_Shape&       theShape)
 {
   if (_mapGroup.find(_groupId) != _mapGroup.end())
     return NULL;
   theId = _groupId;
-  SMESH_Group* aGroup = new SMESH_Group (theId, this, theType, theName);
+  SMESH_Group* aGroup = new SMESH_Group (theId, this, theType, theName, theShape);
   GetMeshDS()->AddGroup( aGroup->GetGroupDS() );
   _mapGroup[_groupId++] = aGroup;
   return aGroup;
index a3f6d27920b055df55b984b3f389b67db52673ad..d594b7115933e2dc4618ab41c788484a742003b9 100644 (file)
@@ -159,7 +159,8 @@ public:
   
   SMESH_Group* AddGroup (const SMDSAbs_ElementType theType,
                         const char*               theName,
-                        int&                      theId);
+                        int&                      theId,
+                         const TopoDS_Shape&       theShape=TopoDS_Shape());
   
   SMESH_Group* GetGroup (const int theGroupID);
   
index 92c76b9d157a3ae793ae7a34071c5fa8e87d712c..71a4d3c1136e7bb1d70a09471d8f6d99c137ee71 100644 (file)
@@ -31,6 +31,8 @@
 #include "SMDS_FaceOfNodes.hxx"
 #include "SMDS_VolumeTool.hxx"
 #include "SMESHDS_Group.hxx"
+#include "SMESHDS_Mesh.hxx"
+#include "SMESH_subMesh.hxx"
 
 #include "utilities.h"
 
@@ -574,11 +576,12 @@ static void addToSameGroups (const SMDS_MeshElement* elemToAdd,
                              const SMDS_MeshElement* elemInGroups,
                              SMESHDS_Mesh *          aMesh)
 {
-  const set<SMESHDS_Group*>& groups = aMesh->GetGroups();
-  set<SMESHDS_Group*>::const_iterator grIt = groups.begin();
+  const set<SMESHDS_GroupBase*>& groups = aMesh->GetGroups();
+  set<SMESHDS_GroupBase*>::const_iterator grIt = groups.begin();
   for ( ; grIt != groups.end(); grIt++ ) {
-    if ( (*grIt)->SMDS_MeshGroup::Contains( elemInGroups ))
-      (*grIt)->SMDS_MeshGroup::Add( elemToAdd );
+    SMESHDS_Group* group = dynamic_cast<SMESHDS_Group*>( *grIt );
+    if ( group && group->SMDSGroup().Contains( elemInGroups ))
+      group->SMDSGroup().Add( elemToAdd );
   }
 }
 
@@ -1043,7 +1046,7 @@ bool SMESH_MeshEditor::SortHexaNodes (const SMDS_Mesh * theMesh,
   set<int> checkedId1; // ids of tried 2-nd nodes
   Standard_Real leastDist = DBL_MAX; // dist of the 4-th node from 123 plane
   const Standard_Real tol = 1.e-6;   // tolerance to find nodes in plane
-  int iMin, iMax, iLoop1 = 0;
+  int iMin, iLoop1 = 0;
 
   // Loop to try the 2-nd nodes
 
@@ -1964,16 +1967,6 @@ void SMESH_MeshEditor::FindCoincidentNodes (const double         theTolerance,
   }
 }
 
-//=======================================================================
-//function : isOppFaceInd
-//purpose  : 
-//=======================================================================
-
-static bool isOppFaceInd(int iMin, int iMax)
-{
-  return ( iMax - iMin == 1 && iMax % 2 );
-}
-
 //=======================================================================
 //function : MergeNodes
 //purpose  : In each group, the cdr of nodes are substituted by the first one
@@ -2519,20 +2512,36 @@ static bool findFreeBorder (const SMDS_MeshNode*                theFirstNode,
   return true;
 }
 
+//=======================================================================
+//function : CheckFreeBorderNodes
+//purpose  : Return true if the tree nodes are on a free border
+//=======================================================================
+
+bool SMESH_MeshEditor::CheckFreeBorderNodes(const SMDS_MeshNode* theNode1,
+                                            const SMDS_MeshNode* theNode2,
+                                            const SMDS_MeshNode* theNode3)
+{
+  list< const SMDS_MeshNode* > nodes;
+  list< const SMDS_MeshElement* > faces;
+  return findFreeBorder( theNode1, theNode2, theNode3, nodes, faces);
+}
+
 //=======================================================================
 //function : SewFreeBorder
 //purpose  : 
 //=======================================================================
 
-bool SMESH_MeshEditor::SewFreeBorder (const SMDS_MeshNode* theBordFirstNode,
-                                      const SMDS_MeshNode* theBordSecondNode,
-                                      const SMDS_MeshNode* theBordLastNode,
-                                      const SMDS_MeshNode* theSideFirstNode,
-                                      const SMDS_MeshNode* theSideSecondNode,
-                                      const SMDS_MeshNode* theSideThirdNode,
-                                      bool                 theSideIsFreeBorder)
+SMESH_MeshEditor::Sew_Error
+  SMESH_MeshEditor::SewFreeBorder (const SMDS_MeshNode* theBordFirstNode,
+                                   const SMDS_MeshNode* theBordSecondNode,
+                                   const SMDS_MeshNode* theBordLastNode,
+                                   const SMDS_MeshNode* theSideFirstNode,
+                                   const SMDS_MeshNode* theSideSecondNode,
+                                   const SMDS_MeshNode* theSideThirdNode,
+                                   bool                 theSideIsFreeBorder)
 {
   MESSAGE("::SewFreeBorder()");
+  Sew_Error aResult = SEW_OK;
 
   // ====================================
   //    find side nodes and elements
@@ -2542,14 +2551,13 @@ bool SMESH_MeshEditor::SewFreeBorder (const SMDS_MeshNode* theBordFirstNode,
   list< const SMDS_MeshElement* > eSide[ 2 ];
   list< const SMDS_MeshNode* >::iterator nIt[ 2 ];
   list< const SMDS_MeshElement* >::iterator eIt[ 2 ];
-  SMDS_ElemIteratorPtr invElemIt;
 
   // Free border 1
   // --------------
   if (!findFreeBorder(theBordFirstNode,theBordSecondNode,theBordLastNode,
                       nSide[0], eSide[0])) {
     MESSAGE(" Free Border 1 not found " );
-    return false;
+    aResult = SEW_BORDER1_NOT_FOUND;
   }
   if (theSideIsFreeBorder)
   { 
@@ -2558,10 +2566,13 @@ bool SMESH_MeshEditor::SewFreeBorder (const SMDS_MeshNode* theBordFirstNode,
     if (!findFreeBorder(theSideFirstNode, theSideSecondNode, theSideThirdNode,
                         nSide[1], eSide[1])) {
       MESSAGE(" Free Border 2 not found " );
-      return false;
+      aResult = ( aResult != SEW_OK ? SEW_BOTH_BORDERS_NOT_FOUND : SEW_BORDER2_NOT_FOUND );
     }
   }
-  else
+  if ( aResult != SEW_OK )
+    return aResult;
+
+  if (!theSideIsFreeBorder)
   {
     // Side 2
     // --------------
@@ -2660,7 +2671,8 @@ bool SMESH_MeshEditor::SewFreeBorder (const SMDS_MeshNode* theBordFirstNode,
       checkedLinkIDs.clear();
       gp_XYZ prevXYZ( prevSideNode->X(), prevSideNode->Y(), prevSideNode->Z() );
 
-      invElemIt = prevSideNode->GetInverseElementIterator();
+      SMDS_ElemIteratorPtr invElemIt
+        = prevSideNode->GetInverseElementIterator();
       while ( invElemIt->more() ) { // loop on inverse elements on the Side 2
         const SMDS_MeshElement* elem = invElemIt->next();
         // prepare data for a loop on links, of a face or a volume
@@ -2724,7 +2736,7 @@ bool SMESH_MeshEditor::SewFreeBorder (const SMDS_MeshNode* theBordFirstNode,
 
       if ( !sideNode ) {
         MESSAGE(" Cant find path by links of the Side 2 ");
-        return false;
+        return SEW_BAD_SIDE_NODES;
       }
       sideNodes.push_back( sideNode );
       sideElems.push_back( sideElem );
@@ -2750,7 +2762,7 @@ bool SMESH_MeshEditor::SewFreeBorder (const SMDS_MeshNode* theBordFirstNode,
 
     if ( hasVolumes && sideNodes.size () != bordNodes.size() ) {
       MESSAGE("VOLUME SPLITTING IS FORBIDDEN");
-      return false; // volume splitting is forbidden
+      return SEW_VOLUMES_TO_SPLIT; // volume splitting is forbidden
     }
   } // end nodes search on the side 2
 
@@ -2793,7 +2805,7 @@ bool SMESH_MeshEditor::SewFreeBorder (const SMDS_MeshNode* theBordFirstNode,
         gp_XYZ segment (nCur->X() - nPrev->X(),
                         nCur->Y() - nPrev->Y(),
                         nCur->Z() - nPrev->Z());
-        double segmentLen = segment.SquareModulus();
+        double segmentLen = segment.Modulus();
         bordLength += segmentLen;
         param[ iBord ][ iNode ] = bordLength;
         nPrev = nCur;
@@ -2938,7 +2950,7 @@ bool SMESH_MeshEditor::SewFreeBorder (const SMDS_MeshNode* theBordFirstNode,
 
   MergeNodes ( nodeGroupsToMerge );
 
-  return true;
+  return aResult;
 }
 
 //=======================================================================
@@ -3072,14 +3084,19 @@ void SMESH_MeshEditor::InsertNodesIntoLink(const SMDS_MeshElement*     theFace,
 //purpose  : 
 //=======================================================================
 
-bool SMESH_MeshEditor::SewSideElements (set<const SMDS_MeshElement*>& theSide1,
-                                        set<const SMDS_MeshElement*>& theSide2,
-                                        const SMDS_MeshNode*          theFirstNode1,
-                                        const SMDS_MeshNode*          theFirstNode2,
-                                        const SMDS_MeshNode*          theSecondNode1,
-                                        const SMDS_MeshNode*          theSecondNode2)
+SMESH_MeshEditor::Sew_Error
+  SMESH_MeshEditor::SewSideElements (set<const SMDS_MeshElement*>& theSide1,
+                                     set<const SMDS_MeshElement*>& theSide2,
+                                     const SMDS_MeshNode*          theFirstNode1,
+                                     const SMDS_MeshNode*          theFirstNode2,
+                                     const SMDS_MeshNode*          theSecondNode1,
+                                     const SMDS_MeshNode*          theSecondNode2)
 {
   MESSAGE ("::::SewSideElements()");
+  if ( theSide1.size() != theSide2.size() )
+    return SEW_DIFF_NB_OF_ELEMENTS;
+
+  Sew_Error aResult = SEW_OK;
   // Algo:
   // 1. Build set of faces representing each side
   // 2. Find which nodes of the side 1 to merge with ones on the side 2
@@ -3324,7 +3341,7 @@ bool SMESH_MeshEditor::SewSideElements (set<const SMDS_MeshElement*>& theSide1,
     while ( tmpFaceIt->more() )
       aTmpFacesMesh.RemoveElement( tmpFaceIt->next() );
     MESSAGE("Diff nb of faces");
-    return false;
+    return SEW_TOPO_DIFF_SETS_OF_ELEMENTS;
   }
 
   // ============================================================
@@ -3378,6 +3395,11 @@ bool SMESH_MeshEditor::SewSideElements (set<const SMDS_MeshElement*>& theSide1,
           if (faceSet->find( f ) != faceSet->end() && // f is in face set
               ! fMap.insert( f ).second ) // f encounters twice
           {
+            if ( face[ iSide ] ) {
+              MESSAGE( "2 faces per link " );
+              aResult = iSide ? SEW_BAD_SIDE2_NODES : SEW_BAD_SIDE1_NODES;
+              break;
+            }
             face[ iSide ] = f;
             faceSet->erase( f );
             // get face nodes and find ones of a link
@@ -3397,14 +3419,17 @@ bool SMESH_MeshEditor::SewSideElements (set<const SMDS_MeshElement*>& theSide1,
               faceNodes[ iSide ][ iNode++ ] = n;
             }
             faceNodes[ iSide ][ iNode ] = faceNodes[ iSide ][ 0 ];
-            break;
           }
         }
       }
     }
     // check similarity of elements of the sides
-    if (( face[0] && !face[1] ) || ( !face[0] && face[1] )) {
+    if (aResult == SEW_OK && ( face[0] && !face[1] ) || ( !face[0] && face[1] )) {
       MESSAGE("Correspondent face not found on side " << ( face[0] ? 1 : 0 ));
+      if ( nReplaceMap.size() == 2 ) // faces on input nodes not found
+        aResult = ( face[0] ? SEW_BAD_SIDE2_NODES : SEW_BAD_SIDE1_NODES );
+      else
+        aResult = SEW_TOPO_DIFF_SETS_OF_ELEMENTS;
       break; // do not return because it s necessary to remove tmp faces
     }
 
@@ -3416,6 +3441,7 @@ bool SMESH_MeshEditor::SewSideElements (set<const SMDS_MeshElement*>& theSide1,
       int nbNodes = face[0]->NbNodes();
       if ( nbNodes != face[1]->NbNodes() ) {
         MESSAGE("Diff nb of face nodes");
+        aResult = SEW_TOPO_DIFF_SETS_OF_ELEMENTS;
         break; // do not return because it s necessary to remove tmp faces
       }
       bool reverse[] = { false, false }; // order of notLinkNodes of quadrangle
@@ -3470,7 +3496,13 @@ bool SMESH_MeshEditor::SewSideElements (set<const SMDS_MeshElement*>& theSide1,
     } // 2 faces found
   } // loop on link lists
 
-  bool Ok = ( linkIt[0] == linkList[0].end() ); // all links preocessed
+  if ( aResult == SEW_OK &&
+      ( linkIt[0] != linkList[0].end() ||
+       !faceSetPtr[0]->empty() || !faceSetPtr[1]->empty() )) {
+    MESSAGE( (linkIt[0] != linkList[0].end()) <<" "<< (faceSetPtr[0]->empty()) <<
+            " " << (faceSetPtr[1]->empty()));
+    aResult = SEW_TOPO_DIFF_SETS_OF_ELEMENTS;
+  }
 
   // ====================================================================
   // 3. Replace nodes in elements of the side 1 and remove replaced nodes
@@ -3481,10 +3513,9 @@ bool SMESH_MeshEditor::SewSideElements (set<const SMDS_MeshElement*>& theSide1,
   while ( tmpFaceIt->more() )
     aTmpFacesMesh.RemoveElement( tmpFaceIt->next() );
 
-  if ( !Ok || nReplaceMap.size() == 2 ) {
-    MESSAGE(( Ok ? "No similar faces found" : " " ));
-    return false;
-  }
+  if ( aResult != SEW_OK)
+    return aResult;
+
   list< int > nodeIDsToRemove/*, elemIDsToRemove*/;
   // loop on nodes replacement map
   TNodeNodeMap::iterator nReplaceMapIt = nReplaceMap.begin(), nnIt;
@@ -3521,5 +3552,5 @@ bool SMESH_MeshEditor::SewSideElements (set<const SMDS_MeshElement*>& theSide1,
 
   Remove( nodeIDsToRemove, true );
 
-  return true;
+  return aResult;
 }
index 970fb3fbb790a502c6fc102ecef80dde1c1e2a88..10b7f9fa991d41545f33e110743bd99b4744520b 100644 (file)
@@ -142,13 +142,34 @@ class SMESH_MeshEditor {
   // Remove all but one of elements built on the same nodes.
   // Return nb of successfully merged groups.
 
-  bool SewFreeBorder (const SMDS_MeshNode* theBorderFirstNode,
-                      const SMDS_MeshNode* theBorderSecondNode,
-                      const SMDS_MeshNode* theBorderLastNode,
-                      const SMDS_MeshNode* theSide2FirstNode,
-                      const SMDS_MeshNode* theSide2SecondNode,
-                      const SMDS_MeshNode* theSide2ThirdNode = 0,
-                      bool                 theSide2IsFreeBorder = true);
+  static bool CheckFreeBorderNodes(const SMDS_MeshNode* theNode1,
+                                   const SMDS_MeshNode* theNode2,
+                                   const SMDS_MeshNode* theNode3 = 0);
+  // Return true if the three nodes are on a free border
+
+  enum Sew_Error {
+    SEW_OK,
+    // for SewFreeBorder()
+    SEW_BORDER1_NOT_FOUND,
+    SEW_BORDER2_NOT_FOUND,
+    SEW_BOTH_BORDERS_NOT_FOUND,
+    SEW_BAD_SIDE_NODES,
+    SEW_VOLUMES_TO_SPLIT,
+    // for SewSideElements()
+    SEW_DIFF_NB_OF_ELEMENTS,
+    SEW_TOPO_DIFF_SETS_OF_ELEMENTS,
+    SEW_BAD_SIDE1_NODES,
+    SEW_BAD_SIDE2_NODES
+    };
+    
+
+  Sew_Error SewFreeBorder (const SMDS_MeshNode* theBorderFirstNode,
+                           const SMDS_MeshNode* theBorderSecondNode,
+                           const SMDS_MeshNode* theBorderLastNode,
+                           const SMDS_MeshNode* theSide2FirstNode,
+                           const SMDS_MeshNode* theSide2SecondNode,
+                           const SMDS_MeshNode* theSide2ThirdNode = 0,
+                           bool                 theSide2IsFreeBorder = true);
   // Sew the free border to the side2 by replacing nodes in
   // elements on the free border with nodes of the elements
   // of the side 2. If nb of links in the free border and
@@ -168,13 +189,13 @@ class SMESH_MeshEditor {
   // the 2 free borders are sewn link by link and no additional
   // nodes are inserted.
   // Return false, if sewing failed.
-                     
-  bool SewSideElements (std::set<const SMDS_MeshElement*>& theSide1,
-                        std::set<const SMDS_MeshElement*>& theSide2,
-                        const SMDS_MeshNode*               theFirstNode1ToMerge,
-                        const SMDS_MeshNode*               theFirstNode2ToMerge,
-                        const SMDS_MeshNode*               theSecondNode1ToMerge,
-                        const SMDS_MeshNode*               theSecondNode2ToMerge);
+
+  Sew_Error SewSideElements (std::set<const SMDS_MeshElement*>& theSide1,
+                             std::set<const SMDS_MeshElement*>& theSide2,
+                             const SMDS_MeshNode*               theFirstNode1ToMerge,
+                             const SMDS_MeshNode*               theFirstNode2ToMerge,
+                             const SMDS_MeshNode*               theSecondNode1ToMerge,
+                             const SMDS_MeshNode*               theSecondNode2ToMerge);
   // Sew two sides of a mesh. Nodes belonging to theSide1 are
   // merged with nodes of elements of theSide2.
   // Number of elements in theSide1 and in theSide2 must be
index f2c7e56fe2d07b0d98adc67fdb992665b340dbe2..7f20a5cad0f97a57c5ed29fa2597704481299df7 100644 (file)
@@ -392,7 +392,7 @@ template<typename T> void sortBySize( list< list < T > > & theListOfList )
 {
   if ( theListOfList.size() > 2 ) {
     // keep the car
-    list < T > & aFront = theListOfList.front();
+    //list < T > & aFront = theListOfList.front();
     // sort the whole list
     TSizeCmp< T > SizeCmp;
     theListOfList.sort( SizeCmp );
@@ -761,7 +761,7 @@ bool SMESH_Pattern::Load (SMESH_Mesh*        theMesh,
         prevP->myInitU = totalDist;
         for ( pIt++; pIt != ePoints.end(); pIt++ ) {
           TPoint* p = *pIt;
-          totalDist += ( p->myInitUV - prevP->myInitUV ).SquareModulus();
+          totalDist += ( p->myInitUV - prevP->myInitUV ).Modulus();
           p->myInitU = totalDist;
           prevP = p;
         }
@@ -881,14 +881,16 @@ void SMESH_Pattern::computeUVOnEdge (const TopoDS_Edge&      theEdge,
 
 static bool intersectIsolines(const gp_XY& uv11, const gp_XY& uv12, const double r1,
                               const gp_XY& uv21, const gp_XY& uv22, const double r2,
-                              gp_XY& resUV)
+                              gp_XY& resUV,
+                              bool& isDeformed)
 {
   gp_XY loc1 = uv11 * ( 1 - r1 ) + uv12 * r1;
   gp_XY loc2 = uv21 * ( 1 - r2 ) + uv22 * r2;
-//  resUV = 0.5 * ( loc1 + loc2 );
-  double len1 = ( uv11 - uv12 ).SquareModulus();
-  double len2 = ( uv21 - uv22 ).SquareModulus();
-  resUV = loc1 * len2 / ( len1 + len2 ) + loc2 * len1 / ( len1 + len2 );
+  resUV = 0.5 * ( loc1 + loc2 );
+  isDeformed = ( loc1 - loc2 ).SquareModulus() > 1e-8;
+//   double len1 = ( uv11 - uv12 ).Modulus();
+//   double len2 = ( uv21 - uv22 ).Modulus();
+//   resUV = loc1 * len2 / ( len1 + len2 ) + loc2 * len1 / ( len1 + len2 );
 //  return true;
 
   
@@ -918,7 +920,8 @@ static bool intersectIsolines(const gp_XY& uv11, const gp_XY& uv12, const double
 
 bool SMESH_Pattern::compUVByIsoIntersection (const list< list< TPoint* > >& theBndPoints,
                                              const gp_XY&                   theInitUV,
-                                             gp_XY&                         theUV )
+                                             gp_XY&                         theUV,
+                                             bool &                         theIsDeformed )
 {
   // compute UV by intersection of 2 iso lines
   //gp_Lin2d isoLine[2];
@@ -991,14 +994,14 @@ bool SMESH_Pattern::compUVByIsoIntersection (const list< list< TPoint* > >& theB
     //gp_Lin2d iso( UV[0], UV[0] - UV[1] );
     double r =
       (initUV[0]-theInitUV).Modulus() / (initUV[0]-initUV[1]).Modulus();
-    gp_Pnt2d isoLoc = UV[0] * ( 1 - r ) + UV[1] * r;
+    //gp_Pnt2d isoLoc = UV[0] * ( 1 - r ) + UV[1] * r;
     //isoLine[ iIso ] = iso.Normal( isoLoc );
     uv1[ iIso ] = UV[0];
     uv2[ iIso ] = UV[1];
     ratio[ iIso ] = r;
   }
   if ( !intersectIsolines( uv1[0], uv2[0], ratio[0],
-                          uv1[1], uv2[1], ratio[1], theUV )) {
+                          uv1[1], uv2[1], ratio[1], theUV, theIsDeformed )) {
     MESSAGE(" Cant intersect isolines for a point "<<theInitUV.X()<<", "<<theInitUV.Y());
     return setErrorCode( ERR_APPLF_BAD_TOPOLOGY );
   }
@@ -1006,48 +1009,327 @@ bool SMESH_Pattern::compUVByIsoIntersection (const list< list< TPoint* > >& theB
   return true;
 }
 
+
 // ==========================================================
 // structure representing a node of a grid of iso-poly-lines
 // ==========================================================
 
 struct TIsoNode {
+  bool   myIsMovable;
   gp_XY  myInitUV;
   gp_XY  myUV;
-  gp_XY* myPrevUV[2];
-  gp_XY* myNextUV[2];
   double myRatio[2];
-  TIsoNode(double initU, double initV): myInitUV( initU, initV ), myUV( 1e100, 1e100 )
-  { myPrevUV[0] = myPrevUV[1] = myNextUV[0] = myNextUV[1] = 0; }
+  gp_Dir2d  myDir[2]; // boundary tangent dir for boundary nodes, iso dir for internal ones
+  TIsoNode* myNext[4]; // order: (iDir=0,isForward=0), (1,0), (0,1), (1,1)
+  TIsoNode* myBndNodes[4];     // order: (iDir=0,i=0), (1,0), (0,1), (1,1)
+  TIsoNode(double initU, double initV):
+    myInitUV( initU, initV ), myUV( 1e100, 1e100 ), myIsMovable(true)
+  { myNext[0] = myNext[1] = myNext[2] = myNext[3] = 0; }
   bool IsUVComputed() const
   { return myUV.X() != 1e100; }
   bool IsMovable() const
-  { return myPrevUV[0] && myPrevUV[1] && myNextUV[0] && myNextUV[1]; }
+  { return myIsMovable && myNext[0] && myNext[1] && myNext[2] && myNext[3]; }
   void SetNotMovable()
-  { myPrevUV[0] = 0; }
+  { myIsMovable = false; }
+  void SetBoundaryNode(TIsoNode* node, int iDir, int i)
+  { myBndNodes[ iDir + i * 2 ] = node; }
+  TIsoNode* GetBoundaryNode(int iDir, int i)
+  { return myBndNodes[ iDir + i * 2 ]; }
+  void SetNext(TIsoNode* node, int iDir, int isForward)
+  { myNext[ iDir + isForward  * 2 ] = node; }
+  TIsoNode* GetNext(int iDir, int isForward)
+  { return myNext[ iDir + isForward * 2 ]; }
 };
 
+//=======================================================================
+//function : getNextNode
+//purpose  : 
+//=======================================================================
+
+static inline TIsoNode* getNextNode(const TIsoNode* node, int dir )
+{
+  TIsoNode* n = node->myNext[ dir ];
+  if ( n && !n->IsUVComputed()/* && node->IsMovable()*/ ) {
+    n = 0;//node->myBndNodes[ dir ];
+//     MESSAGE("getNextNode: use bnd for node "<<
+//             node->myInitUV.X()<<" "<<node->myInitUV.Y());
+  }
+  return n;
+}
+//=======================================================================
+//function : checkQuads
+//purpose  : check if newUV destortes quadrangles around node,
+//           and if ( crit == FIX_OLD ) fix newUV in this case
+//=======================================================================
+
+enum { CHECK_NEW_IN, CHECK_NEW_OK, FIX_OLD };
+
+static bool checkQuads (const TIsoNode* node,
+                        gp_XY&          newUV,
+                        const bool      reversed,
+                        const int       crit = FIX_OLD,
+                        double          fixSize = 0.)
+{
+  gp_XY oldUV = node->myUV, oldUVFixed[4], oldUVImpr[4];
+  int nbOldFix = 0, nbOldImpr = 0;
+  double newBadRate = 0, oldBadRate = 0;
+  bool newIsOk = true, newIsIn = true, oldIsIn = true, oldIsOk = true;
+  int i, dir1 = 0, dir2 = 3;
+  for ( ; dir1 < 4; dir1++, dir2++ )  // loop on 4 quadrangles around <node>
+  {
+    if ( dir2 > 3 ) dir2 = 0;
+    TIsoNode* n[3];
+    // walking counterclockwise around a quad,
+    // nodes are in the order: node, n[0], n[1], n[2]
+    n[0] = getNextNode( node, dir1 );
+    n[2] = getNextNode( node, dir2 );
+    if ( !n[0] || !n[2] ) continue;
+    n[1] = getNextNode( n[0], dir2 );
+    if ( !n[1] ) n[1] = getNextNode( n[2], dir1 );
+    bool isTriangle = ( !n[1] );
+    if ( reversed ) {
+      TIsoNode* tmp = n[0]; n[0] = n[2]; n[2] = tmp;
+    }
+//     if ( fixSize != 0 ) {
+// cout<<"NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<" UV: "<<node->myUV.X()<<" "<<node->myUV.Y()<<endl;
+// cout<<"\t0: "<<n[0]->myInitUV.X()<<" "<<n[0]->myInitUV.Y()<<" UV: "<<n[0]->myUV.X()<<" "<<n[0]->myUV.Y()<<endl;
+// cout<<"\t1: "<<n[1]->myInitUV.X()<<" "<<n[1]->myInitUV.Y()<<" UV: "<<n[1]->myUV.X()<<" "<<n[1]->myUV.Y()<<endl;
+// cout<<"\t2: "<<n[2]->myInitUV.X()<<" "<<n[2]->myInitUV.Y()<<" UV: "<<n[2]->myUV.X()<<" "<<n[2]->myUV.Y()<<endl;
+// }
+    // check if a quadrangle is degenerated
+    if ( !isTriangle &&
+        ((( n[0]->myUV - n[1]->myUV ).SquareModulus() <= DBL_MIN ) ||
+         (( n[2]->myUV - n[1]->myUV ).SquareModulus() <= DBL_MIN )))
+      isTriangle = true;
+    if ( isTriangle &&
+        ( n[0]->myUV - n[2]->myUV ).SquareModulus() <= DBL_MIN )
+      continue;
+
+    // find min size of the diagonal node-n[1]
+    double minDiag = fixSize;
+    if ( minDiag == 0. ) {
+      double maxLen2 = ( node->myUV - n[0]->myUV ).SquareModulus();
+      if ( !isTriangle ) {
+        maxLen2 = Max( maxLen2, ( n[0]->myUV - n[1]->myUV ).SquareModulus() );
+        maxLen2 = Max( maxLen2, ( n[1]->myUV - n[2]->myUV ).SquareModulus() );
+      }
+      maxLen2 = Max( maxLen2, ( n[2]->myUV - node->myUV ).SquareModulus() );
+      minDiag = sqrt( maxLen2 ) * PI / 60.; // ~ maxLen * Sin( 3 deg )
+    }
+
+    // check if newUV is behind 3 dirs: n[0]-n[1], n[1]-n[2] and n[0]-n[2]
+    // ( behind means "to the right of")
+    // it is OK if
+    // 1. newUV is not behind 01 and 12 dirs
+    // 2. or newUV is not behind 02 dir and n[2] is convex
+    bool newIn[3] = { true, true, true }, newOk[3] = { true, true, true };
+    bool wasIn[3] = { true, true, true }, wasOk[3] = { true, true, true };
+    gp_Vec2d moveVec[3], outVec[3];
+    for ( i = isTriangle ? 2 : 0; i < 3; i++ )
+    {
+      bool isDiag = ( i == 2 );
+      if ( isDiag && newOk[0] && newOk[1] && !isTriangle )
+        break;
+      gp_Vec2d sideDir;
+      if ( isDiag )
+        sideDir = gp_Vec2d( n[0]->myUV, n[2]->myUV );
+      else
+        sideDir = gp_Vec2d( n[i]->myUV, n[i+1]->myUV );
+
+      gp_Vec2d outDir( sideDir.Y(), -sideDir.X() ); // to the right
+      outDir.Normalize();
+      gp_Vec2d newDir( n[i]->myUV, newUV );
+      gp_Vec2d oldDir( n[i]->myUV, oldUV );
+      outVec[i] = outDir;
+      if ( newIsOk ) newOk[i] = ( outDir * newDir < -minDiag );
+      if ( newIsIn ) newIn[i] = ( outDir * newDir < 0 );
+      if ( crit == FIX_OLD ) {
+        wasIn[i] = ( outDir * oldDir < 0 );
+        wasOk[i] = ( outDir * oldDir < -minDiag );
+        if ( !newOk[i] )
+          newBadRate += outDir * newDir;
+        if ( !wasOk[i] )
+          oldBadRate += outDir * oldDir;
+        // push node inside
+        if ( !wasOk[i] ) {
+          double oldDist = - outDir * oldDir;//, l2 = outDir * newDir;
+          //               double r = ( l1 - minDiag ) / ( l1 + l2 );
+          //               moveVec[i] = r * gp_Vec2d( node->myUV, newUV );
+          moveVec[i] = ( oldDist - minDiag ) * outDir;
+        }
+      }
+    }
+
+    // check if n[2] is convex
+    bool convex = true;
+    if ( !isTriangle )
+      convex = ( outVec[0] * gp_Vec2d( n[1]->myUV, n[2]->myUV ) < 0 );
+
+    bool isNewOk = ( newOk[0] && newOk[1] ) || ( newOk[2] && convex );
+    bool isNewIn = ( newIn[0] && newIn[1] ) || ( newIn[2] && convex );
+    newIsOk = ( newIsOk && isNewOk );
+    newIsIn = ( newIsIn && isNewIn );
+
+    if ( crit != FIX_OLD ) {
+      if ( crit == CHECK_NEW_OK && !newIsOk ) break;
+      if ( crit == CHECK_NEW_IN && !newIsIn ) break;
+      continue;
+    }
+
+    bool isOldIn = ( wasIn[0] && wasIn[1] ) || ( wasIn[2] && convex );
+    bool isOldOk = ( wasOk[0] && wasOk[1] ) || ( wasOk[2] && convex );
+    oldIsIn = ( oldIsIn && isOldIn );
+    oldIsOk = ( oldIsOk && isOldIn );
+
+
+    if ( !isOldIn ) { // node is outside a quadrangle
+      // move newUV inside a quadrangle
+//MESSAGE("Quad "<< dir1 << "  WAS IN " << wasIn[0]<<" "<<wasIn[1]<<" "<<wasIn[2]);
+      // node and newUV are outside: push newUV inside
+      gp_XY uv;
+      if ( convex || isTriangle ) {
+        uv = 0.5 * ( n[0]->myUV + n[2]->myUV ) - minDiag * outVec[2].XY();
+      }
+      else {
+        gp_Vec2d out = outVec[0].Normalized() + outVec[1].Normalized();
+        double outSize = out.Magnitude();
+        if ( outSize > DBL_MIN )
+          out /= outSize;
+        else
+          out.SetCoord( -outVec[1].Y(), outVec[1].X() );
+        uv = n[1]->myUV - minDiag * out.XY();
+      }
+      oldUVFixed[ nbOldFix++ ] = uv;
+      //node->myUV = newUV;
+    }
+    else if ( !isOldOk )  {
+      // try to fix old UV: move node inside as less as possible
+//MESSAGE("Quad "<< dir1 << "  old is BAD, try to fix old, minDiag: "<< minDiag);
+      gp_XY uv1, uv2 = node->myUV;
+      for ( i = isTriangle ? 2 : 0; i < 3; i++ ) // mark not computed vectors
+        if ( wasOk[i] )
+          moveVec[ i ].SetCoord( 1, 2e100); // not use this vector 
+      while ( !isOldOk ) {
+        // find the least moveVec
+        int i, iMin = 4;
+        double minMove2 = 1e100;
+        for ( i = isTriangle ? 2 : 0; i < 3; i++ )
+        {
+          if ( moveVec[i].Coord(1) < 1e100 ) {
+            double move2 = moveVec[i].SquareMagnitude();
+            if ( move2 < minMove2 ) {
+              minMove2 = move2;
+              iMin = i;
+            }
+          }
+        }
+        if ( iMin == 4 ) {
+          break;
+        }
+        // move node to newUV
+        uv1 = node->myUV + moveVec[ iMin ].XY();
+        uv2 += moveVec[ iMin ].XY();
+        moveVec[ iMin ].SetCoord( 1, 2e100); // not use this vector more
+        // check if uv1 is ok
+        for ( i = isTriangle ? 2 : 0; i < 3; i++ )
+          wasOk[i] = ( outVec[i] * gp_Vec2d( n[i]->myUV, uv1 ) < -minDiag );
+        isOldOk = ( wasOk[0] && wasOk[1] ) || ( wasOk[2] && convex );
+        if ( isOldOk )
+          oldUVImpr[ nbOldImpr++ ] = uv1;
+        else {
+          // check if uv2 is ok
+          for ( i = isTriangle ? 2 : 0; i < 3; i++ )
+            wasOk[i] = ( outVec[i] * gp_Vec2d( n[i]->myUV, uv2 ) < -minDiag );
+          isOldOk = ( wasOk[0] && wasOk[1] ) || ( wasOk[2] && convex );
+          if ( isOldOk )
+            oldUVImpr[ nbOldImpr++ ] = uv2;
+        }
+      }
+    }
+
+  } // loop on 4 quadrangles around <node>
+
+  if ( crit == CHECK_NEW_OK  )
+    return newIsOk;
+  if ( crit == CHECK_NEW_IN  )
+    return newIsIn;
+
+  if ( newIsOk )
+    return true;
+
+  if ( oldIsOk )
+    newUV = oldUV;
+  else {
+    if ( oldIsIn && nbOldImpr ) {
+//       MESSAGE(" Try to improve UV, init: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<
+//               " uv: "<<oldUV.X()<<" "<<oldUV.Y() );
+      gp_XY uv = oldUVImpr[ 0 ];
+      for ( int i = 1; i < nbOldImpr; i++ )
+        uv += oldUVImpr[ i ];
+      uv /= nbOldImpr;
+      if ( checkQuads( node, uv, reversed, CHECK_NEW_OK )) {
+        newUV = uv;
+        return false;
+      }
+      else {
+        //MESSAGE(" Cant improve UV, uv: "<<uv.X()<<" "<<uv.Y());
+      }
+    }
+    if ( !oldIsIn && nbOldFix ) {
+//       MESSAGE(" Try to fix UV, init: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<
+//               " uv: "<<oldUV.X()<<" "<<oldUV.Y() );
+      gp_XY uv = oldUVFixed[ 0 ];
+      for ( int i = 1; i < nbOldFix; i++ )
+        uv += oldUVFixed[ i ];
+      uv /= nbOldFix;
+      if ( checkQuads( node, uv, reversed, CHECK_NEW_IN )) {
+        newUV = uv;
+        return false;
+      }
+      else {
+        //MESSAGE(" Cant fix UV, uv: "<<uv.X()<<" "<<uv.Y());
+      }
+    }
+    if ( newIsIn && oldIsIn )
+      newUV = ( newBadRate < oldBadRate ) ? newUV : oldUV;
+    else if ( !newIsIn )
+      newUV = oldUV;
+  }
+
+  return false;
+}
+
 //=======================================================================
 //function : compUVByElasticIsolines
 //purpose  : compute UV as nodes of iso-poly-lines consisting of
 //           segments keeping relative size as in the pattern
 //=======================================================================
-
+//#define DEB_COMPUVBYELASTICISOLINES
 bool SMESH_Pattern::
   compUVByElasticIsolines(const list< list< TPoint* > >& theBndPoints,
                           const list< TPoint* >&         thePntToCompute)
 {
+//cout << "============================== KEY POINTS =============================="<<endl;
+//   list< int >::iterator kpIt = myKeyPointIDs.begin();
+//   for ( ; kpIt != myKeyPointIDs.end(); kpIt++ ) {
+//     TPoint& p = myPoints[ *kpIt ];
+//     cout << "INIT: " << p.myInitUV.X() << " " << p.myInitUV.Y() <<
+//       " UV: " << p.myUV.X() << " " << p.myUV.Y() << endl;
+//  }
+//cout << "=============================="<<endl;
+
   // Define parameters of iso-grid nodes in U and V dir
 
   set< double > paramSet[ 2 ];
   list< list< TPoint* > >::const_iterator pListIt;
   list< TPoint* >::const_iterator pIt;
-//   for ( pListIt = theBndPoints.begin(); pListIt != theBndPoints.end(); pListIt++ ) {
-//     const list< TPoint* > & pList = * pListIt;
-//     for ( pIt = pList.begin(); pIt != pList.end(); pIt++ ) {
-//       paramSet[0].insert( (*pIt)->myInitUV.X() );
-//       paramSet[1].insert( (*pIt)->myInitUV.Y() );
-//     }
-//   }
+  for ( pListIt = theBndPoints.begin(); pListIt != theBndPoints.end(); pListIt++ ) {
+    const list< TPoint* > & pList = * pListIt;
+    for ( pIt = pList.begin(); pIt != pList.end(); pIt++ ) {
+      paramSet[0].insert( (*pIt)->myInitUV.X() );
+      paramSet[1].insert( (*pIt)->myInitUV.Y() );
+    }
+  }
   for ( pIt = thePntToCompute.begin(); pIt != thePntToCompute.end(); pIt++ ) {
     paramSet[0].insert( (*pIt)->myInitUV.X() );
     paramSet[1].insert( (*pIt)->myInitUV.Y() );
@@ -1060,16 +1342,16 @@ bool SMESH_Pattern::
     set< double > & params = paramSet[ iDir ];
     double range = ( *params.rbegin() - *params.begin() );
     double toler = range / 1e6;
-    double maxSegment = range / params.size() / 2.;
     tol[ iDir ] = toler;
-
+//    double maxSegment = range / params.size() / 2.;
+//
 //     set< double >::iterator parIt = params.begin();
 //     double prevPar = *parIt;
 //     for ( parIt++; parIt != params.end(); parIt++ )
 //     {
 //       double segLen = (*parIt) - prevPar;
 //       if ( segLen < toler )
-//         params.erase( prevPar ); // unite
+//         ;//params.erase( prevPar ); // unite
 //       else if ( segLen > maxSegment )
 //         params.insert( prevPar + 0.5 * segLen ); // split
 //       prevPar = (*parIt);
@@ -1086,7 +1368,7 @@ bool SMESH_Pattern::
   set< double >::iterator par0It = params0.begin();
   for ( ; par0It != params0.end(); par0It++ )
   {
-    TIsoLine & isoLine0 = isoMap[0][ *par0It ]; // isoline with const U
+    TIsoLine & isoLine0 = isoMap[0][ *par0It ]; // vertical isoline with const U
     set< double > & params1 = paramSet[ 1 ];
     set< double >::iterator par1It = params1.begin();
     for ( ; par1It != params1.end(); par1It++ )
@@ -1097,10 +1379,12 @@ bool SMESH_Pattern::
     }
   }
 
-  // Compute intersections of boundaries with iso-lines
+  // Compute intersections of boundaries with iso-lines:
+  // only boundary nodes will have computed UV so far
 
-  Bnd_Box2d uvBox;
+  Bnd_Box2d uvBnd;
   list< list< TPoint* > >::const_iterator bndIt = theBndPoints.begin();
+  list< TIsoNode* > bndNodes; // nodes corresponding to outer theBndPoints
   for ( ; bndIt != theBndPoints.end(); bndIt++ )
   {
     const list< TPoint* > & bndPoints = * bndIt;
@@ -1110,7 +1394,6 @@ bool SMESH_Pattern::
     for ( ; pIt != bndPoints.end(); pIt++ )
     {
       TPoint* point = *pIt;
-      uvBox.Add( gp_Pnt2d( point->myUV ));
       for ( iDir = 0; iDir < 2; iDir++ )
       {
         const int iCoord = iDir + 1;
@@ -1146,70 +1429,132 @@ bool SMESH_Pattern::
           }
           TIsoNode * node;
           if ( Abs( nodePar - otherPar ) <= toler )
-            node = (*nIt);
+            node = ( nIt == isoLine.end() ) ? isoLine.back() : (*nIt);
           else {
             nodes.push_back( TIsoNode( initUV.X(), initUV.Y() ) );
             node = & nodes.back();
             isoLine.insert( nIt, node );
           }
+          node->SetNotMovable();
           node->myUV = uv;
-        }
-      }
+          uvBnd.Add( gp_Pnt2d( uv ));
+//  cout << "bnd: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<" UV: "<<node->myUV.X()<<" "<<node->myUV.Y()<<endl;
+          // tangent dir
+          gp_XY tgt( point->myUV - prevP->myUV );
+          if ( ::IsEqual( r, 1. ))
+            node->myDir[ 0 ] = tgt;
+          else if ( ::IsEqual( r, 0. ))
+            node->myDir[ 1 ] = tgt;
+          else
+            node->myDir[ 1 ] = node->myDir[ 0 ] = tgt;
+          // keep boundary nodes corresponding to boundary points
+          if ( bndIt == theBndPoints.begin() && ::IsEqual( r, 1. ))
+            if ( bndNodes.empty() || bndNodes.back() != node )
+              bndNodes.push_back( node );
+        } // loop on isolines
+      } // loop on 2 directions
       prevP = point;
     } // loop on boundary points
   } // loop on boundaries
 
-  // Connect XY of nodes and mark not movable nodes out of the boundary
+  // Define orientation
 
+  // find the point with the least X
+  double leastX = DBL_MAX;
+  TIsoNode * leftNode;
+  list < TIsoNode >::iterator nodeIt = nodes.begin();
+  for ( ; nodeIt != nodes.end(); nodeIt++  ) {
+    TIsoNode & node = *nodeIt;
+    if ( node.IsUVComputed() && node.myUV.X() < leastX ) {
+      leastX = node.myUV.X();
+      leftNode = &node;
+    }
+// if ( node.IsUVComputed() ) {
+// cout << "bndNode INIT: " << node.myInitUV.X()<<" "<<node.myInitUV.Y()<<" UV: "<<
+//   node.myUV.X()<<" "<<node.myUV.Y()<<endl<<
+//    " dir0: "<<node.myDir[0].X()<<" "<<node.myDir[0].Y() <<
+//      " dir1: "<<node.myDir[1].X()<<" "<<node.myDir[1].Y() << endl;
+// }
+  }
+  bool reversed = ( leftNode->myDir[0].Y() + leftNode->myDir[1].Y() > 0 );
+  //SCRUTE( reversed );
+
+  // Prepare internal nodes:
+  // 1. connect nodes
+  // 2. compute ratios
+  // 3. find boundary nodes for each node
+  // 4. remove nodes out of the boundary
   for ( iDir = 0; iDir < 2; iDir++ )
   {
-    const int iCoord = 2 - iDir;
+    const int iCoord = 2 - iDir; // coord changing along an isoline
     map < double, TIsoLine >& isos = isoMap[ iDir ];
     map < double, TIsoLine >::iterator isoIt = isos.begin();
     for ( ; isoIt != isos.end(); isoIt++ )
     {
       TIsoLine & isoLine = (*isoIt).second;
       bool firstCompNodeFound = false;
-      TIsoLine::iterator lastCompNodePos, nPrevIt, nIt, nNextIt;
+      TIsoLine::iterator lastCompNodePos, nPrevIt, nIt, nNextIt, nIt2;
       nPrevIt = nIt = nNextIt = isoLine.begin();
       nIt++;
       nNextIt++; nNextIt++;
       while ( nIt != isoLine.end() )
       {
-        // connect prev - cur for internal nodes
+        // 1. connect prev - cur
         TIsoNode* node = *nIt, * prevNode = *nPrevIt;
-        if ( !node->IsUVComputed() )
-          node->myPrevUV[ iDir ] = & prevNode->myUV;
-        if ( !prevNode->IsUVComputed() )
-          prevNode->myNextUV[ iDir ] = & node->myUV;
-        // compute ratio
+        if ( !firstCompNodeFound && prevNode->IsUVComputed() ) {
+          firstCompNodeFound = true;
+          lastCompNodePos = nPrevIt;
+        }
+        if ( firstCompNodeFound ) {
+          node->SetNext( prevNode, iDir, 0 );
+          prevNode->SetNext( node, iDir, 1 );
+        }
+        // 2. compute ratio
         if ( nNextIt != isoLine.end() ) {
           double par1 = prevNode->myInitUV.Coord( iCoord );
           double par2 = node->myInitUV.Coord( iCoord );
           double par3 = (*nNextIt)->myInitUV.Coord( iCoord );
           node->myRatio[ iDir ] = ( par2 - par1 ) / ( par3 - par1 );
-          nNextIt++;
-        }
-        // mark not movable before the boundary
-        if ( !firstCompNodeFound ) {
-          if ( !prevNode->IsUVComputed() )
-            prevNode->SetNotMovable();
-          else
-            firstCompNodeFound = true;
         }
+        // 3. find boundary nodes
         if ( node->IsUVComputed() )
           lastCompNodePos = nIt;
+        else if ( firstCompNodeFound && nNextIt != isoLine.end() ) {
+          TIsoNode* bndNode1 = *lastCompNodePos, *bndNode2 = 0;
+          for ( nIt2 = nNextIt; nIt2 != isoLine.end(); nIt2++ )
+            if ( (*nIt2)->IsUVComputed() )
+              break;
+          if ( nIt2 != isoLine.end() ) {
+            bndNode2 = *nIt2;
+            node->SetBoundaryNode( bndNode1, iDir, 0 );
+            node->SetBoundaryNode( bndNode2, iDir, 1 );
+// cout << "--------------------------------------------------"<<endl;
+//  cout << "bndNode1: " << bndNode1->myUV.X()<<" "<<bndNode1->myUV.Y()<<endl<<
+//   " dir0: "<<bndNode1->myDir[0].X()<<" "<<bndNode1->myDir[0].Y() <<
+//     " dir1: "<<bndNode1->myDir[1].X()<<" "<<bndNode1->myDir[1].Y() << endl;
+//  cout << "bndNode2: " << bndNode2->myUV.X()<<" "<<bndNode2->myUV.Y()<<endl<<
+//   " dir0: "<<bndNode2->myDir[0].X()<<" "<<bndNode2->myDir[0].Y() <<
+//     " dir1: "<<bndNode2->myDir[1].X()<<" "<<bndNode2->myDir[1].Y() << endl;
+          }
+        }
         nIt++; nPrevIt++;
-      }
-      // mark not movable after the boundary
-      for ( nIt = ++lastCompNodePos; nIt != isoLine.end(); nIt++ )
-        (*nIt)->SetNotMovable();
-    }
-  }
-
-  // Compute starting UV of internal nodes by iso intersection
-
-  map < double, TIsoLine >& isos = isoMap[ 0 ];
+        if ( nNextIt != isoLine.end() ) nNextIt++;
+        // 4. remove nodes out of the boundary
+        if ( !firstCompNodeFound )
+          isoLine.pop_front();
+      } // loop on isoLine nodes
+
+      // remove nodes after the boundary
+//       for ( nIt = ++lastCompNodePos; nIt != isoLine.end(); nIt++ )
+//         (*nIt)->SetNotMovable();
+      isoLine.erase( ++lastCompNodePos, isoLine.end() );
+    } // loop on isolines
+  } // loop on 2 directions
+
+  // Compute local isoline direction for internal nodes
+
+  /*
+  map < double, TIsoLine >& isos = isoMap[ 0 ]; // vertical isolines with const U
   map < double, TIsoLine >::iterator isoIt = isos.begin();
   for ( ; isoIt != isos.end(); isoIt++ )
   {
@@ -1218,68 +1563,367 @@ bool SMESH_Pattern::
     for ( ; nIt != isoLine.end(); nIt++ )
     {
       TIsoNode* node = *nIt;
-      if ( !node->IsUVComputed() && node->IsMovable() )
-        if ( !compUVByIsoIntersection( theBndPoints, node->myInitUV, node->myUV ))
-          node->myUV = node->myInitUV;
+      if ( node->IsUVComputed() || !node->IsMovable() )
+        continue;
+      gp_Vec2d aTgt[2], aNorm[2];
+      double ratio[2];
+      bool OK = true;
+      for ( iDir = 0; iDir < 2; iDir++ )
+      {
+        TIsoNode* bndNode1 = node->GetBoundaryNode( iDir, 0 );
+        TIsoNode* bndNode2 = node->GetBoundaryNode( iDir, 1 );
+        if ( !bndNode1 || !bndNode2 ) {
+          OK = false;
+          break;
+        }
+        const int iCoord = 2 - iDir; // coord changing along an isoline
+        double par1 = bndNode1->myInitUV.Coord( iCoord );
+        double par2 = node->myInitUV.Coord( iCoord );
+        double par3 = bndNode2->myInitUV.Coord( iCoord );
+        ratio[ iDir ] = ( par2 - par1 ) / ( par3 - par1 );
+
+        gp_Vec2d tgt1( bndNode1->myDir[0].XY() + bndNode1->myDir[1].XY() );
+        gp_Vec2d tgt2( bndNode2->myDir[0].XY() + bndNode2->myDir[1].XY() );
+        if ( bool( iDir ) == reversed ) tgt2.Reverse(); // along perpend. isoline
+        else                            tgt1.Reverse();
+//cout<<" tgt: " << tgt1.X()<<" "<<tgt1.Y()<<" | "<< tgt2.X()<<" "<<tgt2.Y()<<endl;
+
+        if ( ratio[ iDir ] < 0.5 )
+          aNorm[ iDir ] = gp_Vec2d( -tgt1.Y(), tgt1.X() ); // rotate tgt to the left
+        else
+          aNorm[ iDir ] = gp_Vec2d( -tgt2.Y(), tgt2.X() );
+        if ( iDir == 1 )
+          aNorm[ iDir ].Reverse();  // along iDir isoline
+
+        double angle = tgt1.Angle( tgt2 ); //  [-PI, PI]
+        // maybe angle is more than |PI|
+        if ( Abs( angle ) > PI / 2. ) {
+          // check direction of the last but one perpendicular isoline
+          TIsoNode* prevNode = bndNode2->GetNext( iDir, 0 );
+          bndNode1 = prevNode->GetBoundaryNode( 1 - iDir, 0 );
+          bndNode2 = prevNode->GetBoundaryNode( 1 - iDir, 1 );
+          gp_Vec2d isoDir( bndNode1->myUV, bndNode2->myUV );
+          if ( isoDir * tgt2 < 0 )
+            isoDir.Reverse();
+          double angle2 = tgt1.Angle( isoDir );
+          //cout << " isoDir: "<< isoDir.X() <<" "<<isoDir.Y() << " ANGLE: "<< angle << " "<<angle2<<endl;
+          if (angle2 * angle < 0 && // check the sign of an angle close to PI
+              Abs ( Abs ( angle ) - PI ) <= PI / 180. ) {
+            //MESSAGE("REVERSE ANGLE");
+            angle = -angle;
+          }
+          if ( Abs( angle2 ) > Abs( angle ) ||
+              ( angle2 * angle < 0 && Abs( angle2 ) > Abs( angle - angle2 ))) {
+            //MESSAGE("Add PI");
+            // cout << "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
+            // cout <<"ISO: " << isoParam << " " << (*iso2It).first << endl;
+            // cout << "bndNode1: " << bndNode1->myUV.X()<<" "<<bndNode1->myUV.Y()<< endl;
+            // cout << "bndNode2: " << bndNode2->myUV.X()<<" "<<bndNode2->myUV.Y()<<endl;
+            // cout <<" tgt: " << tgt1.X()<<" "<<tgt1.Y()<<"  "<< tgt2.X()<<" "<<tgt2.Y()<<endl;
+            angle += ( angle < 0 ) ? 2. * PI : -2. * PI;
+          }
+        }
+        aTgt[ iDir ] = tgt1.Rotated( angle * ratio[ iDir ] ).XY();
+      } // loop on 2 dir
+
+      if ( OK ) {
+        for ( iDir = 0; iDir < 2; iDir++ )
+        {
+          aTgt[iDir].Normalize();
+          aNorm[1-iDir].Normalize();
+          double r = Abs ( ratio[iDir] - 0.5 ) * 2.0; // [0,1] - distance from the middle
+          r *= r;
+          
+          node->myDir[iDir] = //aTgt[iDir];
+            aNorm[1-iDir] * r + aTgt[iDir] * ( 1. - r );
+        }
+// cout << "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
+// cout <<" tgt: " << tgt1.X()<<" "<<tgt1.Y()<<" - "<< tgt2.X()<<" "<<tgt2.Y()<<endl;
+//  cout << " isoDir: "<< node->myDir[0].X() <<" "<<node->myDir[0].Y()<<"  |  "
+//    << node->myDir[1].X() <<" "<<node->myDir[1].Y()<<endl;
+      }
+    } // loop on iso nodes
+  } // loop on isolines
+*/
+  // Find nodes to start computing UV from
+
+  list< TIsoNode* > startNodes;
+  list< TIsoNode* >::iterator nIt = bndNodes.end();
+  TIsoNode* node = *(--nIt);
+  TIsoNode* prevNode = *(--nIt);
+  for ( nIt = bndNodes.begin(); nIt != bndNodes.end(); nIt++ )
+  {
+    TIsoNode* nextNode = *nIt;
+    gp_Vec2d initTgt1( prevNode->myInitUV, node->myInitUV );
+    gp_Vec2d initTgt2( node->myInitUV, nextNode->myInitUV );
+    double initAngle = initTgt1.Angle( initTgt2 );
+    double angle = node->myDir[0].Angle( node->myDir[1] );
+    if ( reversed ) angle = -angle;
+    if ( initAngle > angle && initAngle - angle > PI / 2.1 ) {
+      // find a close internal node
+      TIsoNode* nClose = 0;
+      list< TIsoNode* > testNodes;
+      testNodes.push_back( node );
+      list< TIsoNode* >::iterator it = testNodes.begin();
+      for ( ; !nClose && it != testNodes.end(); it++ )
+      {
+        for (int i = 0; i < 4; i++ )
+        {
+          nClose = (*it)->myNext[ i ];
+          if ( nClose ) {
+            if ( !nClose->IsUVComputed() )
+              break;
+            else {
+              testNodes.push_back( nClose );
+              nClose = 0;
+            }
+          }
+        }
+      }
+      startNodes.push_back( nClose );
+// cout << "START: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<" UV: "<<
+//   node->myUV.X()<<" "<<node->myUV.Y()<<endl<<
+//   "initAngle: " << initAngle << " angle: " << angle << endl;
+// cout <<" init tgt: " << initTgt1.X()<<" "<<initTgt1.Y()<<" | "<< initTgt2.X()<<" "<<initTgt2.Y()<<endl;
+// cout << " tgt: "<< node->myDir[ 0 ].X() <<" "<<node->myDir[ 0 ].Y()<<" | "<<
+//    node->myDir[ 1 ].X() <<" "<<node->myDir[ 1 ].Y()<<endl;
+// cout << "CLOSE: "<<nClose->myInitUV.X()<<" "<<nClose->myInitUV.Y()<<endl;
     }
+    prevNode = node;
+    node = nextNode;
   }
 
+  // Compute starting UV of internal nodes
+
+  list < TIsoNode* > internNodes;
+  bool needIteration = true;
+  if ( startNodes.empty() ) {
+    MESSAGE( " Starting UV by compUVByIsoIntersection()");
+    needIteration = false;
+    map < double, TIsoLine >& isos = isoMap[ 0 ];
+    map < double, TIsoLine >::iterator isoIt = isos.begin();
+    for ( ; isoIt != isos.end(); isoIt++ )
+    {
+      TIsoLine & isoLine = (*isoIt).second;
+      TIsoLine::iterator nIt = isoLine.begin();
+      for ( ; !needIteration && nIt != isoLine.end(); nIt++ )
+      {
+        TIsoNode* node = *nIt;
+        if ( !node->IsUVComputed() && node->IsMovable() ) {
+          internNodes.push_back( node );
+          //bool isDeformed;
+          if ( !compUVByIsoIntersection(theBndPoints, node->myInitUV,
+                                        node->myUV, needIteration ))
+            node->myUV = node->myInitUV;
+        }
+      }
+    }
+    if ( needIteration )
+      for ( nIt = bndNodes.begin(); nIt != bndNodes.end(); nIt++ )
+      {
+        TIsoNode* node = *nIt, *nClose = 0;
+        list< TIsoNode* > testNodes;
+        testNodes.push_back( node );
+        list< TIsoNode* >::iterator it = testNodes.begin();
+        for ( ; !nClose && it != testNodes.end(); it++ )
+        {
+          for (int i = 0; i < 4; i++ )
+          {
+            nClose = (*it)->myNext[ i ];
+            if ( nClose ) {
+              if ( !nClose->IsUVComputed() && nClose->IsMovable() )
+                break;
+              else {
+                testNodes.push_back( nClose );
+                nClose = 0;
+              }
+            }
+          }
+        }
+        startNodes.push_back( nClose );
+      }
+  }
+
+  double aMin[2], aMax[2], step[2];
+  uvBnd.Get( aMin[0], aMin[1], aMax[0], aMax[1] );
+  double minUvSize = Min ( aMax[0]-aMin[0], aMax[1]-aMin[1] );
+  step[0] = minUvSize / paramSet[ 0 ].size() / 10;
+  step[1] = minUvSize / paramSet[ 1 ].size() / 10;
+//cout << "STEPS: " << step[0] << " " << step[1]<< endl;
+
+  for ( nIt = startNodes.begin(); nIt != startNodes.end(); nIt++ )
+  {
+    TIsoNode* prevN[2], *node = *nIt;
+    if ( node->IsUVComputed() || !node->IsMovable() )
+      continue;
+    gp_XY newUV( 0, 0 ), sumDir( 0, 0 );
+    int nbComp = 0, nbPrev = 0;
+    for ( iDir = 0; iDir < 2; iDir++ )
+    {
+      TIsoNode* prevNode1 = 0, *prevNode2 = 0;
+      TIsoNode* n = node->GetNext( iDir, 0 );
+      if ( n->IsUVComputed() )
+        prevNode1 = n;
+      else
+        startNodes.push_back( n );
+      n = node->GetNext( iDir, 1 );
+      if ( n->IsUVComputed() )
+        prevNode2 = n;
+      else
+        startNodes.push_back( n );
+      if ( !prevNode1 ) {
+        prevNode1 = prevNode2;
+        prevNode2 = 0;
+      }
+      if ( prevNode1 ) nbPrev++;
+      if ( prevNode2 ) nbPrev++;
+      if ( prevNode1 ) {
+        gp_XY dir;
+          double prevPar = prevNode1->myInitUV.Coord( 2 - iDir );
+          double par = node->myInitUV.Coord( 2 - iDir );
+          bool isEnd = ( prevPar > par );
+//          dir = node->myDir[ 1 - iDir ].XY() * ( isEnd ? -1. : 1. );
+        //cout << "__________"<<endl<< "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
+          TIsoNode* bndNode = node->GetBoundaryNode( iDir, isEnd );
+          gp_XY tgt( bndNode->myDir[0].XY() + bndNode->myDir[1].XY() );
+          dir.SetCoord( 1, tgt.Y() * ( reversed ? 1 : -1 ));
+          dir.SetCoord( 2, tgt.X() * ( reversed ? -1 : 1 ));
+        //cout << "bndNode UV: " << bndNode->myUV.X()<<" "<<bndNode->myUV.Y()<< endl;
+          //  cout << " tgt: "<< bndNode->myDir[ 0 ].X() <<" "<<bndNode->myDir[ 0 ].Y()<<" | "<<
+          //     bndNode->myDir[ 1 ].X() <<" "<<bndNode->myDir[ 1 ].Y()<<endl;
+          //cout << "prevNode UV: " << prevNode1->myUV.X()<<" "<<prevNode1->myUV.Y()<<
+            //" par: " << prevPar << endl;
+          //           cout <<" tgt: " << tgt.X()<<" "<<tgt.Y()<<endl;
+        //cout << " DIR: "<< dir.X() <<" "<<dir.Y()<<endl;
+        if ( prevNode2 ) {
+          //cout << "____2next______"<<endl<< "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
+          gp_XY & uv1 = prevNode1->myUV;
+          gp_XY & uv2 = prevNode2->myUV;
+//           dir = ( uv2 - uv1 );
+//           double len = dir.Modulus();
+//           if ( len > DBL_MIN )
+//             dir /= len * 0.5;
+          double r = node->myRatio[ iDir ];
+          newUV += uv1 * ( 1 - r ) + uv2 * r;
+        }
+        else {
+          newUV += prevNode1->myUV + dir * step[ iDir ];
+        }
+        sumDir += dir;
+        prevN[ iDir ] = prevNode1;
+        nbComp++;
+      }
+    }
+    newUV /= nbComp;
+    node->myUV = newUV;
+    //cout << "NODE: "<<node->myInitUV.X()<<" "<<node->myInitUV.Y()<<endl;
+
+    // check if a quadrangle is not distorted
+    if ( nbPrev > 1 ) {
+      //int crit = ( nbPrev == 4 ) ? FIX_OLD : CHECK_NEW_IN;
+      if ( !checkQuads( node, newUV, reversed, FIX_OLD, step[0] + step[1] )) {
+      //cout <<" newUV: " << node->myUV.X() << " "<<node->myUV.Y() << " nbPrev: "<<nbPrev<< endl;
+      //  cout << "_FIX_INIT_ fixedUV: " << newUV.X() << " "<<newUV.Y() << endl;
+        node->myUV = newUV;
+      }
+    }
+    internNodes.push_back( node );
+  }
+  
   // Move nodes
 
-  static int maxNbIter = 100; // -1
-  //maxNbIter++;
-  maxNbIter = ( maxNbIter < 0 ) ? 100 : -1;
-    
+  static int maxNbIter = 100;
+#ifdef DEB_COMPUVBYELASTICISOLINES
+//   maxNbIter++;
+  bool useNbMoveNode = 0;
+  static int maxNbNodeMove = 100;
+  maxNbNodeMove++;
+  int nbNodeMove = 0;
+  if ( !useNbMoveNode )
+    maxNbIter = ( maxNbIter < 0 ) ? 100 : -1;
+#endif    
   double maxMove;
   int nbIter = 0;
   do {
+    if ( !needIteration) break;
+#ifdef DEB_COMPUVBYELASTICISOLINES
     if ( nbIter >= maxNbIter ) break;
+#endif
     maxMove = 0.0;
-    list < TIsoNode >::iterator nIt = nodes.begin();
-    for ( ; nIt != nodes.end(); nIt++  ) {
-      TIsoNode & node = *nIt;
-      if ( node.IsMovable() )
+    list < TIsoNode* >::iterator nIt = internNodes.begin();
+    for ( ; nIt != internNodes.end(); nIt++  ) {
+#ifdef DEB_COMPUVBYELASTICISOLINES
+      if (useNbMoveNode )
+        cout << nbNodeMove <<" =================================================="<<endl;
+#endif
+      TIsoNode * node = *nIt;
+      // make lines
+      //gp_Lin2d line[2];
+      gp_XY loc[2];
+      for ( iDir = 0; iDir < 2; iDir++ )
       {
-        gp_Lin2d line[2];
-        gp_XY location[2];
-        bool lineFound = true;
-        for ( iDir = 0; iDir < 2; iDir++ )
-        {
-          // make a line
-          gp_XY uv1( *node.myPrevUV[ iDir ] ), uv2( *node.myNextUV[ iDir ] );
-          gp_XY dUV( uv2 - uv1 );
-          if ( dUV.SquareModulus() <= DBL_MIN * DBL_MIN ) {
-            lineFound = false;
-            break;
-          }
-          double r = node.myRatio[ iDir ];
-          gp_Lin2d l( uv1, dUV );
-          gp_XY loc = uv1 * ( 1 - r ) + uv2 * r;
-          location[ iDir ] = loc;
-          line[ iDir ] = l/*.Normal( loc )*/;
-        }
-        // intersect the 2 lines and move a node
-        gp_XY newUV;
-        if (lineFound &&
-            intersectIsolines (*node.myPrevUV[0], *node.myNextUV[0], node.myRatio[0],
-                               *node.myPrevUV[0], *node.myNextUV[0], node.myRatio[0],
-                               newUV ) &&
-            !uvBox.IsOut( newUV ) )
-        {
-          maxMove = Max( maxMove, ( newUV - node.myUV ).SquareModulus());
-          node.myUV = newUV;
-        }
+        gp_XY & uv1 = node->GetNext( iDir, 0 )->myUV;
+        gp_XY & uv2 = node->GetNext( iDir, 1 )->myUV;
+        double r = node->myRatio[ iDir ];
+        loc[ iDir ] = uv1 * ( 1 - r ) + uv2 * r;
+//         line[ iDir ].SetLocation( loc[ iDir ] );
+//         line[ iDir ].SetDirection( node->myDir[ iDir ] );
       }
-    }
+      // define ratio
+      double locR[2] = { 0, 0 };
+      for ( iDir = 0; iDir < 2; iDir++ )
+      {
+        const int iCoord = 2 - iDir; // coord changing along an isoline
+        TIsoNode* bndNode1 = node->GetBoundaryNode( iDir, 0 );
+        TIsoNode* bndNode2 = node->GetBoundaryNode( iDir, 1 );
+        double par1 = bndNode1->myInitUV.Coord( iCoord );
+        double par2 = node->myInitUV.Coord( iCoord );
+        double par3 = bndNode2->myInitUV.Coord( iCoord );
+        double r = ( par2 - par1 ) / ( par3 - par1 );
+        r = Abs ( r - 0.5 ) * 2.0;  // [0,1] - distance from the middle
+        locR[ iDir ] = ( 1 - r * r ) * 0.25;
+      }
+      //locR[0] = locR[1] = 0.25;
+      // intersect the 2 lines and move a node
+      //IntAna2d_AnaIntersection inter( line[0], line[1] );
+      if ( /*inter.IsDone() && inter.NbPoints() ==*/ 1 )
+      {
+//         double intR = 1 - locR[0] - locR[1];
+//         gp_XY newUV = inter.Point(1).Value().XY();
+//         if ( !checkQuads( node, newUV, reversed, CHECK_NEW_IN ))
+//           newUV = ( locR[0] * loc[0] + locR[1] * loc[1] ) / ( 1 - intR );
+//         else
+//           newUV = intR * newUV + locR[0] * loc[0] + locR[1] * loc[1];
+        gp_XY newUV = 0.5 * ( loc[0] +  loc[1] );
+        // avoid parallel isolines intersection
+        checkQuads( node, newUV, reversed );
+
+        maxMove = Max( maxMove, ( newUV - node->myUV ).SquareModulus());
+        node->myUV = newUV;
+      } // intersection found
+#ifdef DEB_COMPUVBYELASTICISOLINES
+      if (useNbMoveNode && ++nbNodeMove >= maxNbNodeMove ) break;
+#endif
+    } // loop on internal nodes
+#ifdef DEB_COMPUVBYELASTICISOLINES
+    if (useNbMoveNode && nbNodeMove >= maxNbNodeMove ) break;
+#endif
   } while ( maxMove > 1e-8 && nbIter++ < maxNbIter );
 
   MESSAGE( "compUVByElasticIsolines(): Nb iterations " << nbIter << " dist: " << sqrt( maxMove ));
 
+  if ( nbIter >= maxNbIter && sqrt(maxMove) > minUvSize * 0.05 ) {
+    MESSAGE( "compUVByElasticIsolines() failed: "<<sqrt(maxMove)<<">"<<minUvSize * 0.05);
+#ifndef DEB_COMPUVBYELASTICISOLINES
+    return false;
+#endif
+  }
+
   // Set computed UV to points
-  
+
   for ( pIt = thePntToCompute.begin(); pIt != thePntToCompute.end(); pIt++ ) {
     TPoint* point = *pIt;
-    gp_XY oldUV = point->myUV;
+    //gp_XY oldUV = point->myUV;
     double minDist = DBL_MAX;
     list < TIsoNode >::iterator nIt = nodes.begin();
     for ( ; nIt != nodes.end(); nIt++ ) {
@@ -1426,7 +2070,6 @@ bool SMESH_Pattern::sortSameSizeWires (TListOfEdgesList &                theWire
                                        list< list< TPoint* > >&          theEdgesPointsList )
 {
   TopoDS_Face F = TopoDS::Face( myShape );
-  int iE, nbEdgeInWire = (*theFromWire).size();
   int iW, nbWires = 0;
   TListOfEdgesList::iterator wlIt = theFromWire;
   while ( wlIt++ != theToWire )
@@ -1435,6 +2078,7 @@ bool SMESH_Pattern::sortSameSizeWires (TListOfEdgesList &                theWire
   // Recompute key-point UVs by isolines intersection,
   // compute CG of key-points for each wire and bnd boxes of GCs
 
+  bool aBool;
   gp_XY orig( gp::Origin2d().XY() );
   vector< gp_XY > vGcVec( nbWires, orig ), gcVec( nbWires, orig );
   Bnd_Box2d bndBox, vBndBox;
@@ -1447,7 +2091,7 @@ bool SMESH_Pattern::sortSameSizeWires (TListOfEdgesList &                theWire
     {
       list< TPoint* > & ePoints = getShapePoints( eID++ );
       TPoint* p = ePoints.front();
-      if ( !compUVByIsoIntersection( theEdgesPointsList, p->myInitUV, p->myUV )) {
+      if ( !compUVByIsoIntersection( theEdgesPointsList, p->myInitUV, p->myUV, aBool )) {
         MESSAGE("cant sortSameSizeWires()");
         return false;
       }
@@ -1531,6 +2175,7 @@ bool SMESH_Pattern::sortSameSizeWires (TListOfEdgesList &                theWire
     {
       list< TPoint* > & ePoints = getShapePoints( eID++ );
       computeUVOnEdge( *eIt, ePoints );
+      edgesPoints.insert( edgesPoints.end(), ePoints.begin(), (--ePoints.end()));
     }
     // put wire back to theWireList
     wlIt = wirePos++;
@@ -1627,6 +2272,7 @@ bool SMESH_Pattern::Apply (const TopoDS_Face&   theFace,
   {
     // compute UV of inner edge-points using the method for in-face points
     // and devide eList into a list of separate wires
+    bool aBool;
     list< list< TopoDS_Edge > > wireList;
     list<TopoDS_Edge>::iterator eIt = elIt;
     list<int>::iterator nbEIt = nbVertexInWires.begin();
@@ -1641,7 +2287,7 @@ bool SMESH_Pattern::Apply (const TopoDS_Face&   theFace,
         pIt = ePoints.begin();
         for (  pIt++; pIt != ePoints.end(); pIt++ ) {
           TPoint* p = (*pIt);
-          if ( !compUVByIsoIntersection( edgesPointsList, p->myInitUV, p->myUV )) {
+          if ( !compUVByIsoIntersection( edgesPointsList, p->myInitUV, p->myUV, aBool )) {
             MESSAGE("cant Apply(face)");
             return false;
           }
@@ -1746,22 +2392,30 @@ bool SMESH_Pattern::Apply (const TopoDS_Face&   theFace,
       if ( !loc.IsIdentity() )
         aTrsf.Transforms( point->myXYZ.ChangeCoord() );
     }
-  }  
-  
-  // Compute UV and XYZ of in-face points by intersection of 2 iso lines
+  }
+
+  // Compute UV and XYZ of in-face points
 
+  // try to use a simple algo
   list< TPoint* > & fPoints = getShapePoints( face );
-  for ( pIt = fPoints.begin(); pIt != fPoints.end(); pIt++ )
-  {
-    TPoint * point = *pIt;
-    if ( !compUVByIsoIntersection( edgesPointsList, point->myInitUV, point->myUV )) {
+  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;
+      }
   }
 
-//  compUVByElasticIsolines( edgesPointsList, fPoints );
-
   Handle(Geom_Surface) aSurface = BRep_Tool::Surface( face, loc );
   const gp_Trsf & aTrsf = loc.Transformation();
   for ( pIt = fPoints.begin(); pIt != fPoints.end(); pIt++ )
@@ -2254,59 +2908,60 @@ bool SMESH_Pattern::MakeMesh(SMESH_Mesh* theMesh)
 
 void SMESH_Pattern::arrangeBoundaries (list< list< TPoint* > >& boundaryList)
 {
-  int nbBoundaries = boundaryList.size();
-  if ( nbBoundaries < 2 ) return;
-
   typedef list< list< TPoint* > >::iterator TListOfListIt;
   TListOfListIt bndIt;
-
-  // sort boundaries by nb of key-points
-  if ( nbBoundaries > 2 )
-  {
-    // move boundaries in tmp list
-    list< list< TPoint* > > tmpList; 
-    tmpList.splice( tmpList.begin(), boundaryList, boundaryList.begin(), boundaryList.end());
-    // make a map nb-key-points to boundary-position-in-tmpList,
-    // boundary-positions get ordered in it
-    typedef map< int, TListOfListIt > TNbKpBndPosMap;
-    TNbKpBndPosMap nbKpBndPosMap;
-    bndIt = tmpList.begin();
-    list< int >::iterator nbKpIt = myNbKeyPntInBoundary.begin();
-    for ( ; nbKpIt != myNbKeyPntInBoundary.end(); nbKpIt++, bndIt++ ) {
-      int nb = *nbKpIt * nbBoundaries;
-      while ( nbKpBndPosMap.find ( nb ) != nbKpBndPosMap.end() )
-        nb++;
-      nbKpBndPosMap.insert( TNbKpBndPosMap::value_type( nb, bndIt ));
-    }
-    // move boundaries back to boundaryList
-    TNbKpBndPosMap::iterator nbKpBndPosIt = nbKpBndPosMap.begin();
-    for ( ; nbKpBndPosIt != nbKpBndPosMap.end(); nbKpBndPosIt++ ) {
-      TListOfListIt & bndPos2 = (*nbKpBndPosIt).second;
-      TListOfListIt bndPos1 = bndPos2++;
-      boundaryList.splice( boundaryList.end(), tmpList, bndPos1, bndPos2 );
-    }
-  }
-
-  // Look for the outer boundary: the one with the point with the least X
-  double leastX = DBL_MAX;
   list< TPoint* >::iterator pIt;
-  TListOfListIt outerBndPos;
-  for ( bndIt = boundaryList.begin(); bndIt != boundaryList.end(); bndIt++ )
+
+  int nbBoundaries = boundaryList.size();
+  if ( nbBoundaries > 1 )
   {
-    list< TPoint* >& boundary = (*bndIt);
-    for ( pIt = boundary.begin(); pIt != boundary.end(); pIt++)
+    // sort boundaries by nb of key-points
+    if ( nbBoundaries > 2 )
     {
-      TPoint* point = *pIt;
-      if ( point->myInitXYZ.X() < leastX ) {
-        leastX = point->myInitXYZ.X();
-        outerBndPos = bndIt;
+      // move boundaries in tmp list
+      list< list< TPoint* > > tmpList; 
+      tmpList.splice( tmpList.begin(), boundaryList, boundaryList.begin(), boundaryList.end());
+      // make a map nb-key-points to boundary-position-in-tmpList,
+      // boundary-positions get ordered in it
+      typedef map< int, TListOfListIt > TNbKpBndPosMap;
+      TNbKpBndPosMap nbKpBndPosMap;
+      bndIt = tmpList.begin();
+      list< int >::iterator nbKpIt = myNbKeyPntInBoundary.begin();
+      for ( ; nbKpIt != myNbKeyPntInBoundary.end(); nbKpIt++, bndIt++ ) {
+        int nb = *nbKpIt * nbBoundaries;
+        while ( nbKpBndPosMap.find ( nb ) != nbKpBndPosMap.end() )
+          nb++;
+        nbKpBndPosMap.insert( TNbKpBndPosMap::value_type( nb, bndIt ));
+      }
+      // move boundaries back to boundaryList
+      TNbKpBndPosMap::iterator nbKpBndPosIt = nbKpBndPosMap.begin();
+      for ( ; nbKpBndPosIt != nbKpBndPosMap.end(); nbKpBndPosIt++ ) {
+        TListOfListIt & bndPos2 = (*nbKpBndPosIt).second;
+        TListOfListIt bndPos1 = bndPos2++;
+        boundaryList.splice( boundaryList.end(), tmpList, bndPos1, bndPos2 );
+      }
+    }
+
+    // Look for the outer boundary: the one with the point with the least X
+    double leastX = DBL_MAX;
+    TListOfListIt outerBndPos;
+    for ( bndIt = boundaryList.begin(); bndIt != boundaryList.end(); bndIt++ )
+    {
+      list< TPoint* >& boundary = (*bndIt);
+      for ( pIt = boundary.begin(); pIt != boundary.end(); pIt++)
+      {
+        TPoint* point = *pIt;
+        if ( point->myInitXYZ.X() < leastX ) {
+          leastX = point->myInitXYZ.X();
+          outerBndPos = bndIt;
+        }
       }
     }
-  }
 
-  if ( outerBndPos != boundaryList.begin() )
-    boundaryList.splice( boundaryList.begin(), boundaryList, outerBndPos, ++outerBndPos );
+    if ( outerBndPos != boundaryList.begin() )
+      boundaryList.splice( boundaryList.begin(), boundaryList, outerBndPos, ++outerBndPos );
 
+  } // if nbBoundaries > 1
                  
   // Check boundaries orientation and re-fill myKeyPointIDs
 
@@ -2336,14 +2991,14 @@ void SMESH_Pattern::arrangeBoundaries (list< list< TPoint* > >& boundaryList)
     // find points next to the point with the least X
     TPoint* p = *xpIt, *pPrev, *pNext;
     if ( p == boundary.front() )
-      pPrev = boundary.back();
+      pPrev = *(++boundary.rbegin());
     else {
       xpIt--;
       pPrev = *xpIt;
       xpIt++;
     }
     if ( p == boundary.back() )
-      pNext = boundary.front();
+      pNext = *(++boundary.begin());
     else {
       xpIt++;
       pNext = *xpIt;
@@ -2529,7 +3184,7 @@ bool SMESH_Pattern::findBoundaryPoints()
         if ( keyPointSet.find( point ) == keyPointSet.end() ) // inside-edge point
         {
           edgePoints.push_back( point );
-          edgeLength += ( point->myInitUV - prevP->myInitUV ).SquareModulus();
+          edgeLength += ( point->myInitUV - prevP->myInitUV ).Modulus();
           point->myInitU = edgeLength;
         }
         else // a key-point
@@ -2537,7 +3192,7 @@ bool SMESH_Pattern::findBoundaryPoints()
           // treat points on the edge which ends up: compute U [0,1]
           edgePoints.push_back( point );
           if ( edgePoints.size() > 2 ) {
-            edgeLength += ( point->myInitUV - prevP->myInitUV ).SquareModulus();
+            edgeLength += ( point->myInitUV - prevP->myInitUV ).Modulus();
             list< TPoint* >::iterator epIt = edgePoints.begin();
             for ( ; epIt != edgePoints.end(); epIt++ )
               (*epIt)->myInitU /= edgeLength;
index 27def42427907910ec2b1845591a2c01a2545264..b658a2502d98479ddbba2413e21ed7d9ffe0d6e9 100644 (file)
@@ -205,7 +205,8 @@ class SMESH_Pattern {
 
   bool compUVByIsoIntersection (const list< list< TPoint* > >& boundaryPoints,
                                 const gp_XY&                   theInitUV,
-                                gp_XY&                         theUV );
+                                gp_XY&                         theUV,
+                                bool &                         theIsDeformed);
   // compute UV by intersection of iso-lines found by points on edges
 
   bool compUVByElasticIsolines(const list< list< TPoint* > >& boundaryPoints,
index 6c89006211b7c3464685468950df01b7a932a996..50d4fa7425e1787cbde8b46b5f7b0c95a40868ee 100644 (file)
@@ -43,7 +43,9 @@ LIB_SRC = \
        SMESHDS_Command.cxx \
        SMESHDS_SubMesh.cxx \
        SMESHDS_Mesh.cxx \
-       SMESHDS_Group.cxx
+       SMESHDS_GroupBase.cxx \
+       SMESHDS_Group.cxx \
+       SMESHDS_GroupOnGeom.cxx
 
 LIB_CLIENT_IDL = 
 LIB_SERVER_IDL = 
@@ -63,7 +65,9 @@ EXPORT_HEADERS= \
        SMESHDS_Command.hxx \
        SMESHDS_CommandType.hxx \
        SMESHDS_SubMesh.hxx \
-       SMESHDS_Group.hxx
+       SMESHDS_GroupBase.hxx \
+       SMESHDS_Group.hxx \
+       SMESHDS_GroupOnGeom.hxx
 
 # additionnal information to compil and link file
 CPPFLAGS += $(OCC_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
index 28a2a387c1a1e07a45f80bc89576164ce277edf7..ecd6efb8ce998c2fc5c2048e21bb56e7bfd1a2d5 100644 (file)
 //
 //
 //  File   : SMESHDS_Group.cxx
-//  Author : Michael Sazonov, OCC
 //  Module : SMESH
 //  $Header$
 
-#include <SMESHDS_Group.hxx>
-#include <SMESHDS_Mesh.hxx>
+#include "SMESHDS_Group.hxx"
+#include "SMESHDS_Mesh.hxx"
 
 using namespace std;
 
@@ -39,23 +38,42 @@ using namespace std;
 SMESHDS_Group::SMESHDS_Group (const int                 theID,
                               const SMESHDS_Mesh*       theMesh,
                               const SMDSAbs_ElementType theType)
-     : SMDS_MeshGroup(theMesh,theType),
-       myID(theID), myStoreName(""),
-       myCurIndex(0), myCurID(0)
+     : SMESHDS_GroupBase(theID,theMesh,theType),
+       myGroup(theMesh,theType)
 {
 }
 
+//=======================================================================
+//function : Extent
+//purpose  : 
+//=======================================================================
+
+int SMESHDS_Group::Extent()
+{
+  return myGroup.Extent();
+}
+
+//=======================================================================
+//function : IsEmpty
+//purpose  : 
+//=======================================================================
+
+bool SMESHDS_Group::IsEmpty()
+{
+  return myGroup.IsEmpty();
+}
+
 //=============================================================================
 /*!
  *  
  */
 //=============================================================================
 
-bool SMESHDS_Group::Contains (const int theID) const
+bool SMESHDS_Group::Contains (const int theID)
 {
   const SMDS_MeshElement* aElem = findInMesh (theID);
   if (aElem)
-    return SMDS_MeshGroup::Contains(aElem);
+    return myGroup.Contains(aElem);
   return false;
 }
 
@@ -68,9 +86,13 @@ bool SMESHDS_Group::Contains (const int theID) const
 bool SMESHDS_Group::Add (const int theID)
 {
   const SMDS_MeshElement* aElem = findInMesh (theID);
-  if (!aElem || SMDS_MeshGroup::Contains(aElem))
+  if (!aElem || myGroup.Contains(aElem))
     return false;
-  SMDS_MeshGroup::Add (aElem);
+
+  if (myGroup.IsEmpty())
+    SetType( aElem->GetType() );
+
+  myGroup.Add (aElem);
   return true;
 }
 
@@ -83,51 +105,57 @@ bool SMESHDS_Group::Add (const int theID)
 bool SMESHDS_Group::Remove (const int theID)
 {
   const SMDS_MeshElement* aElem = findInMesh (theID);
-  if (!aElem || !SMDS_MeshGroup::Contains(aElem))
+  if (!aElem || !myGroup.Contains(aElem))
     return false;
-  SMDS_MeshGroup::Remove (aElem);
+  myGroup.Remove (aElem);
   return true;
 }
 
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
+//=======================================================================
+//function : Clear
+//purpose  : 
+//=======================================================================
 
-int SMESHDS_Group::GetID (const int theIndex)
+void SMESHDS_Group::Clear()
 {
-  if (theIndex < 1 || theIndex > Extent())
-    return -1;
-  if (myCurIndex < 1 || myCurIndex > theIndex) {
-    InitIterator();
-    myCurIndex = 0;
-    myCurID = -1;
-  }
-  while (myCurIndex < theIndex && More()) {
-    myCurIndex++;
-    myCurID = Next()->GetID();
-  }
-  return myCurID;
+  myGroup.Clear();
 }
 
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
+// =====================
+// class MyGroupIterator
+// =====================
 
-const SMDS_MeshElement* SMESHDS_Group::findInMesh (const int theID) const
+class MyGroupIterator: public SMDS_ElemIterator
 {
-  SMDSAbs_ElementType aType = GetType();
-  const SMDS_MeshElement* aElem = NULL;
-  if (aType == SMDSAbs_Node) {
-    aElem = GetMesh()->FindNode(theID);
-  }
-  else if (aType != SMDSAbs_All) {
-    aElem = GetMesh()->FindElement(theID);
-    if (aElem && aType != aElem->GetType())
-      aElem = NULL;
+  const SMDS_MeshGroup& myGroup;
+ public:
+  MyGroupIterator(const SMDS_MeshGroup& group): myGroup(group) { myGroup.InitIterator(); }
+  bool more() { return myGroup.More(); }
+  const SMDS_MeshElement* next() { return myGroup.Next(); }
+};
+   
+//=======================================================================
+//function : GetElements
+//purpose  : 
+//=======================================================================
+
+SMDS_ElemIteratorPtr SMESHDS_Group::GetElements()
+{
+  return SMDS_ElemIteratorPtr( new MyGroupIterator ( myGroup ));
+}
+
+//=======================================================================
+//function : SetType
+//purpose  : 
+//=======================================================================
+
+void SMESHDS_Group::SetType(SMDSAbs_ElementType theType)
+{
+  if ( myGroup.IsEmpty() || GetType() == SMDSAbs_All ) {
+    SMESHDS_GroupBase::SetType( theType );
+    myGroup.SetType ( theType );
   }
-  return aElem;
+  else
+    SMESHDS_GroupBase::SetType( myGroup.GetType() );
 }
+
index 70f080a1de5c20db9fa90362784812c140f6fbdb..b318a0f97d8ad9bac37cb9b3a8d01ee019c5c4a4 100644 (file)
 //
 //
 //  File   : SMESHDS_Group.hxx
-//  Author : Michael Sazonov (OCC)
 //  Module : SMESH
 //  $Header$
 
 #ifndef _SMESHDS_Group_HeaderFile
 #define _SMESHDS_Group_HeaderFile
 
-#include <SMDS_MeshGroup.hxx>
 #include <string>
+#include "SMESHDS_GroupBase.hxx"
+#include "SMDS_MeshGroup.hxx"
 
 class SMESHDS_Mesh;
 
-class SMESHDS_Group : public SMDS_MeshGroup
+class SMESHDS_Group : public SMESHDS_GroupBase
 {
  public:
 
@@ -41,35 +41,27 @@ class SMESHDS_Group : public SMDS_MeshGroup
                  const SMESHDS_Mesh*       theMesh,
                  const SMDSAbs_ElementType theType);
 
-  int GetID() const { return myID; }
+  virtual void SetType(SMDSAbs_ElementType theType);
 
-  void SetStoreName (const char* theName)
-  { myStoreName = theName; }
+  virtual int Extent();
 
-  const char* GetStoreName () const
-  { return myStoreName.c_str(); }
+  virtual bool IsEmpty();
 
-  bool Contains (const int theID) const;
+  virtual bool Contains (const int theID);
 
-  bool Add (const int theID);
-  bool Remove (const int theID);
+  virtual SMDS_ElemIteratorPtr GetElements();
 
-  int GetID (const int theIndex);
-  // use it for iterations 1..Extent() as alternative to parent's
-  // InitIterator(), More(), Next()
+  bool SMESHDS_Group::Add (const int theID);
 
- private:
-  SMESHDS_Group (const SMESHDS_Group& theOther);
-  // prohibited copy constructor
-  SMESHDS_Group& operator = (const SMESHDS_Group& theOther);
-  // prohibited assign operator
+  bool SMESHDS_Group::Remove (const int theID);
+
+  void Clear();
 
-  const SMDS_MeshElement* findInMesh (const int theID) const;
+  SMDS_MeshGroup& SMDSGroup() { return myGroup; }
+
+ private:
 
-  int         myID;
-  std::string myStoreName;
-  int         myCurIndex;
-  int         myCurID;
+  SMDS_MeshGroup myGroup;
 
 };
 
diff --git a/src/SMESHDS/SMESHDS_GroupBase.cxx b/src/SMESHDS/SMESHDS_GroupBase.cxx
new file mode 100644 (file)
index 0000000..c3fc31d
--- /dev/null
@@ -0,0 +1,138 @@
+//  SMESH SMESHDS : idl implementation based on 'SMESH' unit's classes
+//
+//  Copyright (C) 2004  CEA
+// 
+//  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.org 
+//
+//
+//
+//  File   : SMESHDS_Group.cxx
+//  Module : SMESH
+//  $Header$
+
+#include "SMESHDS_GroupBase.hxx"
+#include "SMESHDS_Mesh.hxx"
+
+#include "utilities.h"
+
+using namespace std;
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+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(0)
+{
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+int SMESHDS_GroupBase::GetID (const int theIndex)
+{
+  if (myCurIndex < 1 || myCurIndex > theIndex) {
+    myIterator = GetElements();
+    myCurIndex = 0;
+    myCurID = -1;
+  }
+  while (myCurIndex < theIndex && myIterator->more()) {
+    myCurIndex++;
+    myCurID = myIterator->next()->GetID();
+  }
+  return myCurIndex == theIndex ? myCurID : -1;
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+const SMDS_MeshElement* SMESHDS_GroupBase::findInMesh (const int theID) const
+{
+  SMDSAbs_ElementType aType = GetType();
+  const SMDS_MeshElement* aElem = NULL;
+  if (aType == SMDSAbs_Node) {
+    aElem = GetMesh()->FindNode(theID);
+  }
+  else if (aType != SMDSAbs_All) {
+    aElem = GetMesh()->FindElement(theID);
+    if (aElem && aType != aElem->GetType())
+      aElem = NULL;
+  }
+  return aElem;
+}
+
+//=======================================================================
+//function : Extent
+//purpose  : 
+//=======================================================================
+
+int SMESHDS_GroupBase::Extent()
+{
+  SMDS_ElemIteratorPtr it = GetElements();
+  int nb = 0;
+  if ( it )
+    for ( ; it->more(); it->next() ) 
+      nb++;
+  return nb;
+}
+
+//=======================================================================
+//function : IsEmpty
+//purpose  : 
+//=======================================================================
+
+bool SMESHDS_GroupBase::IsEmpty()
+{
+  SMDS_ElemIteratorPtr it = GetElements();
+  return ( !it || !it->more() );
+}
+
+//=======================================================================
+//function : Contains
+//purpose  : 
+//=======================================================================
+
+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;
+}
+
+//=======================================================================
+//function : SetType
+//purpose  : 
+//=======================================================================
+
+void SMESHDS_GroupBase::SetType(SMDSAbs_ElementType theType)
+{
+  myType = theType;
+}
diff --git a/src/SMESHDS/SMESHDS_GroupBase.hxx b/src/SMESHDS/SMESHDS_GroupBase.hxx
new file mode 100644 (file)
index 0000000..fbb9141
--- /dev/null
@@ -0,0 +1,89 @@
+//  SMESH SMESHDS : management of mesh data and SMESH document
+//
+//  Copyright (C) 2004  CEA
+// 
+//  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.org
+//
+//
+//
+//  File   : SMESHDS_Group.hxx
+//  Module : SMESH
+//  $Header$
+
+#ifndef _SMESHDS_GroupBase_HeaderFile
+#define _SMESHDS_GroupBase_HeaderFile
+
+#include <string>
+#include "SMDSAbs_ElementType.hxx"
+#include "SMDS_MeshElement.hxx"
+  
+class SMESHDS_Mesh;
+
+class SMESHDS_GroupBase
+{
+ public:
+
+  SMESHDS_GroupBase (const int                 theID,
+                     const SMESHDS_Mesh*       theMesh,
+                     const SMDSAbs_ElementType theType);
+
+  int GetID() const { return myID; }
+
+  const SMESHDS_Mesh* GetMesh() const { return myMesh; }
+
+  virtual void SetType(SMDSAbs_ElementType theType);
+
+  SMDSAbs_ElementType GetType() const { return myType; }
+
+  void SetStoreName (const char* theName) { myStoreName = theName; }
+
+  const char* GetStoreName () const { return myStoreName.c_str(); }
+
+  virtual int Extent();
+
+  virtual bool IsEmpty();
+
+  virtual bool Contains (const int theID);
+
+  virtual SMDS_ElemIteratorPtr GetElements() = 0;
+
+  int GetID (const int theIndex);
+  // use it for iterations 1..Extent()
+
+  virtual ~SMESHDS_GroupBase() {}
+
+ protected:
+  const SMDS_MeshElement* findInMesh (const int theID) const;
+
+ private:
+  SMESHDS_GroupBase (const SMESHDS_GroupBase& theOther);
+  // prohibited copy constructor
+  SMESHDS_GroupBase& operator = (const SMESHDS_GroupBase& theOther);
+  // prohibited assign operator
+
+  int                  myID;
+  const SMESHDS_Mesh*  myMesh;
+  SMDSAbs_ElementType  myType;
+  std::string          myStoreName;
+  // for GetID()
+  int                  myCurIndex;
+  int                  myCurID;
+  SMDS_ElemIteratorPtr myIterator;
+
+};
+
+#endif
diff --git a/src/SMESHDS/SMESHDS_GroupOnGeom.cxx b/src/SMESHDS/SMESHDS_GroupOnGeom.cxx
new file mode 100644 (file)
index 0000000..187357a
--- /dev/null
@@ -0,0 +1,112 @@
+//  SMESH SMESHDS : idl implementation based on 'SMESH' unit's classes
+//
+//  Copyright (C) 2004  CEA
+// 
+//  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.org 
+//
+//
+//
+//  File   : SMESHDS_GroupOnGeom.cxx
+//  Module : SMESH
+//  $Header$
+
+#include "SMESHDS_GroupOnGeom.hxx"
+#include "SMESHDS_Mesh.hxx"
+#include "utilities.h"
+
+using namespace std;
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+SMESHDS_GroupOnGeom::SMESHDS_GroupOnGeom (const int                 theID,
+                                          const SMESHDS_Mesh*       theMesh,
+                                          const SMDSAbs_ElementType theType,
+                                          const TopoDS_Shape&       theShape)
+     : SMESHDS_GroupBase(theID,theMesh,theType), myShape(theShape)
+{
+  SMESHDS_Mesh* aMesh = const_cast<SMESHDS_Mesh*>(theMesh);
+  mySubMesh = aMesh->MeshElements( aMesh->AddCompoundSubmesh( theShape ));
+}
+
+// =====================
+// class MyGroupIterator
+// =====================
+
+class MyIterator: public SMDS_ElemIterator
+{
+  SMDSAbs_ElementType     myType;
+  SMDS_ElemIteratorPtr    myElemIt;
+  SMDS_NodeIteratorPtr    myNodeIt;
+  const SMDS_MeshElement* myElem;
+ public:
+  MyIterator(SMDSAbs_ElementType type, const SMESHDS_SubMesh* subMesh)
+    : myType(type), myElem(0)
+  {
+    if ( subMesh ) 
+      if ( myType == SMDSAbs_Node )
+        myNodeIt = subMesh->GetNodes();
+      else {
+        myElemIt = subMesh->GetElements();
+        next();
+      }
+  }
+  bool more()
+  {
+    if ( myType == SMDSAbs_Node && myNodeIt )
+      return myNodeIt->more();
+    return ( myElem != 0 );
+  }
+  const SMDS_MeshElement* next()
+  {
+    if ( myType == SMDSAbs_Node && myNodeIt )
+      return myNodeIt->next();
+    const SMDS_MeshElement* res = myElem;
+    myElem = 0;
+    while ( myElemIt && myElemIt->more() ) {
+      myElem = myElemIt->next();
+      if ( myElem && myElem->GetType() == myType )
+        break;
+      else
+        myElem = 0;
+    }
+    return res;
+  }
+};
+
+//=======================================================================
+//function : GetElements
+//purpose  : 
+//=======================================================================
+
+SMDS_ElemIteratorPtr SMESHDS_GroupOnGeom::GetElements()
+{
+  return SMDS_ElemIteratorPtr( new MyIterator ( GetType(), mySubMesh ));
+}
+
+//=======================================================================
+//function : Contains
+//purpose  : 
+//=======================================================================
+
+bool SMESHDS_GroupOnGeom::Contains (const int theID)
+{
+  return mySubMesh->Contains( findInMesh( theID ));
+}
diff --git a/src/SMESHDS/SMESHDS_GroupOnGeom.hxx b/src/SMESHDS/SMESHDS_GroupOnGeom.hxx
new file mode 100644 (file)
index 0000000..6a514e2
--- /dev/null
@@ -0,0 +1,56 @@
+//  SMESH SMESHDS : management of mesh data and SMESH document
+//
+//  Copyright (C) 2004  CEA
+// 
+//  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.org
+//
+//
+//
+//  File   : SMESHDS_GroupOnGeom.hxx
+//  Module : SMESH
+//  $Header$
+
+#ifndef _SMESHDS_GroupOnGeom_HeaderFile
+#define _SMESHDS_GroupOnGeom_HeaderFile
+
+#include "SMESHDS_GroupBase.hxx"
+#include <TopoDS_Shape.hxx>
+  
+class SMESHDS_SubMesh;
+
+class SMESHDS_GroupOnGeom: public SMESHDS_GroupBase
+{
+ public:
+
+  SMESHDS_GroupOnGeom (const int                 theID,
+                       const SMESHDS_Mesh*       theMesh,
+                       const SMDSAbs_ElementType theType,
+                       const TopoDS_Shape&       theShape);
+
+  TopoDS_Shape GetShape() const { return myShape; }
+
+  virtual bool Contains (const int theID);
+
+  virtual SMDS_ElemIteratorPtr GetElements();
+
+ private:
+
+  TopoDS_Shape           myShape;
+  const SMESHDS_SubMesh* mySubMesh;
+};
+
+#endif
index f9477b712d21da1f36d3adffe2d8c4de786e61db..f0fa21912e1c1c60e8292c7d7f4bf9a33ca6d8c1 100644 (file)
@@ -448,7 +448,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
 //=======================================================================
 
 static void removeFromContainers (map<int,SMESHDS_SubMesh*> &      theSubMeshes,
-                                  set<SMESHDS_Group*>&             theGroups,
+                                  set<SMESHDS_GroupBase*>&             theGroups,
                                   list<const SMDS_MeshElement *> & theElems,
                                   const bool                       isNode)
 {
@@ -459,16 +459,16 @@ static void removeFromContainers (map<int,SMESHDS_SubMesh*> &      theSubMeshes,
   // Element can belong to several groups
   if ( !theGroups.empty() )
   {
-    set<SMESHDS_Group*>::iterator GrIt = theGroups.begin();
+    set<SMESHDS_GroupBase*>::iterator GrIt = theGroups.begin();
     for ( ; GrIt != theGroups.end(); GrIt++ )
     {
-      SMESHDS_Group* group = *GrIt;
-      if ( group->IsEmpty() ) continue;
+      SMESHDS_Group* group = dynamic_cast<SMESHDS_Group*>( *GrIt );
+      if ( !group || group->IsEmpty() ) continue;
 
       list<const SMDS_MeshElement *>::iterator elIt = theElems.begin();
       for ( ; elIt != theElems.end(); elIt++ )
       {
-        (*GrIt)->SMDS_MeshGroup::Remove( *elIt );
+        group->SMDSGroup().Remove( *elIt );
         if ( group->IsEmpty() ) break;
       }
     }
@@ -686,19 +686,22 @@ TopoDS_Shape SMESHDS_Mesh::ShapeToMesh() const
 
 //=======================================================================
 //function : IsGroupOfSubShapes
-//purpose  : 
+//purpose  : return true if at least one subshape of theShape is a subshape
+//           of myShape or theShape == myShape
 //=======================================================================
 
-bool SMESHDS_Mesh::IsGroupOfSubShapes (const TopoDS_Shape& aSubShape) const
+bool SMESHDS_Mesh::IsGroupOfSubShapes (const TopoDS_Shape& theShape) const
 {
-  if ( aSubShape.ShapeType() != TopAbs_COMPOUND || myShape.IsSame( aSubShape ))
-    return false;
+  if ( myShape.IsSame( theShape ))
+    return true;
 
-  for ( TopoDS_Iterator it( aSubShape ); it.More(); it.Next() )
-    if ( !myIndexToShape.Contains( it.Value() ))
-      return false;
-
-  return true;
+  for ( TopoDS_Iterator it( theShape ); it.More(); it.Next() ) {
+    if (myIndexToShape.Contains( it.Value() ) ||
+        IsGroupOfSubShapes( it.Value() ))
+      return true;
+  }
+  
+  return false;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -800,13 +803,53 @@ bool SMESHDS_Mesh::HasHypothesis(const TopoDS_Shape & S)
 //function : NewSubMesh 
 //purpose  : 
 //=======================================================================
-void SMESHDS_Mesh::NewSubMesh(int Index)
+SMESHDS_SubMesh * SMESHDS_Mesh::NewSubMesh(int Index)
 {
-       if (myShapeIndexToSubMesh.find(Index)==myShapeIndexToSubMesh.end())
-       {
-               SMESHDS_SubMesh* SM = new SMESHDS_SubMesh();
-               myShapeIndexToSubMesh[Index]=SM;
-       }
+  SMESHDS_SubMesh* SM = 0;
+  if (myShapeIndexToSubMesh.find(Index)==myShapeIndexToSubMesh.end())
+  {
+    SM = new SMESHDS_SubMesh();
+    myShapeIndexToSubMesh[Index]=SM;
+  }
+  else
+    SM = myShapeIndexToSubMesh[Index];
+  return SM;
+}
+
+//=======================================================================
+//function : AddCompoundSubmesh
+//purpose  : 
+//=======================================================================
+
+int SMESHDS_Mesh::AddCompoundSubmesh(const TopoDS_Shape& S,
+                                     TopAbs_ShapeEnum    type)
+{
+  int aMainIndex = 0;
+  if ( IsGroupOfSubShapes( S ))
+  {
+    aMainIndex = myIndexToShape.Add( S );
+    bool all = ( type == TopAbs_SHAPE );
+    if ( all ) // corresponding simple submesh may exist
+      aMainIndex = -aMainIndex;
+    //MESSAGE("AddCompoundSubmesh index = " << aMainIndex );
+    SMESHDS_SubMesh * aNewSub = NewSubMesh( aMainIndex );
+    if ( !aNewSub->IsComplexSubmesh() ) // is empty
+    {
+      int shapeType = all ? myShape.ShapeType() : type;
+      int typeLimit = all ? TopAbs_VERTEX : type;
+      for ( ; shapeType <= typeLimit; shapeType++ )
+      {
+        TopExp_Explorer exp( S, TopAbs_ShapeEnum( shapeType ));
+        for ( ; exp.More(); exp.Next() )
+        {
+          int index = myIndexToShape.FindIndex( exp.Current() );
+          if ( index )
+            aNewSub->AddSubMesh( NewSubMesh( index ));
+        }
+      }
+    }
+  }
+  return aMainIndex;
 }
 
 //=======================================================================
@@ -828,19 +871,6 @@ int SMESHDS_Mesh::ShapeToIndex(const TopoDS_Shape & S)
     MESSAGE("myShape is NULL");
 
   int index = myIndexToShape.FindIndex(S);
-  if ( index == 0 && IsGroupOfSubShapes( S ))
-  {
-    index = myIndexToShape.Add( S );
-    SMESHDS_SubMesh* aSubMesh = new SMESHDS_SubMesh;
-    myShapeIndexToSubMesh[index] = aSubMesh;
-
-    for ( TopoDS_Iterator it( S ); it.More(); it.Next() )
-    {
-      int subIndex = myIndexToShape.FindIndex( it.Value() );
-      NewSubMesh( subIndex );
-      aSubMesh->AddSubMesh( MeshElements( subIndex ));
-    }
-  }
   
   return index;
 }
index 731d8b76c7b0acaa678d0f5872db75ccfbfaf39f..dece6ab48ed5d9be805c48278690ca59acbddc22 100644 (file)
@@ -60,7 +60,7 @@
   namespace gstd = std;
 #endif
 
-class SMESHDS_Group;
+class SMESHDS_GroupBase;
 
 class SMESHDS_Mesh:public SMDS_Mesh{
 public:
@@ -189,17 +189,18 @@ public:
   int ShapeToIndex(const TopoDS_Shape & aShape);
   TopoDS_Shape IndexToShape(int ShapeIndex);
 
-  void NewSubMesh(int Index);
+  SMESHDS_SubMesh * NewSubMesh(int Index);
+  int AddCompoundSubmesh(const TopoDS_Shape& S, TopAbs_ShapeEnum type = TopAbs_SHAPE);
   void SetNodeInVolume(const SMDS_MeshNode * aNode, int Index);
   void SetNodeOnFace(SMDS_MeshNode * aNode, int Index);
   void SetNodeOnEdge(SMDS_MeshNode * aNode, int Index);
   void SetNodeOnVertex(SMDS_MeshNode * aNode, int Index);
   void SetMeshElementOnShape(const SMDS_MeshElement * anElt, int Index);
 
-  void AddGroup (SMESHDS_Group* theGroup)      { myGroups.insert(theGroup); }
-  void RemoveGroup (SMESHDS_Group* theGroup)   { myGroups.erase(theGroup); }
+  void AddGroup (SMESHDS_GroupBase* theGroup)      { myGroups.insert(theGroup); }
+  void RemoveGroup (SMESHDS_GroupBase* theGroup)   { myGroups.erase(theGroup); }
   int GetNbGroups() const                      { return myGroups.size(); }
-  const set<SMESHDS_Group*>& GetGroups() const { return myGroups; }
+  const set<SMESHDS_GroupBase*>& GetGroups() const { return myGroups; }
 
   bool IsGroupOfSubShapes (const TopoDS_Shape& aSubShape) const;
 
@@ -219,7 +220,7 @@ private:
   TopoDS_Shape               myShape;
   TopTools_IndexedMapOfShape myIndexToShape;
   map<int,SMESHDS_SubMesh*>  myShapeIndexToSubMesh;
-  set<SMESHDS_Group*>        myGroups;
+  set<SMESHDS_GroupBase*>        myGroups;
   SMESHDS_Script*            myScript;
 };
 
index 2029a9b4a5b8ca550320482212712f9399d86c57..4218db744e24a4e62c38a5a0b53791e60575206d 100644 (file)
@@ -38,7 +38,8 @@ using namespace std;
 //=======================================================================
 void SMESHDS_SubMesh::AddElement(const SMDS_MeshElement * ME)
 {
-       myElements.insert(ME);
+  if ( !IsComplexSubmesh() )
+    myElements.insert(ME);
 }
 
 //=======================================================================
@@ -47,7 +48,7 @@ void SMESHDS_SubMesh::AddElement(const SMDS_MeshElement * ME)
 //=======================================================================
 bool SMESHDS_SubMesh::RemoveElement(const SMDS_MeshElement * ME)
 {
-  if ( NbElements() )
+  if ( !IsComplexSubmesh() && NbElements() )
     return myElements.erase(ME);
   
   return false;
@@ -59,7 +60,8 @@ bool SMESHDS_SubMesh::RemoveElement(const SMDS_MeshElement * ME)
 //=======================================================================
 void SMESHDS_SubMesh::AddNode(const SMDS_MeshNode * N)
 {
-       myNodes.insert(N);
+  if ( !IsComplexSubmesh() )
+    myNodes.insert(N);
 }
 
 //=======================================================================
@@ -69,7 +71,7 @@ void SMESHDS_SubMesh::AddNode(const SMDS_MeshNode * N)
 
 bool SMESHDS_SubMesh::RemoveNode(const SMDS_MeshNode * N)
 {
-  if ( NbNodes() )
+  if ( !IsComplexSubmesh() && NbNodes() )
     return myNodes.erase(N);
 
   return false;
@@ -81,7 +83,7 @@ bool SMESHDS_SubMesh::RemoveNode(const SMDS_MeshNode * N)
 //=======================================================================
 int SMESHDS_SubMesh::NbElements() const
 {
-  if ( mySubMeshes.empty() )
+  if ( !IsComplexSubmesh() )
     return myElements.size();
 
   int nbElems = 0;
@@ -99,7 +101,7 @@ int SMESHDS_SubMesh::NbElements() const
 
 int SMESHDS_SubMesh::NbNodes() const
 {
- if ( mySubMeshes.empty() )
+ if ( !IsComplexSubmesh() )
    return myNodes.size(); 
 
   int nbElems = 0;
@@ -145,7 +147,8 @@ template<typename VALUE> class MyIterator : public SMDS_Iterator<VALUE>
 {
  public:
   MyIterator (const set<const SMESHDS_SubMesh*>& theSubMeshes)
-    : mySubMeshes( theSubMeshes ), mySubIt( theSubMeshes.begin() ) {}
+    : mySubMeshes( theSubMeshes ), mySubIt( theSubMeshes.begin() ), myMore(false)
+    {}
   bool more()
   {
     while (( !myElemIt.get() || !myElemIt->more() ) &&
@@ -154,19 +157,22 @@ template<typename VALUE> class MyIterator : public SMDS_Iterator<VALUE>
       myElemIt = getElements(*mySubIt);
       mySubIt++;
     }
-    return myElemIt.get() && myElemIt->more();
+    myMore = myElemIt.get() && myElemIt->more();
+    return myMore;
   }
   VALUE next()
   {
-    if ( more() )
-      return myElemIt->next();
-    return 0;
+    VALUE elem = 0;
+    if ( myMore )
+      elem = myElemIt->next();
+    return elem;
   }
  protected:
   virtual boost::shared_ptr< SMDS_Iterator<VALUE> >
     getElements(const SMESHDS_SubMesh*) const = 0;
 
  private:
+  bool                                        myMore;
   const set<const SMESHDS_SubMesh*>&          mySubMeshes;
   set<const SMESHDS_SubMesh*>::const_iterator mySubIt;
   boost::shared_ptr< SMDS_Iterator<VALUE> >   myElemIt;
@@ -205,10 +211,10 @@ class MyNodeIterator: public MyIterator<const SMDS_MeshNode*>
 
 SMDS_ElemIteratorPtr SMESHDS_SubMesh::GetElements() const
 {
-  if ( mySubMeshes.empty() )
-    return SMDS_ElemIteratorPtr(new MySetIterator<SMDS_MeshElement>(myElements));
+  if ( IsComplexSubmesh() )
+    return SMDS_ElemIteratorPtr( new MyElemIterator( mySubMeshes ));
 
-  return SMDS_ElemIteratorPtr( new MyElemIterator( mySubMeshes ));
+  return SMDS_ElemIteratorPtr(new MySetIterator<SMDS_MeshElement>(myElements));
 }
 
 //=======================================================================
@@ -218,10 +224,10 @@ SMDS_ElemIteratorPtr SMESHDS_SubMesh::GetElements() const
 
 SMDS_NodeIteratorPtr SMESHDS_SubMesh::GetNodes() const
 {
-  if ( mySubMeshes.empty() )
-    return SMDS_NodeIteratorPtr(new MySetIterator<SMDS_MeshNode>(myNodes));
+  if ( IsComplexSubmesh() )
+    return SMDS_NodeIteratorPtr( new MyNodeIterator( mySubMeshes ));
 
-  return SMDS_NodeIteratorPtr( new MyNodeIterator( mySubMeshes ));
+  return SMDS_NodeIteratorPtr(new MySetIterator<SMDS_MeshNode>(myNodes));
 }
 
 //=======================================================================
@@ -229,13 +235,23 @@ SMDS_NodeIteratorPtr SMESHDS_SubMesh::GetNodes() const
 //purpose  : check if elem or node is in
 //=======================================================================
 
-bool SMESHDS_SubMesh::Contains(const SMDS_MeshElement * ME)
+bool SMESHDS_SubMesh::Contains(const SMDS_MeshElement * ME) const
 {
+  // DO NOT TRY TO FIND A REMOVED ELEMENT !!
   if ( !ME )
     return false;
 
-  // DO NOT TRY TO FIND A REMOVED ELEMENT !!
-  if ( ME->GetType() == SMDSAbs_Node ) {
+  if ( IsComplexSubmesh() )
+  {
+    set<const SMESHDS_SubMesh*>::const_iterator aSubIt = mySubMeshes.begin();
+    for ( ; aSubIt != mySubMeshes.end(); aSubIt++ )
+      if ( (*aSubIt)->Contains( ME ))
+        return true;
+    return false;
+  }
+
+  if ( ME->GetType() == SMDSAbs_Node )
+  {
     const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( ME );
     return ( myNodes.find( n ) != myNodes.end() );
   }
index 79d419879c01f4da122e8ae0feffc52109cfdd3a..7b202b9a4b4e3e45576fdaddb78a3146ecdfd978 100644 (file)
 class SMESHDS_SubMesh
 {
  public:
+
+  bool IsComplexSubmesh() const { return !mySubMeshes.empty(); }
+
+  // if !IsComplexSubmesh()
   void AddElement(const SMDS_MeshElement * ME);
   bool RemoveElement(const SMDS_MeshElement * ME); // ret true if ME was in
   void AddNode(const SMDS_MeshNode * ME);
   bool RemoveNode(const SMDS_MeshNode * ME);       // ret true if ME was in
-  bool Contains(const SMDS_MeshElement * ME);      // check if elem or node is in
 
+  // if IsComplexSubmesh()
+  void AddSubMesh( const SMESHDS_SubMesh* theSubMesh );
+  bool RemoveSubMesh( const SMESHDS_SubMesh* theSubMesh );
+  bool ContainsSubMesh( const SMESHDS_SubMesh* theSubMesh ) const;
+
+  // for both types
   int NbElements() const;
   SMDS_ElemIteratorPtr GetElements() const;
   int NbNodes() const;
   SMDS_NodeIteratorPtr GetNodes() const;
-
-  // child sub-meshes
-  void AddSubMesh( const SMESHDS_SubMesh* theSubMesh );
-  bool RemoveSubMesh( const SMESHDS_SubMesh* theSubMesh );
-  bool ContainsSubMesh( const SMESHDS_SubMesh* theSubMesh ) const;
+  bool Contains(const SMDS_MeshElement * ME) const;      // check if elem or node is in
 
  private:
   //const SMDS_Mesh * myMesh;
index 4582eeb28fbd546d497bb68cc505d14d6dbbdac9..fa9869176d876f4a4265e928cb182f2d36b78c40 100644 (file)
@@ -38,7 +38,8 @@ VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_builddir)/idl
 
 LIB = libSMESHFiltersSelection.la 
 LIB_SRC = SMESH_TypeFilter.cxx \
-          SMESH_NumberFilter.cxx
+          SMESH_NumberFilter.cxx \
+          SMESH_LogicalFilter.cxx
 
 LIB_CLIENT_IDL = SALOME_Exception.idl \
                 GEOM_Gen.idl \
@@ -58,7 +59,8 @@ LIB_CLIENT_IDL = SALOME_Exception.idl \
 EXPORT_HEADERS= SMESH_Type.h \
                SMESH_TypeFilter.hxx \
                Handle_SMESH_TypeFilter.hxx \
-               SMESH_NumberFilter.hxx
+               SMESH_NumberFilter.hxx \
+               SMESH_LogicalFilter.hxx
 
 # additionnal information to compil and link file
 CPPFLAGS += $(OCC_INCLUDES) $(QT_INCLUDES) $(PYTHON_INCLUDES) $(VTK_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome
diff --git a/src/SMESHFiltersSelection/SMESH_LogicalFilter.cxx b/src/SMESHFiltersSelection/SMESH_LogicalFilter.cxx
new file mode 100644 (file)
index 0000000..47b6356
--- /dev/null
@@ -0,0 +1,148 @@
+//  SALOME SALOMEGUI : implementation of desktop and GUI kernel
+//
+//  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+//
+//
+//              
+//  File   : SMESH_LogicalFilter.cxx
+//  Author : Sergey LITONIN
+//  Module : SMESH
+
+#include "SMESH_LogicalFilter.hxx"
+
+/*
+  Class       : SMESH_LogicalFilter
+  Description : Filter for combaining several filters with logical operation (OR or AND)
+*/
+
+IMPLEMENT_STANDARD_HANDLE( SMESH_LogicalFilter, SALOME_Filter )
+IMPLEMENT_STANDARD_RTTIEXT( SMESH_LogicalFilter, SALOME_Filter )
+
+//=======================================================================
+// name    : SMESH_LogicalFilter::SMESH_LogicalFilter
+// Purpose : Constructor
+//=======================================================================
+SMESH_LogicalFilter::SMESH_LogicalFilter( const SMESH_ListOfFilter& theFilters,
+                                        const int                theLogOp )
+{
+  myFilters = theFilters;
+  myLogOp = theLogOp;
+}
+
+//=======================================================================
+// name    : SMESH_LogicalFilter::~SMESH_LogicalFilter
+// Purpose : Destructor
+//=======================================================================
+SMESH_LogicalFilter::~SMESH_LogicalFilter()
+{
+}
+
+//=======================================================================
+// name    : SMESH_LogicalFilter::IsOk
+// Purpose : Verify validity of entry object
+//=======================================================================
+Standard_Boolean SMESH_LogicalFilter::IsOk( const Handle(SALOME_InteractiveObject)& theIO ) const
+{
+  SMESH_ListOfFilter::Iterator anIter( myFilters );
+  for ( ; anIter.More(); anIter.Next() )
+  {
+    Handle(SALOME_Filter) aFilter = anIter.Value();
+    if ( !aFilter.IsNull() )
+    {
+      if ( myLogOp == LO_OR &&  anIter.Value()->IsOk( theIO ) )
+        return true;
+      if ( myLogOp == LO_AND && !anIter.Value()->IsOk( theIO ) )
+        return false;
+    }
+  }
+
+  return myLogOp == LO_OR ? false : true;
+}
+
+//=======================================================================
+// name    : SMESH_LogicalFilter::SetFilters
+// Purpose : Set new list of filters. Old wilters are removed
+//=======================================================================
+void SMESH_LogicalFilter::SetFilters( const SMESH_ListOfFilter& theFilters )
+{
+  myFilters = theFilters;
+}
+
+//=======================================================================
+// name    : SMESH_LogicalFilter::SetLogOp
+// Purpose : Set logical operation
+//=======================================================================
+void SMESH_LogicalFilter::SetLogOp( const int theLogOp )
+{
+  myLogOp = theLogOp;
+}
+
+//=======================================================================
+// name    : SMESH_LogicalFilter::GetFilters
+// Purpose : Get list of filters
+//=======================================================================
+const SMESH_ListOfFilter& SMESH_LogicalFilter::GetFilters() const
+{
+  return myFilters;
+}
+
+//=======================================================================
+// name    : SMESH_LogicalFilter::GetLogOp
+// Purpose : Get logical operation
+//=======================================================================
+int SMESH_LogicalFilter::GetLogOp() const
+{
+  return myLogOp;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/SMESHFiltersSelection/SMESH_LogicalFilter.hxx b/src/SMESHFiltersSelection/SMESH_LogicalFilter.hxx
new file mode 100644 (file)
index 0000000..ec10f86
--- /dev/null
@@ -0,0 +1,102 @@
+//  SALOME SALOMEGUI : implementation of desktop and GUI kernel
+//
+//  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+//
+//
+//
+//  File   : SMESH_LogicalFilter.hxx
+//  Author : Sergey LITONIN
+//  Module : SMESH
+
+#ifndef _SMESH_LogicalFilter_HeaderFile
+#define _SMESH_LogicalFilter_HeaderFile
+
+#include "SALOME_Filter.hxx"
+
+#include <Standard_DefineHandle.hxx>
+#include <NCollection_StdBase.hxx>
+#include <NCollection_DefineList.hxx>
+
+DEFINE_STANDARD_HANDLE( SMESH_LogicalFilter, SALOME_Filter )
+
+DEFINE_BASECOLLECTION( SMESH_FilterColl, Handle(SALOME_Filter) )
+DEFINE_LIST( SMESH_ListOfFilter, SMESH_FilterColl, Handle(SALOME_Filter) )
+
+
+/*
+  Class       : SMESH_LogicalFilter
+  Description : Filter for combaining several filters with logical operation (OR or AND)
+*/
+
+class SMESH_LogicalFilter : public SALOME_Filter
+{
+public:
+
+  enum { LO_OR, LO_AND, LO_UNDEFINED };
+
+public:
+
+                              SMESH_LogicalFilter( const SMESH_ListOfFilter&, const int  );
+
+
+  virtual                     ~SMESH_LogicalFilter();
+  virtual                     Standard_Boolean IsOk( const Handle(SALOME_InteractiveObject)& ) const;
+
+  void                        SetFilters( const SMESH_ListOfFilter& );
+  void                        SetLogOp( const int );
+  const SMESH_ListOfFilter&    GetFilters() const;
+  int                         GetLogOp() const;
+
+private:
+
+  SMESH_ListOfFilter           myFilters;
+  int                         myLogOp;
+
+public:
+  DEFINE_STANDARD_RTTI( SMESH_LogicalFilter )
+};
+
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
index 7f2636efe0bbb78cfe78af70de72ac9ac380c926..973071422746da9b6b9974cc878bfa1e5df8e2e3 100644 (file)
@@ -157,7 +157,8 @@ LIB_CLIENT_IDL = SALOME_Exception.idl \
                 MED.idl \
                 SMESH_Filter.idl \
                 SMESH_Pattern.idl \
-                SALOME_GenericObj.idl
+                SALOME_GenericObj.idl \
+                SALOME_Comm.idl
 
 LIB_SERVER_IDL = 
 
index ec54348ba66b135ef6586129d577d6bbd16b1363..49baea8a3950b61dee8fbd43bdb2d0594156aab5 100644 (file)
@@ -676,8 +676,8 @@ namespace{
        // Remove object(s) from data structures
        SALOMEDS::SObject_var obj = aStudy->FindObjectID(IObject->getEntry());
        if(!obj->_is_nil()){
-         SMESH::SMESH_Group_var     aGroup = SMESH::SMESH_Group  ::_narrow(obj->GetObject());
-         SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow(obj->GetObject());
+         SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(obj->GetObject());
+         SMESH::SMESH_subMesh_var   aSubMesh = SMESH::SMESH_subMesh::_narrow(obj->GetObject());
          
          if ( !aGroup->_is_nil() ) {                          // DELETE GROUP
            SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh();
@@ -1378,16 +1378,15 @@ bool SMESHGUI::OnGUIEvent(int theCommandID, QAD_Desktop * parent)
     {
       if(checkLock(aStudy)) break;
       EmitSignalDeactivateDialog();
+      SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_nil();
       SALOME_Selection *Sel = SALOME_Selection::Selection(myActiveStudy->getSelection());
       int nbSel = Sel->IObjectCount();
       if (nbSel == 1) {
        // check if mesh is selected
-        SMESH::SMESH_Mesh_var aMesh = SMESH::GetMeshByIO(Sel->firstIObject());
-        if (!aMesh->_is_nil()) {
-          SMESHGUI_GroupDlg *aDlg = new SMESHGUI_GroupDlg(parent, "", Sel, aMesh);
-          aDlg->show();
-        }
+        aMesh = SMESH::GetMeshByIO(Sel->firstIObject());
       }
+      SMESHGUI_GroupDlg *aDlg = new SMESHGUI_GroupDlg(parent, "", Sel, aMesh);
+      aDlg->show();
       break;
     }
 
@@ -1448,15 +1447,22 @@ bool SMESHGUI::OnGUIEvent(int theCommandID, QAD_Desktop * parent)
       SALOME_Selection *Sel = SALOME_Selection::Selection(myActiveStudy->getSelection());
       SALOME_ListIO IOs; IOs = Sel->StoredIObjects(); // list copy
       SALOME_ListIteratorOfListIO It (IOs);
+      int nbSelectedGroups = 0;
       for ( ; It.More(); It.Next() )
       {
         SMESH::SMESH_Group_var aGroup =
           SMESH::IObjectToInterface<SMESH::SMESH_Group>(It.Value());
         if (!aGroup->_is_nil()) {
+         nbSelectedGroups++;
           SMESHGUI_GroupDlg *aDlg = new SMESHGUI_GroupDlg(parent, "", Sel, aGroup);
           aDlg->show();
        }
       }
+      if (nbSelectedGroups == 0)
+       {
+         SMESHGUI_GroupDlg *aDlg = new SMESHGUI_GroupDlg(parent, "", Sel, SMESH::SMESH_Group::_nil());
+         aDlg->show();
+       }
       break;
     }
 
@@ -1733,7 +1739,8 @@ bool SMESHGUI::OnGUIEvent(int theCommandID, QAD_Desktop * parent)
               myActiveStudy->renameIObject( IObject, newName );
 
               // if current object is group update group's name
-             SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(IObject);
+             SMESH::SMESH_GroupBase_var aGroup =
+                SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IObject);
               if (!aGroup->_is_nil() )
                 aGroup->SetName( newName.latin1() );
             }
@@ -1979,9 +1986,9 @@ bool SMESHGUI::OnGUIEvent(int theCommandID, QAD_Desktop * parent)
        SALOMEDS::SObject_var SO = aStudy->FindObjectID( Sel->firstIObject()->getEntry() );
        if ( !SO->_is_nil() ) {
          CORBA::Object_var aObject = SO->GetObject();
-         SMESH::SMESH_Mesh_var    aMesh    = SMESH::SMESH_Mesh::_narrow( aObject );
-         SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( aObject );
-         SMESH::SMESH_Group_var   aGroup   = SMESH::SMESH_Group::_narrow( aObject );
+         SMESH::SMESH_Mesh_var      aMesh    = SMESH::SMESH_Mesh::_narrow( aObject );
+         SMESH::SMESH_subMesh_var   aSubMesh = SMESH::SMESH_subMesh::_narrow( aObject );
+         SMESH::SMESH_GroupBase_var aGroup   = SMESH::SMESH_GroupBase::_narrow( aObject );
          if ( !aMesh->_is_nil() || !aSubMesh->_is_nil() || !aGroup->_is_nil() ) {
            ::Control( theCommandID );
            break;
@@ -2267,6 +2274,11 @@ bool SMESHGUI::CustomPopup(QAD_Desktop* parent, QPopupMenu* popup, const QString
          popup->removeItem( 705 ); // Edit hypothesis
          popup->removeItem( 706 ); // ...
        }
+        SMESH::SMESH_GroupOnGeom_var aGeomGroup =
+          SMESH::SMESH_GroupOnGeom::_narrow( SO->GetObject() );
+        if ( !aGeomGroup->_is_nil()  ) // group linked on geometry
+         popup->removeItem( 803 ); // EDIT GROUP
+          
        SMESH_Actor* ac = SMESH::FindActorByEntry(IObject->getEntry());
        // if object has actor
        if ( ac && studyFrame->getTypeView() == VIEW_VTK ) {
@@ -2377,7 +2389,7 @@ bool SMESHGUI::CustomPopup(QAD_Desktop* parent, QPopupMenu* popup, const QString
            SMESH::SMESH_subMesh_var aSubMeshObj = SMESH::SMESH_subMesh::_narrow( anObject );
            if ( !aSubMeshObj->_is_nil() && ( aSubMeshObj->GetNumberOfNodes(false) > 0 || aSubMeshObj->GetNumberOfElements() > 0 ) )
              bDisplay = true;
-           SMESH::SMESH_Group_var aGroupObj = SMESH::SMESH_Group::_narrow( anObject );
+           SMESH::SMESH_GroupBase_var aGroupObj = SMESH::SMESH_GroupBase::_narrow( anObject );
            if ( !aGroupObj->_is_nil() && aGroupObj->Size() > 0 )
              bDisplay = true;
          }
@@ -2441,7 +2453,8 @@ bool SMESHGUI::CustomPopup(QAD_Desktop* parent, QPopupMenu* popup, const QString
  *  Purpose: ensures that the actor for the given <theIO> exists in the active VTK view
  */
 //=============================================================================
-void SMESHGUI::BuildPresentation(const Handle(SALOME_InteractiveObject) & theIO)
+void SMESHGUI::BuildPresentation( const Handle(SALOME_InteractiveObject) & theIO,
+                                  QAD_ViewFrame* )
 {
   if(theIO->hasEntry()){
     QAD_Study* aStudy = SMESHGUI::GetSMESHGUI()->GetActiveStudy();
index d905c4d9470e871ed563cf40d8f76380966d8ff7..4905f783f9e499d429166805147839652a76f3b9 100644 (file)
@@ -80,7 +80,8 @@ public :
   virtual void DefinePopup       ( QString & theContext, QString & theParent, QString & theObject );
   virtual bool CustomPopup       ( QAD_Desktop* parent, QPopupMenu* popup, const QString & theContext,
                                    const QString & theParent, const QString & theObject );
-  virtual void BuildPresentation ( const Handle(SALOME_InteractiveObject)& theIO );
+  virtual void BuildPresentation ( const Handle(SALOME_InteractiveObject)& theIO,
+                                   QAD_ViewFrame* = 0 );
   virtual void SupportedViewType (int* buffer, int bufferSize);
   virtual void Deactivate        ();
 
index 66fa370e946de45efc4ac368323aee3c99047916..250323da7b5d71775e2f93a2af34f12572f0652d 100644 (file)
@@ -33,6 +33,8 @@
 #include "SMESHGUI_GEOMGenUtils.h"
 #include "SMESHGUI_HypothesesUtils.h"
 
+#include "GEOMBase.h"
+
 #include "QAD_Application.h"
 #include "QAD_Desktop.h"
 #include "QAD_MessageBox.h"
@@ -368,8 +370,10 @@ void SMESHGUI_AddSubMeshDlg::SelectionIntoArgument()
     else {
       Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject() ;
       myGeomShape = SMESH::IObjectToInterface<GEOM::GEOM_Object>(IO) ;
-      if( myGeomShape->_is_nil() ) {
-       aString = "";
+      if( myGeomShape->_is_nil() || !GEOMBase::IsShape( myGeomShape ) )
+      {
+        myGeomShape = GEOM::GEOM_Object::_nil();
+        aString = "";
       }
       if ( !myMesh->_is_nil() ) {
        SALOMEDS::SObject_var aMeshSO = SMESH::FindSObject( myMesh );
index 35f40abf8c6af8b71ea5ac9e24d25d30fb31a2d8..07d3f87cd0e828d0b25fc362cfa91f5c108265b5 100644 (file)
@@ -190,7 +190,7 @@ bool SMESHGUI_DeleteGroupDlg::onApply()
 
   myBlockSelection = true;
   
-  QValueList<SMESH::SMESH_Group_var>::iterator anIter;
+  QValueList<SMESH::SMESH_GroupBase_var>::iterator anIter;
   for ( anIter = myListGrp.begin(); anIter != myListGrp.end(); ++anIter )
   {
     SMESH::SMESH_Mesh_ptr aMesh = (*anIter)->GetMesh();
@@ -248,8 +248,8 @@ void SMESHGUI_DeleteGroupDlg::onSelectionDone()
   SALOME_ListIteratorOfListIO anIter( aListIO );
   for( ; anIter.More(); anIter.Next() )
   {
-    SMESH::SMESH_Group_var aGroup = 
-      SMESH::IObjectToInterface<SMESH::SMESH_Group>( anIter.Value() );
+    SMESH::SMESH_GroupBase_var aGroup = 
+      SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>( anIter.Value() );
     if ( !aGroup->_is_nil() )
     {
       aNames.append( aGroup->GetName() );
index 1a6eafca121cf04530c3111884858ba7219d30be..1669dc705793de2e9d54f0e18ce137ca0e9df52f 100644 (file)
@@ -83,8 +83,8 @@ private:
   QListBox*                          myListBox;
   SALOME_Selection*                  mySelection;
   
-  QValueList<SMESH::SMESH_Group_var> myListGrp;
-  bool                               myBlockSelection;
+  QValueList<SMESH::SMESH_GroupBase_var> myListGrp;
+  bool                                   myBlockSelection;
   
 };
 
index d01762f3ac2bdc4acfb73eca5fb6f9766a4c1bee..c47fa7a5b98b265efea52b5ea75f4832857cd97c 100644 (file)
 #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 "SMDS_Mesh.hxx"
 
-#include <TopoDS.hxx>
-#include <gp_Lin.hxx>
-#include <gp_Vec.hxx>
-#include <BRepAdaptor_Curve.hxx>
-
 #include "QAD_Application.h"
 #include "QAD_Desktop.h"
 #include "QAD_MessageBox.h"
@@ -53,6 +50,7 @@
 #include <qlineedit.h>
 #include <qpushbutton.h>
 #include <qradiobutton.h>
+#include <qcheckbox.h>
 #include <qlayout.h>
 #include <qspinbox.h> 
 #include <qvalidator.h>
@@ -145,6 +143,7 @@ SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg( QWidget* parent, const char* name,
   // Controls for elements selection
   TextLabelElements  = new QLabel( GroupArguments, "TextLabelElements" );
   TextLabelElements->setText( tr( "SMESH_ID_ELEMENTS"  ) );
+  TextLabelElements->setFixedWidth(74);
   GroupArgumentsLayout->addWidget( TextLabelElements, 0, 0 );
 
   SelectElementsButton  = new QPushButton( GroupArguments, "SelectElementsButton" );
@@ -157,39 +156,44 @@ SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg( QWidget* parent, const char* name,
   LineEditElements->setValidator( new SMESHGUI_IdValidator( this, "validator" ));
   GroupArgumentsLayout->addMultiCellWidget( LineEditElements, 0, 0, 2, 7 );
 
+  // Control for the whole mesh selection
+  CheckBoxMesh = new QCheckBox( GroupArguments, "CheckBoxMesh" );
+  CheckBoxMesh->setText( tr( "SMESH_SELECT_WHOLE_MESH"  ) );
+  GroupArgumentsLayout->addMultiCellWidget( CheckBoxMesh, 1, 1, 0, 7 );
+
   // Controls for vector selection
   TextLabelVector = new QLabel( GroupArguments, "TextLabelVector" );
   TextLabelVector->setText( tr( "SMESH_VECTOR" ) );
-  GroupArgumentsLayout->addWidget( TextLabelVector, 1, 0 );
+  GroupArgumentsLayout->addWidget( TextLabelVector, 2, 0 );
   
   TextLabelDx = new QLabel( GroupArguments, "TextLabelDx" );
   TextLabelDx->setText( tr( "SMESH_DX" ) );
-  GroupArgumentsLayout->addWidget( TextLabelDx, 1, 2 );
+  GroupArgumentsLayout->addWidget( TextLabelDx, 2, 2 );
 
   SpinBox_Dx = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Dx");
-  GroupArgumentsLayout->addWidget( SpinBox_Dx, 1, 3 );
+  GroupArgumentsLayout->addWidget( SpinBox_Dx, 2, 3 );
 
   TextLabelDy = new QLabel( GroupArguments, "TextLabelDy" );
   TextLabelDy->setText( tr( "SMESH_DY" ) );
-  GroupArgumentsLayout->addWidget( TextLabelDy, 1, 4 );
+  GroupArgumentsLayout->addWidget( TextLabelDy, 2, 4 );
 
   SpinBox_Dy = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Dy");
-  GroupArgumentsLayout->addWidget( SpinBox_Dy, 1, 5 );
+  GroupArgumentsLayout->addWidget( SpinBox_Dy, 2, 5 );
 
   TextLabelDz = new QLabel( GroupArguments, "TextLabelDz" );
   TextLabelDz->setText( tr( "SMESH_DZ" ) );
-  GroupArgumentsLayout->addWidget( TextLabelDz, 1, 6 );
+  GroupArgumentsLayout->addWidget( TextLabelDz, 2, 6 );
   
   SpinBox_Dz = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Dz");
-  GroupArgumentsLayout->addWidget( SpinBox_Dz, 1, 7 );
+  GroupArgumentsLayout->addWidget( SpinBox_Dz, 2, 7 );
   
   // Controls for nb. steps defining
   TextLabelNbSteps = new QLabel( GroupArguments, "TextLabelNbSteps" );
   TextLabelNbSteps->setText( tr( "SMESH_NUMBEROFSTEPS"  ) );
-  GroupArgumentsLayout->addMultiCellWidget( TextLabelNbSteps, 2, 2, 0, 1 );
+  GroupArgumentsLayout->addMultiCellWidget( TextLabelNbSteps, 3, 3, 0, 1 );
 
   SpinBox_NbSteps = new QSpinBox(GroupArguments, "SpinBox_NbSteps");
-  GroupArgumentsLayout->addMultiCellWidget( SpinBox_NbSteps, 2, 2,  2, 7 );
+  GroupArgumentsLayout->addMultiCellWidget( SpinBox_NbSteps, 3, 3,  2, 7 );
   
   SMESHGUI_ExtrusionDlgLayout->addWidget( GroupArguments, 1, 0 );
   
@@ -209,6 +213,17 @@ SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg( QWidget* parent, const char* name,
   mySMESHGUI  = SMESHGUI::GetSMESHGUI() ;
   mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
     
+  // Costruction of the logical filter
+  SMESH_ListOfFilter aListOfFilters;
+  Handle(SMESH_TypeFilter) aMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+  if ( !aMeshOrSubMeshFilter.IsNull() )
+    aListOfFilters.Append( aMeshOrSubMeshFilter );
+  Handle(SMESH_TypeFilter) aSmeshGroupFilter = new SMESH_TypeFilter( GROUP );
+  if ( !aSmeshGroupFilter.IsNull() )
+    aListOfFilters.Append( aSmeshGroupFilter );
+  
+  myMeshOrSubMeshOrGroupFilter = new SMESH_LogicalFilter( aListOfFilters, SMESH_LogicalFilter::LO_OR );
+  
   Init();
   /* signals and slots connections */
   connect( buttonOk, SIGNAL( clicked() ),     this, SLOT( ClickOnOk() ) );
@@ -223,7 +238,9 @@ SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg( QWidget* parent, const char* name,
   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 )));
+
   /* Move widget on the botton right corner of main widget */
   int x, y ;
   mySMESHGUI->DefineDlgPosition( this, x, y ) ;
@@ -247,23 +264,30 @@ SMESHGUI_ExtrusionDlg::~SMESHGUI_ExtrusionDlg()
 // function : Init()
 // purpose  :
 //=================================================================================
-void SMESHGUI_ExtrusionDlg::Init()
+void SMESHGUI_ExtrusionDlg::Init(  bool ResetControls )
 {
   myBusy = false;    
-
-  SpinBox_NbSteps->setValue(1);
   
-  myEditCurrentArgument = LineEditElements;
-  LineEditElements->setFocus();
+  LineEditElements->clear();
+  myElementsId = "";
   myNbOkElements = 0 ;
+
+  buttonOk->setEnabled( false );
+  buttonApply->setEnabled( false );
+  
   myActor     = 0;
   myMesh = SMESH::SMESH_Mesh::_nil();
   
-  SpinBox_Dx->SetValue(0);
-  SpinBox_Dy->SetValue(0);
-  SpinBox_Dz->SetValue(0);
-  
-  SelectionIntoArgument();
+  if( ResetControls )
+    {
+      SpinBox_NbSteps->setValue(1);
+      SpinBox_Dx->SetValue(0);
+      SpinBox_Dy->SetValue(0);
+      SpinBox_Dz->SetValue(0);
+      
+      CheckBoxMesh->setChecked(false);
+      onSelectMesh( false );
+    }
 }
 
 
@@ -274,28 +298,31 @@ void SMESHGUI_ExtrusionDlg::Init()
 void SMESHGUI_ExtrusionDlg::ConstructorsClicked(int constructorId)
 {
   disconnect(mySelection, 0, this, 0);
-  mySelection->ClearIObjects();
-  mySelection->ClearFilters();
-  myNbOkElements = 0 ;
-  myEditCurrentArgument = LineEditElements;
-  LineEditElements->setText("");
-  LineEditElements->setFocus();
   
   switch(constructorId)
     { 
     case 0 :
       {
        GroupArguments->setTitle( tr( "EXTRUSION_1D" ) );
-       QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
+       if ( !CheckBoxMesh->isChecked() )
+         QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
        break;
       }
     case 1 :
       { 
        GroupArguments->setTitle( tr( "EXTRUSION_2D" ) );
-       QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+       if ( !CheckBoxMesh->isChecked() )
+         QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
        break;
       }
     }
+
+  myEditCurrentArgument = LineEditElements;
+  LineEditElements->setFocus();
+  
+  if (CheckBoxMesh->isChecked())
+    onSelectMesh(true);
+  
   connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
 }
 
@@ -311,7 +338,7 @@ void SMESHGUI_ExtrusionDlg::ClickOnApply()
   
   if ( myNbOkElements)
     {
-      QStringList aListElementsId = QStringList::split( " ", LineEditElements->text(), false);
+      QStringList aListElementsId = QStringList::split( " ", myElementsId, false);
       
       SMESH::long_array_var anElementsId = new SMESH::long_array;
       
@@ -339,7 +366,8 @@ void SMESHGUI_ExtrusionDlg::ClickOnApply()
       
       mySelection->ClearIObjects();
       SMESH::UpdateView();
-      Init();
+      Init( false);
+      ConstructorsClicked( GetConstructorId() );
     }
 }
 
@@ -349,8 +377,8 @@ void SMESHGUI_ExtrusionDlg::ClickOnApply()
 //=================================================================================
 void SMESHGUI_ExtrusionDlg::ClickOnOk()
 {
-  this->ClickOnApply() ;
-  this->ClickOnCancel() ;
+  ClickOnApply();
+  ClickOnCancel();
 }
 
        
@@ -376,7 +404,7 @@ void SMESHGUI_ExtrusionDlg::ClickOnCancel()
 void SMESHGUI_ExtrusionDlg::onTextChange(const QString& theNewText)
 {
   QLineEdit* send = (QLineEdit*)sender();
-
+  
   if ( myBusy ) return;
   myBusy = true;
   
@@ -392,7 +420,6 @@ void SMESHGUI_ExtrusionDlg::onTextChange(const QString& theNewText)
     aMesh = myActor->GetObject()->GetMesh();
   
   if ( aMesh ) {
-    
     mySelection->ClearIObjects();
     mySelection->AddIObject( myActor->getIO() );
     
@@ -407,6 +434,7 @@ void SMESHGUI_ExtrusionDlg::onTextChange(const QString& theNewText)
          myNbOkElements++;
        }
       }
+      myElementsId = theNewText;
     }
   }
   
@@ -427,12 +455,14 @@ void SMESHGUI_ExtrusionDlg::SelectionIntoArgument()
   if ( myBusy ) return;
   
   // clear
-  
   myActor = 0;
   QString aString = "";
 
   myBusy = true;
   myEditCurrentArgument->setText( aString );
+  myNbOkElements = 0;
+  buttonOk->setEnabled( false );
+  buttonApply->setEnabled( false );
   myBusy = false;
   
   if ( !GroupButtons->isEnabled() ) // inactive
@@ -448,20 +478,103 @@ void SMESHGUI_ExtrusionDlg::SelectionIntoArgument()
     return;
   
   Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
+  myMesh = SMESH::GetMeshByIO(IO);
+  if(myMesh->_is_nil())
+    return;
+  myActor = SMESH::FindActorByObject(myMesh);
+  if (!myActor)
+    return;
   
   if (myEditCurrentArgument == LineEditElements)
     {
-      myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO) ;
-      
-      myActor = SMESH::FindActorByEntry( mySelection->firstIObject()->getEntry() );
-      
-      // get selected elements
       int aNbElements = 0;
+      myElementsId = "";
       
-      aNbElements = SMESH::GetNameOfSelectedElements(mySelection, aString) ;
+      if (CheckBoxMesh->isChecked())
+       {
+         SMESH::GetNameOfSelectedIObjects(mySelection, aString);
+       
+         int aConstructorId = GetConstructorId();
+
+         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++;
+                     }
+                   }
+               }
+           }
+         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(mySelection, aString) ;
+         myElementsId = aString;
+       }
       
       if(aNbElements < 1)
        return ;
+      
+      myNbOkElements = true;
     }
   
   myBusy = true;
@@ -470,9 +583,6 @@ void SMESHGUI_ExtrusionDlg::SelectionIntoArgument()
   
   // OK
   
-  if (myEditCurrentArgument == LineEditElements )
-    myNbOkElements = true;
-  
   if(myNbOkElements)
     {
       buttonOk->setEnabled( true );
@@ -488,17 +598,26 @@ void SMESHGUI_ExtrusionDlg::SelectionIntoArgument()
 void SMESHGUI_ExtrusionDlg::SetEditCurrentArgument()
 {
   QPushButton* send = (QPushButton*)sender();
+  
   disconnect( mySelection, 0, this, 0 );
   mySelection->ClearIObjects();
   mySelection->ClearFilters();
   
   if(send == SelectElementsButton) {
     myEditCurrentArgument = LineEditElements;
-    int aConstructorId = GetConstructorId();
-    if (aConstructorId == 0)
-      QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
-    else if (aConstructorId == 1)
-      QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+    if (CheckBoxMesh->isChecked())
+      {
+       QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
+       mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
+      }
+    else
+      {
+       int aConstructorId = GetConstructorId();
+       if (aConstructorId == 0)
+         QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
+       else if (aConstructorId == 1)
+         QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+      }
   }
   
   myEditCurrentArgument->setFocus();
@@ -519,7 +638,6 @@ void SMESHGUI_ExtrusionDlg::DeactivateActiveDialog()
     mySMESHGUI->ResetState() ;    
     mySMESHGUI->SetActiveDialogBox(0) ;
   }
-  return ;
 }
 
 
@@ -551,7 +669,6 @@ void SMESHGUI_ExtrusionDlg::enterEvent(QEvent* e)
   if ( GroupConstructors->isEnabled() )
     return ;  
   ActivateThisDialog() ;
-  return ;
 }
 
 
@@ -578,6 +695,47 @@ void SMESHGUI_ExtrusionDlg::hideEvent ( QHideEvent * e )
 }
 
 
+//=======================================================================
+//function : onSelectMesh
+//purpose  :
+//=======================================================================
+void SMESHGUI_ExtrusionDlg::onSelectMesh ( bool toSelectMesh )
+{
+  if (toSelectMesh)
+    TextLabelElements->setText( tr( "SMESH_NAME" ) );
+  else
+    TextLabelElements->setText( tr( "SMESH_ID_ELEMENTS" ) );
+  
+  if (myEditCurrentArgument != LineEditElements)
+    {
+      LineEditElements->clear();
+      return;
+    }
+  
+  mySelection->ClearFilters() ;
+  
+  if (toSelectMesh)
+    {
+      QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
+      mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
+      LineEditElements->setReadOnly(true);
+    }
+  else
+    {
+      int aConstructorId = GetConstructorId();
+      if (aConstructorId == 0)
+       QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
+      else if (aConstructorId == 0)
+       QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+      
+      LineEditElements->setReadOnly(false);
+      onTextChange(LineEditElements->text());
+    }
+  
+  SelectionIntoArgument();
+}
+
+
 //=================================================================================
 // function : GetConstructorId()
 // purpose  : 
index 1165f4d3acc82b2e50e166e49fc4a9c6e8a1b070..c6f80f0e25914923d15909e309a42513dfa60f50 100644 (file)
@@ -30,7 +30,8 @@
 #define DIALOGBOX_EXTRUSION_H
 
 #include "SALOME_Selection.h"
-#include "SMESH_TypeFilter.hxx"
+#include "SMESH_LogicalFilter.hxx"
+
 // QT Includes
 #include <qdialog.h>
 
@@ -41,6 +42,7 @@ class QLabel;
 class QLineEdit;
 class QPushButton;
 class QRadioButton;
+class QCheckBox;
 class QSpinBox;
 class SMESHGUI_SpinBox;
 class SMESHGUI;
@@ -65,7 +67,7 @@ public:
 
 private:
 
-    void Init() ;
+    void Init( bool ResetControls = true ) ;
     void closeEvent( QCloseEvent* e ) ;
     void enterEvent ( QEvent * ) ;                          /* mouse enter the QWidget */
     void hideEvent ( QHideEvent * );                        /* ESC key */
@@ -73,13 +75,16 @@ private:
 
     SMESHGUI*                     mySMESHGUI ;              /* Current SMESHGUI object */
     SALOME_Selection*             mySelection ;             /* User shape selection */
+    QString                       myElementsId;
     int                           myNbOkElements ;          /* to check when elements are defined */
+    
     QLineEdit*                    myEditCurrentArgument;    /* Current  LineEdit */
 
     bool                          myBusy;
     SMESH::SMESH_Mesh_var         myMesh;
     SMESH_Actor*                  myActor;
-    
+    Handle(SMESH_LogicalFilter)   myMeshOrSubMeshOrGroupFilter;
+
     QButtonGroup* GroupConstructors;
     QRadioButton* RadioButton1;
     QRadioButton* RadioButton2;
@@ -91,6 +96,7 @@ private:
     QLabel* TextLabelElements;
     QPushButton* SelectElementsButton;
     QLineEdit* LineEditElements;
+    QCheckBox* CheckBoxMesh;
     QLabel* TextLabelVector;
     QLabel* TextLabelDx;
     SMESHGUI_SpinBox* SpinBox_Dx;
@@ -112,6 +118,7 @@ private:
     void DeactivateActiveDialog() ;
     void ActivateThisDialog() ;
     void onTextChange(const QString&);
+    void onSelectMesh(bool toSelectMesh);
     
 protected:
     QGridLayout* SMESHGUI_ExtrusionDlgLayout;
index 202e12745a13d500c64f4ee52d2a7d1f317d0dc0..7aeb763d3f6655cdd93c1f08f7159fe6168df0bf 100755 (executable)
@@ -2292,7 +2292,8 @@ void SMESHGUI_FilterDlg::filterSelectionSource( const int theType,
     }
 
     // process group
-    SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>( anIter.Key() );
+    SMESH::SMESH_GroupBase_var aGroup =
+      SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>( anIter.Key() );
     if ( !aGroup->_is_nil() )
     {
       if ( aGroup->GetType() == theType && aGroup->GetMesh()->GetId() == myMesh->GetId() )
index 305f86af947d185d8a1c3d49b68d5724c1b31968..a7dc4011ba122233aa8fc31853e0370d561fad86 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "SMESHGUI_GEOMGenUtils.h"
 #include "SMESHGUI_Utils.h"
+#include CORBA_CLIENT_HEADER(SMESH_Mesh)
 
 namespace SMESH{
 
@@ -38,20 +39,22 @@ namespace SMESH{
   }
 
 
-  GEOM::GEOM_Object_var GetShapeOnMeshOrSubMesh(SALOMEDS::SObject_ptr theSObject)
+  GEOM::GEOM_Object_var GetShapeOnMeshOrSubMesh(SALOMEDS::SObject_ptr theMeshOrSubmesh)
   {
-    if(!theSObject->_is_nil()) {
-      using namespace SALOMEDS;
-      SObject_var aSubSObject;
-      static int Tag_RefOnShape = 1;
-      if(theSObject->FindSubObject(Tag_RefOnShape,aSubSObject)){
-       SObject_var aGeomSObject;
-       if(aSubSObject->ReferencedObject(aGeomSObject)){
-         return SObjectToInterface<GEOM::GEOM_Object>(aGeomSObject);
-       }
+    if(!theMeshOrSubmesh->_is_nil()) {
+      CORBA::Object_var Obj = theMeshOrSubmesh->GetObject();
+      if ( !CORBA::is_nil( Obj ) ) {
+        SMESH::SMESH_Mesh_var aMesh =
+          SObjectToInterface<SMESH::SMESH_Mesh>( theMeshOrSubmesh );
+        if ( !aMesh->_is_nil() )
+          return aMesh->GetShapeToMesh();
+        SMESH::SMESH_subMesh_var aSubmesh =
+          SObjectToInterface<SMESH::SMESH_subMesh>( theMeshOrSubmesh );
+        if ( !aSubmesh->_is_nil() )
+         return aSubmesh->GetSubShape();
       }
     }
     return GEOM::GEOM_Object::_nil();
   }
-    
+
 }
index 6f2a9860cb6bae21574bf84deb12d5ae37d30ecc..ed7295a118ce4c509100660c738021af0a52acfc 100644 (file)
@@ -33,6 +33,7 @@
 #include "SMESHGUI.h"
 #include "SMESHGUI_Utils.h"
 #include "SMESHGUI_VTKUtils.h"
+#include "SMESHGUI_MeshUtils.h"
 #include "SMESHGUI_GroupUtils.h"
 #include "SMESHGUI_FilterUtils.h"
 #include "SMESHGUI_GEOMGenUtils.h"
@@ -64,6 +65,7 @@
 #include <qimage.h>
 #include <qpixmap.h>
 #include <qmemarray.h>
+#include <qwidgetstack.h>
 
 // STL includes
 #include <vector>
@@ -81,8 +83,15 @@ SMESHGUI_GroupDlg::SMESHGUI_GroupDlg( QWidget* parent, const char* name, SALOME_
 {
   if ( !name ) setName( "SMESHGUI_GroupDlg" );
   initDialog(theSel, true);
-  init(theMesh);
-
+  if (!theMesh->_is_nil())
+    init(theMesh);
+  else {
+    mySelectSubMesh->setEnabled(false);
+    mySelectGroup->setEnabled(false);
+    myGeomGroupBtn->setEnabled(false);
+    myGeomGroupLine->setEnabled(false);
+  }
+  
   /* Move widget on the botton right corner of main widget */
   int x, y ;
   mySMESHGUI->DefineDlgPosition(this, x, y);
@@ -95,8 +104,13 @@ SMESHGUI_GroupDlg::SMESHGUI_GroupDlg( QWidget* parent, const char* name, SALOME_
 {
   if ( !name ) setName( "SMESHGUI_GroupDlg" );
   initDialog(theSel, false);
-  init(theGroup);
-
+  if (!theGroup->_is_nil())
+    init(theGroup);
+  else {
+    mySelectSubMesh->setEnabled(false);
+    mySelectGroup->setEnabled(false);
+  }
+  
   /* Move widget on the botton right corner of main widget */
   int x, y ;
   mySMESHGUI->DefineDlgPosition(this, x, y);
@@ -106,17 +120,31 @@ SMESHGUI_GroupDlg::SMESHGUI_GroupDlg( QWidget* parent, const char* name, SALOME_
 void SMESHGUI_GroupDlg::initDialog(SALOME_Selection* theSel, bool create)
 {
   myFilterDlg = 0;
+  myCreate = create;
+  myCurrentLineEdit = 0;
   
   QPixmap image0(QAD_Desktop::getResourceManager()->loadPixmap( "SMESH",tr("ICON_SELECT")));
 
   if (create)
     setCaption( tr( "SMESH_CREATE_GROUP_TITLE"  ) );
-  else 
+  else
     setCaption( tr( "SMESH_EDIT_GROUP_TITLE"  ) );
+        
   setSizeGripEnabled( TRUE );
 
-  QVBoxLayout* aMainLayout = new QVBoxLayout(this, 11, 6);
+  QGridLayout* aMainLayout = new QGridLayout(this, 7, 3, 11, 6);
   
+  /***************************************************************/
+  QLabel* meshGroupLab = new QLabel(this, "mesh/group label");
+  if (create)
+    meshGroupLab->setText(tr("SMESH_MESH"));
+  else
+    meshGroupLab->setText(tr("SMESH_GROUP"));
+  myMeshGroupBtn = new QPushButton(this, "mesh/group button");
+  myMeshGroupBtn->setPixmap(image0);
+  myMeshGroupLine = new QLineEdit(this, "mesh/group line");
+  myMeshGroupLine->setReadOnly(true);
   /***************************************************************/
   myTypeGroup = new QButtonGroup(1, Qt::Vertical, this, "Group types");
   myTypeGroup->setTitle(tr("SMESH_ELEMENTS_TYPE"));
@@ -135,14 +163,27 @@ void SMESHGUI_GroupDlg::initDialog(SALOME_Selection* theSel, bool create)
   myTypeId = -1;
     
   /***************************************************************/
-  QHBox* aNameBox = new QHBox(this, "name box");
-  QLabel* aName = new QLabel(aNameBox, "name label");
+  QLabel* aName = new QLabel(this, "name label");
   aName->setText(tr("SMESH_NAME"));
   aName->setMinimumSize(50,0);
-  myName = new QLineEdit(aNameBox, "name");
-    
+  myName = new QLineEdit(this, "name");
+
+  /***************************************************************/
+  myGrpTypeGroup = new QButtonGroup(1, Qt::Vertical, this, "Type of group");
+  myGrpTypeGroup->setTitle(tr("SMESH_GROUP_TYPE"));
+  myGrpTypeGroup->setExclusive(true);
+  QRadioButton* rb1 = new QRadioButton( tr("SMESH_GROUP_STANDALONE"), myGrpTypeGroup);
+  QRadioButton* rb2 = new QRadioButton( tr("SMESH_GROUP_GEOMETRY"),   myGrpTypeGroup);
+  myGrpTypeGroup->setEnabled(create);
+  myGrpTypeId = -1;
+
   /***************************************************************/
-  QGroupBox* aContentBox = new QGroupBox(1, Qt::Horizontal, this, "content box");
+  myWGStack = new QWidgetStack( this, "widget stack");
+  QWidget* wg1 = new QFrame( myWGStack, "first widget" );
+  QWidget* wg2 = new QFrame( myWGStack, "second widget" );
+  
+  /***************************************************************/
+  QGroupBox* aContentBox = new QGroupBox(1, Qt::Horizontal, wg1, "content box");
   aContentBox->setTitle(tr("SMESH_CONTENT"));
   QFrame* aContent = new QFrame(aContentBox, "content");
   QGridLayout* aLayout = new QGridLayout(aContent, 7, 4);
@@ -153,7 +194,6 @@ void SMESHGUI_GroupDlg::initDialog(SALOME_Selection* theSel, bool create)
   aLabel->setText(tr("SMESH_ID_ELEMENTS"));
   myElements = new QListBox(aContent, "elements list");
   myElements->setSelectionMode(QListBox::Extended);
-  //  myElements->setMinimumHeight(150);
 
   myFilter = new QPushButton(aContent, "filter");
   myFilter->setText(tr("SMESH_BUT_FILTER"));
@@ -177,11 +217,8 @@ void SMESHGUI_GroupDlg::initDialog(SALOME_Selection* theSel, bool create)
   aLayout->setRowStretch(2, 1);
   aLayout->setRowStretch(5, 1);
 
-  aContentBox->setMinimumHeight(aContent->sizeHint().height() + 
-                               aContentBox->sizeHint().height());
-
   /***************************************************************/
-  QGroupBox* aSelectBox = new QGroupBox(3, Qt::Horizontal, this, "select box");
+  QGroupBox* aSelectBox = new QGroupBox(3, Qt::Horizontal, wg1, "select box");
   aSelectBox->setTitle(tr("SMESH_SELECT_FROM"));
   
   mySelectSubMesh = new QCheckBox(aSelectBox, "submesh checkbox");
@@ -204,19 +241,35 @@ void SMESHGUI_GroupDlg::initDialog(SALOME_Selection* theSel, bool create)
   myGroupLine->setReadOnly(true);
   onSelectGroup(false);
   
-  mySelectGeomGroup = new QCheckBox(aSelectBox, "geometry group checkbox");
-  mySelectGeomGroup->setText(tr("SMESH_GEOM_GROUP"));
-  mySelectGeomGroup->setMinimumSize(50, 0);
-  mySelectGeomGroup->setEnabled(create);
-  myGeomGroupBtn = new QPushButton(aSelectBox, "geometry group button");
+  /***************************************************************/
+  QGridLayout* wg1Layout = new QGridLayout( wg1, 3, 1, 0, 6 );
+  wg1Layout->addWidget(aContentBox, 0, 0);
+  wg1Layout->addWidget(aSelectBox, 1, 0);
+  wg1Layout->setRowStretch(2, 5);
+
+  /***************************************************************/
+  QLabel* geomObject = new QLabel(wg2, "geometry object label");
+  geomObject->setText(tr("SMESH_OBJECT_GEOM"));
+  myGeomGroupBtn = new QPushButton(wg2, "geometry group button");
   myGeomGroupBtn->setText("");
   myGeomGroupBtn->setPixmap(image0);
-  myGeomGroupLine = new QLineEdit(aSelectBox, "geometry group line");
-  myGeomGroupLine->setReadOnly(true);
+  myGeomGroupLine = new QLineEdit(wg2, "geometry group line");
+  myGeomGroupLine->setReadOnly(true); //VSR ???
   onSelectGeomGroup(false);
   
-  aSelectBox->setMinimumHeight(137);
-  aSelectBox->setMinimumWidth(305);
+  /***************************************************************/
+  QGridLayout* wg2Layout = new QGridLayout( wg2, 2, 3, 0, 6 );
+  wg2Layout->addWidget(geomObject,     0, 0);
+  wg2Layout->addWidget(myGeomGroupBtn, 0, 1);
+  wg2Layout->addWidget(myGeomGroupLine,0, 2);
+  wg2Layout->setRowStretch(1, 5);
+
+  /***************************************************************/
+  QVBoxLayout* dumb = new QVBoxLayout(myWGStack);
+  dumb->addWidget(wg1);
+  dumb->addWidget(wg2);
+  myWGStack->addWidget( wg1, myGrpTypeGroup->id(rb1) );
+  myWGStack->addWidget( wg2, myGrpTypeGroup->id(rb2) );
 
   /***************************************************************/
   QFrame* aButtons = new QFrame(this, "button box");
@@ -241,13 +294,22 @@ void SMESHGUI_GroupDlg::initDialog(SALOME_Selection* theSel, bool create)
   aBtnLayout->addWidget(aCloseBtn);
 
   /***************************************************************/
-  aMainLayout->addWidget(myTypeGroup);
-  aMainLayout->addWidget(aNameBox);
-  aMainLayout->addWidget(aContentBox);
-  aMainLayout->addWidget(aSelectBox);
-  aMainLayout->addWidget(aButtons);
+  aMainLayout->addWidget(meshGroupLab,    0, 0);
+  aMainLayout->addWidget(myMeshGroupBtn,  0, 1);
+  aMainLayout->addWidget(myMeshGroupLine, 0, 2);
+  aMainLayout->addMultiCellWidget(myTypeGroup,    1, 1, 0, 2);
+  aMainLayout->addWidget(aName,      2, 0);
+  aMainLayout->addWidget(myName,     2, 2);
+  aMainLayout->addMultiCellWidget(myGrpTypeGroup, 3, 3, 0, 2);
+  aMainLayout->addMultiCellWidget(myWGStack,      4, 4, 0, 2);
+  aMainLayout->setRowStretch( 5, 5 );
+  aMainLayout->addMultiCellWidget(aButtons,       6, 6, 0, 2);
 
   /* signals and slots connections */
+  connect(myMeshGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
+
+  connect(myGrpTypeGroup, SIGNAL(clicked(int)), this, SLOT(onGrpTypeChanged(int)));
+
   connect(myTypeGroup, SIGNAL(clicked(int)), this, SLOT(onTypeChanged(int)));
 
   connect(myName, SIGNAL(textChanged(const QString&)), this, SLOT(onNameChanged(const QString&)));
@@ -260,12 +322,10 @@ void SMESHGUI_GroupDlg::initDialog(SALOME_Selection* theSel, bool create)
 
   connect(mySelectSubMesh, SIGNAL(toggled(bool)), this, SLOT(onSelectSubMesh(bool)));
   connect(mySelectGroup, SIGNAL(toggled(bool)), this, SLOT(onSelectGroup(bool)));
-  connect(mySelectGeomGroup, SIGNAL(toggled(bool)), this, SLOT(onSelectGeomGroup(bool)));
   connect(mySubMeshBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
   connect(myGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
   connect(myGeomGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
 
-
   connect(aOKBtn, SIGNAL(clicked()), this, SLOT(onOK()));
   connect(aApplyBtn, SIGNAL(clicked()), this, SLOT(onApply()));
   connect(aCloseBtn, SIGNAL(clicked()), this, SLOT(onClose()));
@@ -277,6 +337,7 @@ void SMESHGUI_GroupDlg::initDialog(SALOME_Selection* theSel, bool create)
   mySMESHGUI->SetState(800);
 
   mySelectionMode = -1;
+  myMeshFilter = new SMESH_TypeFilter(MESH);
   mySubMeshFilter = new SMESH_TypeFilter(SUBMESH);
   myGroupFilter = new SMESH_TypeFilter(GROUP);
 
@@ -284,6 +345,12 @@ void SMESHGUI_GroupDlg::initDialog(SALOME_Selection* theSel, bool create)
   connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(onClose()));
   connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(onObjectSelectionChanged()));
 
+  myGrpTypeGroup->setButton(myGrpTypeGroup->id(rb1)); // VSR !!!
+  onGrpTypeChanged(myGrpTypeGroup->id(rb1)); // VSR!!!
+
+  if (myMesh->_is_nil() )
+    myTypeGroup->setButton(0);
+  
   updateButtons();
 }
 
@@ -293,7 +360,7 @@ void SMESHGUI_GroupDlg::initDialog(SALOME_Selection* theSel, bool create)
 //=================================================================================
 SMESHGUI_GroupDlg::~SMESHGUI_GroupDlg()
 {
-    // no need to delete child widgets, Qt does it all for us
+  // no need to delete child widgets, Qt does it all for us
   if ( myFilterDlg != 0 )
   {
     myFilterDlg->reparent( 0, QPoint() );
@@ -311,9 +378,15 @@ void SMESHGUI_GroupDlg::init(SMESH::SMESH_Mesh_ptr theMesh)
   /* init data from current selection */
   myMesh = SMESH::SMESH_Mesh::_duplicate(theMesh);
   myGroup = SMESH::SMESH_Group::_nil();
-
+  
   myActor = SMESH::FindActorByObject(myMesh);
   SMESH::SetPickable(myActor);
+   
+  QString aName = mySelection->firstIObject()->getName();
+  myMeshGroupLine->setText(aName) ;
+  myMeshGroupLine->home( false );
+
+  myCurrentLineEdit = 0;
 
   myTypeGroup->setButton(0);
   onTypeChanged(0);
@@ -332,7 +405,7 @@ void SMESHGUI_GroupDlg::init(SMESH::SMESH_Group_ptr theGroup)
   if ( !myActor )
     myActor = SMESH::FindActorByObject(myGroup);
   SMESH::SetPickable(myActor);
-
+  
   int aType = 0;
   switch(theGroup->GetType()) {
   case SMESH::NODE: aType= 0; break;
@@ -340,12 +413,18 @@ void SMESHGUI_GroupDlg::init(SMESH::SMESH_Group_ptr theGroup)
   case SMESH::FACE: aType = 2; break;
   case SMESH::VOLUME: aType = 3; break;
   } 
-  myTypeGroup->setButton(aType);
-  onTypeChanged(aType);
-
+  
   myName->setText(myGroup->GetName());
   myName->home(false);
+  myMeshGroupLine->setText(myGroup->GetName());
 
+  myCurrentLineEdit = 0;
+  myTypeGroup->setButton(aType);
+  myElements->clear();
+  setSelectionMode(aType);
+  myTypeId = aType;
+  
+  myIdList.clear();
   if (!theGroup->IsEmpty()) {
     SMESH::long_array_var anElements = myGroup->GetListOfID();
     int k = anElements->length();
@@ -364,7 +443,12 @@ void SMESHGUI_GroupDlg::init(SMESH::SMESH_Group_ptr theGroup)
 //=================================================================================
 void SMESHGUI_GroupDlg::updateButtons()
 {
-  bool enable = !myName->text().stripWhiteSpace().isEmpty() && myElements->count() > 0;
+  bool enable; 
+  
+  if (myGrpTypeId == 0)
+    enable = !myName->text().stripWhiteSpace().isEmpty() && myElements->count() > 0;
+  else if (myGrpTypeId == 1)
+    enable = !myName->text().stripWhiteSpace().isEmpty() && !CORBA::is_nil( myGeomGroup );
   QPushButton* aBtn;
   aBtn = (QPushButton*) child("ok", "QPushButton");
   if (aBtn) aBtn->setEnabled(enable);
@@ -383,7 +467,7 @@ void SMESHGUI_GroupDlg::onNameChanged(const QString& text)
 
 //=================================================================================
 // function : onTypeChanged()
-// purpose  : Radio button management
+// purpose  : Group elements type radio button management
 //=================================================================================
 void SMESHGUI_GroupDlg::onTypeChanged(int id)
 {
@@ -395,6 +479,19 @@ void SMESHGUI_GroupDlg::onTypeChanged(int id)
   myTypeId = id;
 }
 
+//=================================================================================
+// function : onGrpTypeChanged()
+// purpose  : Group type radio button management
+//=================================================================================
+void SMESHGUI_GroupDlg::onGrpTypeChanged(int id)
+{
+  if (myGrpTypeId != id) {
+    myWGStack->raiseWidget( id );
+    onSelectGeomGroup(id == 1);
+  }
+  myGrpTypeId = id;
+}
+
 //=================================================================================
 // function : setSelectionMode()
 // purpose  : Radio button management
@@ -430,6 +527,8 @@ void SMESHGUI_GroupDlg::setSelectionMode(int theMode)
        mySelection->AddFilter(mySubMeshFilter);
       else if (theMode == 5)
        mySelection->AddFilter(myGroupFilter);
+      else if (theMode == 6)
+       mySelection->AddFilter(myMeshFilter);
     }
     mySelectionMode = theMode;
   }
@@ -443,7 +542,8 @@ bool SMESHGUI_GroupDlg::onApply()
 {
   if (mySMESHGUI->ActiveStudyLocked())
     return false;
-  if (!myName->text().stripWhiteSpace().isEmpty() && myElements->count() > 0) {
+  
+  if ( myGrpTypeId == 0 && !myName->text().stripWhiteSpace().isEmpty() && myElements->count() > 0) {
     mySelection->ClearIObjects();
     if (myGroup->_is_nil()) {
       SMESH::ElementType aType = SMESH::ALL;
@@ -463,17 +563,6 @@ bool SMESHGUI_GroupDlg::onApply()
 
       myGroup = SMESH::AddGroup(myMesh, aType, myName->text());
       myGroup->Add(anIdList.inout());
-
-      //Add reference to geometry group if it is neccessary
-      if (!CORBA::is_nil( myGeomGroup ))
-       {
-         SALOMEDS::Study_var aStudy = SMESH::GetActiveStudyDocument();
-         SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
-         SALOMEDS::SObject_var aGeomGroupSO = aStudy->FindObjectIOR( aStudy->ConvertObjectToIOR(myGeomGroup) );
-         SALOMEDS::SObject_var aMeshGroupSO = aStudy->FindObjectIOR( aStudy->ConvertObjectToIOR(myGroup) );
-         SALOMEDS::SObject_var aReference = aStudyBuilder->NewObject(aMeshGroupSO);
-         aStudyBuilder->Addreference(aReference, aGeomGroupSO);
-       }
       
       /* init for next operation */
       myName->setText("");
@@ -486,6 +575,7 @@ bool SMESHGUI_GroupDlg::onApply()
       QValueList<int> aAddList;
       QValueList<int>::iterator anIt;
       QListBoxItem* anItem;
+      
       for (anItem = myElements->firstItem(); anItem != 0; anItem = anItem->next()) {
        int anId = anItem->text().toInt();
        if ((anIt = myIdList.find(anId)) == myIdList.end())
@@ -520,6 +610,28 @@ bool SMESHGUI_GroupDlg::onApply()
     mySelection->ClearIObjects();
     return true;
   }
+  else if (myGrpTypeId == 1 && !myName->text().stripWhiteSpace().isEmpty() && !CORBA::is_nil( myGeomGroup ))
+    {
+      SMESH::ElementType aType = SMESH::ALL;
+      switch(myTypeId) {
+      case 0: aType = SMESH::NODE; break;
+      case 1: aType = SMESH::EDGE; break;
+      case 2: aType = SMESH::FACE; break;
+      case 3: aType = SMESH::VOLUME; break;
+      }
+      
+      SALOMEDS::Study_var aStudy = SMESH::GetActiveStudyDocument();
+      GEOM::GEOM_IGroupOperations_var aGroupOp = SMESH::GetGEOMGen()->GetIGroupOperations(aStudy->StudyId());
+      
+      SMESH::SMESH_GroupOnGeom_var aGroupOnGeom = myMesh->CreateGroupFromGEOM(aType, myName->text(),myGeomGroup);
+      
+      mySMESHGUI->GetActiveStudy()->updateObjBrowser(true);
+      mySelection->ClearIObjects();
+      /* init for next operation */
+      myName->setText("");
+      return true;
+    }
+  
   return false;
 }
 
@@ -576,19 +688,94 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
     myCurrentLineEdit->setText("") ;
     QString aString = "";
     
-    if (myCurrentLineEdit == myGeomGroupLine)
+    if (myCurrentLineEdit == myMeshGroupLine)
+      {
+       mySelectSubMesh->setEnabled(false);
+       mySelectGroup->setEnabled(false);
+       myGroupLine->setText("");
+       mySubMeshLine->setText("");
+       
+       myGeomGroupBtn->setEnabled(false);
+       myGeomGroupLine->setEnabled(false);
+       myGeomGroupLine->setText("");
+       if (!myCreate)
+         myName->setText("");
+       
+       myElements->clear();
+
+       if(aNbSel != 1)
+         {
+           myGroup = SMESH::SMESH_Group::_nil();
+           myMesh = SMESH::SMESH_Mesh::_nil();
+           busy = false;
+           return;
+         }
+       Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
+       
+       if (myCreate)
+         {
+           myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO);
+           if(myMesh->_is_nil())
+             return;
+           myGroup = SMESH::SMESH_Group::_nil();
+           
+           myActor = SMESH::FindActorByObject(myMesh);
+           SMESH::SetPickable(myActor);
+           
+           aString = mySelection->firstIObject()->getName();
+           myMeshGroupLine->setText(aString) ;
+           myMeshGroupLine->home( false );
+           
+           mySelectSubMesh->setEnabled(true);
+           mySelectGroup->setEnabled(true);
+           myGeomGroupBtn->setEnabled(true);
+           myGeomGroupLine->setEnabled(true);
+           updateButtons();
+         }
+       else
+         {
+           SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(IO);
+           if(aGroup->_is_nil())
+             return;
+           busy = false;
+           myCurrentLineEdit = 0;
+           init(aGroup);
+           busy = true;
+           mySelectSubMesh->setEnabled(true);
+           mySelectGroup->setEnabled(true);
+           myGeomGroupBtn->setEnabled(true);
+           myGeomGroupLine->setEnabled(true);
+         }
+       myCurrentLineEdit = 0;
+       busy = false;
+       if (!myCreate)
+         return;
+
+       if (myTypeId == -1)
+         onTypeChanged(0);
+       else
+         {
+           myElements->clear();
+           setSelectionMode(myTypeId);
+         }
+       
+       return;
+      }
+    else if (myCurrentLineEdit == myGeomGroupLine)
       {
+       
        if(aNbSel != 1)
          {
            myGeomGroup = GEOM::GEOM_Object::_nil();
            busy = false;
            return;
          }
+       
        Standard_Boolean testResult = Standard_False;
        myGeomGroup = GEOMBase::ConvertIOinGEOMObject(mySelection->firstIObject(), testResult );
        
        // Check if the object is a geometry group
-       if(!testResult || CORBA::is_nil( myGeomGroup ) || myGeomGroup->GetType() != 37)
+       if(!testResult || CORBA::is_nil( myGeomGroup ))
          {
            myGeomGroup = GEOM::GEOM_Object::_nil();
            busy = false;
@@ -598,14 +785,17 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
        SALOMEDS::Study_var aStudy = SMESH::GetActiveStudyDocument();
        GEOM::GEOM_IGroupOperations_var anOp = SMESH::GetGEOMGen()->GetIGroupOperations(aStudy->StudyId());
        // The main shape of the group 
-       GEOM::GEOM_Object_var aGroupMainShape = anOp->GetMainShape( myGeomGroup );
+       GEOM::GEOM_Object_var aGroupMainShape;
+       if( myGeomGroup->GetType() == 37 ) 
+         aGroupMainShape = anOp->GetMainShape( myGeomGroup );
+       else
+         aGroupMainShape = GEOM::GEOM_Object::_duplicate(myGeomGroup);
        SALOMEDS::SObject_var aGroupMainShapeSO = aStudy->FindObjectIOR( aStudy->ConvertObjectToIOR(aGroupMainShape) );
        // The mesh SObject
        SALOMEDS::SObject_var aMeshSO = aStudy->FindObjectIOR( aStudy->ConvertObjectToIOR(myMesh) );
        
        SALOMEDS::SObject_var anObj, aRef;
        bool isRefOrSubShape = false;
-       
        if ( aMeshSO->FindSubObject( 1, anObj ) &&  anObj->ReferencedObject( aRef )) {
          if ( strcmp( aRef->GetID(), aGroupMainShapeSO->GetID() ) == 0 )
            isRefOrSubShape = true;
@@ -621,13 +811,13 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
                    aFather = aFather->GetFather();
                }
            }
-         if ( !isRefOrSubShape ) 
-           {
-             myGeomGroup = GEOM::GEOM_Object::_nil();
-             busy = false;
-             return;
-           }
        }
+       if ( !isRefOrSubShape ) 
+         {
+           myGeomGroup = GEOM::GEOM_Object::_nil();
+           busy = false;
+           return;
+         }
       }
     
     if (aNbSel >= 1) {
@@ -644,6 +834,8 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
     
     myCurrentLineEdit->setText(aString) ;
     myCurrentLineEdit->home( false );
+    
+    updateButtons();
   }
   else {
     if (aNbSel == 1) {
@@ -687,9 +879,9 @@ void SMESHGUI_GroupDlg::onSelectSubMesh(bool on)
     if (mySelectGroup->isChecked()) {
       mySelectGroup->setChecked(false);
     } 
-    else if (mySelectGeomGroup->isChecked()) {
-      mySelectGeomGroup->setChecked(false);
-    }
+    //VSR: else if (mySelectGeomGroup->isChecked()) {
+    //VSR:   mySelectGeomGroup->setChecked(false);
+    //VSR: }
     myCurrentLineEdit = mySubMeshLine;
     setSelectionMode(4);
   }
@@ -714,9 +906,6 @@ void SMESHGUI_GroupDlg::onSelectGroup(bool on)
     if (mySelectSubMesh->isChecked()) {
       mySelectSubMesh->setChecked(false);
     }
-    else if (mySelectGeomGroup->isChecked()) {
-      mySelectGeomGroup->setChecked(false);
-    }
     myCurrentLineEdit = myGroupLine;
     setSelectionMode(5);
   }
@@ -745,7 +934,7 @@ void SMESHGUI_GroupDlg::onSelectGeomGroup(bool on)
       mySelectGroup->setChecked(false);
     }
     myCurrentLineEdit = myGeomGroupLine;
-    setSelectionMode(6);
+    setSelectionMode(7);
   }
   else {
     myGeomGroupLine->setText("");
@@ -753,8 +942,6 @@ void SMESHGUI_GroupDlg::onSelectGeomGroup(bool on)
     if (myTypeId != -1)
       setSelectionMode(myTypeId);
   }
-  myGeomGroupBtn->setEnabled(on);
-  myGeomGroupLine->setEnabled(on);
 }
 
 
@@ -766,7 +953,15 @@ void SMESHGUI_GroupDlg::setCurrentSelection()
 {
   QPushButton* send = (QPushButton*)sender();
   myCurrentLineEdit = 0;
-  if (send == mySubMeshBtn) {
+  if (send == myMeshGroupBtn) {
+    myCurrentLineEdit = myMeshGroupLine;
+    if (myCreate)
+      setSelectionMode(6);
+    else
+      setSelectionMode(5);
+    onObjectSelectionChanged();
+  }
+  else if (send == mySubMeshBtn) {
     myCurrentLineEdit = mySubMeshLine;
     onObjectSelectionChanged();
   }
@@ -776,6 +971,7 @@ void SMESHGUI_GroupDlg::setCurrentSelection()
   }
   else if (send == myGeomGroupBtn) {
     myCurrentLineEdit = myGeomGroupLine;
+    setSelectionMode(7);
     onObjectSelectionChanged();
   }
 }
@@ -834,7 +1030,7 @@ void SMESHGUI_GroupDlg::onFilterAccepted()
 void SMESHGUI_GroupDlg::onAdd()
 {
   int aNbSel = mySelection->IObjectCount();
-  if (aNbSel == 0 || !myActor) return;
+  if (aNbSel == 0 || !myActor || myMesh->_is_nil()) return;
 
   busy = true;
 
@@ -966,7 +1162,7 @@ void SMESHGUI_GroupDlg::onAdd()
       }
     }
     
-    mySelectGeomGroup->setChecked(false);
+    //VSR: mySelectGeomGroup->setChecked(false);
     busy = false;
     onListSelectionChanged();
   }
index 67d64afcaf8f720af442cf19eeb85e0c1c48899e..9c19f9563396b340047379c0bf26fd8649daae31 100644 (file)
@@ -46,6 +46,7 @@ class QGroupBox;
 class QListBox;
 class QPushButton;
 class QCheckBox;
+class QWidgetStack;
 class SMESHGUI;
 class SMESH_Actor;
 class SMESHGUI_FilterDlg;
@@ -75,6 +76,7 @@ public slots:
 private slots:
 
     void onTypeChanged(int id);
+    void onGrpTypeChanged(int id);
 
     void onOK();
     void onClose();
@@ -108,13 +110,22 @@ private:
     SMESHGUI*                     mySMESHGUI ;              /* Current SMESHGUI object */
     SALOME_Selection*             mySelection ;             /* User shape selection */
     SMESH_Actor*                  myActor;                  /* Current mesh actor */
+    int                           myGrpTypeId ;             /* Current group type id : standalone or group on geometry */
     int                           myTypeId ;                /* Current type id = radio button id */
     QLineEdit*                    myCurrentLineEdit;        /* Current  LineEdit */
 
+    QPushButton*                  myMeshGroupBtn;
+    QLineEdit*                    myMeshGroupLine;
+    
     QButtonGroup*                 myTypeGroup;
     QLineEdit*                    myName;
+
+    QButtonGroup*                 myGrpTypeGroup;
+
+    QWidgetStack*                 myWGStack;
     QListBox*                     myElements;
     QPushButton*                  myFilter;
+
     QCheckBox*                    mySelectSubMesh;
     QPushButton*                  mySubMeshBtn;
     QLineEdit*                    mySubMeshLine;
@@ -133,10 +144,13 @@ private:
     GEOM::GEOM_Object_var         myGeomGroup;
 
     int                           mySelectionMode;
+    Handle(SMESH_TypeFilter)      myMeshFilter;
     Handle(SMESH_TypeFilter)      mySubMeshFilter;
     Handle(SMESH_TypeFilter)      myGroupFilter;
 
     SMESHGUI_FilterDlg*           myFilterDlg;
+
+    bool                          myCreate;
 };
 
 #endif // DIALOGBOX_GROUP_H
index 3bbaf3b75ce1cd174c55bcd7cdb92728e1e6fc14..c5b07386e3c3d06d885ed1ecbfe35e91355c6dfe 100644 (file)
@@ -163,8 +163,8 @@ void SMESHGUI_GroupOpDlg::Init( SALOME_Selection* theSelection )
   aSMESHGUI->SetActiveDialogBox( ( QDialog* )this ) ;
   myFocusWg = myEdit1;
   
-  myGroup1 = SMESH::SMESH_Group::_nil();
-  myGroup2 = SMESH::SMESH_Group::_nil();
+  myGroup1 = SMESH::SMESH_GroupBase::_nil();
+  myGroup2 = SMESH::SMESH_GroupBase::_nil();
   
   // selection and SMESHGUI
   connect( mySelection, SIGNAL( currentSelectionChanged() ), SLOT( onSelectionDone() ) );
@@ -296,16 +296,16 @@ void SMESHGUI_GroupOpDlg::onClose()
 void SMESHGUI_GroupOpDlg::onSelectionDone()
 {
   if ( myFocusWg == myEdit1 )
-    myGroup1 = SMESH::SMESH_Group::_nil();
+    myGroup1 = SMESH::SMESH_GroupBase::_nil();
   else
-    myGroup2 = SMESH::SMESH_Group::_nil();
+    myGroup2 = SMESH::SMESH_GroupBase::_nil();
   
   myFocusWg->setText( "" );
   
   if ( mySelection->IObjectCount() == 1 )
   {
-    SMESH::SMESH_Group_var aGroup = 
-      SMESH::IObjectToInterface<SMESH::SMESH_Group>( mySelection->firstIObject() );
+    SMESH::SMESH_GroupBase_var aGroup = 
+      SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>( mySelection->firstIObject() );
     
     if ( !aGroup->_is_nil() )
     {
index 793afe72b513bfa0240b0d5735e18e9e9e3d4bfe..a82136f148a08cb413b46adb645bbea9ece0adc2 100644 (file)
@@ -96,8 +96,8 @@ private:
   
   QLineEdit*                myFocusWg;
   
-  SMESH::SMESH_Group_var    myGroup1;
-  SMESH::SMESH_Group_var    myGroup2;
+  SMESH::SMESH_GroupBase_var    myGroup1;
+  SMESH::SMESH_GroupBase_var    myGroup2;
   
 };
 
index 687082009309b0cb23288de5ea33bd7f41d7884c..68a7375033b8b6bbe0aa7daad00a085aeb47c184 100644 (file)
@@ -33,6 +33,8 @@
 #include "SMESHGUI_SMESHGenUtils.h"
 #include "SMESHGUI_HypothesesUtils.h"
 
+#include "GEOMBase.h"
+
 #include "QAD_Application.h"
 #include "QAD_Desktop.h"
 #include "QAD_MessageBox.h"
@@ -214,7 +216,7 @@ void SMESHGUI_InitMeshDlg::Init( SALOME_Selection* Sel )
   this->move( x, y ) ;
   this->show() ; 
 
-  LineEdit_NameMesh->setText( tr( "SMESH_OBJECT_MESH" ) );
+  LineEdit_NameMesh->setText( GetDefaultMeshName() );
   LineEdit_NameMesh->setFocus() ;
   myEditCurrentArgument = LineEditC1A1 ;       
   mySelection->ClearFilters() ;   
@@ -302,6 +304,7 @@ bool SMESHGUI_InitMeshDlg::ClickOnApply()
   }
   // commit transaction
   op->finish();
+  LineEdit_NameMesh->setText( GetDefaultMeshName() );
   return true;
 }
 
@@ -324,20 +327,24 @@ void SMESHGUI_InitMeshDlg::SelectionIntoArgument()
 {
   QString aString = ""; 
 
-  int nbSel = SMESH::GetNameOfSelectedIObjects(mySelection, aString) ;
+  int nbSel = SMESH::GetNameOfSelectedIObjects( mySelection, aString );
 
-  if ( myEditCurrentArgument == LineEditC1A1 ) {
+  if ( myEditCurrentArgument == LineEditC1A1 )
+  {
     // geom shape
-    if ( nbSel != 1 ) {
+    if ( nbSel != 1 )
+    {
       myGeomShape = GEOM::GEOM_Object::_nil();
       aString = "";
     } 
-    else {
-      Standard_Boolean testResult ;
+    else
+    {
       Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject() ;
-      myGeomShape = SMESH::IObjectToInterface<GEOM::GEOM_Object>(IO) ;
-      if( myGeomShape->_is_nil() )  {
-       aString = "";
+      myGeomShape = SMESH::IObjectToInterface<GEOM::GEOM_Object>( IO ) ;
+      if ( myGeomShape->_is_nil() || !GEOMBase::IsShape( myGeomShape ) )
+      {
+        myGeomShape = GEOM::GEOM_Object::_nil();
+        aString = "";
       }
     }
   }
@@ -466,7 +473,26 @@ void SMESHGUI_InitMeshDlg::UpdateControlState()
   buttonApply->setEnabled( isEnabled );
 }
 
+//=================================================================================
+// function : GetDefaultMeshName()
+// purpose  : Generates default mesh name(Mesh_1, Mesh_2, etc.)
+//=================================================================================
+QString SMESHGUI_InitMeshDlg::GetDefaultMeshName()
+{
+  SALOMEDS::Study_var aStudy = QAD_Application::getDesktop()->getActiveStudy()->getStudyDocument();
+  int aNumber = 0;
+  QString aMeshName;
+  SALOMEDS::SObject_var obj;
+  
+  do 
+    {
+      aMeshName = QString(tr("SMESH_OBJECT_MESH")) +"_"+QString::number(++aNumber);
+      obj = aStudy->FindObject(aMeshName);
+    } 
+  while (!obj->_is_nil());
 
+  return aMeshName;
+}
 
 
 
index 7f812cb1df0084cce96a112038915b30993e0b14..afdcc8584b7a7e051e7bb6a32a0f9864b622c569 100644 (file)
@@ -68,6 +68,7 @@ private:
     void Init( SALOME_Selection* Sel ) ;
 
     void UpdateControlState();
+    QString SMESHGUI_InitMeshDlg::GetDefaultMeshName();
 
 private:
     SMESHGUI*                     mySMESHGUI ;
index fa5c09ef282037a6b239d0d539641bb7ac643807..40837ecded3050a5bd6bf5312076bb553cc47d11 100644 (file)
@@ -408,7 +408,7 @@ void SMESHGUI_MeshInfosDlg::DumpMeshInfos()
          mySubMeshNbVolumes->setNum( (int)( aSubMesh->GetElementsByType( SMESH::VOLUME )->length() ) );
          return;
        }
-       SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow( anObject );
+       SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( anObject );
        if ( !aGroup->_is_nil() ) {
          myWGStack->raiseWidget( myGroupWidget );
          setCaption( tr( "SMESH_MESHINFO_TITLE" ) + " [" + tr("SMESH_GROUP") +"]" );
index c655194b6910645fabdcb1d6dc4ac522c6cc0781..9c8d313c63d8cac9693af24dd7f85957b37ccec0 100644 (file)
@@ -34,7 +34,7 @@ namespace SMESH
       SMESH_Mesh_var aMesh = SMESH_Mesh::_narrow(anObj);
       if(!CORBA::is_nil(aMesh))
        return aMesh;
-      SMESH_Group_var aGroup = SMESH_Group::_narrow(anObj);
+      SMESH_GroupBase_var aGroup = SMESH_GroupBase::_narrow(anObj);
       if(!CORBA::is_nil(aGroup))
        return aGroup->GetMesh();
       SMESH_subMesh_var aSubMesh = SMESH_subMesh::_narrow(anObj);
index d8a115dc7861e6a049bbdddd4fe99a6e6766b494..da81e169eb4aaa991f9e06ca7800e34e5f6cb7a1 100755 (executable)
@@ -363,8 +363,8 @@ void SMESHGUI_MultiEditDlg::onSelectionDone()
       }
       else
       {
-        SMESH::SMESH_Group_var aGroup =
-          SMESH::IObjectToInterface<SMESH::SMESH_Group>( anIO );
+        SMESH::SMESH_GroupBase_var aGroup =
+          SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>( anIO );
         if ( !aGroup->_is_nil() )
           myMesh = aGroup->GetMesh();
       }
@@ -398,7 +398,8 @@ void SMESHGUI_MultiEditDlg::onSelectionDone()
 
   if ( nbSel == 1 ) {
     myActor = SMESH::FindActorByEntry(mySelection->firstIObject()->getEntry());
-    //myActor = SMESH::FindActorByObject( myMesh );
+    if (!myActor)
+      myActor = SMESH::FindActorByObject( myMesh );
     VTKViewer_InteractorStyleSALOME* aStyle = SMESH::GetInteractorStyle();
     Handle(VTKViewer_Filter) aFilter1 = aStyle->GetFilter( myFilterType );
     Handle(VTKViewer_Filter) aFilter2 = aStyle->GetFilter( SMESHGUI_FaceFilter );
@@ -561,7 +562,8 @@ void SMESHGUI_MultiEditDlg::onAddBtn()
     SALOME_ListIteratorOfListIO anIter( mySelection->StoredIObjects() );
     for ( ; anIter.More(); anIter.Next() )
     {
-      SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>( anIter.Value() );
+      SMESH::SMESH_GroupBase_var aGroup =
+        SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>( anIter.Value() );
       if ( !aGroup->_is_nil() && aGroup->GetType() == SMESH::FACE )
       {
         if ( aGroup->GetMesh()->GetId() == myMesh->GetId() )
@@ -617,7 +619,7 @@ void SMESHGUI_MultiEditDlg::updateButtons()
        myMesh->_is_nil() ||
        mySelection->IObjectCount() != 1 ||
        (SMESH::IObjectToInterface<SMESH::SMESH_subMesh>( mySelection->firstIObject() )->_is_nil() &&
-       SMESH::IObjectToInterface<SMESH::SMESH_Group>( mySelection->firstIObject() )->_is_nil() &&
+       SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>( mySelection->firstIObject() )->_is_nil() &&
        SMESH::IObjectToInterface<SMESH::SMESH_Mesh>( mySelection->firstIObject() )->_is_nil()) )
     myAddBtn->setEnabled( false );
   else
index ec665bcf753250a6357ec5c3722c5e7bb250c2e0..9b7be8bb4c9dae35b1c7d396078ab9209c5cbfa2 100644 (file)
 #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 "SMDS_Mesh.hxx"
 
 #include "QAD_Application.h"
@@ -48,6 +50,7 @@
 #include <qlineedit.h>
 #include <qpushbutton.h>
 #include <qradiobutton.h>
+#include <qcheckbox.h>
 #include <qlayout.h>
 #include <qspinbox.h> 
 #include <qvalidator.h>
@@ -140,6 +143,7 @@ SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( QWidget* parent, const char* nam
   // Controls for elements selection
   TextLabelElements  = new QLabel( GroupArguments, "TextLabelElements" );
   TextLabelElements->setText( tr( "SMESH_ID_ELEMENTS"  ) );
+  TextLabelElements->setFixedWidth(74);
   GroupArgumentsLayout->addWidget( TextLabelElements, 0, 0 );
 
   SelectElementsButton  = new QPushButton( GroupArguments, "SelectElementsButton" );
@@ -152,6 +156,11 @@ SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( QWidget* parent, const char* nam
   LineEditElements->setValidator( new SMESHGUI_IdValidator( this, "validator" ));
   GroupArgumentsLayout->addWidget( LineEditElements, 0, 2 );
 
+  // Control for the whole mesh selection
+  CheckBoxMesh = new QCheckBox( GroupArguments, "CheckBoxMesh" );
+  CheckBoxMesh->setText( tr( "SMESH_SELECT_WHOLE_MESH"  ) );
+  GroupArgumentsLayout->addMultiCellWidget( CheckBoxMesh, 1, 1, 0, 3 );
+
   // Controls for axis defining
   GroupAxis = new QGroupBox( GroupArguments, "GroupAxis" );
   GroupAxis->setTitle( tr( "SMESH_AXIS" ) );
@@ -221,31 +230,31 @@ SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( QWidget* parent, const char* nam
   SpinBox_DZ = new SMESHGUI_SpinBox( GroupAxis, "SpinBox_DZ");
   GroupAxisLayout->addWidget( SpinBox_DZ, 1, 7 );
 
-  GroupArgumentsLayout->addMultiCellWidget( GroupAxis, 1, 1, 0, 3 );
+  GroupArgumentsLayout->addMultiCellWidget( GroupAxis, 2, 2, 0, 3 );
     
   // Controls for angle defining
   TextLabelAngle = new QLabel( GroupArguments, "TextLabelAngle" );
   TextLabelAngle->setText( tr( "SMESH_ANGLE"  ) );
-  GroupArgumentsLayout->addMultiCellWidget( TextLabelAngle, 2, 2, 0, 1 );
+  GroupArgumentsLayout->addMultiCellWidget( TextLabelAngle, 3, 3, 0, 1 );
 
   SpinBox_Angle = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Angle");
-  GroupArgumentsLayout->addWidget( SpinBox_Angle, 2, 2 );
+  GroupArgumentsLayout->addWidget( SpinBox_Angle, 3, 2 );
   
   // Controls for nb. steps defining
   TextLabelNbSteps = new QLabel( GroupArguments, "TextLabelNbSteps" );
   TextLabelNbSteps->setText( tr( "SMESH_NUMBEROFSTEPS"  ) );
-  GroupArgumentsLayout->addMultiCellWidget( TextLabelNbSteps, 3, 3, 0, 1 );
+  GroupArgumentsLayout->addMultiCellWidget( TextLabelNbSteps, 4, 4, 0, 1 );
 
   SpinBox_NbSteps = new QSpinBox(GroupArguments, "SpinBox_NbSteps");
-  GroupArgumentsLayout->addWidget( SpinBox_NbSteps, 3, 2 );
+  GroupArgumentsLayout->addWidget( SpinBox_NbSteps, 4, 2 );
   
   // Controls for tolerance defining
   TextLabelTolerance = new QLabel( GroupArguments, "TextLabelTolerance" );
   TextLabelTolerance->setText( tr( "SMESH_TOLERANCE" ) );
-  GroupArgumentsLayout->addMultiCellWidget( TextLabelTolerance, 4, 4, 0, 1 );
+  GroupArgumentsLayout->addMultiCellWidget( TextLabelTolerance, 5, 5, 0, 1 );
 
   SpinBox_Tolerance = new SMESHGUI_SpinBox(GroupArguments, "SpinBox_Tolerance");
-  GroupArgumentsLayout->addWidget( SpinBox_Tolerance, 4, 2 );
+  GroupArgumentsLayout->addWidget( SpinBox_Tolerance, 5, 2 );
 
   SMESHGUI_RevolutionDlgLayout->addWidget( GroupArguments, 1, 0 );
   
@@ -271,7 +280,18 @@ SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( QWidget* parent, const char* nam
 
   mySMESHGUI  = SMESHGUI::GetSMESHGUI() ;
   mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
-    
+  
+  // Costruction of the logical filter
+  SMESH_ListOfFilter aListOfFilters;
+  Handle(SMESH_TypeFilter) aMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+  if ( !aMeshOrSubMeshFilter.IsNull() )
+    aListOfFilters.Append( aMeshOrSubMeshFilter );
+  Handle(SMESH_TypeFilter) aSmeshGroupFilter = new SMESH_TypeFilter( GROUP );
+  if ( !aSmeshGroupFilter.IsNull() )
+    aListOfFilters.Append( aSmeshGroupFilter );
+  
+  myMeshOrSubMeshOrGroupFilter = new SMESH_LogicalFilter( aListOfFilters, SMESH_LogicalFilter::LO_OR );
+  
   Init();
   /* signals and slots connections */
   connect( buttonOk, SIGNAL( clicked() ),     this, SLOT( ClickOnOk() ) );
@@ -293,6 +313,8 @@ SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( QWidget* parent, 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 )));
   
   /* Move widget on the botton right corner of main widget */
   int x, y ;
@@ -317,28 +339,34 @@ SMESHGUI_RevolutionDlg::~SMESHGUI_RevolutionDlg()
 // function : Init()
 // purpose  :
 //=================================================================================
-void SMESHGUI_RevolutionDlg::Init()
+void SMESHGUI_RevolutionDlg::Init( bool ResetControls )
 {
-  myBusy = false;    
-
-  SpinBox_X->SetValue(0.0);
-  SpinBox_Y->SetValue(0.0);
-  SpinBox_Z->SetValue(0.0);
-  SpinBox_DX->SetValue(0.0);
-  SpinBox_DY->SetValue(0.0);
-  SpinBox_DZ->SetValue(0.0);
-
-  SpinBox_Angle->SetValue(45);
-  SpinBox_NbSteps->setValue(1);
-  SpinBox_Tolerance->SetValue(1e-05);
+  myBusy = false;
   
-  myEditCurrentArgument = (QWidget*)LineEditElements;
-  LineEditElements->setFocus();
+  myEditCurrentArgument = 0;
+  LineEditElements->clear();
+  myElementsId = "";
   myNbOkElements = 0 ;
+  
   myActor     = 0;
   myMesh = SMESH::SMESH_Mesh::_nil();
-    
-  SelectionIntoArgument();
+  
+  if( ResetControls )
+    {
+      SpinBox_X->SetValue(0.0);
+      SpinBox_Y->SetValue(0.0);
+      SpinBox_Z->SetValue(0.0);
+      SpinBox_DX->SetValue(0.0);
+      SpinBox_DY->SetValue(0.0);
+      SpinBox_DZ->SetValue(0.0);
+      
+      SpinBox_Angle->SetValue(45);
+      SpinBox_NbSteps->setValue(1);
+      SpinBox_Tolerance->SetValue(1e-05);
+      
+      CheckBoxMesh->setChecked(false);
+      onSelectMesh( false );
+    }
 }
 
 
@@ -349,28 +377,37 @@ void SMESHGUI_RevolutionDlg::Init()
 void SMESHGUI_RevolutionDlg::ConstructorsClicked(int constructorId)
 {
   disconnect(mySelection, 0, this, 0);
-  mySelection->ClearIObjects();
-  mySelection->ClearFilters();
-  myNbOkElements = 0 ;
-  myEditCurrentArgument = (QWidget*)LineEditElements;
-  LineEditElements->setText("");
-  LineEditElements->setFocus();
   
+  Selection_Mode aSelMode = ActorSelection;
+
   switch(constructorId)
     { 
     case 0 :
       {
        GroupArguments->setTitle( tr( "REVOLUTION_1D" ) );
-       QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
+       aSelMode = EdgeSelection;
        break;
       }
     case 1 :
       { 
        GroupArguments->setTitle( tr( "REVOLUTION_2D" ) );
-       QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+       aSelMode = FaceSelection;
        break;
       }
     }
+  
+  if (myEditCurrentArgument != (QWidget*)LineEditElements)
+    SMESH::SetPointRepresentation(false);
+    
+  if (!CheckBoxMesh->isChecked())
+    QAD_Application::getDesktop()->SetSelectionMode( aSelMode, true );
+  
+  myEditCurrentArgument = (QWidget*)LineEditElements;
+  LineEditElements->setFocus();
+  
+  if (CheckBoxMesh->isChecked())
+    onSelectMesh(true);
+  
   connect(mySelection, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
 }
 
@@ -386,7 +423,7 @@ void SMESHGUI_RevolutionDlg::ClickOnApply()
   
   if ( myNbOkElements  && IsAxisOk())
     {
-      QStringList aListElementsId = QStringList::split( " ", LineEditElements->text(), false);
+      QStringList aListElementsId = QStringList::split( " ", myElementsId, false);
       
       SMESH::long_array_var anElementsId = new SMESH::long_array;
       
@@ -420,7 +457,8 @@ void SMESHGUI_RevolutionDlg::ClickOnApply()
       
       mySelection->ClearIObjects();
       SMESH::UpdateView();
-      Init();
+      Init( false);
+      ConstructorsClicked( GetConstructorId() );
     }
 }
 
@@ -430,8 +468,8 @@ void SMESHGUI_RevolutionDlg::ClickOnApply()
 //=================================================================================
 void SMESHGUI_RevolutionDlg::ClickOnOk()
 {
-  this->ClickOnApply() ;
-  this->ClickOnCancel() ;
+  ClickOnApply() ;
+  ClickOnCancel() ;
 }
 
        
@@ -474,7 +512,6 @@ void SMESHGUI_RevolutionDlg::onTextChange(const QString& theNewText)
     aMesh = myActor->GetObject()->GetMesh();
   
   if ( aMesh ) {
-    
     mySelection->ClearIObjects();
     mySelection->AddIObject( myActor->getIO() );
     
@@ -489,6 +526,7 @@ void SMESHGUI_RevolutionDlg::onTextChange(const QString& theNewText)
          myNbOkElements++;
        }
       }
+      myElementsId = theNewText;
     }
   }
   
@@ -509,13 +547,17 @@ void SMESHGUI_RevolutionDlg::SelectionIntoArgument()
   if ( myBusy ) return;
   
   // clear
-  
   myActor = 0;
   QString aString = "";
 
   myBusy = true;
   if (myEditCurrentArgument == (QWidget*)LineEditElements)
-    LineEditElements->setText( aString );
+    {
+      LineEditElements->setText( aString );
+      myNbOkElements = 0;
+      buttonOk->setEnabled( false );
+      buttonApply->setEnabled( false );
+    }
   myBusy = false;
   
   if ( !GroupButtons->isEnabled() ) // inactive
@@ -527,24 +569,104 @@ void SMESHGUI_RevolutionDlg::SelectionIntoArgument()
     return;
   
   Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
-  myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO) ;
-  myActor = SMESH::FindActorByEntry( mySelection->firstIObject()->getEntry() );
-  
-  if (myMesh->_is_nil() || !myActor)
+  myMesh = SMESH::GetMeshByIO(IO);
+  if(myMesh->_is_nil())
+    return;
+  myActor = SMESH::FindActorByObject(myMesh);
+  if (!myActor)
     return;
   
   int aNbUnits = 0;
 
   if (myEditCurrentArgument == (QWidget*)LineEditElements)
     {
-      buttonOk->setEnabled( false );
-      buttonApply->setEnabled( false );
-
-      // get selected elements
-      aNbUnits = SMESH::GetNameOfSelectedElements(mySelection, aString);
-      if(aNbUnits < 1) 
+      myElementsId = "";
+      
+      if (CheckBoxMesh->isChecked())
+       {
+         SMESH::GetNameOfSelectedIObjects(mySelection, aString);
+       
+         int aConstructorId = GetConstructorId();
+
+         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());
+                       aNbUnits++;
+                     }
+                   }
+               }
+             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());
+                       aNbUnits++;
+                     }
+                   }
+               }
+           }
+         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]);
+             aNbUnits = 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]);
+             aNbUnits = anElementsIds->length();
+           }
+       }
+      else
+       {
+         aNbUnits = SMESH::GetNameOfSelectedElements(mySelection, aString) ;
+         myElementsId = aString;
+       }
+      
+      if(aNbUnits < 1)
        return ;
-      LineEditElements->setText( aString );
+      
+      myNbOkElements = true;
     }
   else 
     {
@@ -578,10 +700,12 @@ void SMESHGUI_RevolutionDlg::SelectionIntoArgument()
        }
     }
   
-  // OK
+  myBusy = true;
   if (myEditCurrentArgument == (QWidget*)LineEditElements)
-    myNbOkElements = true;
+    LineEditElements->setText( aString );
+  myBusy = false;
   
+  // OK
   if(myNbOkElements && IsAxisOk())
     {
       buttonOk->setEnabled( true );
@@ -597,6 +721,7 @@ void SMESHGUI_RevolutionDlg::SelectionIntoArgument()
 void SMESHGUI_RevolutionDlg::SetEditCurrentArgument()
 {
   QPushButton* send = (QPushButton*)sender();
+  
   disconnect( mySelection, 0, this, 0 );
   mySelection->ClearIObjects();
   mySelection->ClearFilters();
@@ -604,11 +729,19 @@ void SMESHGUI_RevolutionDlg::SetEditCurrentArgument()
   if(send == SelectElementsButton) {
     myEditCurrentArgument = (QWidget*)LineEditElements;
     SMESH::SetPointRepresentation(false);
-    int aConstructorId = GetConstructorId();
-    if (aConstructorId == 0)
-      QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
-    else if (aConstructorId == 1)
-      QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+    if (CheckBoxMesh->isChecked())
+      {
+       QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
+       mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
+      }
+    else
+      {
+       int aConstructorId = GetConstructorId();
+       if (aConstructorId == 0)
+         QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
+       else if (aConstructorId == 1)
+         QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+      }
   }
   else if (send == SelectPointButton)
     {
@@ -641,7 +774,6 @@ void SMESHGUI_RevolutionDlg::DeactivateActiveDialog()
     mySMESHGUI->ResetState() ;    
     mySMESHGUI->SetActiveDialogBox(0) ;
   }
-  return ;
 }
 
 
@@ -673,7 +805,6 @@ void SMESHGUI_RevolutionDlg::enterEvent(QEvent* e)
   if ( GroupConstructors->isEnabled() )
     return ;  
   ActivateThisDialog() ;
-  return ;
 }
 
 
@@ -743,3 +874,44 @@ void SMESHGUI_RevolutionDlg::onVectorChanged()
     }
 }
 
+
+//=======================================================================
+//function : onSelectMesh
+//purpose  :
+//=======================================================================
+void SMESHGUI_RevolutionDlg::onSelectMesh ( bool toSelectMesh )
+{
+  if (toSelectMesh)
+    TextLabelElements->setText( tr( "SMESH_NAME" ) );
+  else
+    TextLabelElements->setText( tr( "SMESH_ID_ELEMENTS" ) );
+  
+  if (myEditCurrentArgument != LineEditElements)
+    {
+      LineEditElements->clear();
+      return;
+    }
+  
+  mySelection->ClearFilters() ;
+  SMESH::SetPointRepresentation(false);
+  
+  if (toSelectMesh)
+    {
+      QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
+      mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
+      LineEditElements->setReadOnly(true);
+    }
+  else
+    {
+      int aConstructorId = GetConstructorId();
+      if (aConstructorId == 0)
+       QAD_Application::getDesktop()->SetSelectionMode( EdgeSelection, true );
+      else if (aConstructorId == 0)
+       QAD_Application::getDesktop()->SetSelectionMode( FaceSelection, true );
+      
+      LineEditElements->setReadOnly(false);
+      onTextChange(LineEditElements->text());
+    }
+  
+  SelectionIntoArgument();
+}
index 1771d83c9d657c153b849701815b514ed0b38f42..6b55513e33ced31f2ed52f8d5e98292953cd058c 100644 (file)
@@ -30,7 +30,7 @@
 #define DIALOGBOX_REVOLUTION_H
 
 #include "SALOME_Selection.h"
-#include "SMESH_TypeFilter.hxx"
+#include "SMESH_LogicalFilter.hxx"
 // QT Includes
 #include <qdialog.h>
 
@@ -41,6 +41,7 @@ class QLabel;
 class QLineEdit;
 class QPushButton;
 class QRadioButton;
+class QCheckBox;
 class QSpinBox;
 class SMESHGUI_SpinBox;
 class SMESHGUI;
@@ -66,7 +67,7 @@ public:
 
 private:
 
-    void Init() ;
+    void Init( bool ResetControls = true ) ;
     void closeEvent( QCloseEvent* e ) ;
     void enterEvent ( QEvent * ) ;                          /* mouse enter the QWidget */
     void hideEvent ( QHideEvent * );                        /* ESC key */
@@ -76,12 +77,14 @@ private:
     SMESHGUI*                     mySMESHGUI ;              /* Current SMESHGUI object */
     SALOME_Selection*             mySelection ;             /* User shape selection */
     int                           myNbOkElements ;          /* to check when elements are defined */
+    QString                       myElementsId;
     QWidget*                      myEditCurrentArgument;    /* Current  argument */
 
     bool                          myBusy;
     SMESH::SMESH_Mesh_var         myMesh;
     SMESH_Actor*                  myActor;
-    
+    Handle(SMESH_LogicalFilter)   myMeshOrSubMeshOrGroupFilter;
+
     QButtonGroup* GroupConstructors;
     QRadioButton* RadioButton1;
     QRadioButton* RadioButton2;
@@ -94,7 +97,8 @@ private:
     QLabel* TextLabelElements;
     QPushButton* SelectElementsButton;
     QLineEdit* LineEditElements;
-
+    QCheckBox* CheckBoxMesh;
+    
     QLabel* TextLabelPoint;
     QPushButton* SelectPointButton;
     QLabel* TextLabelX;
@@ -131,7 +135,8 @@ private:
     void ActivateThisDialog() ;
     void onTextChange(const QString&);
     void onVectorChanged();
-    
+    void onSelectMesh(bool toSelectMesh);
+
 protected:
     QGridLayout* SMESHGUI_RevolutionDlgLayout;
     QGridLayout* GroupConstructorsLayout;
index 0ab6b4061ca8e2ff12691e51b794b33d44f8103d..e8ae9052eb3d614d40caf812d6439b09990b33e7 100644 (file)
 #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 "SMDS_Mesh.hxx"
 
 #include "QAD_Application.h"
@@ -264,7 +266,16 @@ SMESHGUI_RotationDlg::SMESHGUI_RotationDlg( QWidget* parent, const char* name, S
   mySMESHGUI  = SMESHGUI::GetSMESHGUI() ;
   mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
 
-  myMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+  // Costruction of the logical filter
+  SMESH_ListOfFilter aListOfFilters;
+  Handle(SMESH_TypeFilter) aMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+  if ( !aMeshOrSubMeshFilter.IsNull() )
+    aListOfFilters.Append( aMeshOrSubMeshFilter );
+  Handle(SMESH_TypeFilter) aSmeshGroupFilter = new SMESH_TypeFilter( GROUP );
+  if ( !aSmeshGroupFilter.IsNull() )
+    aListOfFilters.Append( aSmeshGroupFilter );
+  
+  myMeshOrSubMeshOrGroupFilter = new SMESH_LogicalFilter( aListOfFilters, SMESH_LogicalFilter::LO_OR );
   
   Init();
   /* signals and slots connections */
@@ -515,8 +526,12 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
     return;
   
   Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
-  myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO) ;
-  myActor = SMESH::FindActorByEntry( mySelection->firstIObject()->getEntry() );
+  myMesh = SMESH::GetMeshByIO( mySelection->firstIObject() );
+  if(myMesh->_is_nil())
+    return;
+  myActor = SMESH::FindActorByObject(myMesh);
+  if (!myActor)
+    return;
   
   int aNbUnits = 0;
   
@@ -524,19 +539,17 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
     {
       myElementsId = "";
       
-      // get selected elements
       if (CheckBoxMesh->isChecked())
        {
          SMESH::GetNameOfSelectedIObjects(mySelection, aString);
-         if(!myMesh->_is_nil())
+         
+         if(!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) //MESH
            {
-             if (!myActor)
-               return;
-
              // get IDs from mesh
              SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
              if (!aSMDSMesh)
                return;
+             
              for (int i = aSMDSMesh->MinElementID(); i <= aSMDSMesh->MaxElementID(); i++  )
                {
                  const SMDS_MeshElement * e = aSMDSMesh->FindElement( i );
@@ -546,54 +559,36 @@ void SMESHGUI_RotationDlg::SelectionIntoArgument()
                  }
                }
            }
-         else
+         else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) //SUBMESH
            {
-             // get IDs from submesh
+             // get submesh
              SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
-             if(aSubMesh->_is_nil())
-               return;
-             
-             myMesh = aSubMesh->GetFather();
-             if(myMesh->_is_nil())
-               return;
-             
-             myActor = SMESH::FindActorByObject(myMesh);
-             if (!myActor)
-               return;
              
+             // get IDs from submesh
              SMESH::long_array_var anElementsIds = new SMESH::long_array;
              anElementsIds = aSubMesh->GetElementsId();
              for ( int i = 0; i < anElementsIds->length(); i++ )
                myElementsId += QString(" %1").arg(anElementsIds[i]);
              aNbUnits = anElementsIds->length();
-           }
-       }
-      else
-       {
-         if(myMesh->_is_nil())
+           }
+         else // GROUP
            {
-             // get submesh
-             SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
-             if(!aSubMesh->_is_nil())
-               myMesh = aSubMesh->GetFather();  // get mesh from submesh
-             else
-               {
-                 // get group
-                 SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(IO);
-                 if ( !aGroup->_is_nil() )
-                   myMesh = aGroup->GetMesh(); // get mesh from group
-               }
-             
-             if(myMesh->_is_nil())
+             // get smesh group
+             SMESH::SMESH_GroupBase_var aGroup =
+                SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
+             if (aGroup->_is_nil())
                return;
              
-             // get mesh actor
-             myActor = SMESH::FindActorByObject(myMesh);
+             // 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]);
+             aNbUnits = anElementsIds->length();
            }
-         
-         if (!myActor)
-           return;
-
+       }
+      else
+       {
          aNbUnits = SMESH::GetNameOfSelectedElements(mySelection, aString) ;
          myElementsId = aString;
        }
@@ -672,7 +667,7 @@ void SMESHGUI_RotationDlg::SetEditCurrentArgument()
          if (CheckBoxMesh->isChecked())
            {
              QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
-             mySelection->AddFilter(myMeshOrSubMeshFilter) ;
+             mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
            }
          else
            QAD_Application::getDesktop()->SetSelectionMode( CellSelection, true );
@@ -791,7 +786,7 @@ void SMESHGUI_RotationDlg::onSelectMesh ( bool toSelectMesh )
   if (toSelectMesh)
     {
       QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
-      mySelection->AddFilter(myMeshOrSubMeshFilter);
+      mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
       LineEditElements->setReadOnly(true);
     }
   else
index af4aef4da9ca5c140d359ca99a2b52d14e4ff0d6..7901d1ed9bcf0f74e74835d00122cabcb3bdd1f9 100644 (file)
@@ -30,7 +30,7 @@
 #define DIALOGBOX_ROTATION_H
 
 #include "SALOME_Selection.h"
-#include "SMESH_TypeFilter.hxx"
+#include "SMESH_LogicalFilter.hxx"
 
 // QT Includes
 #include <qdialog.h>
@@ -83,7 +83,7 @@ private:
     bool                          myBusy;
     SMESH::SMESH_Mesh_var         myMesh;
     SMESH_Actor*                  myActor;
-    Handle(SMESH_TypeFilter)      myMeshOrSubMeshFilter;
+    Handle(SMESH_LogicalFilter)   myMeshOrSubMeshOrGroupFilter;
     
     QButtonGroup* GroupConstructors;
     QRadioButton* RadioButton1;
index 1152b8851dd660ed32dc5e6d60a59ff446fa7367..0cfe1f64399924850ba5c01a2ae18731409c2881 100644 (file)
@@ -456,22 +456,23 @@ bool SMESHGUI_SewingDlg::ClickOnApply()
          QApplication::setOverrideCursor(Qt::waitCursor);
        
          int aConstructorId = GetConstructorId();
+          SMESH::SMESH_MeshEditor::Sew_Error anError;
   
          if (aConstructorId == 0)
-           aResult = aMeshEditor->SewFreeBorders(LineEdit1->text().toLong(),
+           anError = aMeshEditor->SewFreeBorders(LineEdit1->text().toLong(),
                                                  LineEdit2->text().toLong(),
                                                  LineEdit3->text().toLong(),
                                                  LineEdit4->text().toLong(),
                                                  LineEdit5->text().toLong(),
                                                  LineEdit6->text().toLong());
          else if (aConstructorId == 1)
-           aResult = aMeshEditor->SewConformFreeBorders(LineEdit1->text().toLong(),
+           anError = aMeshEditor->SewConformFreeBorders(LineEdit1->text().toLong(),
                                                         LineEdit2->text().toLong(),
                                                         LineEdit3->text().toLong(),
                                                         LineEdit4->text().toLong(),
                                                         LineEdit5->text().toLong());
          else if (aConstructorId == 2)
-           aResult = aMeshEditor->SewBorderToSide(LineEdit1->text().toLong(),
+           anError = aMeshEditor->SewBorderToSide(LineEdit1->text().toLong(),
                                                   LineEdit2->text().toLong(),
                                                   LineEdit3->text().toLong(),
                                                   LineEdit4->text().toLong(),
@@ -492,19 +493,26 @@ bool SMESHGUI_SewingDlg::ClickOnApply()
              for ( int i = 0; i < aListElementsId2.count(); i++ )
                anElementsId2[i] = aListElementsId2[i].toInt();
 
-             aResult = aMeshEditor->SewSideElements(anElementsId1.inout(),
+             anError = aMeshEditor->SewSideElements(anElementsId1.inout(),
                                                     anElementsId2.inout(),
                                                     LineEdit2->text().toLong(),
                                                     LineEdit5->text().toLong(),
                                                     LineEdit3->text().toLong(),
                                                     LineEdit6->text().toLong());
            }
-         
+         aResult = ( anError == SMESH::SMESH_MeshEditor::SEW_OK );
+
          if (toMerge && aResult)
            aMeshEditor->MergeEqualElements();
          
          QApplication::restoreOverrideCursor();
-       }
+
+          if ( !aResult ) {
+            QString msg = tr(QString("ERROR_%1").arg(anError));
+            QAD_MessageBox::warn1(QAD_Application::getDesktop(),
+                                  tr("SMESH_WRN_WARNING"),msg,tr("SMESH_BUT_OK"));
+          }
+        }
       catch( ... )
        {
        }
index d3c7788828c2cf2661d7a36c9bf5dd591673c227..dbbdfd30b0477ecf08d0d38c7adc6be24a9301d9 100644 (file)
 #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 "SMDS_Mesh.hxx"
 
 #include "QAD_Application.h"
@@ -219,7 +221,16 @@ SMESHGUI_SmoothingDlg::SMESHGUI_SmoothingDlg( QWidget* parent, const char* name,
   mySMESHGUI  = SMESHGUI::GetSMESHGUI() ;
   mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
   
-  myMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+  // Costruction of the logical filter
+  SMESH_ListOfFilter aListOfFilters;
+  Handle(SMESH_TypeFilter) aMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+  if ( !aMeshOrSubMeshFilter.IsNull() )
+    aListOfFilters.Append( aMeshOrSubMeshFilter );
+  Handle(SMESH_TypeFilter) aSmeshGroupFilter = new SMESH_TypeFilter( GROUP );
+  if ( !aSmeshGroupFilter.IsNull() )
+    aListOfFilters.Append( aSmeshGroupFilter );
+  
+  myMeshOrSubMeshOrGroupFilter = new SMESH_LogicalFilter( aListOfFilters, SMESH_LogicalFilter::LO_OR );
 
   Init();
   /* signals and slots connections */
@@ -407,7 +418,6 @@ void SMESHGUI_SmoothingDlg::onTextChange(const QString& theNewText)
     aMesh = myActor->GetObject()->GetMesh();
   
   if ( aMesh ) {
-    
     mySelection->ClearIObjects();
     mySelection->AddIObject( myActor->getIO() );
     
@@ -454,31 +464,35 @@ void SMESHGUI_SmoothingDlg::SelectionIntoArgument()
 
   // clear
   myActor = 0;
-    
+  QString aString = "";
+
   myBusy = true;
-  myEditCurrentArgument->setText( "" );
+  if (myEditCurrentArgument == (QWidget*)LineEditElements)
+    {
+      LineEditElements->setText( aString );
+      myNbOkElements = 0;
+      buttonOk->setEnabled( false );
+      buttonApply->setEnabled( false );
+    }
   myBusy = false;
 
   if ( !GroupButtons->isEnabled() ) // inactive
     return;
   
-  buttonOk->setEnabled( false );
-  buttonApply->setEnabled( false );
-  
   // get selected mesh
-  QString aString = "";
-
+  
   int nbSel = mySelection->IObjectCount();
   if(nbSel != 1)
     return;
   
   Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
-  myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO) ;
-
-  myActor = SMESH::FindActorByEntry( mySelection->firstIObject()->getEntry() );
+  myMesh = SMESH::GetMeshByIO(IO);
+  if(myMesh->_is_nil())
+    return;
+  myActor = SMESH::FindActorByObject(myMesh);
+  if (!myActor)
+    return;
   
-  // get selected elements/nodes
-
   int aNbUnits = 0;
  
   if (myEditCurrentArgument == LineEditElements)
@@ -488,15 +502,14 @@ void SMESHGUI_SmoothingDlg::SelectionIntoArgument()
       if (CheckBoxMesh->isChecked())
        {
          SMESH::GetNameOfSelectedIObjects(mySelection, aString);
-         if(!myMesh->_is_nil())
+         
+         if(!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) //MESH
            {
-             if (!myActor)
-               return;
-             
              // get IDs from mesh
              SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
              if (!aSMDSMesh)
                return;
+             
              for (int i = aSMDSMesh->MinElementID(); i <= aSMDSMesh->MaxElementID(); i++  )
                {
                  const SMDS_MeshElement * e = aSMDSMesh->FindElement( i );
@@ -506,29 +519,35 @@ void SMESHGUI_SmoothingDlg::SelectionIntoArgument()
                  }
                }
            }
-         else
+         else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) //SUBMESH
            {
              // get submesh
              SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
-             if(aSubMesh->_is_nil())
-               return;
              
-             myMesh = aSubMesh->GetFather();
-             if(myMesh->_is_nil())
+             // get IDs from submesh
+             SMESH::long_array_var anElementsIds = new SMESH::long_array;
+             anElementsIds = aSubMesh->GetElementsId();
+             for ( int i = 0; i < anElementsIds->length(); i++ )
+               myElementsId += QString(" %1").arg(anElementsIds[i]);
+             aNbUnits = anElementsIds->length();
+           }
+         else // GROUP
+           {
+             // get smesh group
+             SMESH::SMESH_GroupBase_var aGroup
+                = SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
+             if (aGroup->_is_nil())
                return;
              
-             myActor = SMESH::FindActorByObject(myMesh);
-             if (!myActor)
-               return;
-
+             // get IDs from smesh group
              SMESH::long_array_var anElementsIds = new SMESH::long_array;
-             anElementsIds = aSubMesh->GetElementsId();
+             anElementsIds = aGroup->GetListOfID();
              for ( int i = 0; i < anElementsIds->length(); i++ )
                myElementsId += QString(" %1").arg(anElementsIds[i]);
              aNbUnits = anElementsIds->length();
            }
        }
-      else if(!myMesh->_is_nil() && myActor)
+      else
        {
          aNbUnits = SMESH::GetNameOfSelectedElements(mySelection, aString) ;
          myElementsId = aString;
@@ -539,7 +558,7 @@ void SMESHGUI_SmoothingDlg::SelectionIntoArgument()
       myNbOkNodes = 0;
       aNbUnits = SMESH::GetNameOfSelectedNodes(mySelection, aString) ;
     }
-
+  
   if(aNbUnits < 1)
     return ;
 
@@ -548,7 +567,6 @@ void SMESHGUI_SmoothingDlg::SelectionIntoArgument()
   myBusy = false;
   
   // OK
-  
   if (myEditCurrentArgument == LineEditElements)
     myNbOkElements = true;
   else if (myEditCurrentArgument == LineEditNodes)
@@ -584,7 +602,7 @@ void SMESHGUI_SmoothingDlg::SetEditCurrentArgument()
          if (CheckBoxMesh->isChecked())
            {
              QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
-             mySelection->AddFilter(myMeshOrSubMeshFilter) ;
+             mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
            }
          else
            QAD_Application::getDesktop()->SetSelectionMode( CellSelection, true );
@@ -680,20 +698,28 @@ void SMESHGUI_SmoothingDlg::hideEvent ( QHideEvent * e )
 //=======================================================================
 void SMESHGUI_SmoothingDlg::onSelectMesh ( bool toSelectMesh )
 {
+  if (toSelectMesh)
+    TextLabelElements->setText( tr( "SMESH_NAME" ) );
+  else
+    TextLabelElements->setText( tr( "SMESH_ID_ELEMENTS" ) );
+  
+  if (myEditCurrentArgument != LineEditElements)
+    {
+      LineEditElements->clear();
+      return;
+    }
+  
   mySelection->ClearFilters() ;
+  SMESH::SetPointRepresentation(false);
   
   if (toSelectMesh)
     {
-      TextLabelElements->setText( tr( "SMESH_NAME" ) );
-      
       QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
-      mySelection->AddFilter(myMeshOrSubMeshFilter);
+      mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
       LineEditElements->setReadOnly(true);
     }
   else
     {
-      TextLabelElements->setText( tr( "SMESH_ID_ELEMENTS" ) );
-      
       QAD_Application::getDesktop()->SetSelectionMode( CellSelection, true );
       LineEditElements->setReadOnly(false);
       onTextChange(LineEditElements->text());
index 1a4761961770b51d0fc5ed886322860e7a1f0161..fafade3f33bb697de5a0213232b154507d5572e4 100644 (file)
@@ -30,7 +30,7 @@
 #define DIALOGBOX_SMOOTHING_H
 
 #include "SALOME_Selection.h"
-#include "SMESH_TypeFilter.hxx"
+#include "SMESH_LogicalFilter.hxx"
 // QT Includes
 #include <qdialog.h>
 
@@ -84,7 +84,7 @@ private:
     bool                          myBusy;
     SMESH::SMESH_Mesh_var         myMesh;
     SMESH_Actor*                  myActor;
-    Handle(SMESH_TypeFilter)      myMeshOrSubMeshFilter;
+    Handle(SMESH_LogicalFilter)   myMeshOrSubMeshOrGroupFilter;
 
     QButtonGroup* GroupConstructors;
     QRadioButton* Constructor1;
index aeca1704d539a0a5ab110470500d48117e694d6f..d073f812fdd90fad0319845301fd1a98cef060ea 100644 (file)
 #include "SMESHGUI.h"
 #include "SMESHGUI_Utils.h"
 #include "SMESHGUI_VTKUtils.h"
+#include "SMESHGUI_MeshUtils.h"
 #include "SMESHGUI_IdValidator.h"
 #include "SMESHGUI_SpinBox.h"
 #include "SMESH_Actor.h"
+#include "SMESH_TypeFilter.hxx"
 #include "SMDS_Mesh.hxx"
 
 #include "QAD_Application.h"
@@ -259,7 +261,16 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( QWidget* parent, const char* name, S
   mySMESHGUI  = SMESHGUI::GetSMESHGUI() ;
   mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
   
-  myMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+  // Costruction of the logical filter
+  SMESH_ListOfFilter aListOfFilters;
+  Handle(SMESH_TypeFilter) aMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+  if ( !aMeshOrSubMeshFilter.IsNull() )
+    aListOfFilters.Append( aMeshOrSubMeshFilter );
+  Handle(SMESH_TypeFilter) aSmeshGroupFilter = new SMESH_TypeFilter( GROUP );
+  if ( !aSmeshGroupFilter.IsNull() )
+    aListOfFilters.Append( aSmeshGroupFilter );
+  
+  myMeshOrSubMeshOrGroupFilter = new SMESH_LogicalFilter( aListOfFilters, SMESH_LogicalFilter::LO_OR );
     
   Init();
   /* signals and slots connections */
@@ -578,8 +589,12 @@ void SMESHGUI_SymmetryDlg::SelectionIntoArgument()
     return;
   
   Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
-  myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO) ;
-  myActor = SMESH::FindActorByEntry( mySelection->firstIObject()->getEntry() );
+  myMesh = SMESH::GetMeshByIO( mySelection->firstIObject() );
+  if(myMesh->_is_nil())
+    return;
+  myActor = SMESH::FindActorByObject(myMesh);
+  if (!myActor)
+    return;
   
   int aNbUnits = 0;
 
@@ -587,19 +602,17 @@ void SMESHGUI_SymmetryDlg::SelectionIntoArgument()
     {
       myElementsId = "";
       
-      // get selected elements
       if (CheckBoxMesh->isChecked())
        {
          SMESH::GetNameOfSelectedIObjects(mySelection, aString);
-         if(!myMesh->_is_nil())
+         
+         if(!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) //MESH
            {
-             if (!myActor)
-               return;
-
              // get IDs from mesh
              SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
              if (!aSMDSMesh)
                return;
+             
              for (int i = aSMDSMesh->MinElementID(); i <= aSMDSMesh->MaxElementID(); i++  )
                {
                  const SMDS_MeshElement * e = aSMDSMesh->FindElement( i );
@@ -609,54 +622,36 @@ void SMESHGUI_SymmetryDlg::SelectionIntoArgument()
                  }
                }
            }
-         else
+         else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) //SUBMESH
            {
-             // get IDs from submesh
+             // get submesh
              SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
-             if(aSubMesh->_is_nil())
-               return;
-             
-             myMesh = aSubMesh->GetFather();
-             if(myMesh->_is_nil())
-               return;
-             
-             myActor = SMESH::FindActorByObject(myMesh);
-             if (!myActor)
-               return;
              
+             // get IDs from submesh
              SMESH::long_array_var anElementsIds = new SMESH::long_array;
              anElementsIds = aSubMesh->GetElementsId();
              for ( int i = 0; i < anElementsIds->length(); i++ )
                myElementsId += QString(" %1").arg(anElementsIds[i]);
              aNbUnits = anElementsIds->length();
-           }
-       }
-      else
-       {
-         if(myMesh->_is_nil())
+           }
+         else // GROUP
            {
-             // get submesh
-             SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
-             if(!aSubMesh->_is_nil())
-               myMesh = aSubMesh->GetFather();  // get mesh from submesh
-             else
-               {
-                 // get group
-                 SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(IO);
-                 if ( !aGroup->_is_nil() )
-                   myMesh = aGroup->GetMesh(); // get mesh from group
-               }
-             
-             if(myMesh->_is_nil())
+             // get smesh group
+             SMESH::SMESH_GroupBase_var aGroup
+                = SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
+             if (aGroup->_is_nil())
                return;
              
-             // get mesh actor
-             myActor = SMESH::FindActorByObject(myMesh);
+             // 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]);
+             aNbUnits = anElementsIds->length();
            }
-         
-         if (!myActor)
-           return;
-         
+       }
+      else
+       {
          aNbUnits = SMESH::GetNameOfSelectedElements(mySelection, aString) ;
          myElementsId = aString;
        }
@@ -730,7 +725,7 @@ void SMESHGUI_SymmetryDlg::SetEditCurrentArgument()
     if (CheckBoxMesh->isChecked())
       {
        QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
-       mySelection->AddFilter(myMeshOrSubMeshFilter) ;
+       mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
       }
     else
       QAD_Application::getDesktop()->SetSelectionMode( CellSelection, true );
@@ -846,7 +841,7 @@ void SMESHGUI_SymmetryDlg::onSelectMesh ( bool toSelectMesh )
   if (toSelectMesh)
     {
       QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
-      mySelection->AddFilter(myMeshOrSubMeshFilter);
+      mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
       LineEditElements->setReadOnly(true);
     }
   else
index 76b2375cb71d6b08583e3c66979dd78344dfaa13..c556b34934d01aafc9f273f7070b9021c8b01c79 100644 (file)
@@ -30,7 +30,7 @@
 #define DIALOGBOX_SYMMETRY_H
 
 #include "SALOME_Selection.h"
-#include "SMESH_TypeFilter.hxx"
+#include "SMESH_LogicalFilter.hxx"
 
 // QT Includes
 #include <qdialog.h>
@@ -84,7 +84,7 @@ private:
     bool                          myBusy;
     SMESH::SMESH_Mesh_var         myMesh;
     SMESH_Actor*                  myActor;
-    Handle(SMESH_TypeFilter)      myMeshOrSubMeshFilter;
+    Handle(SMESH_LogicalFilter)   myMeshOrSubMeshOrGroupFilter;
     
     QButtonGroup* GroupConstructors;
     QRadioButton* RadioButton1;
index 3063accda5b8ec0221a9d7d5b6c6f0fbdb15260e..de761dd5f6d7c4d7b81e99e498d39cba4b3db56c 100644 (file)
 #include "SMESHGUI.h"
 #include "SMESHGUI_Utils.h"
 #include "SMESHGUI_VTKUtils.h"
+#include "SMESHGUI_MeshUtils.h"
 #include "SMESHGUI_IdValidator.h"
 #include "SMESHGUI_SpinBox.h"
 #include "SMESH_Actor.h"
+#include "SMESH_TypeFilter.hxx"
 #include "SMDS_Mesh.hxx"
 
 #include "QAD_Application.h"
@@ -243,8 +245,17 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( QWidget* parent, const char* n
   mySMESHGUI  = SMESHGUI::GetSMESHGUI() ;
   mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
 
-  myMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
-
+  // Costruction of the logical filter
+  SMESH_ListOfFilter aListOfFilters;
+  Handle(SMESH_TypeFilter) aMeshOrSubMeshFilter = new SMESH_TypeFilter( MESHorSUBMESH );
+  if ( !aMeshOrSubMeshFilter.IsNull() )
+    aListOfFilters.Append( aMeshOrSubMeshFilter );
+  Handle(SMESH_TypeFilter) aSmeshGroupFilter = new SMESH_TypeFilter( GROUP );
+  if ( !aSmeshGroupFilter.IsNull() )
+    aListOfFilters.Append( aSmeshGroupFilter );
+  
+  myMeshOrSubMeshOrGroupFilter = new SMESH_LogicalFilter( aListOfFilters, SMESH_LogicalFilter::LO_OR );
+  
   Init();
 
   /* signals and slots connections */
@@ -488,7 +499,6 @@ void SMESHGUI_TranslationDlg::onTextChange(const QString& theNewText)
     aMesh = myActor->GetObject()->GetMesh();
   
   if ( aMesh ) {
-    
     mySelection->ClearIObjects();
     mySelection->AddIObject( myActor->getIO() );
     
@@ -547,9 +557,13 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
     return;
   
   Handle(SALOME_InteractiveObject) IO = mySelection->firstIObject();
-  myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO) ;
-  myActor = SMESH::FindActorByEntry( mySelection->firstIObject()->getEntry() );
-  
+  myMesh = SMESH::GetMeshByIO(IO);
+  if(myMesh->_is_nil())
+    return;
+  myActor = SMESH::FindActorByObject(myMesh);
+  if (!myActor)
+    return;
+    
   int aNbUnits = 0;
   
   if (myEditCurrentArgument == (QWidget*)LineEditElements)
@@ -559,11 +573,9 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
       if (CheckBoxMesh->isChecked())
        {
          SMESH::GetNameOfSelectedIObjects(mySelection, aString);
-         if(!myMesh->_is_nil())
+       
+         if(!SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO)->_is_nil()) //MESH
            {
-             if (!myActor)
-               return;
-             
              // get IDs from mesh
              SMDS_Mesh* aSMDSMesh = myActor->GetObject()->GetMesh();
              if (!aSMDSMesh)
@@ -578,21 +590,11 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
                  }
                }
            }
-         else
+         else if (!SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO)->_is_nil()) //SUBMESH
            {
              // get submesh
              SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
-             if(aSubMesh->_is_nil())
-               return;
-             
-             myMesh = aSubMesh->GetFather();
-             if(myMesh->_is_nil())
-               return;
              
-             myActor = SMESH::FindActorByObject(myMesh);
-             if (!myActor)
-               return;
-
              // get IDs from submesh
              SMESH::long_array_var anElementsIds = new SMESH::long_array;
              anElementsIds = aSubMesh->GetElementsId();
@@ -600,33 +602,24 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
                myElementsId += QString(" %1").arg(anElementsIds[i]);
              aNbUnits = anElementsIds->length();
            }
-       }
-      else
-       {
-         if(myMesh->_is_nil())
+         else // GROUP
            {
-             // get submesh
-             SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO) ;
-             if(!aSubMesh->_is_nil())
-               myMesh = aSubMesh->GetFather();  // get mesh from submesh
-             else
-               {
-                 // get group
-                 SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(IO);
-                 if ( !aGroup->_is_nil() )
-                   myMesh = aGroup->GetMesh(); // get mesh from group
-               }
-             
-             if(myMesh->_is_nil())
+             // get smesh group
+             SMESH::SMESH_GroupBase_var aGroup =
+                SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
+             if (aGroup->_is_nil())
                return;
              
-             // get mesh actor
-             myActor = SMESH::FindActorByObject(myMesh);
+             // 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]);
+             aNbUnits = anElementsIds->length();
            }
-         
-         if (!myActor)
-           return;
-         
+       }
+      else
+       {
          aNbUnits = SMESH::GetNameOfSelectedElements(mySelection, aString) ;
          myElementsId = aString;
        }
@@ -652,7 +645,7 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
     double x = n->X();
     double y = n->Y();
     double z = n->Z();
-
+    
     if (myEditCurrentArgument == (QWidget*)SpinBox1_1)
       {
        SpinBox1_1->SetValue(x);
@@ -673,7 +666,6 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
   myBusy = false;
   
   // OK
-  
   if(myNbOkElements)
     {
       buttonOk->setEnabled( true );
@@ -700,7 +692,7 @@ void SMESHGUI_TranslationDlg::SetEditCurrentArgument()
     if (CheckBoxMesh->isChecked())
       {
        QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
-       mySelection->AddFilter(myMeshOrSubMeshFilter) ;
+       mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
       }
     else
       QAD_Application::getDesktop()->SetSelectionMode( CellSelection, true );
@@ -816,7 +808,7 @@ void SMESHGUI_TranslationDlg::onSelectMesh ( bool toSelectMesh )
   if (toSelectMesh)
     {
       QAD_Application::getDesktop()->SetSelectionMode( ActorSelection );
-      mySelection->AddFilter(myMeshOrSubMeshFilter);
+      mySelection->AddFilter(myMeshOrSubMeshOrGroupFilter);
       LineEditElements->setReadOnly(true);
     }
   else
index caa1b9023c73e775b77977a9a4af8f838decc7dd..b53e8948fd1961b15106c65da3f402071c7aae3f 100644 (file)
@@ -30,7 +30,7 @@
 #define DIALOGBOX_TRANSLATION_H
 
 #include "SALOME_Selection.h"
-#include "SMESH_TypeFilter.hxx"
+#include "SMESH_LogicalFilter.hxx"
 
 // QT Includes
 #include <qdialog.h>
@@ -82,7 +82,7 @@ private:
     bool                          myBusy;
     SMESH::SMESH_Mesh_var         myMesh;
     SMESH_Actor*                  myActor;
-    Handle(SMESH_TypeFilter)      myMeshOrSubMeshFilter;
+    Handle(SMESH_LogicalFilter)   myMeshOrSubMeshOrGroupFilter;
     
     QButtonGroup* GroupConstructors;
     QRadioButton* RadioButton1;
index ebf8f93418f6a400c1431801acf18e3a02acac2f..42e6db2615853cf3a6ad4abc84d8ff0a828f941a 100644 (file)
@@ -85,7 +85,7 @@ namespace SMESH{
                return aVisualObj;
              }
              //Try narrow to SMESH_Group interafce
-             SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow(anObj);
+             SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(anObj);
              if(!aGroup->_is_nil()){
                SALOMEDS::SObject_var aFatherSObj = aSObj->GetFather();
                if(aFatherSObj->_is_nil()) return aVisualObj;
index 47b3ec064f07bd846c1cebe53432d40baee58b02..c1187f34d3f8cf8eddbbebe1a0d0ce403fed3dfa 100644 (file)
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "POT-Creation-Date: 2002-05-28 10:46:48 AM CEST\n"
-"PO-Revision-Date: 2004-04-23 13:04+0400\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"
 
@@ -662,7 +662,7 @@ msgstr "Diagonal Inversion"
 
 #Select whole mesh or submesh
 msgid "SMESH_SELECT_WHOLE_MESH"
-msgstr "Select whole mesh or submesh"
+msgstr "Select whole mesh, submesh or group"
 
 #Smoothing
 msgid "SMESH_SMOOTHING"
@@ -856,6 +856,18 @@ msgstr "Select From"
 msgid "SMESH_GROUP"
 msgstr "Group"
 
+#Group type
+msgid "SMESH_GROUP_TYPE"
+msgstr "Group type"
+
+#Group type: standalone
+msgid "SMESH_GROUP_STANDALONE"
+msgstr "Standalone group"
+
+#Group type: geometry
+msgid "SMESH_GROUP_GEOMETRY"
+msgstr "Group on geometry"
+
 #Geometry group
 msgid "SMESH_GEOM_GROUP"
 msgstr "Geometry group"
@@ -1462,6 +1474,34 @@ msgstr "Second Node ID"
 msgid "SMESHGUI_SewingDlg::LAST_NODE_ID"
 msgstr "Last Node ID"
 
+msgid "SMESHGUI_SewingDlg::ERROR_1"
+msgstr "Free Border1 not found by the selected nodes"
+
+msgid "SMESHGUI_SewingDlg::ERROR_2"
+msgstr "Free Border2 not found by the selected nodes"
+
+msgid "SMESHGUI_SewingDlg::ERROR_3"
+msgstr "Free Border1 and Border2 not found by the selected nodes"
+
+msgid "SMESHGUI_SewingDlg::ERROR_4"
+msgstr "No path from the first side node to the last side node have been found"
+
+msgid "SMESHGUI_SewingDlg::ERROR_5"
+msgstr "Not allowed to splite volumes on the side!"
+
+msgid "SMESHGUI_SewingDlg::ERROR_6"
+msgstr "Different number of elements selected on the sides"
+
+msgid "SMESHGUI_SewingDlg::ERROR_7"
+msgstr "Element sets are topologically different or given nodes are inconvenient"
+
+msgid "SMESHGUI_SewingDlg::ERROR_8"
+msgstr "Nodes on the side 1 are either not linked or not laying on the element set boundary"
+
+msgid "SMESHGUI_SewingDlg::ERROR_9"
+msgstr "Nodes on the side 2 are either not linked or not laying on the element set boundary"
+
+
 #----------------------------------------------------
 
 #Coincident nodes
index 35dcf54dd71bd26db0b7d008c6ff9d49e7c40842..a2b64c5dad184cf36e3efaf09fd66f76593f97d7 100644 (file)
@@ -54,6 +54,7 @@ LIB= libSMESHEngine.la
 
 LIB_SRC = \
        SMESH_Gen_i.cxx \
+       SMESH_Gen_i_1.cxx \
        SMESH_Mesh_i.cxx \
        SMESH_MEDMesh_i.cxx \
         SMESH_MEDFamily_i.cxx \
@@ -73,7 +74,7 @@ LIB_SERVER_IDL = SMESH_Gen.idl SMESH_Hypothesis.idl SMESH_Mesh.idl \
                  SALOME_Component.idl SALOME_Exception.idl \
                  SMESH_Filter.idl SMESH_Group.idl SMESH_Pattern.idl
 
-LIB_CLIENT_IDL = SALOMEDS.idl GEOM_Gen.idl MED.idl SALOMEDS_Attributes.idl SALOME_GenericObj.idl
+LIB_CLIENT_IDL = SALOMEDS.idl GEOM_Gen.idl MED.idl SALOMEDS_Attributes.idl SALOME_GenericObj.idl SALOME_Comm.idl
 
 # Executables targets
 BIN = SMESHEngine
index 5348de5961d5ba4c7e8c6cfee438bd7678b788a2..5d1d45ed6addc59484de84454e1c7a216f6ba744 100644 (file)
@@ -62,6 +62,7 @@
 
 #include "SMESHDS_Document.hxx"
 #include "SMESHDS_Group.hxx"
+#include "SMESHDS_GroupOnGeom.hxx"
 #include "SMESH_Group.hxx"
 
 #include "SMDS_EdgePosition.hxx"
@@ -97,28 +98,6 @@ static int MYDEBUG = 0;
 static int MYDEBUG = 0;
 #endif
 
-// Tags definition ===========================================================
-// Top level
-long Tag_HypothesisRoot         = 1; // hypotheses root
-long Tag_AlgorithmsRoot         = 2; // algorithms root
-// Mesh/Submesh
-long Tag_RefOnShape             = 1; // references to shape
-long Tag_RefOnAppliedHypothesis = 2; // applied hypotheses root
-long Tag_RefOnAppliedAlgorithms = 3; // applied algorithms root
-// Mesh only
-long Tag_SubMeshOnVertex        = 4; // sub-meshes roots by type
-long Tag_SubMeshOnEdge          = 5; // ...
-long Tag_SubMeshOnWire          = 6; // ...
-long Tag_SubMeshOnFace          = 7; // ...
-long Tag_SubMeshOnShell         = 8; // ...
-long Tag_SubMeshOnSolid         = 9; // ...
-long Tag_SubMeshOnCompound      = 10; // ...
-long Tag_NodeGroups             = 11; // Group roots by type
-long Tag_EdgeGroups             = 12; // ...
-long Tag_FaceGroups             = 13; // ...
-long Tag_VolumeGroups           = 14; // ...
-// ===========================================================================
-
 // Static variables definition
 CORBA::ORB_var          SMESH_Gen_i::myOrb;
 PortableServer::POA_var SMESH_Gen_i::myPoa;
@@ -126,119 +105,6 @@ SALOME_NamingService*   SMESH_Gen_i::myNS  = NULL;
 SALOME_LifeCycleCORBA*  SMESH_Gen_i::myLCC = NULL;
 SMESH_Gen_i*            SMESH_Gen_i::mySMESHGen = NULL;
 
-//=============================================================================
-/*!
- *  FindMaxChildTag [ static internal ]
- *
- *  Finds maximum child tag for the given object
- */
-//=============================================================================
-
-static long FindMaxChildTag( SALOMEDS::SObject_ptr theSObject )
-{
-  long aTag = 0;
-  if ( !theSObject->_is_nil() ) {
-    SALOMEDS::Study_var aStudy = theSObject->GetStudy();
-    if ( !aStudy->_is_nil() ) {
-      SALOMEDS::ChildIterator_var anIter = aStudy->NewChildIterator( theSObject );
-      for ( ; anIter->More(); anIter->Next() ) {
-       long nTag = anIter->Value()->Tag();
-       if ( nTag > aTag )
-         aTag = nTag;
-      }
-    }
-  }
-  return aTag;
-}
-
-//=============================================================================
-/*!
- *  Get...Tag [ static ]
- *
- *  Methods which determine SMESH data model structure
- */
-//=============================================================================
-
-long SMESH_Gen_i::GetHypothesisRootTag()
-{
-  return Tag_HypothesisRoot;
-}
-
-long SMESH_Gen_i::GetAlgorithmsRootTag()
-{
-  return Tag_AlgorithmsRoot;
-}
-
-long SMESH_Gen_i::GetRefOnShapeTag()
-{
-  return Tag_RefOnShape;
-}
-
-long SMESH_Gen_i::GetRefOnAppliedHypothesisTag()
-{
-  return Tag_RefOnAppliedHypothesis;
-}
-
-long SMESH_Gen_i::GetRefOnAppliedAlgorithmsTag()
-{
-  return Tag_RefOnAppliedAlgorithms;
-}
-
-long SMESH_Gen_i::GetSubMeshOnVertexTag()
-{
-  return Tag_SubMeshOnVertex;
-}
-
-long SMESH_Gen_i::GetSubMeshOnEdgeTag()
-{
-  return Tag_SubMeshOnEdge;
-}
-
-long SMESH_Gen_i::GetSubMeshOnFaceTag()
-{
-  return Tag_SubMeshOnFace;
-}
-
-long SMESH_Gen_i::GetSubMeshOnSolidTag()
-{
-  return Tag_SubMeshOnSolid;
-}
-
-long SMESH_Gen_i::GetSubMeshOnCompoundTag()
-{
-  return Tag_SubMeshOnCompound;
-}
-
-long SMESH_Gen_i::GetSubMeshOnWireTag()
-{
-  return Tag_SubMeshOnWire;
-}
-
-long SMESH_Gen_i::GetSubMeshOnShellTag()
-{
-  return Tag_SubMeshOnShell;
-}
-
-long SMESH_Gen_i::GetNodeGroupsTag()
-{
-  return Tag_NodeGroups;
-}
-
-long SMESH_Gen_i::GetEdgeGroupsTag()
-{
-  return Tag_EdgeGroups;
-}
-
-long SMESH_Gen_i::GetFaceGroupsTag()
-{
-  return Tag_FaceGroups;
-}
-
-long SMESH_Gen_i::GetVolumeGroupsTag()
-{
-  return Tag_VolumeGroups;
-}
-
 //=============================================================================
 /*!
  *  GetServant [ static ]
@@ -420,9 +286,6 @@ SMESH::SMESH_Hypothesis_ptr SMESH_Gen_i::createHypothesis(const char* theHypName
   Unexpect aCatch(SALOME_SalomeException);
   if(MYDEBUG) MESSAGE( "Create Hypothesis <" << theHypName << "> from " << theLibName);
 
-  // get study context
-  StudyContext* myStudyContext = GetCurrentStudyContext();
-  
   // create a new hypothesis object servant
   SMESH_Hypothesis_i* myHypothesis_i = 0;
   SMESH::SMESH_Hypothesis_var hypothesis_i;
@@ -468,8 +331,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, myCurrentStudy->StudyId(), &myGen);
+      myHypCreatorMap[string(theHypName)]->Create (myPoa, GetCurrentStudyID(), &myGen);
     // _CS_gbo Explicit activation (no longer made in the constructor).
     myHypothesis_i->Activate();
     myHypothesis_i->SetLibName(theLibName); // for persistency assurance
@@ -484,9 +346,8 @@ SMESH::SMESH_Hypothesis_ptr SMESH_Gen_i::createHypothesis(const char* theHypName
 
   // activate the CORBA servant of hypothesis
   hypothesis_i = SMESH::SMESH_Hypothesis::_narrow( myHypothesis_i->_this() );
-  string iorString = GetORB()->object_to_string( hypothesis_i );
-  int nextId = myStudyContext->addObject( iorString );
-  if(MYDEBUG) MESSAGE( "Add hypo to map with id = "<< nextId << " and IOR = " << iorString.c_str() );
+  int nextId = RegisterObject( hypothesis_i );
+  if(MYDEBUG) MESSAGE( "Add hypo to map with id = "<< nextId );
 
   return hypothesis_i._retn();
 }
@@ -504,23 +365,17 @@ SMESH::SMESH_Mesh_ptr SMESH_Gen_i::createMesh()
   Unexpect aCatch(SALOME_SalomeException);
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::createMesh" );
 
-  // get current study
-  StudyContext* myStudyContext = GetCurrentStudyContext();
-
   // Get or create the GEOM_Client instance
   try {
     // create a new mesh object servant, store it in a map in study context
-    SMESH_Mesh_i* meshServant = new SMESH_Mesh_i( GetPOA(),
-                                                 this,
-                                                 myCurrentStudy->StudyId() );
+    SMESH_Mesh_i* meshServant = new SMESH_Mesh_i( GetPOA(), this, GetCurrentStudyID() );
     // create a new mesh object
-    meshServant->SetImpl( myGen.CreateMesh( myCurrentStudy->StudyId() ) );
+    meshServant->SetImpl( myGen.CreateMesh( GetCurrentStudyID() ));
 
     // activate the CORBA servant of Mesh
-    SMESH::SMESH_Mesh_var mesh = meshServant->_this();
-    string iorString = GetORB()->object_to_string( mesh );
-    int nextId = myStudyContext->addObject( iorString );
-    if(MYDEBUG) MESSAGE( "Add mesh to map with id = "<< nextId << " and IOR = " << iorString.c_str() );
+    SMESH::SMESH_Mesh_var mesh = SMESH::SMESH_Mesh::_narrow( meshServant->_this() );
+    int nextId = RegisterObject( mesh );
+    if(MYDEBUG) MESSAGE( "Add mesh to map with id = "<< nextId);
     return mesh._retn();
   }
   catch (SALOME_Exception& S_ex) {
@@ -558,7 +413,7 @@ void SMESH_Gen_i::SetCurrentStudy( SALOMEDS::Study_ptr theStudy )
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::SetCurrentStudy" );
   myCurrentStudy = SALOMEDS::Study::_duplicate( theStudy );
   // create study context, if it doesn't exist and set current study
-  int studyId = myCurrentStudy->StudyId();
+  int studyId = GetCurrentStudyID();
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::SetCurrentStudy: study Id = " << studyId );
   if ( myStudyContextMap.find( studyId ) == myStudyContextMap.end() ) {
     myStudyContextMap[ studyId ] = new StudyContext;      
@@ -580,7 +435,7 @@ void SMESH_Gen_i::SetCurrentStudy( SALOMEDS::Study_ptr theStudy )
 
 SALOMEDS::Study_ptr SMESH_Gen_i::GetCurrentStudy()
 {
-  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::GetCurrentStudy: study Id = " << myCurrentStudy->StudyId() );
+  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::GetCurrentStudy: study Id = " << GetCurrentStudyID() );
   return SALOMEDS::Study::_duplicate( myCurrentStudy );
 }
 
@@ -593,9 +448,11 @@ SALOMEDS::Study_ptr SMESH_Gen_i::GetCurrentStudy()
 //=============================================================================
 StudyContext* SMESH_Gen_i::GetCurrentStudyContext()
 {
-  ASSERT( !CORBA::is_nil( myCurrentStudy ) )
-  ASSERT( myStudyContextMap.find( myCurrentStudy->StudyId() ) != myStudyContextMap.end() );
-  return myStudyContextMap[ myCurrentStudy->StudyId() ];
+  if ( !CORBA::is_nil( myCurrentStudy ) &&
+      myStudyContextMap.find( GetCurrentStudyID() ) != myStudyContextMap.end() )
+    return myStudyContextMap[ myCurrentStudy->StudyId() ];
+  else
+    return 0;
 }
 
 //=============================================================================
@@ -611,14 +468,13 @@ SMESH::SMESH_Hypothesis_ptr SMESH_Gen_i::CreateHypothesis( const char* theHypNam
      throw ( SALOME::SALOME_Exception )
 {
   Unexpect aCatch(SALOME_SalomeException);
-  ASSERT( !CORBA::is_nil( myCurrentStudy ) );
   // Create hypothesis/algorithm
   SMESH::SMESH_Hypothesis_var hyp = this->createHypothesis( theHypName, theLibName );
 
   // Publish hypothesis/algorithm in the study
-  if ( this->CanPublishInStudy( hyp ) ) {
-    this->PublishInStudy( myCurrentStudy, SALOMEDS::SObject::_nil(), hyp, "" );
-  }
+  if ( CanPublishInStudy( hyp ) )
+    PublishHypothesis( myCurrentStudy, hyp );
+
   return hyp._retn();
 }
   
@@ -635,20 +491,18 @@ SMESH::SMESH_Mesh_ptr SMESH_Gen_i::CreateMesh( GEOM::GEOM_Object_ptr theShapeObj
 {
   Unexpect aCatch(SALOME_SalomeException);
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMesh" );
-  ASSERT( !CORBA::is_nil( myCurrentStudy ) );
   // create mesh
   SMESH::SMESH_Mesh_var mesh = this->createMesh();
-  // publish mesh in the study
-  if ( this->CanPublishInStudy( mesh ) ) {
-    this->PublishInStudy( myCurrentStudy, SALOMEDS::SObject::_nil(), mesh.in(), "" );
-  }
   // set shape
   SMESH_Mesh_i* meshServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( mesh ).in() );
   ASSERT( meshServant );
   meshServant->SetShape( theShapeObject );
+  // publish mesh in the study
+  if ( CanPublishInStudy( mesh ) )
+    PublishMesh( myCurrentStudy, mesh.in() );
   return mesh._retn();
 }
-  
+
 //=============================================================================
 /*!
  *  SMESH_Gen_i::CreateMeshFromUNV
@@ -662,14 +516,13 @@ SMESH::SMESH_Mesh_ptr SMESH_Gen_i::CreateMeshesFromUNV( const char* theFileName
 {
   Unexpect aCatch(SALOME_SalomeException);
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshesFromUNV" );
-  ASSERT( !CORBA::is_nil( myCurrentStudy ) );
 
   SMESH::SMESH_Mesh_var aMesh = createMesh();
   string aFileName; // = boost::filesystem::path(theFileName).leaf();
   // publish mesh in the study
-  if ( CanPublishInStudy( aMesh ) ) {
-    PublishInStudy( myCurrentStudy, SALOMEDS::SObject::_nil(), aMesh.in(), aFileName.c_str() );
-  }
+  if ( CanPublishInStudy( aMesh ) )
+    PublishMesh( myCurrentStudy, aMesh.in(), aFileName.c_str() );
+
   SMESH_Mesh_i* aServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( aMesh ).in() );
   ASSERT( aServant );
   aServant->ImportUNVFile( theFileName );
@@ -690,7 +543,6 @@ SMESH::mesh_array* SMESH_Gen_i::CreateMeshesFromMED( const char* theFileName,
 {
   Unexpect aCatch(SALOME_SalomeException);
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshFromMED" );
-  ASSERT( !CORBA::is_nil( myCurrentStudy ) );
 
   // Retrieve mesh names from the file
   DriverMED_R_SMESHDS_Mesh myReader;
@@ -710,9 +562,8 @@ SMESH::mesh_array* SMESH_Gen_i::CreateMeshesFromMED( const char* theFileName,
       SMESH::SMESH_Mesh_var mesh = createMesh();
       
       // publish mesh in the study
-      if ( CanPublishInStudy( mesh ) ) {
-       PublishInStudy( myCurrentStudy, SALOMEDS::SObject::_nil(), mesh.in(), (*it).c_str() );
-      }
+      if ( CanPublishInStudy( mesh ) )
+        PublishMesh( myCurrentStudy, mesh.in(), (*it).c_str() );
       
       // Read mesh data (groups are published automatically by ImportMEDFile())
       SMESH_Mesh_i* meshServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( mesh ).in() );
@@ -721,7 +572,7 @@ SMESH::mesh_array* SMESH_Gen_i::CreateMeshesFromMED( const char* theFileName,
        meshServant->ImportMEDFile( theFileName, (*it).c_str() );
       if (status1 > theStatus)
        theStatus = status1;
-      
+
       aResult[i++] = SMESH::SMESH_Mesh::_duplicate( mesh );
     }
   }
@@ -741,14 +592,13 @@ SMESH::SMESH_Mesh_ptr SMESH_Gen_i::CreateMeshesFromSTL( const char* theFileName
 {
   Unexpect aCatch(SALOME_SalomeException);
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshesFromSTL" );
-  ASSERT( !CORBA::is_nil( myCurrentStudy ) );
 
   SMESH::SMESH_Mesh_var aMesh = createMesh();
   string aFileName; // = boost::filesystem::path(theFileName).leaf();
   // publish mesh in the study
-  if ( CanPublishInStudy( aMesh ) ) {
+  if ( CanPublishInStudy( aMesh ) )
     PublishInStudy( myCurrentStudy, SALOMEDS::SObject::_nil(), aMesh.in(), aFileName.c_str() );
-  }
+
   SMESH_Mesh_i* aServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( aMesh ).in() );
   ASSERT( aServant );
   aServant->ImportSTLFile( theFileName );
@@ -784,7 +634,7 @@ CORBA::Boolean SMESH_Gen_i::IsReadyToCompute( SMESH::SMESH_Mesh_ptr theMesh,
     ASSERT( meshServant );
     if ( meshServant ) {
       // get local TopoDS_Shape
-      TopoDS_Shape myLocShape = GetShapeReader()->GetShape( GetGeomEngine(), theShapeObject );
+      TopoDS_Shape myLocShape = GeomObjectToShape( theShapeObject );
       // call implementation
       ::SMESH_Mesh& myLocMesh = meshServant->GetImpl();
       return myGen.CheckAlgoState( myLocMesh, myLocShape );
@@ -820,10 +670,7 @@ SMESH::long_array* SMESH_Gen_i::GetSubShapesId( GEOM::GEOM_Object_ptr theMainSha
 
   try
     {
-      if ( !myShapeReader )
-       myShapeReader = new GEOM_Client( GetContainerRef() );
-      ASSERT(myShapeReader);
-      TopoDS_Shape myMainShape  = GetShapeReader()->GetShape(GetGeomEngine(),theMainShapeObject);
+      TopoDS_Shape myMainShape = GeomObjectToShape(theMainShapeObject);
       TopTools_IndexedMapOfShape myIndexToShape;      
       TopExp::MapShapes(myMainShape,myIndexToShape);
 
@@ -835,7 +682,7 @@ SMESH::long_array* SMESH_Gen_i::GetSubShapesId( GEOM::GEOM_Object_ptr theMainSha
            THROW_SALOME_CORBA_EXCEPTION ("bad shape object reference", \
                                        SALOME::BAD_PARAM );
 
-         TopoDS_Shape locShape  = GetShapeReader()->GetShape(GetGeomEngine(),aShapeObject);
+         TopoDS_Shape locShape  = GeomObjectToShape(aShapeObject);
          for (TopExp_Explorer exp(locShape,TopAbs_FACE); exp.More(); exp.Next())
            {
              const TopoDS_Face& F = TopoDS::Face(exp.Current());
@@ -903,8 +750,8 @@ CORBA::Boolean SMESH_Gen_i::Compute( SMESH::SMESH_Mesh_ptr theMesh,
     ASSERT( meshServant );
     if ( meshServant ) {
       // get local TopoDS_Shape
-      TopoDS_Shape myLocShape = GetShapeReader()->GetShape( GetGeomEngine(), theShapeObject );
-      // call implementarion compute
+      TopoDS_Shape myLocShape = GeomObjectToShape( theShapeObject );
+      // call implementation compute
       ::SMESH_Mesh& myLocMesh = meshServant->GetImpl();
       return myGen.Compute( myLocMesh, myLocShape);
     }
@@ -1385,12 +1232,12 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
                aGroup->CreateOnDisk();
 
                SALOMEDS::ChildIterator_var it = myCurrentStudy->NewChildIterator( myGroupsBranch );
-               int grpNb = 0;
                for ( ; it->More(); it->Next() ) {
                  SALOMEDS::SObject_var mySObject = it->Value();
                  CORBA::Object_var aSubObject = SObjectToObject( mySObject );
                  if ( !CORBA::is_nil( aSubObject ) ) {
-                   SMESH_Group_i* myGroupImpl = dynamic_cast<SMESH_Group_i*>( GetServant( aSubObject ).in() );
+                   SMESH_GroupBase_i* myGroupImpl =
+                      dynamic_cast<SMESH_GroupBase_i*>( GetServant( aSubObject ).in() );
                    if ( !myGroupImpl )
                      continue;
 
@@ -1412,11 +1259,35 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
                    if ( myLocMesh.GetGroup( myGroupImpl->GetLocalID() ) ) {
                      if(MYDEBUG) MESSAGE( "VSR - SMESH_Gen_i::Save(): saving group with StoreName = "
                               << grpName << " to MED file" );
-                     SMESHDS_Group* aGrpDS = myLocMesh.GetGroup( myGroupImpl->GetLocalID() )->GetGroupDS();
-                     aGrpDS->SetStoreName( grpName );
+                     SMESHDS_GroupBase* aGrpBaseDS =
+                        myLocMesh.GetGroup( myGroupImpl->GetLocalID() )->GetGroupDS();
+                     aGrpBaseDS->SetStoreName( grpName );
 
                      // Pass SMESHDS_Group to MED writer 
-                     myWriter.AddGroup( aGrpDS );
+                     SMESHDS_Group* aGrpDS = dynamic_cast<SMESHDS_Group*>( aGrpBaseDS );
+                      if ( aGrpDS )
+                        myWriter.AddGroup( aGrpDS );
+
+                      // write reference on a shape if exists
+                      SMESHDS_GroupOnGeom* aGeomGrp =
+                        dynamic_cast<SMESHDS_GroupOnGeom*>( aGrpBaseDS );
+                      if ( aGeomGrp ) {
+                        SALOMEDS::SObject_var mySubRef, myShape;
+                        if (mySObject->FindSubObject( GetRefOnShapeTag(), mySubRef ) &&
+                            mySubRef->ReferencedObject( myShape ))
+                        {
+                          string myRefOnObject = myShape->GetID();
+                          if ( myRefOnObject.length() > 0 ) {
+                            char aRefName[ 30 ];
+                            sprintf( aRefName, "Ref on shape %d", anId);
+                            aSize[ 0 ] = myRefOnObject.length() + 1;
+                            aDataset = new HDFdataset(aRefName, aGroup, HDF_STRING, aSize, 1);
+                            aDataset->CreateOnDisk();
+                            aDataset->WriteOnDisk( ( char* )( myRefOnObject.c_str() ) );
+                            aDataset->CloseOnDisk();
+                          }
+                        }
+                      }
                    }
                  }
                }
@@ -1452,6 +1323,8 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
               for ( ; itSubM != aSubMeshes.end() ; itSubM++ )
               {
                 SMESHDS_SubMesh* aSubMesh = (*itSubM).second;
+                if ( aSubMesh->IsComplexSubmesh() )
+                  continue; // submesh containing other submeshs
                 int nbNodes = aSubMesh->NbNodes();
                 if ( nbNodes == 0 ) continue;
                 
@@ -1488,6 +1361,8 @@ SALOMEDS::TMPFile* SMESH_Gen_i::Save( SALOMEDS::SComponent_ptr theComponent,
                 for ( ; itSM != pListSM->end(); itSM++ )
                 {
                   SMESHDS_SubMesh* aSubMesh = (*itSM);
+                  if ( aSubMesh->IsComplexSubmesh() )
+                    continue; // submesh containing other submeshs
 
                   SMDS_NodeIteratorPtr itNode = aSubMesh->GetNodes();
                   // loop on nodes in aSubMesh
@@ -1948,7 +1823,7 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
              if ( !CORBA::is_nil( shapeObject ) ) {
                aShapeObject = GEOM::GEOM_Object::_narrow( shapeObject );
                if ( !aShapeObject->_is_nil() )
-                 myNewMeshImpl->setShape( aShapeObject );
+                 myNewMeshImpl->SetShape( aShapeObject );
              }
            }
          }
@@ -2310,8 +2185,9 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
           // Recompute State (as computed sub-meshes are restored from MED)
          if ( !aShapeObject->_is_nil() ) {
            MESSAGE("JFA - Compute State Engine ...");
-           TopoDS_Shape myLocShape = GetShapeReader()->GetShape( GetGeomEngine(), aShapeObject );
-           myNewMeshImpl->GetImpl().GetSubMesh(myLocShape)->ComputeStateEngine(SMESH_subMesh::SUBMESH_RESTORED);
+           TopoDS_Shape myLocShape = GeomObjectToShape( aShapeObject );
+           myNewMeshImpl->GetImpl().GetSubMesh(myLocShape)->ComputeStateEngine
+              (SMESH_subMesh::SUBMESH_RESTORED);
            MESSAGE("JFA - Compute State Engine finished");
          }
 
@@ -2349,11 +2225,33 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
                  char* nameFromFile = new char[ size ];
                  aDataset->ReadFromDisk( nameFromFile );
                  aDataset->CloseOnDisk();
-                 
+
+                 // Try to find a shape reference
+                  TopoDS_Shape aShape;
+                  char aRefName[ 30 ];
+                  sprintf( aRefName, "Ref on shape %d", subid);
+                  if ( aGroup->ExistInternalObject( aRefName ) ) {
+                    // load mesh "Ref on shape" - it's an entry to SObject
+                    aDataset = new HDFdataset( aRefName, aGroup );
+                    aDataset->OpenOnDisk();
+                    size = aDataset->GetSize();
+                    char* refFromFile = new char[ size ];
+                    aDataset->ReadFromDisk( refFromFile );
+                    aDataset->CloseOnDisk();
+                    if ( strlen( refFromFile ) > 0 ) {
+                      SALOMEDS::SObject_var shapeSO = myCurrentStudy->FindObjectID( refFromFile );
+                      CORBA::Object_var shapeObject = SObjectToObject( shapeSO );
+                      if ( !CORBA::is_nil( shapeObject ) ) {
+                        aShapeObject = GEOM::GEOM_Object::_narrow( shapeObject );
+                        if ( !aShapeObject->_is_nil() )
+                          aShape = GeomObjectToShape( aShapeObject );
+                      }
+                    }
+                  }
                  // Create group servant
-                 SMESH::SMESH_Group_var aNewGroup = SMESH::SMESH_Group::_duplicate
-                    ( myNewMeshImpl->createGroup( (SMESH::ElementType)(ii - GetNodeGroupsTag() + 1),
-                                                 nameFromFile ) );
+                  SMESH::ElementType type = (SMESH::ElementType)(ii - GetNodeGroupsTag() + 1);
+                 SMESH::SMESH_GroupBase_var aNewGroup = SMESH::SMESH_GroupBase::_duplicate
+                    ( myNewMeshImpl->createGroup( type, nameFromFile, aShape ) );
                  // Obtain a SMESHDS_Group object 
                  if ( aNewGroup->_is_nil() )
                    continue;
@@ -2362,7 +2260,8 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
                  int newSubId = myStudyContext->findId( iorSubString );
                  myStudyContext->mapOldToNew( subid, newSubId );
 
-                 SMESH_Group_i* aGroupImpl = dynamic_cast<SMESH_Group_i*>( GetServant( aNewGroup ).in() );
+                 SMESH_GroupBase_i* aGroupImpl =
+                    dynamic_cast<SMESH_GroupBase_i*>( GetServant( aNewGroup ).in() );
                  if ( !aGroupImpl )
                    continue;
 
@@ -2370,11 +2269,13 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
                  if ( !aLocalGroup )
                    continue;
 
-                 SMESHDS_Group* aGroupDS = aLocalGroup->GetGroupDS();
-                 aGroupDS->SetStoreName( name_dataset );
+                 SMESHDS_GroupBase* aGroupBaseDS = aLocalGroup->GetGroupDS();
+                 aGroupBaseDS->SetStoreName( name_dataset );
 
                  // Fill group with contents from MED file
-                 myReader.GetGroup( aGroupDS );
+                  SMESHDS_Group* aGrp = dynamic_cast<SMESHDS_Group*>( aGroupBaseDS );
+                  if ( aGrp )
+                    myReader.GetGroup( aGrp );
                }
              }
              aGroup->CloseOnDisk();
@@ -2427,7 +2328,7 @@ void SMESH_Gen_i::Close( SALOMEDS::SComponent_ptr theComponent )
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::Close" );
 
   // Clear study contexts data
-  int studyId = myCurrentStudy->StudyId();
+  int studyId = GetCurrentStudyID();
   if ( myStudyContextMap.find( studyId ) != myStudyContextMap.end() ) {
     delete myStudyContextMap[ studyId ];
     myStudyContextMap.erase( studyId );
@@ -2458,15 +2359,15 @@ char* SMESH_Gen_i::ComponentDataType()
  */
 //=============================================================================
 
-char* SMESH_Gen_i::IORToLocalPersistentID( SALOMEDS::SObject_ptr theSObject,
+char* SMESH_Gen_i::IORToLocalPersistentID( SALOMEDS::SObject_ptr /*theSObject*/,
                                           const char*           IORString,
-                                          CORBA::Boolean        isMultiFile,
-                                          CORBA::Boolean        isASCII )
+                                          CORBA::Boolean        /*isMultiFile*/,
+                                          CORBA::Boolean        /*isASCII*/ )
 {
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::IORToLocalPersistentID" );
   StudyContext* myStudyContext = GetCurrentStudyContext();
   
-  if ( strcmp( IORString, "" ) != 0 ) {
+  if ( myStudyContext && strcmp( IORString, "" ) != 0 ) {
     int anId = myStudyContext->findId( IORString );
     if ( anId ) {
       if(MYDEBUG) MESSAGE( "VSR " << anId )
@@ -2486,320 +2387,34 @@ char* SMESH_Gen_i::IORToLocalPersistentID( SALOMEDS::SObject_ptr theSObject,
  */
 //=============================================================================
 
-char* SMESH_Gen_i::LocalPersistentIDToIOR( SALOMEDS::SObject_ptr theSObject,
+char* SMESH_Gen_i::LocalPersistentIDToIOR( SALOMEDS::SObject_ptr /*theSObject*/,
                                           const char*           aLocalPersistentID,
-                                          CORBA::Boolean        isMultiFile,
-                                          CORBA::Boolean        isASCII )
+                                          CORBA::Boolean        /*isMultiFile*/,
+                                          CORBA::Boolean        /*isASCII*/ )
 {
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::LocalPersistentIDToIOR(): id = " << aLocalPersistentID );
   StudyContext* myStudyContext = GetCurrentStudyContext();
 
-  if ( strcmp( aLocalPersistentID, "" ) != 0 ) {
+  if ( myStudyContext && strcmp( aLocalPersistentID, "" ) != 0 ) {
     int anId = atoi( aLocalPersistentID );
     return CORBA::string_dup( myStudyContext->getIORbyOldId( anId ).c_str() );
   }
   return CORBA::string_dup( "" );
 }
 
-//=============================================================================
-/*!
- *  SMESH_Gen_i::CanPublishInStudy
- *
- *  Returns true if object can be published in the study
- */
-//=============================================================================
-
-bool SMESH_Gen_i::CanPublishInStudy(CORBA::Object_ptr theIOR)
-{
-  SMESH::SMESH_Mesh_var aMesh       = SMESH::SMESH_Mesh::_narrow(theIOR);
-  if( !aMesh->_is_nil() )
-    return true;
-
-  SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow(theIOR);
-  if( !aSubMesh->_is_nil() )
-    return true;
-
-  SMESH::SMESH_Hypothesis_var aHyp  = SMESH::SMESH_Hypothesis::_narrow(theIOR);
-  if( !aHyp->_is_nil() )
-    return true;
-
-  SMESH::SMESH_Group_var aGroup     = SMESH::SMESH_Group::_narrow(theIOR);
-  if( !aGroup->_is_nil() )
-    return true;
-
-  return false;
-}
-
-//=============================================================================
-/*!
- *  SMESH_Gen_i::PublishInStudy
- *
- *  Publish object in the study
- */
-//=============================================================================
+//=======================================================================
+//function : RegisterObject
+//purpose  : 
+//=======================================================================
 
-SALOMEDS::SObject_ptr SMESH_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
-                                                 SALOMEDS::SObject_ptr theSObject,
-                                                 CORBA::Object_ptr theIOR,
-                                                 const char* theName) 
-throw (SALOME::SALOME_Exception)
+int SMESH_Gen_i::RegisterObject(CORBA::Object_ptr theObject)
 {
-  Unexpect aCatch(SALOME_SalomeException);
-  if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy()" );
-  SALOMEDS::SObject_var aSO;
-
-  SALOMEDS::SComponent_var father =
-    SALOMEDS::SComponent::_narrow( theStudy->FindComponent( ComponentDataType() ) );
-  SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder(); 
-
-  SALOMEDS::GenericAttribute_var anAttr;
-  SALOMEDS::AttributeName_var    aName;
-  SALOMEDS::AttributePixMap_var  aPixmap;
-  
-  if ( father->_is_nil() ) {
-    SALOME_ModuleCatalog::ModuleCatalog_var aCat =
-      SALOME_ModuleCatalog::ModuleCatalog::_narrow( GetNS()->Resolve("/Kernel/ModulCatalog") );
-    if ( CORBA::is_nil( aCat ) )
-      return aSO._retn();
-
-    SALOME_ModuleCatalog::Acomponent_var   aComp = aCat->GetComponent( ComponentDataType() );
-    if ( CORBA::is_nil( aComp ) )
-      return aSO._retn();
-
-    father  = aStudyBuilder->NewComponent( ComponentDataType() );
-    anAttr  = aStudyBuilder->FindOrCreateAttribute( father, "AttributeName" );
-    aName   = SALOMEDS::AttributeName::_narrow( anAttr );
-    aName   ->SetValue( aComp->componentusername() );
-    anAttr  = aStudyBuilder->FindOrCreateAttribute( father, "AttributePixMap" );
-    aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
-    aPixmap ->SetPixMap( "ICON_OBJBROWSER_SMESH" );
-    aStudyBuilder->DefineComponentInstance( father, SMESH_Gen::_this() );
-  }
-
-  if ( father->_is_nil() )  
-    return aSO._retn();
-
-  SALOMEDS::AttributeIOR_var        anIOR;
-  SALOMEDS::AttributeSelectable_var aSelAttr;
-  TCollection_AsciiString anObjName("obj");
-
-  // Publishing a mesh
-  SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow( theIOR );
-  if( !aMesh->_is_nil() ) {
-    // Find correct free tag
-    long aTag = FindMaxChildTag( father.in() );
-    if ( aTag <= GetAlgorithmsRootTag() )
-      aTag = GetAlgorithmsRootTag() + 1;
-    else
-      aTag++;
-    // Add New Mesh
-    SALOMEDS::SObject_var newMesh = aStudyBuilder->NewObjectToTag( father, aTag );
-    anAttr  = aStudyBuilder->FindOrCreateAttribute( newMesh, "AttributePixMap" );
-    aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
-    aPixmap ->SetPixMap( "ICON_SMESH_TREE_MESH" );
-    anAttr  = aStudyBuilder->FindOrCreateAttribute( newMesh, "AttributeIOR" );
-    anIOR   = SALOMEDS::AttributeIOR::_narrow(anAttr);
-    anIOR   ->SetValue( GetORB()->object_to_string( aMesh ) );
-    aSO     = SALOMEDS::SObject::_narrow( newMesh );
-    anObjName = TCollection_AsciiString( "Mesh" );
-  }
-
-  // Publishing a sub-mesh
-  SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( theIOR );
-  if( aSO->_is_nil() && !aSubMesh->_is_nil() ) {
-    // try to obtain a parent mesh's SObject
-    if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): publishing submesh..." );
-    SALOMEDS::SObject_var aParentSO;
-    SMESH::SMESH_Mesh_var aParentMesh;
-    SMESH_subMesh_i* aServant = dynamic_cast<SMESH_subMesh_i*>( GetServant( aSubMesh ).in() );
-    if ( aServant != NULL ) {
-      aParentMesh = aServant->_mesh_i->_this();
-      if ( !aParentMesh->_is_nil() ) {
-       aParentSO = theStudy->FindObjectIOR( GetORB()->object_to_string( aParentMesh ) );
-      }
-    }
-
-    // Find submesh sub-tree tag
-    if ( !aParentSO->_is_nil() ) {
-      long aRootTag = GetSubMeshOnVertexTag();
-      char* aRootName = "";
-
-      SMESH_Mesh_i* aMeshServant = aServant->_mesh_i;
-      if ( aMeshServant->_mapSubMesh.find( aServant->GetId() ) != aMeshServant->_mapSubMesh.end() ) {
-       if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): local submesh found" )
-       SMESH_subMesh* aLocalSubMesh = aMeshServant->_mapSubMesh[aServant->GetId()];
-       switch ( aLocalSubMesh->GetSubShape().ShapeType() ) {
-       case TopAbs_VERTEX:
-         aRootTag  = GetSubMeshOnVertexTag();
-         aRootName = "SubMeshes on Vertex";
-         break;
-       case TopAbs_EDGE:
-         aRootTag  = GetSubMeshOnEdgeTag();
-         aRootName = "SubMeshes on Edge";
-         break;
-       case TopAbs_WIRE:
-         aRootTag  = GetSubMeshOnWireTag();
-         aRootName = "SubMeshes on Wire";
-         break;
-       case TopAbs_FACE:
-         aRootTag  = GetSubMeshOnFaceTag();
-         aRootName = "SubMeshes on Face";        
-         break;
-       case TopAbs_SHELL:
-         aRootTag  = GetSubMeshOnShellTag();
-         aRootName = "SubMeshes on Shell";       
-         break;
-       case TopAbs_SOLID:
-         aRootTag  = GetSubMeshOnSolidTag();
-         aRootName = "SubMeshes on Solid";
-         break;
-       default:
-         aRootTag  = GetSubMeshOnCompoundTag();
-         aRootName = "SubMeshes on Compound";
-         break;
-       }
-      }
-      else {
-        if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): local submesh NOT found" );
-      }
-
-      // Find or create submesh root
-      SALOMEDS::SObject_var aRootSO;
-      if ( !aParentSO->FindSubObject ( aRootTag, aRootSO ) ) {
-       if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): creating submesh root..." );
-       aRootSO  = aStudyBuilder->NewObjectToTag( aParentSO, aRootTag );
-       anAttr   = aStudyBuilder->FindOrCreateAttribute( aRootSO, "AttributeName" );
-       aName    = SALOMEDS::AttributeName::_narrow( anAttr );
-       aName    ->SetValue( aRootName );
-       anAttr   = aStudyBuilder->FindOrCreateAttribute( aRootSO, "AttributeSelectable" );
-       aSelAttr = SALOMEDS::AttributeSelectable::_narrow( anAttr );
-       aSelAttr ->SetSelectable( false );
-      }
-
-      // Add new submesh to corresponding sub-tree
-      if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): adding submesh to study..." );
-      SALOMEDS::SObject_var newMesh = aStudyBuilder->NewObject( aRootSO );
-      anAttr  = aStudyBuilder->FindOrCreateAttribute( newMesh, "AttributePixMap" );
-      aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
-      aPixmap ->SetPixMap( "ICON_SMESH_TREE_MESH" );
-      anAttr  = aStudyBuilder->FindOrCreateAttribute( newMesh, "AttributeIOR" );
-      anIOR   = SALOMEDS::AttributeIOR::_narrow(anAttr);
-      anIOR   ->SetValue( GetORB()->object_to_string( aSubMesh ) );
-      aSO     = SALOMEDS::SObject::_narrow( newMesh );
-      anObjName = TCollection_AsciiString( "SubMesh" );
-    }
-    else {
-      if(MYDEBUG) SCRUTE( aParentSO->_is_nil() );
-    }
-  }
-
-  // Publishing a hypothesis or algorithm
-  SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow( theIOR );
-  if( aSO->_is_nil() && !aHyp->_is_nil() ) {
-    //Find or Create Hypothesis root
-    SALOMEDS::SObject_var  HypothesisRoot;
-    Standard_Integer aRootTag =
-      SMESH::SMESH_Algo::_narrow( theIOR )->_is_nil() ? GetHypothesisRootTag() : GetAlgorithmsRootTag();
-
-    if ( !father->FindSubObject ( aRootTag, HypothesisRoot ) ) {
-      HypothesisRoot = aStudyBuilder->NewObjectToTag( father, aRootTag );
-      anAttr   = aStudyBuilder->FindOrCreateAttribute( HypothesisRoot, "AttributeName" );
-      aName    = SALOMEDS::AttributeName::_narrow( anAttr );
-      aName    ->SetValue( aRootTag ==  GetHypothesisRootTag()  ? "Hypotheses" : "Algorithms" );
-      anAttr   = aStudyBuilder->FindOrCreateAttribute( HypothesisRoot, "AttributeSelectable" );
-      aSelAttr = SALOMEDS::AttributeSelectable::_narrow( anAttr );
-      aSelAttr ->SetSelectable( false );
-      anAttr   = aStudyBuilder->FindOrCreateAttribute( HypothesisRoot, "AttributePixMap" );
-      aPixmap  = SALOMEDS::AttributePixMap::_narrow( anAttr );
-      aPixmap  ->SetPixMap( aRootTag == GetHypothesisRootTag()  ? "ICON_SMESH_TREE_HYPO" : "ICON_SMESH_TREE_ALGO" );
-    }
-
-    // Add New Hypothesis
-    string aPmName;
-    SALOMEDS::SObject_var newHypo = aStudyBuilder->NewObject( HypothesisRoot );
-    anAttr  = aStudyBuilder->FindOrCreateAttribute( newHypo, "AttributePixMap" );
-    aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
-    aPmName = ( aRootTag == GetHypothesisRootTag()  ? "ICON_SMESH_TREE_HYPO_" : "ICON_SMESH_TREE_ALGO_" );
-    aPmName += aHyp->GetName();
-    aPixmap ->SetPixMap( aPmName.c_str() );
-    anAttr  = aStudyBuilder->FindOrCreateAttribute( newHypo, "AttributeIOR" );
-    anIOR   = SALOMEDS::AttributeIOR::_narrow(anAttr);
-    anIOR   ->SetValue( GetORB()->object_to_string( aHyp ) );
-    aSO     = SALOMEDS::SObject::_narrow( newHypo );
-    anObjName = TCollection_AsciiString( aHyp->GetName() );
-  }
-
-  // Publishing a group
-  SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow(theIOR);
-  if( aSO->_is_nil() && !aGroup->_is_nil() ) {
-    // try to obtain a parent mesh's SObject
-    if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): publishing group..." );
-    SALOMEDS::SObject_var aParentSO;
-    SMESH::SMESH_Mesh_var aParentMesh;
-    SMESH_Group_i* aServant = dynamic_cast<SMESH_Group_i*>( GetServant( aGroup ).in() );
-    if ( aServant != NULL ) {
-      aParentMesh = SMESH::SMESH_Mesh::_narrow( GetPOA()->servant_to_reference( aServant->GetMeshServant() ) );
-      if ( !aParentMesh->_is_nil() ) {
-       if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): publishing group: refernce to mesh is OK" );
-       string anIOR = GetORB()->object_to_string( aParentMesh );
-       if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): publishing group: mesh IOR = "<<anIOR.c_str() );
-       aParentSO = theStudy->FindObjectIOR( anIOR.c_str() );
-      }
-    }
-
-    // Find proper group sub-tree tag
-    if ( !aParentSO->_is_nil() ) {
-      if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): publishing group: parent mesh found" );
-      int aType = (int)aGroup->GetType();
-      const char* aRootNames[] = { "Compound Groups", "Groups of Nodes", "Groups of Edges", "Groups of Faces", "Groups of Volumes" };
-
-      // Currently, groups with heterogenous content are not supported
-      if ( aType != SMESH::ALL ) {
-       if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): publishing group: group type OK" );
-       long aRootTag = GetNodeGroupsTag() + aType - 1;
-
-       // Find or create groups root
-       SALOMEDS::SObject_var aRootSO;
-       if ( !aParentSO->FindSubObject ( aRootTag, aRootSO ) ) {
-         if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): creating groups root..." )
-         aRootSO  = aStudyBuilder->NewObjectToTag( aParentSO, aRootTag );
-         anAttr   = aStudyBuilder->FindOrCreateAttribute( aRootSO, "AttributeName" );
-         aName    = SALOMEDS::AttributeName::_narrow( anAttr );
-         aName    ->SetValue( aRootNames[aType] );
-         anAttr   = aStudyBuilder->FindOrCreateAttribute( aRootSO, "AttributeSelectable" );
-         aSelAttr = SALOMEDS::AttributeSelectable::_narrow( anAttr );
-         aSelAttr ->SetSelectable( false );
-       }
-
-       // Add new group to corresponding sub-tree
-       if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): adding group to study..." )
-       SALOMEDS::SObject_var aGroupSO = aStudyBuilder->NewObject( aRootSO );
-       anAttr  = aStudyBuilder->FindOrCreateAttribute( aGroupSO, "AttributePixMap" );
-       aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
-       aPixmap ->SetPixMap( "ICON_SMESH_TREE_GROUP" );
-       anAttr  = aStudyBuilder->FindOrCreateAttribute( aGroupSO, "AttributeIOR" );
-       anIOR   = SALOMEDS::AttributeIOR::_narrow( anAttr );
-       anIOR   ->SetValue( GetORB()->object_to_string( aGroup ) );
-       aSO     = SALOMEDS::SObject::_narrow( aGroupSO );
-       anObjName = TCollection_AsciiString( "Group" );
-      }
-    }
-  }
-
-  // Setting SObject's name
-  if ( !aSO->_is_nil() ) {
-    if ( strlen( theName ) == 0 ) 
-      anObjName += TCollection_AsciiString( "_" ) + TCollection_AsciiString( aSO->Tag() );
-    else 
-      anObjName = TCollection_AsciiString( (char*)theName );
-    anAttr  = aStudyBuilder->FindOrCreateAttribute( aSO, "AttributeName" );
-    aName   = SALOMEDS::AttributeName::_narrow( anAttr );
-    aName   ->SetValue( anObjName.ToCString() );
-    if(MYDEBUG) MESSAGE ("********** SMESH_Gen_i: \"" << anObjName.ToCString() << "\" PUBLISHED");
+  StudyContext* myStudyContext = GetCurrentStudyContext();
+  if ( myStudyContext && !CORBA::is_nil( theObject )) {
+    string iorString = GetORB()->object_to_string( theObject );
+    return myStudyContext->addObject( iorString );
   }
-
-  if(MYDEBUG) MESSAGE( "********** SMESH_Gen_i::PublishInStudy(): COMPLETED" )
-  return aSO._retn();
+  return 0;
 }
       
 //=============================================================================
index 2a83875dbddabd3baeb64fe984f4768f1a260d6b..a9330165364c232e7c74da62819508ca51d88957 100644 (file)
@@ -138,7 +138,14 @@ public:
   static PortableServer::ServantBase_var GetServant( CORBA::Object_ptr theObject );
   // Get CORBA object corresponding to the SALOMEDS::SObject
   static CORBA::Object_var SObjectToObject( SALOMEDS::SObject_ptr theSObject );
-
+  // Get the SALOMEDS::SObject corresponding to a CORBA object
+  static SALOMEDS::SObject_ptr ObjectToSObject(SALOMEDS::Study_ptr theStudy,
+                                               CORBA::Object_ptr   theObject);
+  // Get GEOM Object correspoding to TopoDS_Shape
+  GEOM::GEOM_Object_ptr ShapeToGeomObject (const TopoDS_Shape& theShape );
+  // Get TopoDS_Shape correspoding to GEOM_Object
+  TopoDS_Shape GeomObjectToShape(GEOM::GEOM_Object_ptr theGeomObject);
+  
   // Default constructor
   SMESH_Gen_i();
   // Standard constructor
@@ -291,9 +298,49 @@ public:
   static long GetFaceGroupsTag();
   static long GetVolumeGroupsTag();
 
+  // publishing methods
+  SALOMEDS::SComponent_ptr PublishComponent(SALOMEDS::Study_ptr theStudy);
+  SALOMEDS::SObject_ptr PublishMesh (SALOMEDS::Study_ptr   theStudy,
+                                     SMESH::SMESH_Mesh_ptr theMesh,
+                                     const char*           theName = 0);
+  SALOMEDS::SObject_ptr PublishHypothesis (SALOMEDS::Study_ptr         theStudy,
+                                           SMESH::SMESH_Hypothesis_ptr theHyp,
+                                           const char*                 theName = 0);
+  SALOMEDS::SObject_ptr PublishSubMesh (SALOMEDS::Study_ptr      theStudy,
+                                        SMESH::SMESH_Mesh_ptr    theMesh,
+                                        SMESH::SMESH_subMesh_ptr theSubMesh,
+                                        GEOM::GEOM_Object_ptr    theShapeObject,
+                                       const char*              theName = 0);
+  SALOMEDS::SObject_ptr PublishGroup (SALOMEDS::Study_ptr    theStudy,
+                                      SMESH::SMESH_Mesh_ptr  theMesh,
+                                      SMESH::SMESH_GroupBase_ptr theGroup,
+                                      GEOM::GEOM_Object_ptr  theShapeObject,
+                                      const char*            theName = 0);
+  bool AddHypothesisToShape(SALOMEDS::Study_ptr         theStudy,
+                            SMESH::SMESH_Mesh_ptr       theMesh,
+                            GEOM::GEOM_Object_ptr       theShapeObject,
+                            SMESH::SMESH_Hypothesis_ptr theHyp);
+  bool RemoveHypothesisFromShape(SALOMEDS::Study_ptr         theStudy,
+                                 SMESH::SMESH_Mesh_ptr       theMesh,
+                                 GEOM::GEOM_Object_ptr       theShapeObject,
+                                 SMESH::SMESH_Hypothesis_ptr theHyp);
+  SALOMEDS::SObject_ptr GetMeshOrSubmeshByShape (SALOMEDS::Study_ptr   theStudy,
+                                                 SMESH::SMESH_Mesh_ptr theMesh,
+                                                 GEOM::GEOM_Object_ptr theShape);
+  static void SetName(SALOMEDS::SObject_ptr theSObject,
+                      const char*           theName,
+                      const char*           theDefaultName = 0);
+
   //  Get study context
   StudyContext* GetCurrentStudyContext();
-  
+
+  // Register an object in a StudyContext; return object id
+  int RegisterObject(CORBA::Object_ptr theObject);
+
+  // Get current study ID
+  int GetCurrentStudyID()
+  { return myCurrentStudy->_is_nil() ? -1 : myCurrentStudy->StudyId(); }
 private:
   // Create hypothesis of given type
   SMESH::SMESH_Hypothesis_ptr createHypothesis( const char* theHypName,
diff --git a/src/SMESH_I/SMESH_Gen_i_1.cxx b/src/SMESH_I/SMESH_Gen_i_1.cxx
new file mode 100644 (file)
index 0000000..dd9c389
--- /dev/null
@@ -0,0 +1,850 @@
+//  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+//
+//
+// File      : SMESH_Gen_i_1.cxx
+// Created   : Thu Oct 21 17:24:06 2004
+// Author    : Edward AGAPOV (eap)
+// Module    : SMESH
+// $Header: 
+
+#include "SMESH_Gen_i.hxx"
+
+#include "SMESH_Mesh_i.hxx"
+#include "SMESH_Hypothesis_i.hxx"
+#include "SMESH_Algo_i.hxx"
+#include "SMESH_Group_i.hxx"
+
+#include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog)
+
+#include "utilities.h"
+#include "Utils_ExceptHandlers.hxx"
+
+#include <TCollection_AsciiString.hxx>
+
+#ifdef _DEBUG_
+static int MYDEBUG = 0;
+#else
+static int MYDEBUG = 0;
+#endif
+
+// Tags definition ===========================================================
+// Top level
+long Tag_HypothesisRoot         = 1; // hypotheses root
+long Tag_AlgorithmsRoot         = 2; // algorithms root
+// Mesh/Submesh
+long Tag_RefOnShape             = 1; // references to shape
+long Tag_RefOnAppliedHypothesis = 2; // applied hypotheses root
+long Tag_RefOnAppliedAlgorithms = 3; // applied algorithms root
+// Mesh only
+long Tag_SubMeshOnVertex        = 4; // sub-meshes roots by type
+long Tag_SubMeshOnEdge          = 5; // ...
+long Tag_SubMeshOnWire          = 6; // ...
+long Tag_SubMeshOnFace          = 7; // ...
+long Tag_SubMeshOnShell         = 8; // ...
+long Tag_SubMeshOnSolid         = 9; // ...
+long Tag_SubMeshOnCompound      = 10; // ...
+long Tag_NodeGroups             = 11; // Group roots by type
+long Tag_EdgeGroups             = 12; // ...
+long Tag_FaceGroups             = 13; // ...
+long Tag_VolumeGroups           = 14; // ...
+// ===========================================================================
+
+//=============================================================================
+/*!
+ *  Get...Tag [ static ]
+ *
+ *  Methods which determine SMESH data model structure
+ */
+//=============================================================================
+
+long SMESH_Gen_i::GetHypothesisRootTag()
+{
+  return Tag_HypothesisRoot;
+}
+
+long SMESH_Gen_i::GetAlgorithmsRootTag()
+{
+  return Tag_AlgorithmsRoot;
+}
+
+long SMESH_Gen_i::GetRefOnShapeTag()
+{
+  return Tag_RefOnShape;
+}
+
+long SMESH_Gen_i::GetRefOnAppliedHypothesisTag()
+{
+  return Tag_RefOnAppliedHypothesis;
+}
+
+long SMESH_Gen_i::GetRefOnAppliedAlgorithmsTag()
+{
+  return Tag_RefOnAppliedAlgorithms;
+}
+
+long SMESH_Gen_i::GetSubMeshOnVertexTag()
+{
+  return Tag_SubMeshOnVertex;
+}
+
+long SMESH_Gen_i::GetSubMeshOnEdgeTag()
+{
+  return Tag_SubMeshOnEdge;
+}
+
+long SMESH_Gen_i::GetSubMeshOnFaceTag()
+{
+  return Tag_SubMeshOnFace;
+}
+
+long SMESH_Gen_i::GetSubMeshOnSolidTag()
+{
+  return Tag_SubMeshOnSolid;
+}
+
+long SMESH_Gen_i::GetSubMeshOnCompoundTag()
+{
+  return Tag_SubMeshOnCompound;
+}
+
+long SMESH_Gen_i::GetSubMeshOnWireTag()
+{
+  return Tag_SubMeshOnWire;
+}
+
+long SMESH_Gen_i::GetSubMeshOnShellTag()
+{
+  return Tag_SubMeshOnShell;
+}
+
+long SMESH_Gen_i::GetNodeGroupsTag()
+{
+  return Tag_NodeGroups;
+}
+
+long SMESH_Gen_i::GetEdgeGroupsTag()
+{
+  return Tag_EdgeGroups;
+}
+
+long SMESH_Gen_i::GetFaceGroupsTag()
+{
+  return Tag_FaceGroups;
+}
+
+long SMESH_Gen_i::GetVolumeGroupsTag()
+{
+  return Tag_VolumeGroups;
+}
+
+//=============================================================================
+/*!
+ *  SMESH_Gen_i::CanPublishInStudy
+ *
+ *  Returns true if object can be published in the study
+ */
+//=============================================================================
+
+bool SMESH_Gen_i::CanPublishInStudy(CORBA::Object_ptr theIOR)
+{
+  if(MYDEBUG) MESSAGE("CanPublishInStudy");
+  SMESH::SMESH_Mesh_var aMesh       = SMESH::SMESH_Mesh::_narrow(theIOR);
+  if( !aMesh->_is_nil() )
+    return true;
+
+  SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow(theIOR);
+  if( !aSubMesh->_is_nil() )
+    return true;
+
+  SMESH::SMESH_Hypothesis_var aHyp  = SMESH::SMESH_Hypothesis::_narrow(theIOR);
+  if( !aHyp->_is_nil() )
+    return true;
+
+  SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(theIOR);
+  if( !aGroup->_is_nil() )
+    return true;
+
+  if(MYDEBUG) MESSAGE("CanPublishInStudy--CANT");
+  return false;
+}
+
+//=======================================================================
+//function : ObjectToSObject
+//purpose  : 
+//=======================================================================
+
+SALOMEDS::SObject_ptr SMESH_Gen_i::ObjectToSObject(SALOMEDS::Study_ptr theStudy,
+                                                   CORBA::Object_ptr   theObject)
+{
+  SALOMEDS::SObject_var aSO;
+  if ( !CORBA::is_nil( theStudy ) && !CORBA::is_nil( theObject ))
+    aSO = theStudy->FindObjectIOR( SMESH_Gen_i::GetORB()->object_to_string( theObject ) );
+  return aSO._retn();
+}
+
+//=======================================================================
+//function : objectToServant
+//purpose  : 
+//=======================================================================
+
+template<typename T> static inline T* objectToServant( CORBA::Object_ptr theIOR )
+{
+  return dynamic_cast<T*>( SMESH_Gen_i::GetServant( theIOR ).in() );
+}
+
+//=======================================================================
+//function : ShapeToGeomObject
+//purpose  : 
+//=======================================================================
+
+GEOM::GEOM_Object_ptr SMESH_Gen_i::ShapeToGeomObject (const TopoDS_Shape& theShape )
+{
+  GEOM::GEOM_Object_var aShapeObj;
+  if ( !theShape.IsNull() ) {
+    GEOM_Client* aClient = GetShapeReader();
+    TCollection_AsciiString IOR;
+    if ( aClient && aClient->Find( theShape, IOR ))
+      aShapeObj = GEOM::GEOM_Object::_narrow
+        ( GetORB()->string_to_object( IOR.ToCString() ) );
+  }
+  return aShapeObj._retn();
+}
+
+//=======================================================================
+//function : GeomObjectToShape
+//purpose  : 
+//=======================================================================
+
+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();
+    if ( aClient && !aGeomEngine->_is_nil () )
+      S = aClient->GetShape( aGeomEngine, theGeomObject );
+  }
+  return S;
+}
+
+//=======================================================================
+//function : publish
+//purpose  : 
+//=======================================================================
+
+static SALOMEDS::SObject_ptr publish(SALOMEDS::Study_ptr   theStudy,
+                                     CORBA::Object_ptr     theIOR,
+                                     SALOMEDS::SObject_ptr theFatherObject,
+                                     const int             theTag = 0,
+                                     const char*           thePixMap = 0,
+                                     const bool            theSelectable = true)
+{
+  SALOMEDS::SObject_var SO = SMESH_Gen_i::ObjectToSObject( theStudy, theIOR );
+  SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder();
+  if ( SO->_is_nil() ) {
+    if ( theTag == 0 )
+      SO = aStudyBuilder->NewObject( theFatherObject );
+    else if ( !theFatherObject->FindSubObject( theTag, SO ))
+      SO = aStudyBuilder->NewObjectToTag( theFatherObject, theTag );
+  }
+
+  SALOMEDS::GenericAttribute_var anAttr;
+  if ( !CORBA::is_nil( theIOR )) {
+    anAttr = aStudyBuilder->FindOrCreateAttribute( SO, "AttributeIOR" );
+    SALOMEDS::AttributeIOR::_narrow(anAttr)->SetValue
+      ( SMESH_Gen_i::GetORB()->object_to_string( theIOR ) );
+  }
+  if ( thePixMap ) {
+    anAttr  = aStudyBuilder->FindOrCreateAttribute( SO, "AttributePixMap" );
+    SALOMEDS::AttributePixMap::_narrow( anAttr )->SetPixMap( thePixMap );
+  }
+  if ( !theSelectable ) {
+    anAttr   = aStudyBuilder->FindOrCreateAttribute( SO, "AttributeSelectable" );
+    SALOMEDS::AttributeSelectable::_narrow( anAttr )->SetSelectable( false );
+  }
+  return SO._retn();
+}
+
+//=======================================================================
+//function : setName
+//purpose  : 
+//=======================================================================
+
+void SMESH_Gen_i::SetName(SALOMEDS::SObject_ptr theSObject,
+                          const char*           theName,
+                          const char*           theDefaultName)
+{
+  if ( !theSObject->_is_nil() ) {
+    SALOMEDS::StudyBuilder_var aStudyBuilder = theSObject->GetStudy()->NewBuilder();
+    SALOMEDS::GenericAttribute_var anAttr =
+      aStudyBuilder->FindOrCreateAttribute( theSObject, "AttributeName" );
+    SALOMEDS::AttributeName_var aNameAttr = SALOMEDS::AttributeName::_narrow( anAttr );
+    if ( theName && strlen( theName ) != 0 )
+      aNameAttr->SetValue( theName );
+    else {
+      CORBA::String_var curName = CORBA::string_dup( aNameAttr->Value() );
+      if ( strlen( curName ) == 0 ) {
+        TCollection_AsciiString aName( (char*) theDefaultName );
+        aName += TCollection_AsciiString("_") + TCollection_AsciiString( theSObject->Tag() );
+        aNameAttr->SetValue( aName.ToCString() );
+      }
+    }
+  }
+}
+
+//=======================================================================
+//function : addReference
+//purpose  : 
+//=======================================================================
+
+static void addReference (SALOMEDS::Study_ptr   theStudy,
+                          SALOMEDS::SObject_ptr theSObject,
+                          CORBA::Object_ptr     theToObject,
+                          int                   theTag = 0)
+{
+  SALOMEDS::SObject_var aToObjSO = SMESH_Gen_i::ObjectToSObject( theStudy, theToObject );
+  if ( !aToObjSO->_is_nil() && !theSObject->_is_nil() ) {
+    SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder();
+    SALOMEDS::SObject_var aReferenceSO;
+    if ( !theTag ) {
+      bool isReferred = false;
+      SALOMEDS::ChildIterator_var anIter = theStudy->NewChildIterator( theSObject );
+      for ( ; !isReferred && anIter->More(); anIter->Next() ) {
+        if ( anIter->Value()->ReferencedObject( aReferenceSO ) &&
+            strcmp( aReferenceSO->GetID(), aToObjSO->GetID() ) == 0 )
+          isReferred = true;
+      }
+      if ( !isReferred ) {
+        aReferenceSO = aStudyBuilder->NewObject( theSObject );
+        aStudyBuilder->Addreference( aReferenceSO, aToObjSO );
+      }
+    }
+    else {
+      if ( !theSObject->FindSubObject( theTag, aReferenceSO ))
+        aReferenceSO = aStudyBuilder->NewObjectToTag( theSObject, theTag );
+      aStudyBuilder->Addreference( aReferenceSO, aToObjSO );
+    }
+  }
+}
+
+//=============================================================================
+/*!
+ *  SMESH_Gen_i::PublishInStudy
+ *
+ *  Publish object in the study
+ */
+//=============================================================================
+
+SALOMEDS::SObject_ptr SMESH_Gen_i::PublishInStudy(SALOMEDS::Study_ptr   theStudy,
+                                                 SALOMEDS::SObject_ptr theSObject,
+                                                 CORBA::Object_ptr     theIOR,
+                                                 const char*           theName)
+     throw (SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  SALOMEDS::SObject_var aSO;
+  if ( CORBA::is_nil( theStudy ) || CORBA::is_nil( theIOR ))
+    return aSO._retn();
+  if(MYDEBUG) MESSAGE("PublishInStudy");
+
+  // Publishing a mesh
+  SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow( theIOR );
+  if( !aMesh->_is_nil() )
+    aSO = PublishMesh( theStudy, aMesh, theName );
+
+  // Publishing a sub-mesh
+  SMESH::SMESH_subMesh_var aSubMesh = SMESH::SMESH_subMesh::_narrow( theIOR );
+  if( aSO->_is_nil() && !aSubMesh->_is_nil() ) {
+    GEOM::GEOM_Object_var aShapeObject = aSubMesh->GetSubShape();
+    aMesh = aSubMesh->GetFather();
+    aSO = PublishSubMesh( theStudy, aMesh, aSubMesh, aShapeObject, theName );
+  }
+
+  // Publishing a hypothesis or algorithm
+  SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow( theIOR );
+  if ( aSO->_is_nil() && !aHyp->_is_nil() )
+    aSO = PublishHypothesis( theStudy, aHyp );
+
+  // Publishing a group
+  SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow(theIOR);
+  if ( aSO->_is_nil() && !aGroup->_is_nil() ) {
+    GEOM::GEOM_Object_var aShapeObject;
+    aMesh = aGroup->GetMesh();
+    aSO = PublishGroup( theStudy, aMesh, aGroup, aShapeObject, theName );
+  }
+  if(MYDEBUG) MESSAGE("PublishInStudy_END");
+
+  return aSO._retn();
+}
+
+//=======================================================================
+//function : PublishComponent
+//purpose  : 
+//=======================================================================
+
+SALOMEDS::SComponent_ptr SMESH_Gen_i::PublishComponent(SALOMEDS::Study_ptr theStudy)
+{
+  if ( CORBA::is_nil( theStudy ))
+    return SALOMEDS::SComponent::_nil();
+  if(MYDEBUG) MESSAGE("PublishComponent");
+
+  SALOMEDS::SComponent_var father =
+    SALOMEDS::SComponent::_narrow( theStudy->FindComponent( ComponentDataType() ) );
+  if ( !CORBA::is_nil( father ) )
+    return father._retn();
+
+  SALOME_ModuleCatalog::ModuleCatalog_var aCat =
+    SALOME_ModuleCatalog::ModuleCatalog::_narrow( GetNS()->Resolve("/Kernel/ModulCatalog") );
+  if ( CORBA::is_nil( aCat ) )
+    return father._retn();
+
+  SALOME_ModuleCatalog::Acomponent_var aComp = aCat->GetComponent( ComponentDataType() );
+  if ( CORBA::is_nil( aComp ) )
+    return father._retn();
+
+  SALOMEDS::StudyBuilder_var     aStudyBuilder = theStudy->NewBuilder(); 
+  SALOMEDS::GenericAttribute_var anAttr;
+  SALOMEDS::AttributePixMap_var  aPixmap;
+
+  father  = aStudyBuilder->NewComponent( ComponentDataType() );
+  aStudyBuilder->DefineComponentInstance( father, SMESH_Gen::_this() );
+  anAttr  = aStudyBuilder->FindOrCreateAttribute( father, "AttributePixMap" );
+  aPixmap = SALOMEDS::AttributePixMap::_narrow( anAttr );
+  aPixmap ->SetPixMap( "ICON_OBJBROWSER_SMESH" );
+  SetName( father, aComp->componentusername(), "MESH" );
+  if(MYDEBUG) MESSAGE("PublishComponent--END");
+
+  return father._retn();
+}
+
+//=============================================================================
+/*!
+ *  findMaxChildTag [ static internal ]
+ *
+ *  Finds maximum child tag for the given object
+ */
+//=============================================================================
+
+static long findMaxChildTag( SALOMEDS::SObject_ptr theSObject )
+{
+  long aTag = 0;
+  if ( !theSObject->_is_nil() ) {
+    SALOMEDS::Study_var aStudy = theSObject->GetStudy();
+    if ( !aStudy->_is_nil() ) {
+      SALOMEDS::ChildIterator_var anIter = aStudy->NewChildIterator( theSObject );
+      for ( ; anIter->More(); anIter->Next() ) {
+       long nTag = anIter->Value()->Tag();
+       if ( nTag > aTag )
+         aTag = nTag;
+      }
+    }
+  }
+  return aTag;
+}
+
+//=======================================================================
+//function : PublishMesh
+//purpose  : 
+//=======================================================================
+
+SALOMEDS::SObject_ptr SMESH_Gen_i::PublishMesh (SALOMEDS::Study_ptr   theStudy,
+                                                SMESH::SMESH_Mesh_ptr theMesh,
+                                                const char*           theName)
+{
+  if ( CORBA::is_nil( theStudy ) ||
+       CORBA::is_nil( theMesh ))
+    return SALOMEDS::SComponent::_nil();
+  if(MYDEBUG) MESSAGE("PublishMesh--IN");
+
+  // find or publish a mesh
+
+  SALOMEDS::SObject_var aMeshSO = ObjectToSObject( theStudy, theMesh );
+  if ( aMeshSO->_is_nil() )
+  {
+    SALOMEDS::SComponent_var father = PublishComponent( theStudy );
+    if ( father->_is_nil() )
+      return aMeshSO._retn();
+
+    // Find correct free tag
+    long aTag = findMaxChildTag( father.in() );
+    if ( aTag <= GetAlgorithmsRootTag() )
+      aTag = GetAlgorithmsRootTag() + 1;
+    else
+      aTag++;
+
+    aMeshSO = publish (theStudy, theMesh, father, aTag, "ICON_SMESH_TREE_MESH" );
+    if ( aMeshSO->_is_nil() )
+      return aMeshSO._retn();
+  }
+  SetName( aMeshSO, theName, "Mesh" );
+
+  // Add shape reference
+
+  GEOM::GEOM_Object_var aShapeObject = theMesh->GetShapeToMesh();
+  if ( !CORBA::is_nil( aShapeObject )) {
+    addReference( theStudy, aMeshSO, aShapeObject, GetRefOnShapeTag() );
+
+    // Publish global hypotheses
+
+    SMESH::ListOfHypothesis * hypList = theMesh->GetHypothesisList( aShapeObject );
+    if ( hypList )
+      for ( int i = 0; i < hypList->length(); i++ ) {
+        SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow( (*hypList)[ i ]);
+        PublishHypothesis( theStudy, aHyp );
+        AddHypothesisToShape( theStudy, theMesh, aShapeObject, aHyp );
+      }
+  }
+
+  // Publish submeshes
+
+  SMESH_Mesh_i* mesh_i = objectToServant<SMESH_Mesh_i>( theMesh );
+  if ( !mesh_i )
+    return aMeshSO._retn();
+  map<int, SMESH_subMesh_i*>& subMap = mesh_i->_mapSubMesh_i;
+  map<int, SMESH_subMesh_i*>::iterator subIt = subMap.begin();
+  for ( ; subIt != subMap.end(); subIt++ ) {
+    SMESH::SMESH_subMesh_ptr aSubMesh = (*subIt).second->_this();
+    if ( !CORBA::is_nil( aSubMesh )) {
+      aShapeObject = aSubMesh->GetSubShape();
+      PublishSubMesh( theStudy, theMesh, aSubMesh, aShapeObject );
+    }
+  }
+
+  // Publish groups
+  const map<int, SMESH::SMESH_GroupBase_ptr>& grMap = mesh_i->getGroups();
+  map<int, SMESH::SMESH_GroupBase_ptr>::const_iterator it = grMap.begin();
+  for ( ; it != grMap.end(); it++ )
+  {
+    SMESH::SMESH_GroupBase_ptr aGroup = (*it).second;
+    if ( !aGroup->_is_nil() ) {
+      GEOM::GEOM_Object_var  aShapeObj;
+      SMESH::SMESH_GroupOnGeom_var aGeomGroup =
+        SMESH::SMESH_GroupOnGeom::_narrow( aGroup );
+      if ( !aGeomGroup->_is_nil() )
+        aShapeObj = aGeomGroup->GetShape();
+      PublishGroup( theStudy, theMesh, aGroup, aShapeObj );
+    }
+  }
+
+  if(MYDEBUG) MESSAGE("PublishMesh_END");
+  return aMeshSO._retn();
+}
+
+//=======================================================================
+//function : PublishSubMesh
+//purpose  : 
+//=======================================================================
+
+SALOMEDS::SObject_ptr SMESH_Gen_i::PublishSubMesh (SALOMEDS::Study_ptr      theStudy,
+                                                   SMESH::SMESH_Mesh_ptr    theMesh,
+                                                   SMESH::SMESH_subMesh_ptr theSubMesh,
+                                                   GEOM::GEOM_Object_ptr    theShapeObject,
+                                                   const char*              theName)
+{
+  if (theStudy->_is_nil() || theMesh->_is_nil() ||
+      theSubMesh->_is_nil() || theShapeObject->_is_nil() )
+    return SALOMEDS::SObject::_nil();
+
+  SALOMEDS::SObject_var aSubMeshSO = ObjectToSObject( theStudy, theSubMesh );
+  if ( aSubMeshSO->_is_nil() )
+  {
+    SALOMEDS::SObject_var aMeshSO = ObjectToSObject( theStudy, theMesh );
+    if ( aMeshSO->_is_nil() ) {
+      aMeshSO = PublishMesh( theStudy, theMesh );
+      if ( aMeshSO->_is_nil())
+        return SALOMEDS::SObject::_nil();
+    }
+    // Find submesh sub-tree tag
+    long aRootTag;
+    char* aRootName = "";
+    switch ( theShapeObject->GetShapeType() ) {
+    case GEOM::VERTEX:
+      aRootTag  = GetSubMeshOnVertexTag();
+      aRootName = "SubMeshes on Vertex";
+      break;
+    case GEOM::EDGE:
+      aRootTag  = GetSubMeshOnEdgeTag();
+      aRootName = "SubMeshes on Edge";
+      break;
+    case GEOM::WIRE:
+      aRootTag  = GetSubMeshOnWireTag();
+      aRootName = "SubMeshes on Wire";
+      break;
+    case GEOM::FACE:
+      aRootTag  = GetSubMeshOnFaceTag();
+      aRootName = "SubMeshes on Face";    
+      break;
+    case GEOM::SHELL:
+      aRootTag  = GetSubMeshOnShellTag();
+      aRootName = "SubMeshes on Shell";   
+      break;
+    case GEOM::SOLID:
+      aRootTag  = GetSubMeshOnSolidTag();
+      aRootName = "SubMeshes on Solid";
+      break;
+    default:
+      aRootTag  = GetSubMeshOnCompoundTag();
+      aRootName = "SubMeshes on Compound";
+      break;
+    }
+
+    // Find or create submesh root
+    SALOMEDS::SObject_var aRootSO = publish (theStudy, CORBA::Object::_nil(),
+                                             aMeshSO, aRootTag, 0, false );
+    SetName( aRootSO, aRootName );
+
+    // Add new submesh to corresponding sub-tree
+    aSubMeshSO = publish (theStudy, theSubMesh, aRootSO, 0, "ICON_SMESH_TREE_MESH");
+    if ( aSubMeshSO->_is_nil() )
+      return aSubMeshSO._retn();
+  }
+  SetName( aSubMeshSO, theName, "SubMesh" );
+
+  // Add reference to theShapeObject
+
+  addReference( theStudy, aSubMeshSO, theShapeObject, 1 );
+
+  // Publish hypothesis
+
+  SMESH::ListOfHypothesis * hypList = theMesh->GetHypothesisList( theShapeObject );
+  if ( hypList )
+    for ( int i = 0; i < hypList->length(); i++ ) {
+      SMESH::SMESH_Hypothesis_var aHyp = SMESH::SMESH_Hypothesis::_narrow( (*hypList)[ i ]);
+      PublishHypothesis( theStudy, aHyp );
+      AddHypothesisToShape( theStudy, theMesh, theShapeObject, aHyp );
+    }
+
+  return aSubMeshSO._retn();
+}
+
+//=======================================================================
+//function : PublishGroup
+//purpose  : 
+//=======================================================================
+
+SALOMEDS::SObject_ptr SMESH_Gen_i::PublishGroup (SALOMEDS::Study_ptr    theStudy,
+                                                 SMESH::SMESH_Mesh_ptr  theMesh,
+                                                 SMESH::SMESH_GroupBase_ptr theGroup,
+                                                 GEOM::GEOM_Object_ptr  theShapeObject,
+                                                 const char*            theName)
+{
+  if (theStudy->_is_nil() || theMesh->_is_nil() || theGroup->_is_nil() )
+    return SALOMEDS::SObject::_nil();
+
+  SALOMEDS::SObject_var aGroupSO = ObjectToSObject( theStudy, theGroup );
+  if ( aGroupSO->_is_nil() )
+  {
+    SALOMEDS::SObject_var aMeshSO = ObjectToSObject( theStudy, theMesh );
+    if ( aMeshSO->_is_nil() ) {
+      aMeshSO = PublishInStudy( theStudy, SALOMEDS::SObject::_nil(), theMesh, "");
+      if ( aMeshSO->_is_nil())
+        return SALOMEDS::SObject::_nil();
+    }
+    int aType = (int)theGroup->GetType();
+    const char* aRootNames[] = {
+      "Compound Groups", "Groups of Nodes",
+      "Groups of Edges", "Groups of Faces", "Groups of Volumes" };
+
+    // Currently, groups with heterogenous content are not supported
+    if ( aType != SMESH::ALL ) {
+      long aRootTag = GetNodeGroupsTag() + aType - 1;
+
+      // Find or create groups root
+      SALOMEDS::SObject_var aRootSO = publish (theStudy, CORBA::Object::_nil(),
+                                               aMeshSO, aRootTag, 0, false );
+      if ( aType < 5 )
+        SetName( aRootSO, aRootNames[aType] );
+
+      // Add new group to corresponding sub-tree
+      aGroupSO = publish (theStudy, theGroup, aRootSO, 0, "ICON_SMESH_TREE_GROUP" );
+    }
+    if ( aGroupSO->_is_nil() )
+      return aGroupSO._retn();
+  }
+
+  SetName( aGroupSO, theName, "Group" );
+
+  //Add reference to geometry
+  if ( !theShapeObject->_is_nil() )
+    addReference( theStudy, aGroupSO, theShapeObject, 1 );
+
+  return aGroupSO._retn();
+}
+
+//=======================================================================
+//function : PublishHypothesis
+//purpose  : 
+//=======================================================================
+
+SALOMEDS::SObject_ptr
+  SMESH_Gen_i::PublishHypothesis (SALOMEDS::Study_ptr         theStudy,
+                                  SMESH::SMESH_Hypothesis_ptr theHyp,
+                                  const char*                 theName)
+{
+  if(MYDEBUG) MESSAGE("PublishHypothesis")
+  if (theStudy->_is_nil() || theHyp->_is_nil())
+    return SALOMEDS::SObject::_nil();
+
+  SALOMEDS::SObject_var aHypSO = ObjectToSObject( theStudy, theHyp );
+  if ( aHypSO->_is_nil() )
+  {
+    SALOMEDS::SComponent_var father = PublishComponent( theStudy );
+    if ( father->_is_nil() )
+      return aHypSO._retn();
+
+    //Find or Create Hypothesis root
+    bool isAlgo = ( !SMESH::SMESH_Algo::_narrow( theHyp )->_is_nil() );
+    int aRootTag = isAlgo ? GetAlgorithmsRootTag() : GetHypothesisRootTag();
+    SALOMEDS::SObject_var aRootSO =
+      publish (theStudy, CORBA::Object::_nil(),father, aRootTag,
+               isAlgo ? "ICON_SMESH_TREE_ALGO" : "ICON_SMESH_TREE_HYPO", false);
+    SetName( aRootSO, isAlgo ?  "Algorithms" : "Hypotheses" );
+
+    // Add New Hypothesis
+    string aPmName = isAlgo ? "ICON_SMESH_TREE_ALGO_" : "ICON_SMESH_TREE_HYPO_";
+    aPmName += theHyp->GetName();
+    aHypSO = publish( theStudy, theHyp, aRootSO, 0, aPmName.c_str() );
+  }
+
+  if ( !aHypSO->_is_nil() ) {
+    CORBA::String_var aHypName = CORBA::string_dup( theHyp->GetName() );
+    SetName( aHypSO, theName, aHypName );
+  }
+
+  if(MYDEBUG) MESSAGE("PublishHypothesis--END")
+  return aHypSO._retn();
+}
+
+//=======================================================================
+//function : GetMeshOrSubmeshByShape
+//purpose  : 
+//=======================================================================
+
+SALOMEDS::SObject_ptr
+  SMESH_Gen_i::GetMeshOrSubmeshByShape (SALOMEDS::Study_ptr   theStudy,
+                                        SMESH::SMESH_Mesh_ptr theMesh,
+                                        GEOM::GEOM_Object_ptr theShape)
+{
+  if(MYDEBUG) MESSAGE("GetMeshOrSubmeshByShape")
+  SALOMEDS::SObject_var aMeshOrSubMesh;
+  if ( theShape->_is_nil() || theMesh->_is_nil() )
+    return aMeshOrSubMesh._retn();
+
+  TopoDS_Shape aShape = GeomObjectToShape( theShape );
+  SMESH_Mesh_i* mesh_i = objectToServant<SMESH_Mesh_i>( theMesh );
+
+  if ( !aShape.IsNull() && mesh_i && mesh_i->GetImpl().GetMeshDS() ) {
+    SMESHDS_Mesh* meshDS = mesh_i->GetImpl().GetMeshDS();
+    if ( aShape.IsSame( meshDS->ShapeToMesh() ))
+      aMeshOrSubMesh = ObjectToSObject( theStudy, theMesh );
+    else {
+      int shapeID = meshDS->ShapeToIndex( aShape );
+      SMESH::SMESH_subMesh_var aSubMesh = mesh_i->getSubMesh(shapeID);
+      if ( !aSubMesh->_is_nil() )
+        aMeshOrSubMesh = ObjectToSObject( theStudy, aSubMesh );
+    }
+  }
+  if(MYDEBUG) MESSAGE("GetMeshOrSubmeshByShape--END")
+  return aMeshOrSubMesh._retn();
+}
+
+//=======================================================================
+//function : AddHypothesisToShape
+//purpose  : 
+//=======================================================================
+
+bool SMESH_Gen_i::AddHypothesisToShape(SALOMEDS::Study_ptr         theStudy,
+                                       SMESH::SMESH_Mesh_ptr       theMesh,
+                                       GEOM::GEOM_Object_ptr       theShape,
+                                       SMESH::SMESH_Hypothesis_ptr theHyp)
+{
+  if(MYDEBUG) MESSAGE("AddHypothesisToShape")
+  if (theStudy->_is_nil() || theMesh->_is_nil() ||
+      theHyp->_is_nil() || theShape->_is_nil() )
+    return false;
+
+  SALOMEDS::SObject_var aMeshSO = ObjectToSObject( theStudy, theMesh );
+  if ( aMeshSO->_is_nil() )
+    aMeshSO = PublishMesh( theStudy, theMesh );
+  SALOMEDS::SObject_var aHypSO = PublishHypothesis( theStudy, theHyp );
+  if ( aMeshSO->_is_nil() || aHypSO->_is_nil())
+    return false;
+
+  // Find a mesh or submesh refering to theShape
+  SALOMEDS::SObject_var aMeshOrSubMesh =
+    GetMeshOrSubmeshByShape( theStudy, theMesh, theShape );
+  if ( aMeshOrSubMesh->_is_nil() )
+    return false;
+
+  //Find or Create Applied Hypothesis root
+  bool aIsAlgo = !SMESH::SMESH_Algo::_narrow( theHyp )->_is_nil();
+  SALOMEDS::SObject_var AHR =
+    publish (theStudy, CORBA::Object::_nil(), aMeshOrSubMesh,
+             aIsAlgo ? GetRefOnAppliedAlgorithmsTag() : GetRefOnAppliedHypothesisTag(),
+             aIsAlgo ? "ICON_SMESH_TREE_ALGO" : "ICON_SMESH_TREE_HYPO", false);
+  SetName( AHR, aIsAlgo ? "Applied algorithms" : "Applied hypotheses" );
+  if ( AHR->_is_nil() )
+    return false;
+
+  addReference( theStudy, AHR, theHyp );
+  if(MYDEBUG) MESSAGE("AddHypothesisToShape--END")
+  return true;
+}
+
+//=======================================================================
+//function : RemoveHypothesisFromShape
+//purpose  : 
+//=======================================================================
+
+bool SMESH_Gen_i::RemoveHypothesisFromShape(SALOMEDS::Study_ptr         theStudy,
+                                            SMESH::SMESH_Mesh_ptr       theMesh,
+                                            GEOM::GEOM_Object_ptr       theShape,
+                                            SMESH::SMESH_Hypothesis_ptr theHyp)
+{
+  if (theStudy->_is_nil() || theMesh->_is_nil() ||
+      theHyp->_is_nil() || theShape->_is_nil() )
+    return false;
+
+  SALOMEDS::SObject_var aHypSO = ObjectToSObject( theStudy, theHyp );
+  if ( aHypSO->_is_nil() )
+    return false;
+
+  // Find a mesh or submesh refering to theShape
+  SALOMEDS::SObject_var aMeshOrSubMesh =
+    GetMeshOrSubmeshByShape( theStudy, theMesh, theShape );
+  if ( aMeshOrSubMesh->_is_nil() )
+    return false;
+
+  // Find and remove a reference to aHypSO
+  SALOMEDS::SObject_var aRef, anObj;
+  CORBA::String_var     anID = CORBA::string_dup( aHypSO->GetID() );
+  SALOMEDS::ChildIterator_var it = theStudy->NewChildIterator( aMeshOrSubMesh );
+  for ( it->InitEx( true ); it->More(); it->Next() ) {
+    anObj = it->Value();
+    if (anObj->ReferencedObject( aRef ) && strcmp( aRef->GetID(), anID ) == 0 ) {
+      theStudy->NewBuilder()->RemoveObject( anObj );
+      break;
+    }
+  }
+  return true;
+}
+
index 81a4951376d511581ea477481360b89918de73bc..11dbe143b70ec28bce2ebffc32fb9f06eb76f37f 100644 (file)
 //  Module : SMESH
 //  $Header$
 
+
 #include "SMESH_Group_i.hxx"
 #include "SMESH_Mesh_i.hxx"
 #include "SMESH_Gen_i.hxx"
-#include <SMESH_Group.hxx>
-#include <SMESHDS_Group.hxx>
-#include <SMDSAbs_ElementType.hxx>
-#include <utilities.h>
+#include "SMESH_Group.hxx"
+#include "SMESHDS_Group.hxx"
+#include "SMESHDS_GroupOnGeom.hxx"
+#include "SMDSAbs_ElementType.hxx"
+#include "utilities.h"
 
 //=============================================================================
 /*!
@@ -39,7 +41,7 @@
  */
 //=============================================================================
 
-SMESH_Group_i::SMESH_Group_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID )
+SMESH_GroupBase_i::SMESH_GroupBase_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID )
 : SALOME::GenericObj_i( thePOA ),
   myMeshServant( theMeshServant ), 
   myLocalID( theLocalID )
@@ -47,6 +49,15 @@ SMESH_Group_i::SMESH_Group_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theM
   thePOA->activate_object( this );
 }
 
+SMESH_Group_i::SMESH_Group_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID )
+: SMESH_GroupBase_i( thePOA, theMeshServant, theLocalID )
+{
+}
+
+SMESH_GroupOnGeom_i::SMESH_GroupOnGeom_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID )
+: SMESH_GroupBase_i( thePOA, theMeshServant, theLocalID )
+{
+}
 
 //=============================================================================
 /*!
@@ -54,13 +65,39 @@ SMESH_Group_i::SMESH_Group_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theM
  */
 //=============================================================================
 
-SMESH_Group_i::~SMESH_Group_i()
+SMESH_GroupBase_i::~SMESH_GroupBase_i()
 {
-  MESSAGE("~SMESH_Group_i;" );
+  MESSAGE("~SMESH_GroupBase_i;" );
   if ( myMeshServant )
     myMeshServant->removeGroup(myLocalID);
 }
 
+//=======================================================================
+//function : GetSmeshGroup
+//purpose  : 
+//=======================================================================
+
+::SMESH_Group* SMESH_GroupBase_i::GetSmeshGroup() const
+{
+  if ( myMeshServant ) {
+    ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
+    return aMesh.GetGroup(myLocalID);
+  }
+  return 0;
+}
+
+//=======================================================================
+//function : GetGroupDS
+//purpose  : 
+//=======================================================================
+
+SMESHDS_GroupBase* SMESH_GroupBase_i::GetGroupDS() const
+{
+  ::SMESH_Group* aGroup = GetSmeshGroup();
+  if ( aGroup )
+    return aGroup->GetGroupDS();
+  return 0;
+}
 
 //=============================================================================
 /*!
@@ -68,72 +105,55 @@ SMESH_Group_i::~SMESH_Group_i()
  */
 //=============================================================================
 
-void SMESH_Group_i::SetName( const char* theName )
+void SMESH_GroupBase_i::SetName( const char* theName )
 {
-  if ( myMeshServant ) {
-    ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
-    ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
-    if (aGroup) {
-      aGroup->SetName(theName);
-
-      // Update group name in a study
-      SALOMEDS::Study_var aStudy = myMeshServant->GetGen()->GetCurrentStudy();
-      if ( !aStudy->_is_nil() ) {
-       SALOMEDS::SObject_var aGroupSO = aStudy->FindObjectIOR( SMESH_Gen_i::GetORB()->object_to_string( _this() ) );
-       if ( !aGroupSO->_is_nil() ) {
-         SALOMEDS::StudyBuilder_var aBuilder = aStudy->NewBuilder();
-         aBuilder->SetName( aGroupSO, theName );
-       }
-      }
-      return;
-    }
+  ::SMESH_Group* aGroup = GetSmeshGroup();
+  if (aGroup) {
+    aGroup->SetName(theName);
+
+    // Update group name in a study
+    SMESH_Gen_i* aGen = myMeshServant->GetGen();
+    aGen->SetName( aGen->ObjectToSObject( aGen->GetCurrentStudy(), _this() ), theName );
+    return;
   }
   MESSAGE("can't set name of a vague group");
 }
 
-
 //=============================================================================
 /*!
  *  
  */
 //=============================================================================
 
-char* SMESH_Group_i::GetName()
+char* SMESH_GroupBase_i::GetName()
 {
-  if ( myMeshServant ) {
-    ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
-    ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
-    if (aGroup)
-      return CORBA::string_dup (aGroup->GetName());
-  }
+  ::SMESH_Group* aGroup = GetSmeshGroup();
+  if (aGroup)
+    return CORBA::string_dup (aGroup->GetName());
   MESSAGE("get name of a vague group");
   return CORBA::string_dup( "NO_NAME" );
 }
 
-
 //=============================================================================
 /*!
  *  
  */
 //=============================================================================
 
-SMESH::ElementType SMESH_Group_i::GetType()
+SMESH::ElementType SMESH_GroupBase_i::GetType()
 {
-  if ( myMeshServant ) {
-    ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
-    ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
-    if (aGroup) {
-      SMDSAbs_ElementType aSMDSType = aGroup->GetGroupDS()->GetType();
-      SMESH::ElementType aType;
-      switch (aSMDSType) {
-      case SMDSAbs_Node:   aType = SMESH::NODE; break;
-      case SMDSAbs_Edge:   aType = SMESH::EDGE; break;
-      case SMDSAbs_Face:   aType = SMESH::FACE; break;
-      case SMDSAbs_Volume: aType = SMESH::VOLUME; break;
-      default:             aType = SMESH::ALL; break;
-      }
-      return aType;
+  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+  if (aGroupDS) {
+    SMDSAbs_ElementType aSMDSType = aGroupDS->GetType();
+    SMESH::ElementType aType;
+    switch (aSMDSType) {
+    case SMDSAbs_Node:   aType = SMESH::NODE; break;
+    case SMDSAbs_Edge:   aType = SMESH::EDGE; break;
+    case SMDSAbs_Face:   aType = SMESH::FACE; break;
+    case SMDSAbs_Volume: aType = SMESH::VOLUME; break;
+    default:             aType = SMESH::ALL; break;
     }
+    return aType;
   }
   MESSAGE("get type of a vague group");
   return SMESH::ALL;
@@ -146,42 +166,30 @@ SMESH::ElementType SMESH_Group_i::GetType()
  */
 //=============================================================================
 
-CORBA::Long SMESH_Group_i::Size()
+CORBA::Long SMESH_GroupBase_i::Size()
 {
-  if ( myMeshServant ) {
-    ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
-    ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
-    if (aGroup) {
-      int aSize = aGroup->GetGroupDS()->Extent();
-      return aSize;
-    }
-  }
+  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+  if (aGroupDS)
+    return aGroupDS->Extent();
   MESSAGE("get size of a vague group");
   return 0;
 }
 
-
 //=============================================================================
 /*!
  *  
  */
 //=============================================================================
 
-CORBA::Boolean SMESH_Group_i::IsEmpty()
+CORBA::Boolean SMESH_GroupBase_i::IsEmpty()
 {
-  if ( myMeshServant ) {
-    ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
-    ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
-    if (aGroup) {
-      bool isEmpty = aGroup->GetGroupDS()->IsEmpty();
-      return isEmpty;
-    }
-  }
+  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+  if (aGroupDS)
+    return aGroupDS->IsEmpty();
   MESSAGE("checking IsEmpty of a vague group");
   return true;
 }
 
-
 //=============================================================================
 /*!
  *  
@@ -190,42 +198,29 @@ CORBA::Boolean SMESH_Group_i::IsEmpty()
 
 void SMESH_Group_i::Clear()
 {
-  if ( myMeshServant ) {
-    ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
-    ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
-    if (aGroup) {
-      // a SMDS group forgets its type after clearing, so we must re-set it
-      SMDSAbs_ElementType aSMDSType = aGroup->GetGroupDS()->GetType();
-      aGroup->GetGroupDS()->Clear();
-      aGroup->GetGroupDS()->SetType(aSMDSType);
-      return;
-    }
+  SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( GetGroupDS() );
+  if (aGroupDS) {
+    aGroupDS->Clear();
+    return;
   }
   MESSAGE("attempt to clear a vague group");
 }
 
-
 //=============================================================================
 /*!
  *  
  */
 //=============================================================================
 
-CORBA::Boolean SMESH_Group_i::Contains( CORBA::Long theID )
+CORBA::Boolean SMESH_GroupBase_i::Contains( CORBA::Long theID )
 {
-  if ( myMeshServant ) {
-    ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
-    ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
-    if (aGroup) {
-      bool res = aGroup->GetGroupDS()->Contains(theID);
-      return res;
-    }
-  }
+  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+  if (aGroupDS)
+    return aGroupDS->Contains(theID);
   MESSAGE("attempt to check contents of a vague group");
   return false;
 }
 
-
 //=============================================================================
 /*!
  *  
@@ -234,72 +229,56 @@ CORBA::Boolean SMESH_Group_i::Contains( CORBA::Long theID )
 
 CORBA::Long SMESH_Group_i::Add( const SMESH::long_array& theIDs )
 {
-  if ( myMeshServant ) {
-    ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
-    ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
-    if (aGroup) {
-      SMESHDS_Group* aGroupDS = aGroup->GetGroupDS();
-      int nbAdd = 0;
-      for (int i = 0; i < theIDs.length(); i++) {
-        int anID = (int) theIDs[i];
-        if (aGroupDS->Add(anID))
-          nbAdd++;
-      }
-      return nbAdd;
+  SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( GetGroupDS() );
+  if (aGroupDS) {
+    int nbAdd = 0;
+    for (int i = 0; i < theIDs.length(); i++) {
+      int anID = (int) theIDs[i];
+      if (aGroupDS->Add(anID))
+        nbAdd++;
     }
+    return nbAdd;
   }
   MESSAGE("attempt to add elements to a vague group");
   return 0;
 }
 
-
 //=============================================================================
 /*!
  *  
  */
 //=============================================================================
 
-CORBA::Long SMESH_Group_i::GetID( CORBA::Long theIndex )
+CORBA::Long SMESH_GroupBase_i::GetID( CORBA::Long theIndex )
 {
-  if ( myMeshServant ) {
-    ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
-    ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
-    if (aGroup) {
-      int anID = aGroup->GetGroupDS()->GetID(theIndex);
-      return anID;
-    }
-  }
+  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+  if (aGroupDS)
+    return aGroupDS->GetID(theIndex);
   MESSAGE("attempt to iterate on a vague group");
   return -1;
 }
 
-
 //=============================================================================
 /*!
  *  
  */
 //=============================================================================
 
-SMESH::long_array* SMESH_Group_i::GetListOfID()
+SMESH::long_array* SMESH_GroupBase_i::GetListOfID()
 {
   SMESH::long_array_var aRes = new SMESH::long_array();
-  if ( myMeshServant ) {
-    ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
-    ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
-    if (aGroup) {
-      SMESHDS_Group* aGroupDS = aGroup->GetGroupDS();
-      int aSize = aGroupDS->Extent();
-      aRes->length(aSize);
-      for (int i = 0; i < aSize; i++)
-        aRes[i] = aGroupDS->GetID(i+1);
-      return aRes._retn();
-    }
+  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+  if (aGroupDS) {
+    int aSize = aGroupDS->Extent();
+    aRes->length(aSize);
+    for (int i = 0; i < aSize; i++)
+      aRes[i] = aGroupDS->GetID(i+1);
+    return aRes._retn();
   }
   MESSAGE("get list of IDs of a vague group");
   return aRes._retn();
 }
 
-
 //=============================================================================
 /*!
  *  
@@ -308,51 +287,57 @@ SMESH::long_array* SMESH_Group_i::GetListOfID()
 
 CORBA::Long SMESH_Group_i::Remove( const SMESH::long_array& theIDs )
 {
-  if ( myMeshServant ) {
-    ::SMESH_Mesh& aMesh = myMeshServant->GetImpl();
-    ::SMESH_Group* aGroup = aMesh.GetGroup(myLocalID);
-    if (aGroup) {
-      // a SMDS group forgets its type after clearing, so we must re-set it
-      // if the group becomes empty
-      SMDSAbs_ElementType aSMDSType = aGroup->GetGroupDS()->GetType();
-      SMESHDS_Group* aGroupDS = aGroup->GetGroupDS();
-      int nbDel = 0;
-      for (int i = 0; i < theIDs.length(); i++) {
-        int anID = (int) theIDs[i];
-        if (aGroupDS->Remove(anID))
-          nbDel++;
-      }
-      if (aGroupDS->IsEmpty())
-        aGroupDS->SetType(aSMDSType);
-      return nbDel;
+  SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( GetGroupDS() );
+  if (aGroupDS) {
+    int nbDel = 0;
+    for (int i = 0; i < theIDs.length(); i++) {
+      int anID = (int) theIDs[i];
+      if (aGroupDS->Remove(anID))
+        nbDel++;
     }
+    return nbDel;
   }
   MESSAGE("attempt to remove elements from a vague group");
   return 0;
 }
 
-
 //=============================================================================
 /*!
  *  
  */
 //=============================================================================
-SMESH::SMESH_Mesh_ptr SMESH_Group_i::GetMesh()
+SMESH::SMESH_Mesh_ptr SMESH_GroupBase_i::GetMesh()
 {
-  MESSAGE("SMESH_Group_i::GetMesh(): mesh servant = " << myMeshServant );
   SMESH::SMESH_Mesh_var aMesh;
   if ( myMeshServant )
     aMesh = SMESH::SMESH_Mesh::_narrow( myMeshServant->_this() );
   return aMesh._retn();
 }
 
-
 //=============================================================================
 /*!
  *  
  */
 //=============================================================================
-int SMESH_Group_i::GetLocalID()
+SMESH::long_array* SMESH_GroupBase_i::GetIDs()
+{
+  SMESH::long_array_var aResult = GetListOfID();
+  return aResult._retn();
+}
+
+//=======================================================================
+//function : GetShape
+//purpose  : 
+//=======================================================================
+
+GEOM::GEOM_Object_ptr SMESH_GroupOnGeom_i::GetShape()
 {
-  return myLocalID;
+  GEOM::GEOM_Object_var aGeomObj;
+  SMESHDS_GroupOnGeom* aGroupDS = dynamic_cast<SMESHDS_GroupOnGeom*>( GetGroupDS() );
+  if ( aGroupDS ) {
+    SMESH_Gen_i* aGen = GetMeshServant()->GetGen();
+    aGeomObj = aGen->ShapeToGeomObject( aGroupDS->GetShape() );
+  }
+  return aGeomObj._retn();
 }
+
index 2c7c1d36f6b021d62ca87248eed566409957681b..7e16691a6df8db23d2ae1013d1839b1ae001fa85 100644 (file)
 //  Module : SMESH
 //  $Header$
 
+
 #ifndef SMESH_Group_i_HeaderFile
 #define SMESH_Group_i_HeaderFile
 
 #include <SALOMEconfig.h>
 #include CORBA_SERVER_HEADER(SMESH_Group)
 #include CORBA_SERVER_HEADER(SMESH_Mesh)
+#include CORBA_CLIENT_HEADER(GEOM_Gen)
 
 #include "SALOME_GenericObj_i.hh"
 
 class SMESH_Mesh_i;
-
-class SMESH_Group_i:
-  public virtual POA_SMESH::SMESH_Group,
+class ::SMESH_Group;
+class SMESHDS_GroupBase;
+
+// ===========
+// Group Base
+// ===========
+class SMESH_GroupBase_i:
+  public virtual POA_SMESH::SMESH_GroupBase,
   public virtual SALOME::GenericObj_i
 {
-public:
-  SMESH_Group_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID );
-  virtual ~SMESH_Group_i();
+ public:
+  SMESH_GroupBase_i(PortableServer::POA_ptr thePOA,
+                    SMESH_Mesh_i* theMeshServant,
+                    const int theLocalID );
+  virtual ~SMESH_GroupBase_i();
 
   // CORBA interface implementation
-  void SetName( const char* theName );
-
+  void SetName(const char* name);
   char* GetName();
-
   SMESH::ElementType GetType();
-
   CORBA::Long Size();
-
   CORBA::Boolean IsEmpty();
+  CORBA::Boolean Contains(CORBA::Long elem_id);
+  CORBA::Long GetID(CORBA::Long elem_index);
+  SMESH::long_array* GetListOfID();
+  SMESH::SMESH_Mesh_ptr GetMesh();
 
-  void Clear();
+  // Inherited from SMESH_IDSource interface
+  virtual SMESH::long_array* GetIDs();
 
-  CORBA::Boolean Contains( CORBA::Long theID );
+  // Internal C++ interface
+  int GetLocalID() const { return myLocalID; }
+  SMESH_Mesh_i* GetMeshServant() const { return myMeshServant; }
+  ::SMESH_Group* GetSmeshGroup() const;
+  SMESHDS_GroupBase* GetGroupDS() const;
 
-  CORBA::Long Add( const SMESH::long_array& theIDs );
+private:
+  SMESH_Mesh_i* myMeshServant;
+  int myLocalID;
+};
 
-  CORBA::Long GetID( CORBA::Long theIndex );
+// ======
+// Group
+// ======
 
-  SMESH::long_array* GetListOfID();
+class SMESH_Group_i:
+  public SMESH_GroupBase_i,
+  public virtual POA_SMESH::SMESH_Group,
+  public virtual SALOME::GenericObj_i
+{
+ public:
+  SMESH_Group_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID );
 
+  // CORBA interface implementation
+  void Clear();
+  CORBA::Long Add( const SMESH::long_array& theIDs );
   CORBA::Long Remove( const SMESH::long_array& theIDs );
+};
 
-  SMESH::SMESH_Mesh_ptr GetMesh();
-
-  // Internal C++ interface
-  int GetLocalID();
+// =========================
+// Group linked to geometry
+// =========================
 
-  SMESH_Mesh_i* GetMeshServant() { return myMeshServant; }
+class SMESH_GroupOnGeom_i:
+  public SMESH_GroupBase_i,
+  public virtual POA_SMESH::SMESH_GroupOnGeom,
+  public virtual SALOME::GenericObj_i
+{
+ public:
+  SMESH_GroupOnGeom_i( PortableServer::POA_ptr thePOA, SMESH_Mesh_i* theMeshServant, const int theLocalID );
 
-private:
-  SMESH_Mesh_i* myMeshServant;
-  int myLocalID;
+  // CORBA interface implementation
+  GEOM::GEOM_Object_ptr GetShape();
 };
-
 #endif
index 05ed02971b7268bf8c1dc8c496f9282ad17504b7..a5a8a52dfa86e3ad6e6569b12107a5fdcf384a77 100644 (file)
@@ -57,7 +57,13 @@ public :
   SMESH_MEDFamily_i(int identifier, SMESH_subMesh_i* sm,
                    string name, string description, SALOME_MED::medEntityMesh entity );
   SMESH_MEDFamily_i(const SMESH_MEDFamily_i & f);
-  
+
+        // IDL Methods
+        void setProtocol(SALOME::TypeOfCommunication typ) {}
+        void release() {}
+        SALOME::Sender_ptr getSenderForNumber(long int) {return SALOME::Sender::_nil();}
+        SALOME::Sender_ptr getSenderForNumberIndex() {return SALOME::Sender::_nil();}
+
   CORBA::Long            getIdentifier()      
     throw (SALOME::SALOME_Exception);
   CORBA::Long            getNumberOfAttributes() 
index 9e9814e20860342b4947b5cbb91c367b430de5c5..1c9308e1d98e2eca90d23f6c5d06609975c5ad7a 100644 (file)
@@ -75,6 +75,11 @@ class SMESH_MEDMesh_i:
        ~SMESH_MEDMesh_i();
 
        // IDL Methods 
+       void setProtocol(SALOME::TypeOfCommunication typ) {}
+       void release() {}
+       SALOME::Sender_ptr getSenderForCoordinates(long int) {return SALOME::Sender::_nil();}
+       SALOME::Sender_ptr getSenderForConnectivity(long int, long int, long int, long int) {return SALOME::Sender::_nil();}
+
        char *getName() throw(SALOME::SALOME_Exception);
        CORBA::Long getSpaceDimension() throw(SALOME::SALOME_Exception);
 
index 846f5eccb68a2513605bd44434689ba57ebfb82c..8cdfa30f3d9989df100bfc470089174a33062f9e 100644 (file)
@@ -242,6 +242,19 @@ CORBA::Boolean SMESH_MeshEditor_i::Reorient(const SMESH::long_array & IDsOfEleme
   return true;
 }
 
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+CORBA::Boolean SMESH_MeshEditor_i::ReorientObject(SMESH::SMESH_IDSource_ptr theObject)
+{
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  Reorient(anElementsId);
+}
+
 //=============================================================================
 /*!
  *  
@@ -279,6 +292,21 @@ CORBA::Boolean
  */
 //=============================================================================
 
+CORBA::Boolean
+  SMESH_MeshEditor_i::TriToQuadObject (SMESH::SMESH_IDSource_ptr   theObject,
+                                      SMESH::NumericalFunctor_ptr Criterion,
+                                      CORBA::Double               MaxAngle)
+{
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  TriToQuad(anElementsId, Criterion, MaxAngle);
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
 CORBA::Boolean
   SMESH_MeshEditor_i::QuadToTri(const SMESH::long_array &   IDsOfElements,
                                 SMESH::NumericalFunctor_ptr Criterion)
@@ -332,6 +360,20 @@ CORBA::Boolean
  */
 //=============================================================================
 
+CORBA::Boolean
+  SMESH_MeshEditor_i::SplitQuadObject(SMESH::SMESH_IDSource_ptr theObject,
+                                     CORBA::Boolean            Diag13)
+{
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  SplitQuad(anElementsId, Diag13);
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
 CORBA::Boolean
   SMESH_MeshEditor_i::Smooth(const SMESH::long_array &              IDsOfElements,
                              const SMESH::long_array &              IDsOfFixedNodes,
@@ -374,6 +416,23 @@ CORBA::Boolean
  */
 //=============================================================================
 
+CORBA::Boolean
+  SMESH_MeshEditor_i::SmoothObject(SMESH::SMESH_IDSource_ptr              theObject,
+                                  const SMESH::long_array &              IDsOfFixedNodes,
+                                  CORBA::Long                            MaxNbOfIterations,
+                                  CORBA::Double                          MaxAspectRatio,
+                                  SMESH::SMESH_MeshEditor::Smooth_Method Method)
+{
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  return Smooth(anElementsId, IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method);
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
 void SMESH_MeshEditor_i::RenumberNodes()
 {
   GetMeshDS()->Renumber( true );
@@ -419,6 +478,21 @@ void SMESH_MeshEditor_i::RotationSweep(const SMESH::long_array & theIDsOfElement
                           theNbOfSteps, theTolerance);
 }
 
+//=======================================================================
+//function : RotationSweepObject
+//purpose  : 
+//=======================================================================
+
+void SMESH_MeshEditor_i::RotationSweepObject(SMESH::SMESH_IDSource_ptr theObject,
+                                            const SMESH::AxisStruct & theAxis,
+                                            CORBA::Double             theAngleInRadians,
+                                            CORBA::Long               theNbOfSteps,
+                                            CORBA::Double             theTolerance)
+{
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  RotationSweep(anElementsId, theAxis, theAngleInRadians, theNbOfSteps, theTolerance);
+}
+
 //=======================================================================
 //function : ExtrusionSweep
 //purpose  : 
@@ -445,6 +519,20 @@ void SMESH_MeshEditor_i::ExtrusionSweep(const SMESH::long_array & theIDsOfElemen
   anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps);
 }
 
+
+//=======================================================================
+//function : ExtrusionSweepObject
+//purpose  : 
+//=======================================================================
+
+void SMESH_MeshEditor_i::ExtrusionSweepObject(SMESH::SMESH_IDSource_ptr theObject,
+                                             const SMESH::DirStruct &  theStepVector,
+                                             CORBA::Long               theNbOfSteps)
+{
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  ExtrusionSweep(anElementsId, theStepVector, theNbOfSteps);
+}
+
 //=======================================================================
 //function : Mirror
 //purpose  : 
@@ -484,6 +572,20 @@ void SMESH_MeshEditor_i::Mirror(const SMESH::long_array &           theIDsOfElem
   anEditor.Transform (elements, aTrsf, theCopy);
 }
 
+//=======================================================================
+//function : MirrorObject
+//purpose  : 
+//=======================================================================
+
+void SMESH_MeshEditor_i::MirrorObject(SMESH::SMESH_IDSource_ptr           theObject,
+                                     const SMESH::AxisStruct &           theAxis,
+                                     SMESH::SMESH_MeshEditor::MirrorType theMirrorType,
+                                     CORBA::Boolean                      theCopy)
+{
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  Mirror(anElementsId, theAxis, theMirrorType, theCopy);
+}
+
 //=======================================================================
 //function : Translate
 //purpose  : 
@@ -511,6 +613,19 @@ void SMESH_MeshEditor_i::Translate(const SMESH::long_array & theIDsOfElements,
   anEditor.Transform (elements, aTrsf, theCopy);
 }
 
+//=======================================================================
+//function : TranslateObject
+//purpose  : 
+//=======================================================================
+
+void SMESH_MeshEditor_i::TranslateObject(SMESH::SMESH_IDSource_ptr theObject,
+                                        const SMESH::DirStruct &  theVector,
+                                        CORBA::Boolean            theCopy)
+{
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  Translate(anElementsId, theVector, theCopy);
+}
+
 //=======================================================================
 //function : Rotate
 //purpose  : 
@@ -542,6 +657,20 @@ void SMESH_MeshEditor_i::Rotate(const SMESH::long_array & theIDsOfElements,
   anEditor.Transform (elements, aTrsf, theCopy);
 }
 
+//=======================================================================
+//function : RotateObject
+//purpose  : 
+//=======================================================================
+
+void SMESH_MeshEditor_i::RotateObject(SMESH::SMESH_IDSource_ptr theObject,
+                                     const SMESH::AxisStruct & theAxis,
+                                     CORBA::Double             theAngle,
+                                     CORBA::Boolean            theCopy)
+{
+  SMESH::long_array_var anElementsId = theObject->GetIDs();
+  Rotate(anElementsId, theAxis, theAngle, theCopy);
+}
+
 //=======================================================================
 //function : FindCoincidentNodes
 //purpose  : 
@@ -609,17 +738,42 @@ void SMESH_MeshEditor_i::MergeEqualElements()
   anEditor.MergeEqualElements();
 }
 
+//=======================================================================
+//function : operator
+//purpose  : 
+//=======================================================================
+
+#define RETCASE(enm) case ::SMESH_MeshEditor::enm: return SMESH::SMESH_MeshEditor::enm;
+
+SMESH::SMESH_MeshEditor::Sew_Error convError( const::SMESH_MeshEditor::Sew_Error e )
+{
+  switch ( e ) {
+  RETCASE( SEW_OK );
+  RETCASE( SEW_BORDER1_NOT_FOUND );
+  RETCASE( SEW_BORDER2_NOT_FOUND );
+  RETCASE( SEW_BOTH_BORDERS_NOT_FOUND );
+  RETCASE( SEW_BAD_SIDE_NODES );
+  RETCASE( SEW_VOLUMES_TO_SPLIT );
+  RETCASE( SEW_DIFF_NB_OF_ELEMENTS );
+  RETCASE( SEW_TOPO_DIFF_SETS_OF_ELEMENTS );
+  RETCASE( SEW_BAD_SIDE1_NODES );
+  RETCASE( SEW_BAD_SIDE2_NODES );
+  }
+  return SMESH::SMESH_MeshEditor::SEW_OK;
+}
+
 //=======================================================================
 //function : SewFreeBorders
 //purpose  : 
 //=======================================================================
 
-CORBA::Boolean SMESH_MeshEditor_i::SewFreeBorders(CORBA::Long FirstNodeID1,
-                                                  CORBA::Long SecondNodeID1,
-                                                  CORBA::Long LastNodeID1,
-                                                  CORBA::Long FirstNodeID2,
-                                                  CORBA::Long SecondNodeID2,
-                                                  CORBA::Long LastNodeID2)
+SMESH::SMESH_MeshEditor::Sew_Error
+  SMESH_MeshEditor_i::SewFreeBorders(CORBA::Long FirstNodeID1,
+                                     CORBA::Long SecondNodeID1,
+                                     CORBA::Long LastNodeID1,
+                                     CORBA::Long FirstNodeID2,
+                                     CORBA::Long SecondNodeID2,
+                                     CORBA::Long LastNodeID2)
 {
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
@@ -632,20 +786,21 @@ CORBA::Boolean SMESH_MeshEditor_i::SewFreeBorders(CORBA::Long FirstNodeID1,
 
   if (!aBorderFirstNode ||
       !aBorderSecondNode||
-      !aBorderLastNode  ||
-      !aSide2FirstNode  ||
+      !aBorderLastNode)
+    return SMESH::SMESH_MeshEditor::SEW_BORDER1_NOT_FOUND;
+  if (!aSide2FirstNode  ||
       !aSide2SecondNode ||
       !aSide2ThirdNode)
-    return false;
+    return SMESH::SMESH_MeshEditor::SEW_BORDER2_NOT_FOUND;
 
   ::SMESH_MeshEditor anEditor( _myMesh );
-  return anEditor.SewFreeBorder (aBorderFirstNode,
-                                 aBorderSecondNode,
-                                 aBorderLastNode,
-                                 aSide2FirstNode,
-                                 aSide2SecondNode,
-                                 aSide2ThirdNode,
-                                 true);
+  return convError( anEditor.SewFreeBorder (aBorderFirstNode,
+                                            aBorderSecondNode,
+                                            aBorderLastNode,
+                                            aSide2FirstNode,
+                                            aSide2SecondNode,
+                                            aSide2ThirdNode,
+                                            true));
 }
 
 //=======================================================================
@@ -653,11 +808,12 @@ CORBA::Boolean SMESH_MeshEditor_i::SewFreeBorders(CORBA::Long FirstNodeID1,
 //purpose  : 
 //=======================================================================
 
-CORBA::Boolean SMESH_MeshEditor_i::SewConformFreeBorders(CORBA::Long FirstNodeID1,
-                                                         CORBA::Long SecondNodeID1,
-                                                         CORBA::Long LastNodeID1,
-                                                         CORBA::Long FirstNodeID2,
-                                                         CORBA::Long SecondNodeID2)
+SMESH::SMESH_MeshEditor::Sew_Error
+  SMESH_MeshEditor_i::SewConformFreeBorders(CORBA::Long FirstNodeID1,
+                                            CORBA::Long SecondNodeID1,
+                                            CORBA::Long LastNodeID1,
+                                            CORBA::Long FirstNodeID2,
+                                            CORBA::Long SecondNodeID2)
 {
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
@@ -670,19 +826,20 @@ CORBA::Boolean SMESH_MeshEditor_i::SewConformFreeBorders(CORBA::Long FirstNodeID
 
   if (!aBorderFirstNode ||
       !aBorderSecondNode||
-      !aBorderLastNode  ||
-      !aSide2FirstNode  ||
+      !aBorderLastNode )
+    return SMESH::SMESH_MeshEditor::SEW_BORDER1_NOT_FOUND;
+  if (!aSide2FirstNode  ||
       !aSide2SecondNode)
-    return false;
+    return SMESH::SMESH_MeshEditor::SEW_BORDER2_NOT_FOUND;
 
   ::SMESH_MeshEditor anEditor( _myMesh );
-  return anEditor.SewFreeBorder (aBorderFirstNode,
-                                 aBorderSecondNode,
-                                 aBorderLastNode,
-                                 aSide2FirstNode,
-                                 aSide2SecondNode,
-                                 aSide2ThirdNode,
-                                 true);
+  return convError( anEditor.SewFreeBorder (aBorderFirstNode,
+                                            aBorderSecondNode,
+                                            aBorderLastNode,
+                                            aSide2FirstNode,
+                                            aSide2SecondNode,
+                                            aSide2ThirdNode,
+                                            true ));
 }
 
 //=======================================================================
@@ -690,11 +847,12 @@ CORBA::Boolean SMESH_MeshEditor_i::SewConformFreeBorders(CORBA::Long FirstNodeID
 //purpose  : 
 //=======================================================================
 
-CORBA::Boolean SMESH_MeshEditor_i::SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
-                                                   CORBA::Long SecondNodeIDOnFreeBorder,
-                                                   CORBA::Long LastNodeIDOnFreeBorder,
-                                                   CORBA::Long FirstNodeIDOnSide,
-                                                   CORBA::Long LastNodeIDOnSide)
+SMESH::SMESH_MeshEditor::Sew_Error
+  SMESH_MeshEditor_i::SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
+                                      CORBA::Long SecondNodeIDOnFreeBorder,
+                                      CORBA::Long LastNodeIDOnFreeBorder,
+                                      CORBA::Long FirstNodeIDOnSide,
+                                      CORBA::Long LastNodeIDOnSide)
 {
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
@@ -707,19 +865,20 @@ CORBA::Boolean SMESH_MeshEditor_i::SewBorderToSide(CORBA::Long FirstNodeIDOnFree
 
   if (!aBorderFirstNode ||
       !aBorderSecondNode||
-      !aBorderLastNode  ||
-      !aSide2FirstNode  ||
+      !aBorderLastNode  )
+    return SMESH::SMESH_MeshEditor::SEW_BORDER1_NOT_FOUND;
+  if (!aSide2FirstNode  ||
       !aSide2SecondNode)
-    return false;
+    return SMESH::SMESH_MeshEditor::SEW_BAD_SIDE_NODES;
 
   ::SMESH_MeshEditor anEditor( _myMesh );
-  return anEditor.SewFreeBorder (aBorderFirstNode,
-                                 aBorderSecondNode,
-                                 aBorderLastNode,
-                                 aSide2FirstNode,
-                                 aSide2SecondNode,
-                                 aSide2ThirdNode,
-                                 false);
+  return convError( anEditor.SewFreeBorder (aBorderFirstNode,
+                                            aBorderSecondNode,
+                                            aBorderLastNode,
+                                            aSide2FirstNode,
+                                            aSide2SecondNode,
+                                            aSide2ThirdNode,
+                                            false));
 }
 
 //=======================================================================
@@ -727,12 +886,13 @@ CORBA::Boolean SMESH_MeshEditor_i::SewBorderToSide(CORBA::Long FirstNodeIDOnFree
 //purpose  : 
 //=======================================================================
 
-CORBA::Boolean SMESH_MeshEditor_i::SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
-                                                   const SMESH::long_array& IDsOfSide2Elements,
-                                                   CORBA::Long NodeID1OfSide1ToMerge,
-                                                   CORBA::Long NodeID1OfSide2ToMerge,
-                                                   CORBA::Long NodeID2OfSide1ToMerge,
-                                                   CORBA::Long NodeID2OfSide2ToMerge)
+SMESH::SMESH_MeshEditor::Sew_Error
+  SMESH_MeshEditor_i::SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
+                                      const SMESH::long_array& IDsOfSide2Elements,
+                                      CORBA::Long NodeID1OfSide1ToMerge,
+                                      CORBA::Long NodeID1OfSide2ToMerge,
+                                      CORBA::Long NodeID2OfSide1ToMerge,
+                                      CORBA::Long NodeID2OfSide2ToMerge)
 {
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
@@ -742,33 +902,31 @@ CORBA::Boolean SMESH_MeshEditor_i::SewSideElements(const SMESH::long_array& IDsO
   const SMDS_MeshNode* aSecondNode2ToMerge = aMesh->FindNode( NodeID2OfSide2ToMerge );
 
   if (!aFirstNode1ToMerge ||
-      !aFirstNode2ToMerge ||
-      !aSecondNode1ToMerge||
+      !aFirstNode2ToMerge )
+    return SMESH::SMESH_MeshEditor::SEW_BAD_SIDE1_NODES;
+  if (!aSecondNode1ToMerge||
       !aSecondNode2ToMerge)
-    return false;
+    return SMESH::SMESH_MeshEditor::SEW_BAD_SIDE2_NODES;
 
   set<const SMDS_MeshElement*> aSide1Elems, aSide2Elems;
   for (int i = 0; i < IDsOfSide1Elements.length(); i++)
   {
     CORBA::Long index = IDsOfSide1Elements[i];
     const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( !elem )
-      return false;
-    aSide1Elems.insert( elem );
+    if ( elem )
+      aSide1Elems.insert( elem );
   }
   for (int i = 0; i < IDsOfSide2Elements.length(); i++)
   {
     CORBA::Long index = IDsOfSide2Elements[i];
     const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( !elem )
-      return false;
-    aSide2Elems.insert( elem );
+    if ( elem )
+      aSide2Elems.insert( elem );
   }
   ::SMESH_MeshEditor anEditor( _myMesh );
-  return anEditor.SewSideElements (aSide1Elems, aSide2Elems,
-                                   aFirstNode1ToMerge,
-                                   aFirstNode2ToMerge,
-                                   aSecondNode1ToMerge,
-                                   aSecondNode2ToMerge);
+  return convError( anEditor.SewSideElements (aSide1Elems, aSide2Elems,
+                                              aFirstNode1ToMerge,
+                                              aFirstNode2ToMerge,
+                                              aSecondNode1ToMerge,
+                                              aSecondNode2ToMerge));
 }
-
index ec9b2afd1c09896a7860f538dc27cb8c5a0718cf..2923617bda2885a3ef90264a72282759544e23ee 100644 (file)
@@ -57,72 +57,108 @@ class SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
   CORBA::Boolean InverseDiag(CORBA::Long NodeID1, CORBA::Long NodeID2);
   CORBA::Boolean DeleteDiag(CORBA::Long NodeID1, CORBA::Long NodeID2);
   CORBA::Boolean Reorient(const SMESH::long_array & IDsOfElements);
+  CORBA::Boolean ReorientObject(SMESH::SMESH_IDSource_ptr theObject);
 
   CORBA::Boolean TriToQuad(const SMESH::long_array &   IDsOfElements,
                            SMESH::NumericalFunctor_ptr Criterion,
                            CORBA::Double               MaxAngle);
+  CORBA::Boolean TriToQuadObject(SMESH::SMESH_IDSource_ptr theObject,
+                                SMESH::NumericalFunctor_ptr Criterion,
+                                CORBA::Double               MaxAngle);
   CORBA::Boolean QuadToTri(const SMESH::long_array &   IDsOfElements,
                            SMESH::NumericalFunctor_ptr Criterion);
   CORBA::Boolean SplitQuad(const SMESH::long_array & IDsOfElements,
                            CORBA::Boolean            Diag13);
+  CORBA::Boolean SplitQuadObject(SMESH::SMESH_IDSource_ptr theObject,
+                                CORBA::Boolean            Diag13);
 
   CORBA::Boolean Smooth(const SMESH::long_array &              IDsOfElements,
                         const SMESH::long_array &              IDsOfFixedNodes,
                         CORBA::Long                            MaxNbOfIterations,
                         CORBA::Double                          MaxAspectRatio,
                         SMESH::SMESH_MeshEditor::Smooth_Method Method);
+  CORBA::Boolean SmoothObject(SMESH::SMESH_IDSource_ptr              theObject,
+                             const SMESH::long_array &              IDsOfFixedNodes,
+                             CORBA::Long                            MaxNbOfIterations,
+                             CORBA::Double                          MaxAspectRatio,
+                             SMESH::SMESH_MeshEditor::Smooth_Method Method);
+
 
   void RenumberNodes();
   void RenumberElements();
 
   void RotationSweep(const SMESH::long_array & IDsOfElements,
-                     const SMESH::AxisStruct &  Axis,
+                     const SMESH::AxisStruct & Axis,
                      CORBA::Double             AngleInRadians,
                      CORBA::Long               NbOfSteps,
                      CORBA::Double             Tolerance);
+  void RotationSweepObject(SMESH::SMESH_IDSource_ptr theObject,
+                          const SMESH::AxisStruct & Axis,
+                          CORBA::Double             AngleInRadians,
+                          CORBA::Long               NbOfSteps,
+                          CORBA::Double             Tolerance);
+
   void ExtrusionSweep(const SMESH::long_array & IDsOfElements,
-                      const SMESH::DirStruct &   StepVector,
+                      const SMESH::DirStruct &  StepVector,
                       CORBA::Long               NbOfSteps);
-
+  void ExtrusionSweepObject(SMESH::SMESH_IDSource_ptr theObject,
+                           const SMESH::DirStruct &  StepVector,
+                           CORBA::Long               NbOfSteps);
+  
   void Mirror(const SMESH::long_array &           IDsOfElements,
-              const SMESH::AxisStruct &            Axis,
+              const SMESH::AxisStruct &           Axis,
               SMESH::SMESH_MeshEditor::MirrorType MirrorType,
               CORBA::Boolean                      Copy);
+  void MirrorObject(SMESH::SMESH_IDSource_ptr           theObject,
+                   const SMESH::AxisStruct &           Axis,
+                   SMESH::SMESH_MeshEditor::MirrorType MirrorType,
+                   CORBA::Boolean                      Copy);
   void Translate(const SMESH::long_array & IDsOfElements,
                  const SMESH::DirStruct &   Vector,
                  CORBA::Boolean            Copy);
+  void TranslateObject(SMESH::SMESH_IDSource_ptr  theObject,
+                      const SMESH::DirStruct &   Vector,
+                      CORBA::Boolean             Copy);
   void Rotate(const SMESH::long_array & IDsOfElements,
               const SMESH::AxisStruct &  Axis,
               CORBA::Double             Angle,
               CORBA::Boolean            Copy);
+  void RotateObject(SMESH::SMESH_IDSource_ptr  theObject,
+                   const SMESH::AxisStruct &  Axis,
+                   CORBA::Double              Angle,
+                   CORBA::Boolean             Copy);
 
   void FindCoincidentNodes (CORBA::Double                  Tolerance,
                             SMESH::array_of_long_array_out GroupsOfNodes);
   void MergeNodes (const SMESH::array_of_long_array& GroupsOfNodes);
   void MergeEqualElements();
 
-  CORBA::Boolean SewFreeBorders(CORBA::Long FirstNodeID1,
-                                CORBA::Long SecondNodeID1,
-                                CORBA::Long LastNodeID1,
-                                CORBA::Long FirstNodeID2,
-                                CORBA::Long SecondNodeID2,
-                                CORBA::Long LastNodeID2);
-  CORBA::Boolean SewConformFreeBorders(CORBA::Long FirstNodeID1,
-                                       CORBA::Long SecondNodeID1,
-                                       CORBA::Long LastNodeID1,
-                                       CORBA::Long FirstNodeID2,
-                                       CORBA::Long SecondNodeID2);
-  CORBA::Boolean SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
-                                 CORBA::Long SecondNodeIDOnFreeBorder,
-                                 CORBA::Long LastNodeIDOnFreeBorder,
-                                 CORBA::Long FirstNodeIDOnSide,
-                                 CORBA::Long LastNodeIDOnSide);
-  CORBA::Boolean SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
-                                 const SMESH::long_array& IDsOfSide2Elements,
-                                 CORBA::Long NodeID1OfSide1ToMerge,
-                                 CORBA::Long NodeID1OfSide2ToMerge,
-                                 CORBA::Long NodeID2OfSide1ToMerge,
-                                 CORBA::Long NodeID2OfSide2ToMerge);
+  SMESH::SMESH_MeshEditor::Sew_Error
+    SewFreeBorders(CORBA::Long FirstNodeID1,
+                   CORBA::Long SecondNodeID1,
+                   CORBA::Long LastNodeID1,
+                   CORBA::Long FirstNodeID2,
+                   CORBA::Long SecondNodeID2,
+                   CORBA::Long LastNodeID2);
+  SMESH::SMESH_MeshEditor::Sew_Error
+    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);
+  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);
 
  private:
   SMESHDS_Mesh * GetMeshDS() { return _myMesh->GetMeshDS(); }
index e37e9212ccb31347aaeb3c67e5eefe1117f69585..851f613104ce0a03fd9f26ab679ac45ab15c3b52 100644 (file)
@@ -92,9 +92,9 @@ SMESH_Mesh_i::SMESH_Mesh_i( PortableServer::POA_ptr thePOA,
 SMESH_Mesh_i::~SMESH_Mesh_i()
 {
   INFOS("~SMESH_Mesh_i");
-  map<int, SMESH::SMESH_Group_ptr>::iterator it;
+  map<int, SMESH::SMESH_GroupBase_ptr>::iterator it;
   for ( it = _mapGroups.begin(); it != _mapGroups.end(); it++ ) {
-    SMESH_Group_i* aGroup = dynamic_cast<SMESH_Group_i*>( SMESH_Gen_i::GetServant( it->second ).in() );
+    SMESH_GroupBase_i* aGroup = dynamic_cast<SMESH_GroupBase_i*>( SMESH_Gen_i::GetServant( it->second ).in() );
     if ( aGroup ) {
 
       // this method is colled from destructor of group (PAL6331)
@@ -121,56 +121,32 @@ void SMESH_Mesh_i::SetShape( GEOM::GEOM_Object_ptr theShapeObject )
 {
   Unexpect aCatch(SALOME_SalomeException);
   try {
-    setShape( theShapeObject );
+    _impl->ShapeToMesh( _gen_i->GeomObjectToShape( theShapeObject ));
   }
   catch(SALOME_Exception & S_ex) {
     THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
-  }  
-
-  SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-  if ( aStudy->_is_nil() ) 
-    return;
-
-  // Create a reference to <theShape> 
-  SALOMEDS::SObject_var aMeshSO  = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( _this() ) ) ) );
-  SALOMEDS::SObject_var aShapeSO = aStudy->FindObjectIOR( SMESH_Gen_i::GetORB()->object_to_string( theShapeObject ) );
-  
-  SALOMEDS::SObject_var          anObj, aRef;
-  SALOMEDS::GenericAttribute_var anAttr;
-  SALOMEDS::AttributeIOR_var     anIOR;
-  SALOMEDS::StudyBuilder_var     aBuilder = aStudy->NewBuilder();
-  long                           aTag = SMESH_Gen_i::GetRefOnShapeTag();      
-  
-  if ( aMeshSO->FindSubObject( aTag, anObj ) ) {
-    if ( anObj->ReferencedObject( aRef ) ) {
-      if ( strcmp( aRef->GetID(), aShapeSO->GetID() ) == 0 ) {
-       // Setting the same shape twice forbidden
-       return;
-      }
-    }
   }
-  else {
-    anObj = aBuilder->NewObjectToTag( aMeshSO, aTag );
-  }
-  aBuilder->Addreference( anObj, aShapeSO );
 }
 
-//=============================================================================
-/*!
- *  setShape
- *
- *  Sets shape to the mesh implementation
- */
-//=============================================================================
+//=======================================================================
+//function : GetShapeToMesh
+//purpose  : 
+//=======================================================================
 
-bool SMESH_Mesh_i::setShape( GEOM::GEOM_Object_ptr theShapeObject )
+GEOM::GEOM_Object_ptr SMESH_Mesh_i::GetShapeToMesh()
+    throw (SALOME::SALOME_Exception)
 {
-  if ( theShapeObject->_is_nil() )
-    return false;
-
-  TopoDS_Shape aLocShape  = _gen_i->GetShapeReader()->GetShape( SMESH_Gen_i::GetGeomEngine(), theShapeObject );
-  _impl->ShapeToMesh( aLocShape );
-  return true;
+  Unexpect aCatch(SALOME_SalomeException);
+  GEOM::GEOM_Object_var aShapeObj;
+  try {
+    TopoDS_Shape S = _impl->GetMeshDS()->ShapeToMesh();
+    if ( !S.IsNull() )
+      aShapeObj = _gen_i->ShapeToGeomObject( S );
+  }
+  catch(SALOME_Exception & S_ex) {
+    THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
+  }
+  return aShapeObj._retn();
 }
 
 //=============================================================================
@@ -224,18 +200,14 @@ SMESH_Mesh_i::ImportMEDFile( const char* theFileName, const char* theMeshName )
   }
 
   SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-  if ( aStudy->_is_nil() ) 
-    return ConvertDriverMEDReadStatus(status);
-  
-  // publishing of the groups in the study (sub-meshes are out of scope of MED import)
-  map<int, SMESH::SMESH_Group_ptr>::iterator it = _mapGroups.begin();
-  for (; it != _mapGroups.end(); it++ ) {
-    SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_duplicate( it->second );
-    if ( _gen_i->CanPublishInStudy( aGroup ) )
-      _gen_i->PublishInStudy( aStudy, 
-                             SALOMEDS::SObject::_nil(),
-                             aGroup,
-                             aGroup->GetName() );
+  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());
+    }
   }
   return ConvertDriverMEDReadStatus(status);
 }
@@ -294,10 +266,8 @@ int SMESH_Mesh_i::importMEDFile( const char* theFileName, const char* theMeshNam
     _mapGroups[*it]               = SMESH::SMESH_Group::_duplicate( aGroup );
 
     // register CORBA object for persistence
-    StudyContext* myStudyContext = _gen_i->GetCurrentStudyContext();
-    string iorString = SMESH_Gen_i::GetORB()->object_to_string( aGroup );
-    int nextId = myStudyContext->addObject( iorString );
-    if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId << " and IOR = " << iorString.c_str() );
+    int nextId = _gen_i->RegisterObject( aGroup );
+    if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId);
   }
 
   return status;
@@ -354,65 +324,10 @@ SMESH::Hypothesis_Status SMESH_Mesh_i::AddHypothesis(GEOM::GEOM_Object_ptr aSubS
   Unexpect aCatch(SALOME_SalomeException);
   SMESH_Hypothesis::Hypothesis_Status status = addHypothesis( aSubShapeObject, anHyp );
 
-  if ( !SMESH_Hypothesis::IsStatusFatal(status) ) {
-    SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-
-    if ( !aStudy->_is_nil() ) {
-      // Detect whether <aSubShape> refers to this mesh or its sub-mesh
-      SALOMEDS::GenericAttribute_var anAttr;
-      SALOMEDS::AttributeIOR_var     anIOR;
-      SALOMEDS::SObject_var aMeshSO  = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( _this() ) ) ) );
-      if ( aMeshSO->_is_nil() ) {
-        SCRUTE( SMESH_Gen_i::GetORB()->object_to_string( _this() ));
-        removeHypothesis( aSubShapeObject, anHyp );
-       return SMESH::HYP_UNKNOWN_FATAL;
-      }
-      SALOMEDS::SObject_var aMorSM, aRef;
-      CORBA::String_var aShapeIOR    = CORBA::string_dup( SMESH_Gen_i::GetORB()->object_to_string( aSubShapeObject ) );
-      SALOMEDS::ChildIterator_var it = aStudy->NewChildIterator( aMeshSO );
-
-      for ( it->InitEx( true ); it->More(); it->Next() ) {
-       SALOMEDS::SObject_var anObj = it->Value();
-       if ( anObj->ReferencedObject( aRef ) ) {
-         if ( aRef->FindAttribute( anAttr, "AttributeIOR" ) ) {
-           anIOR = SALOMEDS::AttributeIOR::_narrow( anAttr );
-           if ( strcmp( anIOR->Value(), aShapeIOR ) == 0 ) {
-             aMorSM = anObj->GetFather();
-             break;
-           }
-         }
-       }
-      }
-
-      bool aIsAlgo = !SMESH::SMESH_Algo::_narrow( anHyp )->_is_nil();
-      SALOMEDS::SObject_var aHypSO  = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( anHyp   ) ) ) );
-      if ( !aMorSM->_is_nil() && !aHypSO->_is_nil() ) {
-       //Find or Create Applied Hypothesis root
-       SALOMEDS::SObject_var             AHR;
-       SALOMEDS::AttributeName_var       aName;
-       SALOMEDS::AttributeSelectable_var aSelAttr;
-       SALOMEDS::AttributePixMap_var     aPixmap;
-       SALOMEDS::StudyBuilder_var        aBuilder = aStudy->NewBuilder();
-       long                              aTag = aIsAlgo ? SMESH_Gen_i::GetRefOnAppliedAlgorithmsTag() : SMESH_Gen_i::GetRefOnAppliedHypothesisTag();
-
-       if ( !aMorSM->FindSubObject( aTag, AHR ) ) {
-         AHR      = aBuilder->NewObjectToTag( aMorSM, aTag );
-         anAttr   = aBuilder->FindOrCreateAttribute( AHR, "AttributeName" );
-         aName    = SALOMEDS::AttributeName::_narrow( anAttr );
-         aName    ->SetValue( aIsAlgo ? "Applied algorithms" : "Applied hypotheses" );
-         anAttr   = aBuilder->FindOrCreateAttribute( AHR, "AttributeSelectable" );
-         aSelAttr = SALOMEDS::AttributeSelectable::_narrow( anAttr );
-         aSelAttr ->SetSelectable( false );
-         anAttr   = aBuilder->FindOrCreateAttribute( AHR, "AttributePixMap" );
-         aPixmap  = SALOMEDS::AttributePixMap::_narrow( anAttr );
-         aPixmap  ->SetPixMap( aIsAlgo ? "ICON_SMESH_TREE_ALGO" : "ICON_SMESH_TREE_HYPO" );
-       }
+  if ( !SMESH_Hypothesis::IsStatusFatal(status) )
+    _gen_i->AddHypothesisToShape(_gen_i->GetCurrentStudy(), _this(),
+                                 aSubShapeObject, anHyp );
 
-       SALOMEDS::SObject_var SO = aBuilder->NewObject( AHR );
-       aBuilder->Addreference( SO, aHypSO );
-      }
-    }
-  }
   if(MYDEBUG) MESSAGE( " AddHypothesis(): status = " << status );
 
   return ConvertHypothesisStatus(status);
@@ -425,36 +340,41 @@ SMESH::Hypothesis_Status SMESH_Mesh_i::AddHypothesis(GEOM::GEOM_Object_ptr aSubS
 //=============================================================================
 
 SMESH_Hypothesis::Hypothesis_Status
-  SMESH_Mesh_i::addHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
+  SMESH_Mesh_i::addHypothesis(GEOM::GEOM_Object_ptr       aSubShapeObject,
                               SMESH::SMESH_Hypothesis_ptr anHyp)
 {
-       if(MYDEBUG) MESSAGE("addHypothesis");
-       // **** proposer liste de subShape (selection multiple)
+  if(MYDEBUG) MESSAGE("addHypothesis");
 
-       if (CORBA::is_nil(aSubShapeObject))
-               THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
-                       SALOME::BAD_PARAM);
+  if (CORBA::is_nil(aSubShapeObject))
+    THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
+                                 SALOME::BAD_PARAM);
 
-       SMESH::SMESH_Hypothesis_var myHyp = SMESH::SMESH_Hypothesis::_narrow(anHyp);
-       if (CORBA::is_nil(myHyp))
-               THROW_SALOME_CORBA_EXCEPTION("bad hypothesis reference",
-                       SALOME::BAD_PARAM);
+  SMESH::SMESH_Hypothesis_var myHyp = SMESH::SMESH_Hypothesis::_narrow(anHyp);
+  if (CORBA::is_nil(myHyp))
+    THROW_SALOME_CORBA_EXCEPTION("bad hypothesis reference",
+                                 SALOME::BAD_PARAM);
 
-       SMESH_Hypothesis::Hypothesis_Status status = SMESH_Hypothesis::HYP_OK;
-       try
-       {
-               TopoDS_Shape myLocSubShape =
-                       _gen_i->GetShapeReader()->GetShape(SMESH_Gen_i::GetGeomEngine(), aSubShapeObject);
-               int hypId = myHyp->GetId();
-               status = _impl->AddHypothesis(myLocSubShape, hypId);
-                if ( !SMESH_Hypothesis::IsStatusFatal(status) )
-                  _mapHypo[hypId] = myHyp;
-       }
-       catch(SALOME_Exception & S_ex)
-       {
-               THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
-       }
-       return status;
+  SMESH_Hypothesis::Hypothesis_Status status = SMESH_Hypothesis::HYP_OK;
+  try
+  {
+    TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape( aSubShapeObject);
+    int hypId = myHyp->GetId();
+    status = _impl->AddHypothesis(myLocSubShape, hypId);
+    if ( !SMESH_Hypothesis::IsStatusFatal(status) ) {
+      _mapHypo[hypId] = myHyp;
+      // assure there is a corresponding submesh
+      if ( !_impl->IsMainShape( myLocSubShape )) {
+        int shapeId = _impl->GetMeshDS()->ShapeToIndex( myLocSubShape );
+        if ( _mapSubMesh_i.find( shapeId ) == _mapSubMesh_i.end() )
+          createSubMesh( aSubShapeObject );
+      }
+    }
+  }
+  catch(SALOME_Exception & S_ex)
+  {
+    THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
+  }
+  return status;
 }
 
 //=============================================================================
@@ -470,71 +390,13 @@ SMESH::Hypothesis_Status SMESH_Mesh_i::RemoveHypothesis(GEOM::GEOM_Object_ptr aS
   Unexpect aCatch(SALOME_SalomeException);
   SMESH_Hypothesis::Hypothesis_Status status = removeHypothesis( aSubShapeObject, anHyp );
 
-  if ( !SMESH_Hypothesis::IsStatusFatal(status) ) {
-    SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-
-    if ( !aStudy->_is_nil() ) {
-      // Detect whether <aSubShape> refers to this mesh or its sub-mesh
-      SALOMEDS::GenericAttribute_var anAttr;
-      SALOMEDS::AttributeIOR_var     anIOR;
-      SALOMEDS::SObject_var aMeshSO  = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( _this() ) ) ) );
-      if ( aMeshSO->_is_nil() ) {
-        SCRUTE( SMESH_Gen_i::GetORB()->object_to_string( _this() ));
-        addHypothesis( aSubShapeObject, anHyp );
-       return SMESH::HYP_UNKNOWN_FATAL;
-      }
-      SALOMEDS::SObject_var aMorSM, aRef;
-      CORBA::String_var aShapeIOR    = CORBA::string_dup( SMESH_Gen_i::GetORB()->object_to_string( aSubShapeObject ) );
-      SALOMEDS::ChildIterator_var it = aStudy->NewChildIterator( aMeshSO );
-
-      for ( it->InitEx( true ); it->More(); it->Next() ) {
-       SALOMEDS::SObject_var anObj = it->Value();
-       if ( anObj->ReferencedObject( aRef ) ) {
-         if ( aRef->FindAttribute( anAttr, "AttributeIOR" ) ) {
-           anIOR = SALOMEDS::AttributeIOR::_narrow( anAttr );
-           if ( strcmp( anIOR->Value(), aShapeIOR ) == 0 ) {
-             aMorSM = anObj->GetFather();
-             break;
-           }
-         }
-       }
-      }
-
-      bool aIsAlgo = !SMESH::SMESH_Algo::_narrow( anHyp )->_is_nil();
-      SALOMEDS::SObject_var aHypSO  = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( anHyp ) ) ) );
-      if ( !aMorSM->_is_nil() && !aHypSO->_is_nil() ) {
-       // Remove a refernce to hypothesis or algorithm
-       SALOMEDS::SObject_var             AHR;
-       SALOMEDS::AttributeName_var       aName;
-       SALOMEDS::AttributeSelectable_var aSelAttr;
-       SALOMEDS::AttributePixMap_var     aPixmap;
-       SALOMEDS::StudyBuilder_var        aBuilder = aStudy->NewBuilder();
-       CORBA::String_var                 aHypIOR  = CORBA::string_dup( SMESH_Gen_i::GetORB()->object_to_string( anHyp ) );
-       long                              aTag     = aIsAlgo ? SMESH_Gen_i::GetRefOnAppliedAlgorithmsTag() : SMESH_Gen_i::GetRefOnAppliedHypothesisTag();
-
-       if ( aMorSM->FindSubObject( aTag, AHR ) ) {
-         SALOMEDS::ChildIterator_var it = aStudy->NewChildIterator( AHR );
-         for ( ; it->More(); it->Next() ) {
-           SALOMEDS::SObject_var anObj = it->Value();
-           if ( anObj->ReferencedObject( aRef ) ) {
-             if ( aRef->FindAttribute( anAttr, "AttributeIOR" ) ) {
-               anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
-               if ( strcmp( anIOR->Value(), aHypIOR ) == 0 ) {
-                 aBuilder->RemoveObject( anObj );
-                 break;
-               }
-             }
-           }
-         }
-       }
-      }
-    }
-  }
+  if ( !SMESH_Hypothesis::IsStatusFatal(status) )
+    _gen_i->RemoveHypothesisFromShape(_gen_i->GetCurrentStudy(), _this(),
+                                      aSubShapeObject, anHyp );
 
   return ConvertHypothesisStatus(status);
 }
 
-
 //=============================================================================
 /*!
  *  
@@ -559,8 +421,7 @@ 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->GetShapeReader()->GetShape(SMESH_Gen_i::GetGeomEngine(), aSubShapeObject);
+               TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape(aSubShapeObject);
                int hypId = myHyp->GetId();
                status = _impl->RemoveHypothesis(myLocSubShape, hypId);
                 if ( !SMESH_Hypothesis::IsStatusFatal(status) )
@@ -584,7 +445,7 @@ SMESH::ListOfHypothesis *
 throw(SALOME::SALOME_Exception)
 {
   Unexpect aCatch(SALOME_SalomeException);
-  MESSAGE("GetHypothesisList");
+  if (MYDEBUG) MESSAGE("GetHypothesisList");
   if (CORBA::is_nil(aSubShapeObject))
     THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
                                 SALOME::BAD_PARAM);
@@ -592,9 +453,7 @@ throw(SALOME::SALOME_Exception)
   SMESH::ListOfHypothesis_var aList = new SMESH::ListOfHypothesis();
 
   try {
-    TopoDS_Shape myLocSubShape
-      = _gen_i->GetShapeReader()->GetShape(SMESH_Gen_i::GetGeomEngine(), aSubShapeObject);
-    
+    TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape(aSubShapeObject);
     const list<const SMESHDS_Hypothesis*>& aLocalList = _impl->GetHypothesisList( myLocSubShape );
     int i = 0, n = aLocalList.size();
     aList->length( n );
@@ -620,7 +479,7 @@ throw(SALOME::SALOME_Exception)
  */
 //=============================================================================
 SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::GetSubMesh(GEOM::GEOM_Object_ptr aSubShapeObject,
-                                                 const char*          theName ) 
+                                                 const char*           theName ) 
      throw(SALOME::SALOME_Exception)
 {
   Unexpect aCatch(SALOME_SalomeException);
@@ -629,48 +488,30 @@ SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::GetSubMesh(GEOM::GEOM_Object_ptr aSubShap
     THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
                                 SALOME::BAD_PARAM);
   
-  int subMeshId = 0;
+  SMESH::SMESH_subMesh_var subMesh;
+  SMESH::SMESH_Mesh_var    aMesh = SMESH::SMESH_Mesh::_narrow(_this());
   try {
-    TopoDS_Shape myLocSubShape
-      = _gen_i->GetShapeReader()->GetShape(SMESH_Gen_i::GetGeomEngine(), aSubShapeObject);
+    TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape(aSubShapeObject);
     
     //Get or Create the SMESH_subMesh object implementation
     
-    ::SMESH_subMesh * mySubMesh = _impl->GetSubMesh(myLocSubShape);
-    subMeshId = mySubMesh->GetId();
-    
+    int subMeshId = _impl->GetMeshDS()->ShapeToIndex( myLocSubShape );
+    subMesh = getSubMesh( subMeshId );
+
     // create a new subMesh object servant if there is none for the shape
-    
-    if (_mapSubMesh.find(subMeshId) == _mapSubMesh.end()) {
-      SMESH::SMESH_subMesh_var subMesh = createSubMesh( aSubShapeObject );
-      if ( _gen_i->CanPublishInStudy( subMesh ) ) {
-       SALOMEDS::SObject_var aSubmeshSO = _gen_i->PublishInStudy( _gen_i->GetCurrentStudy(), 
-                                                                  SALOMEDS::SObject::_nil(),
-                                                                  subMesh,
-                                                                  theName );
-         
-       // Add reference to <aSubShape> to the study
-       SALOMEDS::Study_var aStudy = _gen_i->GetCurrentStudy();
-       SALOMEDS::SObject_var aShapeSO = aStudy->FindObjectIOR( SMESH_Gen_i::GetORB()->object_to_string( aSubShapeObject ) );
-       if ( !aSubmeshSO->_is_nil() && !aShapeSO->_is_nil() ) {
-         if(MYDEBUG) MESSAGE( "********** SMESH_Mesh_i::GetSubMesh(): adding shape reference..." )
-         SALOMEDS::StudyBuilder_var aBuilder = aStudy->NewBuilder();
-         SALOMEDS::SObject_var SO = aBuilder->NewObjectToTag( aSubmeshSO, SMESH_Gen_i::GetRefOnShapeTag() );
-         aBuilder->Addreference( SO, aShapeSO );
-         if(MYDEBUG) MESSAGE( "********** SMESH_Mesh_i::GetSubMesh(): shape reference added" )
-       }
-      }
-    }
+    if ( subMesh->_is_nil() )
+      subMesh = createSubMesh( aSubShapeObject );
+
+    if ( _gen_i->CanPublishInStudy( subMesh ))
+      _gen_i->PublishSubMesh (_gen_i->GetCurrentStudy(), aMesh,
+                              subMesh, aSubShapeObject, theName );
   }
   catch(SALOME_Exception & S_ex) {
     THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
   }
-    
-  ASSERT(_mapSubMeshIor.find(subMeshId) != _mapSubMeshIor.end());
-  return SMESH::SMESH_subMesh::_duplicate(_mapSubMeshIor[subMeshId]);
+  return subMesh;
 }
 
-
 //=============================================================================
 /*!
  *  
@@ -688,7 +529,7 @@ void SMESH_Mesh_i::RemoveSubMesh( SMESH::SMESH_subMesh_ptr theSubMesh )
   SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
   if ( !aStudy->_is_nil() )  {
     // Remove submesh's SObject
-    SALOMEDS::SObject_var anSO = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( theSubMesh ) ) ) );
+    SALOMEDS::SObject_var anSO = _gen_i->ObjectToSObject( aStudy, theSubMesh );
     if ( !anSO->_is_nil() ) {
       long aTag = SMESH_Gen_i::GetRefOnShapeTag(); 
       SALOMEDS::SObject_var anObj, aRef;
@@ -710,19 +551,15 @@ void SMESH_Mesh_i::RemoveSubMesh( SMESH::SMESH_subMesh_ptr theSubMesh )
 //=============================================================================
 
 SMESH::SMESH_Group_ptr SMESH_Mesh_i::CreateGroup( SMESH::ElementType theElemType,
-                                             const char* theName )
+                                                 const char*         theName )
      throw(SALOME::SALOME_Exception)
 {
   Unexpect aCatch(SALOME_SalomeException);
-  SMESH::SMESH_Group_var aNewGroup = createGroup( theElemType, theName );
-
-  // Groups should be put under separate roots according to their type (nodes, edges, faces, volumes)
-  if ( _gen_i->CanPublishInStudy( aNewGroup ) ) {
-    SALOMEDS::SObject_var aGroupSO = _gen_i->PublishInStudy( _gen_i->GetCurrentStudy(), 
-                                                            SALOMEDS::SObject::_nil(),
-                                                            aNewGroup,
-                                                            theName );
-  }
+  SMESH::SMESH_Group_var aNewGroup =
+    SMESH::SMESH_Group::_narrow( createGroup( theElemType, theName ));
+
+  _gen_i->PublishGroup( _gen_i->GetCurrentStudy(), _this(),
+                       aNewGroup, GEOM::GEOM_Object::_nil(), theName);
 
   return aNewGroup._retn();
 }
@@ -733,100 +570,23 @@ SMESH::SMESH_Group_ptr SMESH_Mesh_i::CreateGroup( SMESH::ElementType theElemType
  *  
  */
 //=============================================================================
-SMESH::SMESH_Group_ptr SMESH_Mesh_i::CreateGroupFromGEOM( SMESH::ElementType theElemType,
-                                                         const char* theName,
-                                                         GEOM::GEOM_Object_ptr theGEOMGroup)
+SMESH::SMESH_GroupOnGeom_ptr SMESH_Mesh_i::CreateGroupFromGEOM( SMESH::ElementType    theElemType,
+                                                               const char*           theName,
+                                                               GEOM::GEOM_Object_ptr theGeomObj)
      throw(SALOME::SALOME_Exception)
 {
   Unexpect aCatch(SALOME_SalomeException);
-  
-  SMESH::SMESH_Group_var aNewGroup = createGroup( theElemType, theName );
-  
-  if ( CORBA::is_nil(theGEOMGroup) || theGEOMGroup->GetType() != 37 || CORBA::is_nil(aNewGroup))
-    return aNewGroup._retn();
-  
-  GEOM::GEOM_IGroupOperations_var aGroupOp = SMESH_Gen_i::GetGeomEngine()->GetIGroupOperations(_studyId);
-  SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-  
-  // Check if group constructed on the same shape as a mesh or on its child:
-  GEOM::GEOM_Object_var aGroupMainShape = aGroupOp->GetMainShape( theGEOMGroup );
-  SALOMEDS::SObject_var aGroupMainShapeSO =
-    SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( SMESH_Gen_i::GetORB()->object_to_string(aGroupMainShape) ) );
-  SALOMEDS::SObject_var aMeshSO  = 
-    SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( _this() ) ) ) );
-  
-  SALOMEDS::SObject_var anObj, aRef;
-  bool isRefOrSubShape = false;
-  
-  if ( aMeshSO->FindSubObject( 1, anObj ) &&  anObj->ReferencedObject( aRef )) {
-    if ( strcmp( aRef->GetID(), aGroupMainShapeSO->GetID() ) == 0 )
-      isRefOrSubShape = true;
-    else
-      {
-       SALOMEDS::SObject_var aFather = aGroupMainShapeSO->GetFather();
-       SALOMEDS::SComponent_var aComponent = aGroupMainShapeSO->GetFatherComponent();
-       while ( !isRefOrSubShape && strcmp( aFather->GetID(), aComponent->GetID() ) != 0 )
-         {
-           if (strcmp( aRef->GetID(), aFather->GetID() ) == 0)
-             isRefOrSubShape = true;
-           else
-             aFather = aFather->GetFather();
-         }
-      }
-    if ( !isRefOrSubShape ) 
-      return aNewGroup._retn();
+  SMESH::SMESH_GroupOnGeom_var aNewGroup;
+
+  TopoDS_Shape aShape = _gen_i->GeomObjectToShape( theGeomObj );
+  if ( !aShape.IsNull() ) {
+    aNewGroup = SMESH::SMESH_GroupOnGeom::_narrow
+      ( createGroup( theElemType, theName, aShape ));
+    if ( _gen_i->CanPublishInStudy( aNewGroup ) )
+      _gen_i->PublishGroup( _gen_i->GetCurrentStudy(), _this(), 
+                           aNewGroup, theGeomObj, theName );
   }
-  
-  // Detect type of the geometry group
-  SMESH::ElementType aGEOMGroupType;
-  
-  SMESH::ElementType aGroupType = SMESH::ALL;
-  switch(aGroupOp->GetType(theGEOMGroup)) 
-    {
-    case 7: aGEOMGroupType = SMESH::NODE; break;
-    case 6: aGEOMGroupType = SMESH::EDGE; break;
-    case 4: aGEOMGroupType = SMESH::FACE; break;
-    case 2: aGEOMGroupType = SMESH::VOLUME; break;
-    }
-    
-  if ( aGEOMGroupType == theElemType )
-    {
-      if ( !aStudy->_is_nil() ) 
-       {
-         SALOMEDS::SObject_var aGEOMGroupSO =
-           SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( SMESH_Gen_i::GetORB()->object_to_string(theGEOMGroup) ) );
-         
-         if ( !aGEOMGroupSO->_is_nil() ) {
-           // Construct filter
-           SMESH::FilterManager_var aFilterMgr = _gen_i->CreateFilterManager();
-           SMESH::Filter_var aFilter = aFilterMgr->CreateFilter();
-           SMESH::BelongToGeom_var aBelongToGeom = aFilterMgr->CreateBelongToGeom();
-           aBelongToGeom->SetGeom( theGEOMGroup );
-           aBelongToGeom->SetShapeName( aGEOMGroupSO->GetName() );
-           aBelongToGeom->SetElementType( theElemType );
-           aFilter->SetPredicate( aBelongToGeom );
-           SMESH::long_array_var anElements = aFilter->GetElementsId( _this() );
-           aNewGroup->Add( anElements );
-           
-           // Groups should be put under separate roots according to their type (nodes, edges, faces, volumes)
-           if ( _gen_i->CanPublishInStudy( aNewGroup ) )
-             {
-               SALOMEDS::SObject_var aGroupSO = _gen_i->PublishInStudy( _gen_i->GetCurrentStudy(), 
-                                                                        SALOMEDS::SObject::_nil(),
-                                                                        aNewGroup,
-                                                                        theName );
-               if ( !aGroupSO->_is_nil() )
-                 {
-                   //Add reference to geometry group
-                   SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
-                   SALOMEDS::SObject_var aReference = aStudyBuilder->NewObject(aGroupSO);
-                   aStudyBuilder->Addreference(aReference, aGEOMGroupSO);
-                 }
-             }
-         }
-       }
-    }
-  
+
   return aNewGroup._retn();
 }
 //=============================================================================
@@ -835,20 +595,21 @@ SMESH::SMESH_Group_ptr SMESH_Mesh_i::CreateGroupFromGEOM( SMESH::ElementType the
  */
 //=============================================================================
 
-void SMESH_Mesh_i::RemoveGroup( SMESH::SMESH_Group_ptr theGroup )
-    throw (SALOME::SALOME_Exception)
+void SMESH_Mesh_i::RemoveGroup( SMESH::SMESH_GroupBase_ptr theGroup )
+     throw (SALOME::SALOME_Exception)
 {
   if ( theGroup->_is_nil() )
     return;
 
-  SMESH_Group_i* aGroup = dynamic_cast<SMESH_Group_i*>( SMESH_Gen_i::GetServant( theGroup ).in() );
+  SMESH_GroupBase_i* aGroup =
+    dynamic_cast<SMESH_GroupBase_i*>( SMESH_Gen_i::GetServant( theGroup ).in() );
   if ( !aGroup )
     return;
 
   SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
   if ( !aStudy->_is_nil() )  {
     // Remove group's SObject
-    SALOMEDS::SObject_var aGroupSO = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( theGroup ) ) ) );
+    SALOMEDS::SObject_var aGroupSO = _gen_i->ObjectToSObject( aStudy, theGroup );
     if ( !aGroupSO->_is_nil() )
       aStudy->NewBuilder()->RemoveObject( aGroupSO );
   }
@@ -862,13 +623,14 @@ void SMESH_Mesh_i::RemoveGroup( SMESH::SMESH_Group_ptr theGroup )
  *  Remove group with its contents
  */ 
 //=============================================================================
-void SMESH_Mesh_i::RemoveGroupWithContents( SMESH::SMESH_Group_ptr theGroup )
+void SMESH_Mesh_i::RemoveGroupWithContents( SMESH::SMESH_GroupBase_ptr theGroup )
   throw (SALOME::SALOME_Exception)
 {
   if ( theGroup->_is_nil() )
     return;
 
-  SMESH_Group_i* aGroup = dynamic_cast<SMESH_Group_i*>( SMESH_Gen_i::GetServant( theGroup ).in() );
+  SMESH_GroupBase_i* aGroup =
+    dynamic_cast<SMESH_GroupBase_i*>( SMESH_Gen_i::GetServant( theGroup ).in() );
   if ( !aGroup )
     return;
   
@@ -889,8 +651,8 @@ void SMESH_Mesh_i::RemoveGroupWithContents( SMESH::SMESH_Group_ptr theGroup )
  *  present in initial groups are added to the new one
  */
 //=============================================================================
-SMESH::SMESH_Group_ptr SMESH_Mesh_i::UnionGroups( SMESH::SMESH_Group_ptr theGroup1, 
-                                                  SMESH::SMESH_Group_ptr theGroup2, 
+SMESH::SMESH_Group_ptr SMESH_Mesh_i::UnionGroups( SMESH::SMESH_GroupBase_ptr theGroup1, 
+                                                  SMESH::SMESH_GroupBase_ptr theGroup2, 
                                                   const char* theName )
   throw (SALOME::SALOME_Exception)
 {
@@ -941,8 +703,8 @@ SMESH::SMESH_Group_ptr SMESH_Mesh_i::UnionGroups( SMESH::SMESH_Group_ptr theGrou
  *  present in both initial groups are added to the new one.
  */
 //=============================================================================
-SMESH::SMESH_Group_ptr SMESH_Mesh_i::IntersectGroups( SMESH::SMESH_Group_ptr theGroup1, 
-                                                      SMESH::SMESH_Group_ptr theGroup2, 
+SMESH::SMESH_Group_ptr SMESH_Mesh_i::IntersectGroups( SMESH::SMESH_GroupBase_ptr theGroup1, 
+                                                      SMESH::SMESH_GroupBase_ptr theGroup2, 
                                                       const char* theName )
   throw (SALOME::SALOME_Exception)
 {
@@ -987,8 +749,8 @@ SMESH::SMESH_Group_ptr SMESH_Mesh_i::IntersectGroups( SMESH::SMESH_Group_ptr the
  *  main group but do not present in tool group are added to the new one 
  */
 //=============================================================================
-SMESH::SMESH_Group_ptr SMESH_Mesh_i::CutGroups( SMESH::SMESH_Group_ptr theGroup1, 
-                                                SMESH::SMESH_Group_ptr theGroup2, 
+SMESH::SMESH_Group_ptr SMESH_Mesh_i::CutGroups( SMESH::SMESH_GroupBase_ptr theGroup1, 
+                                                SMESH::SMESH_GroupBase_ptr theGroup2, 
                                                 const char* theName )
   throw (SALOME::SALOME_Exception)
 {
@@ -1035,28 +797,40 @@ SMESH::SMESH_Group_ptr SMESH_Mesh_i::CutGroups( SMESH::SMESH_Group_ptr theGroup1
 
 SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::createSubMesh( GEOM::GEOM_Object_ptr theSubShapeObject )
 {
-  TopoDS_Shape myLocSubShape = _gen_i->GetShapeReader()->GetShape(SMESH_Gen_i::GetGeomEngine(), theSubShapeObject);
+  if(MYDEBUG) MESSAGE( "createSubMesh" );
+  TopoDS_Shape myLocSubShape = _gen_i->GeomObjectToShape(theSubShapeObject);
 
   ::SMESH_subMesh * mySubMesh = _impl->GetSubMesh(myLocSubShape);
-  int subMeshId = mySubMesh->GetId();
+  int subMeshId = _impl->GetMeshDS()->ShapeToIndex( myLocSubShape );
   SMESH_subMesh_i *subMeshServant = new SMESH_subMesh_i(myPOA, _gen_i, this, subMeshId);
   SMESH::SMESH_subMesh_var subMesh
     = SMESH::SMESH_subMesh::_narrow(subMeshServant->_this());
 
   _mapSubMesh[subMeshId] = mySubMesh;
   _mapSubMesh_i[subMeshId] = subMeshServant;
-  _mapSubMeshIor[subMeshId]
-    = SMESH::SMESH_subMesh::_duplicate(subMesh);
+  _mapSubMeshIor[subMeshId] = SMESH::SMESH_subMesh::_duplicate(subMesh);
 
   // register CORBA object for persistence
-  StudyContext* myStudyContext = _gen_i->GetCurrentStudyContext();
-  string iorString = SMESH_Gen_i::GetORB()->object_to_string( subMesh );
-  int nextId = myStudyContext->addObject( iorString );
-  if(MYDEBUG) MESSAGE( "Add submesh to map with id = "<< nextId << " and IOR = " << iorString.c_str() );
+  int nextId = _gen_i->RegisterObject( subMesh );
+  if(MYDEBUG) MESSAGE( "Add submesh to map with id = "<< nextId);
 
   return subMesh._retn(); 
 }
 
+//=======================================================================
+//function : getSubMesh
+//purpose  : 
+//=======================================================================
+
+SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::getSubMesh(int shapeID)
+{
+  map<int, SMESH::SMESH_subMesh_ptr>::iterator it = _mapSubMeshIor.find( shapeID );
+  if ( it == _mapSubMeshIor.end() )
+    return SMESH::SMESH_subMesh::_nil();
+
+  return SMESH::SMESH_subMesh::_duplicate( (*it).second );
+}
+
 
 //=============================================================================
 /*!
@@ -1064,7 +838,8 @@ SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::createSubMesh( GEOM::GEOM_Object_ptr theS
  */
 //=============================================================================
 
-void SMESH_Mesh_i::removeSubMesh( SMESH::SMESH_subMesh_ptr theSubMesh, GEOM::GEOM_Object_ptr theSubShapeObject )
+void SMESH_Mesh_i::removeSubMesh (SMESH::SMESH_subMesh_ptr theSubMesh,
+                                  GEOM::GEOM_Object_ptr    theSubShapeObject )
 {
   MESSAGE("SMESH_Mesh_i::removeSubMesh()");
   if ( theSubMesh->_is_nil() || theSubShapeObject->_is_nil() )
@@ -1094,25 +869,28 @@ void SMESH_Mesh_i::removeSubMesh( SMESH::SMESH_subMesh_ptr theSubMesh, GEOM::GEO
  */
 //=============================================================================
 
-SMESH::SMESH_Group_ptr SMESH_Mesh_i::createGroup( SMESH::ElementType theElemType, const char* theName )
+SMESH::SMESH_GroupBase_ptr SMESH_Mesh_i::createGroup (SMESH::ElementType theElemType,
+                                                      const char*         theName,
+                                                      const TopoDS_Shape& theShape )
 {
   int anId;
-  SMESH::SMESH_Group_var aGroup;
-  if ( _impl->AddGroup( (SMDSAbs_ElementType)theElemType, theName, anId ) ) {
-    SMESH_Group_i* aGroupImpl = new SMESH_Group_i( SMESH_Gen_i::GetPOA(), this, anId );
-    aGroup = SMESH::SMESH_Group::_narrow( aGroupImpl->_this() );
-    _mapGroups[anId] = SMESH::SMESH_Group::_duplicate( aGroup );
+  SMESH::SMESH_GroupBase_var aGroup;
+  if ( _impl->AddGroup( (SMDSAbs_ElementType)theElemType, theName, anId, theShape )) {
+    SMESH_GroupBase_i* aGroupImpl;
+    if ( !theShape.IsNull() )
+      aGroupImpl = new SMESH_GroupOnGeom_i( SMESH_Gen_i::GetPOA(), this, anId );
+    else
+      aGroupImpl = new SMESH_Group_i( SMESH_Gen_i::GetPOA(), this, anId );
+    aGroup = SMESH::SMESH_GroupBase::_narrow( aGroupImpl->_this() );
+    _mapGroups[anId] = SMESH::SMESH_GroupBase::_duplicate( aGroup );
 
     // register CORBA object for persistence
-    StudyContext* myStudyContext = _gen_i->GetCurrentStudyContext();
-    string iorString = SMESH_Gen_i::GetORB()->object_to_string( aGroup );
-    int nextId = myStudyContext->addObject( iorString );
-    if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId << " and IOR = " << iorString.c_str() );
+    int nextId = _gen_i->RegisterObject( aGroup );
+    if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId);
   }
   return aGroup._retn();
 }
 
-
 //=============================================================================
 /*!
  * SMESH_Mesh_i::removeGroup
@@ -1274,31 +1052,35 @@ SMESH::SMESH_MeshEditor_ptr SMESH_Mesh_i::GetMeshEditor()
 void SMESH_Mesh_i::ExportMED(const char *file, CORBA::Boolean auto_groups) throw(SALOME::SALOME_Exception)
 {
   Unexpect aCatch(SALOME_SalomeException);
-  SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
-  if ( aStudy->_is_nil() ) 
-    return;
 
-  char* aMeshName = NULL;
-  SALOMEDS::SObject_var aMeshSO = SALOMEDS::SObject::_narrow( aStudy->FindObjectIOR( ( SMESH_Gen_i::GetORB()->object_to_string( _this() ) ) ) );
-  if ( !aMeshSO->_is_nil() )
-    {
+  char* aMeshName = "Mesh";
+  SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
+  if ( !aStudy->_is_nil() ) {
+    SALOMEDS::SObject_var aMeshSO = _gen_i->ObjectToSObject( aStudy, _this() );
+    if ( !aMeshSO->_is_nil() ) {
       aMeshName = aMeshSO->GetName();
       //SCRUTE(file);
       //SCRUTE(aMeshName);
       //SCRUTE(aMeshSO->GetID());
-      SALOMEDS::GenericAttribute_var anAttr;
-      SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
-      SALOMEDS::AttributeExternalFileDef_var aFileName;
-      anAttr=aStudyBuilder->FindOrCreateAttribute(aMeshSO, "AttributeExternalFileDef");
-      aFileName = SALOMEDS::AttributeExternalFileDef::_narrow(anAttr);
-      ASSERT(!aFileName->_is_nil());
-      aFileName->SetValue(file);
-      SALOMEDS::AttributeFileType_var aFileType;
-      anAttr=aStudyBuilder->FindOrCreateAttribute(aMeshSO, "AttributeFileType");
-      aFileType = SALOMEDS::AttributeFileType::_narrow(anAttr);
-      ASSERT(!aFileType->_is_nil());
-      aFileType->SetValue("FICHIERMED");
+
+      // asv : 27.10.04 : fix of 6903: check for StudyLocked before adding attributes 
+      if ( !aStudy->GetProperties()->IsLocked() ) 
+      {
+       SALOMEDS::GenericAttribute_var anAttr;
+       SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder();
+       SALOMEDS::AttributeExternalFileDef_var aFileName;
+       anAttr=aStudyBuilder->FindOrCreateAttribute(aMeshSO, "AttributeExternalFileDef");
+       aFileName = SALOMEDS::AttributeExternalFileDef::_narrow(anAttr);
+       ASSERT(!aFileName->_is_nil());
+        aFileName->SetValue(file);
+        SALOMEDS::AttributeFileType_var aFileType;
+        anAttr=aStudyBuilder->FindOrCreateAttribute(aMeshSO, "AttributeFileType");
+        aFileType = SALOMEDS::AttributeFileType::_narrow(anAttr);
+        ASSERT(!aFileType->_is_nil());
+        aFileType->SetValue("FICHIERMED");
+      }
     }
+  }
   _impl->ExportMED( file, aMeshName, auto_groups );
 }
 
@@ -1435,3 +1217,23 @@ char* SMESH_Mesh_i::Dump()
   _impl->Dump( os );
   return CORBA::string_dup( os.str().c_str() );
 }
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+SMESH::long_array* SMESH_Mesh_i::GetIDs()
+{
+  SMESH::long_array_var aResult = new SMESH::long_array();
+  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+  int aMinId = aSMESHDS_Mesh->MinElementID();
+  int aMaxId =  aSMESHDS_Mesh->MaxElementID();
+
+  aResult->length(aMaxId - aMinId + 1);
+  
+  for (int i = 0, id = aMinId; id <= aMaxId; id++  )
+    aResult[i++] = id;
+  
+  return aResult._retn();
+}
index ad960f5034be3cfe33bae0521b93cf9038e12f59..0b010c474cfe1cf5c2adcf16511467a0acd8ad20 100644 (file)
@@ -44,7 +44,7 @@
 #include "SALOME_GenericObj_i.hh"
 
 class SMESH_Gen_i;
-class SMESH_Group_i;
+class SMESH_GroupBase_i;
 
 #include <map>
 
@@ -65,6 +65,9 @@ public:
   void SetShape( GEOM::GEOM_Object_ptr theShapeObject )
     throw (SALOME::SALOME_Exception);
 
+  GEOM::GEOM_Object_ptr GetShapeToMesh()
+    throw (SALOME::SALOME_Exception);
+
   SMESH::Hypothesis_Status AddHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
                                          SMESH::SMESH_Hypothesis_ptr anHyp)
     throw (SALOME::SALOME_Exception);
@@ -85,29 +88,30 @@ public:
   SMESH::SMESH_Group_ptr CreateGroup( SMESH::ElementType theElemType, const char* theName )
     throw (SALOME::SALOME_Exception);
   
-  SMESH::SMESH_Group_ptr CreateGroupFromGEOM( SMESH::ElementType theElemType,  const char* theName,                     
-                                             GEOM::GEOM_Object_ptr theGEOMGroup )
-    throw (SALOME::SALOME_Exception); 
+  SMESH::SMESH_GroupOnGeom_ptr CreateGroupFromGEOM(SMESH::ElementType    theElemType,
+                                                   const char*           theName,
+                                                   GEOM::GEOM_Object_ptr theGeomObj )
+    throw (SALOME::SALOME_Exception);
 
-  void RemoveGroup( SMESH::SMESH_Group_ptr theGroup )
+  void RemoveGroup( SMESH::SMESH_GroupBase_ptr theGroup )
     throw (SALOME::SALOME_Exception);
   
-  void RemoveGroupWithContents( SMESH::SMESH_Group_ptr theGroup )
+  void RemoveGroupWithContents( SMESH::SMESH_GroupBase_ptr theGroup )
     throw (SALOME::SALOME_Exception);
   
-  SMESH::SMESH_Group_ptr UnionGroups( SMESH::SMESH_Group_ptr theGroup1, 
-                                      SMESH::SMESH_Group_ptr theGroup2, 
+  SMESH::SMESH_Group_ptr UnionGroups( SMESH::SMESH_GroupBase_ptr theGroup1, 
+                                      SMESH::SMESH_GroupBase_ptr theGroup2, 
                                       const char* theName )
     throw (SALOME::SALOME_Exception);
   
-  SMESH::SMESH_Group_ptr IntersectGroups( SMESH::SMESH_Group_ptr theGroup1, 
-                                          SMESH::SMESH_Group_ptr theGroup2, 
+  SMESH::SMESH_Group_ptr IntersectGroups( SMESH::SMESH_GroupBase_ptr theGroup1, 
+                                          SMESH::SMESH_GroupBase_ptr theGroup2, 
                                           const char* theName )
     throw (SALOME::SALOME_Exception);
   
-  SMESH::SMESH_Group_ptr CutGroups( SMESH::SMESH_Group_ptr theGroup1, 
-                                    SMESH::SMESH_Group_ptr theGroup2, 
-                                    const char* theName )
+  SMESH::SMESH_Group_ptr CutGroups( SMESH::SMESH_GroupBase_ptr theGroup1, 
+                                    SMESH::SMESH_GroupBase_ptr theGroup2, 
+                                   const char* theName )
     throw (SALOME::SALOME_Exception);
 
 //    SMESH::string_array* GetLog(CORBA::Boolean clearAfterGet)
@@ -201,18 +205,27 @@ public:
   SMESH_Hypothesis::Hypothesis_Status removeHypothesis(GEOM::GEOM_Object_ptr aSubShapeObject,
                                                        SMESH::SMESH_Hypothesis_ptr anHyp);
   
-  bool setShape( GEOM::GEOM_Object_ptr theShapeObject );
-
   int importMEDFile( const char* theFileName, const char* theMeshName );
 
   SMESH::SMESH_subMesh_ptr createSubMesh( GEOM::GEOM_Object_ptr theSubShapeObject );
 
-  void removeSubMesh( SMESH::SMESH_subMesh_ptr theSubMesh, GEOM::GEOM_Object_ptr theSubShapeObject );
+  void removeSubMesh(SMESH::SMESH_subMesh_ptr theSubMesh,
+                     GEOM::GEOM_Object_ptr theSubShapeObject );
 
-  SMESH::SMESH_Group_ptr createGroup( SMESH::ElementType theElemType, const char* theName );
+  SMESH::SMESH_GroupBase_ptr createGroup(SMESH::ElementType  theElemType,
+                                         const char*         theName,
+                                         const TopoDS_Shape& theShape = TopoDS_Shape());
 
   void removeGroup( const int theId );
 
+  SMESH::SMESH_subMesh_ptr getSubMesh(int shapeID);
+  // return an existing subMesh object for the shapeID. shapeID == submeshID.
+
+  const map<int, SMESH::SMESH_GroupBase_ptr>& getGroups() { return _mapGroups; }
+  // return an existing group object.
+
+  virtual SMESH::long_array* GetIDs();
+
   map<int, SMESH_subMesh_i*> _mapSubMesh_i; //NRI
   map<int, ::SMESH_subMesh*> _mapSubMesh;   //NRI
 
@@ -223,7 +236,7 @@ private:
   int _id;          // id given by creator (unique within the creator instance)
   int _studyId;
   map<int, SMESH::SMESH_subMesh_ptr>    _mapSubMeshIor;
-  map<int, SMESH::SMESH_Group_ptr>      _mapGroups;
+  map<int, SMESH::SMESH_GroupBase_ptr>  _mapGroups;
   map<int, SMESH::SMESH_Hypothesis_ptr> _mapHypo;
 };
 
index 1ca820cfea4b02a079bcbdc6e86077dd3e4416e7..3ea9c4c0d629ff433d39b666a680d4f25cada6c5 100644 (file)
@@ -284,6 +284,29 @@ CORBA::Long SMESH_subMesh_i::GetId()
   return _localId;
 }
 
+//=======================================================================
+//function : GetSubShape
+//purpose  : 
+//=======================================================================
+
+GEOM::GEOM_Object_ptr SMESH_subMesh_i::GetSubShape()
+     throw (SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  GEOM::GEOM_Object_var aShapeObj;
+  try {
+    if ( _mesh_i->_mapSubMesh.find( _localId ) != _mesh_i->_mapSubMesh.end()) {
+      TopoDS_Shape S = _mesh_i->_mapSubMesh[ _localId ]->GetSubShape();
+      if ( !S.IsNull() )
+        aShapeObj = _gen_i->ShapeToGeomObject( S );
+    }
+  }
+  catch(SALOME_Exception & S_ex) {
+    THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
+  }
+  return aShapeObj._retn();
+}
+
 //=============================================================================
 /*!
  *  
@@ -305,3 +328,14 @@ SALOME_MED::FAMILY_ptr SMESH_subMesh_i::GetFamily()
   
   return SALOME_MED::FAMILY::_nil();
 }
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+SMESH::long_array* SMESH_subMesh_i::GetIDs()
+{
+  SMESH::long_array_var aResult = GetElementsId();
+  return aResult._retn();
+}
index 5c1ae0a3ab5bf32dd7b440f2db35804e9c1343bd..acbcd63994fe365e865c7c62cafc27dff8657c1c 100644 (file)
@@ -70,11 +70,16 @@ public:
   SMESH::SMESH_Mesh_ptr GetFather()
     throw (SALOME::SALOME_Exception);
   
+  GEOM::GEOM_Object_ptr GetSubShape()
+    throw (SALOME::SALOME_Exception);
+
   CORBA::Long GetId();   
 
   SALOME_MED::FAMILY_ptr GetFamily()
     throw (SALOME::SALOME_Exception);
 
+  virtual SMESH::long_array* GetIDs();
+
   SMESH_Mesh_i* _mesh_i; //NRI
 
 protected:
index c370c75e61faf5eab4042164c057b163c75d1ac0..bf85736690fcfdac8bca81724406a5e806ab99ec 100644 (file)
@@ -39,8 +39,22 @@ LIB_SRC =
 
 SWIG_DEF = libSMESH_Swig.i
 EXPORT_PYSCRIPTS = libSMESH_Swig.py \
+                  meshpy.py \
                   batchmode_smesh.py \
                   batchmode_mefisto.py \
+                  cube2pyGibi.py \
+                  cube2geometry.py \
+                  cube2partition.py \
+                  grid4pyGibi.py \
+                  grid4partition.py \
+                  grid3partition.py \
+                  grid17partition.py \
+                  hole1geometry.py \
+                  hole1partition.py \
+                  hole1pyGibi.py \
+                  hole2pyGibi.py \
+                  cyl2geometry.py \
+                  cyl2complementary.py \
                    SMESH_test0.py\
                   SMESH_test1.py \
                   SMESH_test2.py \
@@ -48,6 +62,7 @@ EXPORT_PYSCRIPTS = libSMESH_Swig.py \
                   SMESH_test4.py \
                   SMESH_mechanic.py \
                   SMESH_mechanic_tetra.py \
+                  SMESH_mechanic_editor.py \
                   SMESH_fixation.py \
                   SMESH_fixation_hexa.py \
                   SMESH_fixation_tetra.py \
@@ -72,7 +87,8 @@ LIB_CLIENT_IDL = SALOMEDS.idl \
                 SALOME_ModuleCatalog.idl \
                 SALOME_Component.idl \
                 SALOME_GenericObj.idl \
-                MED.idl
+                MED.idl \
+                SALOME_Comm.idl
 
 EXPORT_SHAREDPYSCRIPTS=SMESH_shared_modules.py
 
index fb350c49b35dba6a79758f8464100791996c34b1..e9bb55fa71641844f8b3430995bf21033116f218 100644 (file)
@@ -55,7 +55,7 @@ cc    = geompy.MakeCylinder(p0, vz,    cc_radius, barier_height)
 colis_cc = geompy.MakeCompound([colis, cc])
 colis_cc = geompy.MakeTranslation(colis_cc, colis_center, 0.0, 0.0)
 
-colis_cc_multi = geompy.MakeMultiRotation1D(colis_cc, vz, 4)
+colis_cc_multi = geompy.MultiRotate1D(colis_cc, vz, 4)
 
 # --
 
@@ -88,7 +88,7 @@ compGOs.append( comp4 )
 comp = geompy.MakeCompound( compGOs )
 
 alveole = geompy.MakeCompound( [ comp, subshapes[8] ])
-       
+
 idalveole = geompy.addToStudy(alveole, "alveole")
 
 print "Analysis of the geometry to mesh (right after the MakeCompound) :"
@@ -193,8 +193,8 @@ if ret != 0:
     print "Number of faces       : ", mesh.NbFaces()
     print "Number of triangles   : ", mesh.NbTriangles()
     print "Number of volumes     : ", mesh.NbVolumes()
-    print "Number of tetrahedrons: ", mesh.NbTetras() 
+    print "Number of tetrahedrons: ", mesh.NbTetras()
 else:
     print "problem when computing the mesh"
-    
+
 salome.sg.updateObjBrowser(1)
index 8d874810a7f8352ed2384e763f95e403d1bbd9b2..b10fcc81fa81be33ea55a9a2457429e602433f05 100644 (file)
@@ -1,21 +1,21 @@
 #  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+#  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
 #
 #
 #
@@ -189,7 +189,7 @@ vcccf = geompy.MakeVector(pcc, pcf)
 hcccf = y2p - y1m
 decf = []
 for face in facef:
-    decf.append(geompy.MakePrism(face,vcccf,hcccf))
+    decf.append(geompy.MakePrismVecH(face,vcccf,hcccf))
 
 pc  = geompy.MakeVertex(xc, 0., zc)
 py2 = geompy.MakeVertex(xc, y2, zc)
@@ -252,7 +252,7 @@ vf3 = geompy.MakeEdge(pf3, pf4)
 
 faceFlanc = MakeFace([vf1,vf2,vf3,aShape])
 
-flanc1 = geompy.MakePrism(faceFlanc, vx, epaisseurFlanc)
+flanc1 = geompy.MakePrismVecH(faceFlanc, vx, epaisseurFlanc)
 flanc2 = geompy.MakeCopy(flanc1)
 flanc1 = geompy.MakeTranslation(flanc1, rayonConge, 0., 0.)
 flanc2 = geompy.MakeTranslation(flanc2, longueurPlq - rayonConge - epaisseurFlanc, 0., 0.)
@@ -284,7 +284,7 @@ blocs.append(geompy.MakeBox(x0h,y1, z3, x1, y2, z4))
 blocs.append(geompy.MakeBox(x2, y1, z3, x3h,y2, z4))
 blocs.append(flanc1)
 blocs.append(flanc2)
+
 compbloc = geompy.MakeCompound(blocs)
 idcomp = geompy.addToStudy(compbloc, "compbloc")
 
index 06ff1b665df6015c7dd788a7120a4b4db20809c3..7c1fdbd2262e99690b6b3cabf05caa81cf93e442 100644 (file)
@@ -1,21 +1,21 @@
 #  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+#  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
 #
 #
 #
@@ -36,7 +36,7 @@ import StdMeshers
 # ---- define contigous arcs and segment to define a closed wire
 p1   = geompy.MakeVertex( 100.0,   0.0,  0.0 )
 p2   = geompy.MakeVertex(  50.0,  50.0,  0.0 )
-p3   = geompy.MakeVertex( 100.0, 100.0,  0.0 ) 
+p3   = geompy.MakeVertex( 100.0, 100.0,  0.0 )
 arc1 = geompy.MakeArc( p1, p2, p3 )
 
 p4   = geompy.MakeVertex( 170.0, 100.0, 0.0 )
@@ -69,7 +69,7 @@ pO = geompy.MakeVertex( 0.0, 0.0,   0.0 )
 pz = geompy.MakeVertex( 0.0, 0.0, 100.0 )
 vz = geompy.MakeVector( pO, pz )
 
-prism1 = geompy.MakePrism( face1, vz, 100.0 )
+prism1 = geompy.MakePrismVecH( face1, vz, 100.0 )
 Id_prism1 = geompy.addToStudy( prism1, "prism1" )
 
 # ---- create two cylinders
@@ -84,7 +84,7 @@ cyl2 = geompy.MakeCylinder( pc2, vz, radius, height )
 Id_Cyl1 = geompy.addToStudy( cyl1, "cyl1" )
 Id_Cyl2 = geompy.addToStudy( cyl2, "cyl2" )
 
-# ---- cut with cyl1 
+# ---- cut with cyl1
 shape = geompy.MakeBoolean( prism1, cyl1, 2 )
 
 # ---- fuse with cyl2 to obtain the final mechanic piece :)
@@ -133,7 +133,7 @@ mesh = smesh.CreateMesh(shape_mesh)
 smeshgui = salome.ImportComponentGUI("SMESH")
 smeshgui.Init(salome.myStudyId)
 
-idmesh = salome.ObjectToID(mesh) 
+idmesh = salome.ObjectToID(mesh)
 smeshgui.SetName( idmesh, "Mesh_mechanic" )
 
 print "-------------------------- NumberOfSegments"
@@ -213,28 +213,28 @@ mesh.AddHypothesis( shape_mesh, hypArea25 )  # max area
 mesh.AddHypothesis( shape_mesh, algoReg1D )  # Regular 1D/wire discretisation
 mesh.AddHypothesis( shape_mesh, algoMef )    # MEFISTO 2D
 
-print "-------------------------- add hypothesis and algorithm to sub face 1"        
+print "-------------------------- add hypothesis and algorithm to sub face 1"
 
 submesh = mesh.GetSubMesh(sub_face1, "SubMeshFace1")
 
 mesh.AddHypothesis( sub_face1, algoQuad )   # Quadrangle 2D
 mesh.AddHypothesis( sub_face1, hypArea35 )  # max area
 
-print "-------------------------- add hypothesis and algorithm to sub face 2"        
+print "-------------------------- add hypothesis and algorithm to sub face 2"
 
 submesh = mesh.GetSubMesh(sub_face2, "SubMeshFace2")
 
 mesh.AddHypothesis( sub_face2, algoQuad )   # Quadrangle 2D
 mesh.AddHypothesis( sub_face2, hypArea35 )  # max area
 
-print "-------------------------- add hypothesis and algorith to sub face 3"        
+print "-------------------------- add hypothesis and algorith to sub face 3"
 
 submesh = mesh.GetSubMesh(sub_face3, "SubMeshFace3")
 
 mesh.AddHypothesis( sub_face3, algoQuad )   # Quadrangle 2D
 mesh.AddHypothesis( sub_face3, hypArea35 )  # max area
 
-print "-------------------------- add hypothesis and algorith to sub face 4"        
+print "-------------------------- add hypothesis and algorith to sub face 4"
 
 submesh = mesh.GetSubMesh(sub_face4, "SubMeshFace4")
 
diff --git a/src/SMESH_SWIG/SMESH_mechanic_editor.py b/src/SMESH_SWIG/SMESH_mechanic_editor.py
new file mode 100644 (file)
index 0000000..596786e
--- /dev/null
@@ -0,0 +1,308 @@
+#  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+#
+#
+#
+#  File   : SMESH_withHole.py
+#  Author : Lucien PIGNOLONI
+#  Module : SMESH
+#  $Header$
+
+#-------------------------------------------------------------------------
+
+import salome
+import geompy
+
+import StdMeshers
+
+import SMESH
+
+# ---------------------------- GEOM --------------------------------------
+
+# ---- define contigous arcs and segment to define a closed wire
+p1   = geompy.MakeVertex( 100.0,   0.0,  0.0 )
+p2   = geompy.MakeVertex(  50.0,  50.0,  0.0 )
+p3   = geompy.MakeVertex( 100.0, 100.0,  0.0 )
+arc1 = geompy.MakeArc( p1, p2, p3 )
+
+p4   = geompy.MakeVertex( 170.0, 100.0, 0.0 )
+seg1 = geompy.MakeVector( p3, p4 )
+
+p5   = geompy.MakeVertex( 200.0, 70.0, 0.0 )
+p6   = geompy.MakeVertex( 170.0, 40.0, 0.0 )
+arc2 = geompy.MakeArc( p4, p5, p6 )
+
+p7   = geompy.MakeVertex( 120.0, 30.0, 0.0 )
+arc3 = geompy.MakeArc( p6, p7, p1 )
+
+# ---- define a closed wire with arcs and segment
+List1 = []
+List1.append( arc1 )
+List1.append( seg1 )
+List1.append( arc2 )
+List1.append( arc3 )
+
+wire1 = geompy.MakeWire( List1 )
+Id_wire1 = geompy.addToStudy( wire1, "wire1" )
+
+# ---- define a planar face with wire
+WantPlanarFace = 1 #True
+face1 = geompy.MakeFace( wire1, WantPlanarFace )
+Id_face1 = geompy.addToStudy( face1, "face1" )
+
+# ---- create a shape by extrusion
+pO = geompy.MakeVertex( 0.0, 0.0,   0.0 )
+pz = geompy.MakeVertex( 0.0, 0.0, 100.0 )
+vz = geompy.MakeVector( pO, pz )
+
+prism1 = geompy.MakePrismVecH( face1, vz, 100.0 )
+Id_prism1 = geompy.addToStudy( prism1, "prism1" )
+
+# ---- create two cylinders
+pc1 = geompy.MakeVertex(  90.0, 50.0, -40.0 )
+pc2 = geompy.MakeVertex( 170.0, 70.0, -40.0 )
+
+radius = 20.0
+height = 180.0
+cyl1 = geompy.MakeCylinder( pc1, vz, radius, height )
+cyl2 = geompy.MakeCylinder( pc2, vz, radius, height )
+
+Id_Cyl1 = geompy.addToStudy( cyl1, "cyl1" )
+Id_Cyl2 = geompy.addToStudy( cyl2, "cyl2" )
+
+# ---- cut with cyl1
+shape = geompy.MakeBoolean( prism1, cyl1, 2 )
+
+# ---- fuse with cyl2 to obtain the final mechanic piece :)
+mechanic = geompy.MakeBoolean( shape, cyl2, 3 )
+Id_mechanic = geompy.addToStudy( mechanic, "mechanic" )
+
+# ---- explode on faces
+SubFaceL = geompy.SubShapeAllSorted(mechanic, geompy.ShapeType["FACE"])
+
+# ---- add a face sub shape in study to be meshed different
+sub_face1 = SubFaceL[0]
+name      = geompy.SubShapeName( sub_face1, mechanic )
+
+Id_SubFace1 = geompy.addToStudyInFather( mechanic, sub_face1, name )
+
+# ---- add a face sub shape in study to be meshed different
+sub_face2 = SubFaceL[4]
+name      = geompy.SubShapeName( sub_face2, mechanic )
+
+Id_SubFace2 = geompy.addToStudyInFather( mechanic, sub_face2, name )
+
+# ---- add a face sub shape in study to be meshed different
+sub_face3 = SubFaceL[5]
+name      = geompy.SubShapeName( sub_face3, mechanic )
+
+Id_SubFace3 = geompy.addToStudyInFather( mechanic, sub_face3, name )
+
+# ---- add a face sub shape in study to be meshed different
+sub_face4 = SubFaceL[10]
+name      = geompy.SubShapeName( sub_face4, mechanic )
+
+Id_SubFace4 = geompy.addToStudyInFather( mechanic, sub_face4, name )
+
+# ---------------------------- SMESH --------------------------------------
+
+# ---- launch SMESH, init a Mesh with shape 'mechanic'
+
+smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
+
+# -- Init --
+shape_mesh = salome.IDToObject( Id_mechanic )
+smesh.SetCurrentStudy(salome.myStudy)
+
+mesh = smesh.CreateMesh(shape_mesh)
+
+smeshgui = salome.ImportComponentGUI("SMESH")
+smeshgui.Init(salome.myStudyId)
+
+idmesh = salome.ObjectToID(mesh)
+smeshgui.SetName( idmesh, "Mesh_mechanic" )
+
+print "-------------------------- NumberOfSegments"
+
+numberOfSegment = 10
+
+hypNbSeg = smesh.CreateHypothesis( "NumberOfSegments", "libStdMeshersEngine.so" )
+hypNbSeg.SetNumberOfSegments( numberOfSegment )
+print hypNbSeg.GetName()
+print hypNbSeg.GetId()
+print hypNbSeg.GetNumberOfSegments()
+
+smeshgui.SetName(salome.ObjectToID(hypNbSeg), "NumberOfSegments_10")
+
+print "-------------------------- MaxElementArea"
+
+maxElementArea = 25
+
+hypArea25 = smesh.CreateHypothesis( "MaxElementArea", "libStdMeshersEngine.so" )
+hypArea25.SetMaxElementArea( maxElementArea )
+print hypArea25.GetName()
+print hypArea25.GetId()
+print hypArea25.GetMaxElementArea()
+
+smeshgui.SetName(salome.ObjectToID(hypArea25), "MaxElementArea_25")
+
+print "-------------------------- MaxElementArea"
+
+maxElementArea = 35
+
+hypArea35 = smesh.CreateHypothesis( "MaxElementArea", "libStdMeshersEngine.so" )
+hypArea35.SetMaxElementArea( maxElementArea )
+print hypArea35.GetName()
+print hypArea35.GetId()
+print hypArea35.GetMaxElementArea()
+
+smeshgui.SetName(salome.ObjectToID(hypArea35), "MaxElementArea_35")
+
+print "-------------------------- Regular_1D"
+
+algoReg1D = smesh.CreateHypothesis( "Regular_1D", "libStdMeshersEngine.so" )
+listHyp = algoReg1D.GetCompatibleHypothesis()
+for hyp in listHyp:
+    print hyp
+print algoReg1D.GetName()
+print algoReg1D.GetId()
+
+smeshgui.SetName(salome.ObjectToID(algoReg1D), "Regular_1D")
+
+print "-------------------------- MEFISTO_2D"
+
+algoMef = smesh.CreateHypothesis( "MEFISTO_2D", "libStdMeshersEngine.so" )
+listHyp = algoMef.GetCompatibleHypothesis()
+for hyp in listHyp:
+    print hyp
+print algoMef.GetName()
+print algoMef.GetId()
+
+smeshgui.SetName(salome.ObjectToID(algoMef), "MEFISTO_2D")
+
+print "-------------------------- SMESH_Quadrangle_2D"
+
+algoQuad = smesh.CreateHypothesis( "Quadrangle_2D", "libStdMeshersEngine.so" )
+listHyp = algoQuad.GetCompatibleHypothesis()
+for hyp in listHyp:
+    print hyp
+print algoQuad.GetName()
+print algoQuad.GetId()
+
+smeshgui.SetName(salome.ObjectToID(algoQuad), "SMESH_Quadrangle_2D")
+
+print "-------------------------- add hypothesis to main shape"
+
+mesh.AddHypothesis( shape_mesh, hypNbSeg )   # nb segments
+mesh.AddHypothesis( shape_mesh, hypArea25 )  # max area
+
+mesh.AddHypothesis( shape_mesh, algoReg1D )  # Regular 1D/wire discretisation
+mesh.AddHypothesis( shape_mesh, algoMef )    # MEFISTO 2D
+
+print "-------------------------- add hypothesis and algorithm to sub face 1"
+
+submesh = mesh.GetSubMesh(sub_face1, "SubMeshFace1")
+
+mesh.AddHypothesis( sub_face1, algoQuad )   # Quadrangle 2D
+mesh.AddHypothesis( sub_face1, hypArea35 )  # max area
+
+print "-------------------------- add hypothesis and algorithm to sub face 2"
+
+submesh = mesh.GetSubMesh(sub_face2, "SubMeshFace2")
+
+mesh.AddHypothesis( sub_face2, algoQuad )   # Quadrangle 2D
+mesh.AddHypothesis( sub_face2, hypArea35 )  # max area
+
+print "-------------------------- add hypothesis and algorith to sub face 3"
+
+submesh = mesh.GetSubMesh(sub_face3, "SubMeshFace3")
+
+mesh.AddHypothesis( sub_face3, algoQuad )   # Quadrangle 2D
+mesh.AddHypothesis( sub_face3, hypArea35 )  # max area
+
+print "-------------------------- add hypothesis and algorith to sub face 4"
+
+submesh = mesh.GetSubMesh(sub_face4, "SubMeshFace4")
+
+mesh.AddHypothesis( sub_face4, algoQuad )   # Quadrangle 2D
+mesh.AddHypothesis( sub_face4, hypArea35 )  # max area
+
+print "-------------------------- compute the mesh of the mechanic piece"
+
+smesh.Compute(mesh, shape_mesh)
+
+print "Information about the Mesh_mechanic:"
+print "Number of nodes       : ", mesh.NbNodes()
+print "Number of edges       : ", mesh.NbEdges()
+print "Number of faces       : ", mesh.NbFaces()
+print "Number of triangles   : ", mesh.NbTriangles()
+print "Number of quadrangles : ", mesh.NbQuadrangles()
+print "Number of volumes     : ", mesh.NbVolumes()
+print "Number of tetrahedrons: ", mesh.NbTetras()
+
+
+MeshEditor = mesh.GetMeshEditor()
+
+#1 cutting of quadrangles of the 'SubMeshFace2' submesh
+submesh = mesh.GetSubMesh(sub_face2, "SubMeshFace2")
+MeshEditor.SplitQuadObject(submesh, 1)
+
+#2 cutting of triangles of the group
+FacesTriToQuad = [2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422]
+GroupTriToQuad = mesh.CreateGroup(SMESH.FACE,"Group of faces (quad)")
+GroupTriToQuad.Add(FacesTriToQuad)
+MeshEditor.TriToQuadObject(GroupTriToQuad, None , 1.57)
+
+#3 extrusion of the group
+point = SMESH.PointStruct(0, 0, 5)
+vector = SMESH.DirStruct(point) 
+MeshEditor.ExtrusionSweepObject(GroupTriToQuad, vector, 5)
+
+#4 mirror object
+MeshEditor.MirrorObject(mesh, SMESH.AxisStruct(0, 0, 0, 0, 0, 0), SMESH.SMESH_MeshEditor.POINT, 0) 
+
+#5 mesh translation
+point = SMESH.PointStruct(10, 10, 10)
+vector = SMESH.DirStruct(point) 
+MeshEditor.TranslateObject(mesh, vector, 0)
+
+#6 mesh rotation
+axisXYZ = SMESH.AxisStruct(0, 0, 0, 10, 10, 10)
+angle180 =  180*3.141/180
+MeshEditor.RotateObject(mesh, axisXYZ, angle180, 0)
+
+#7 group smoothing
+FacesSmooth = [864, 933, 941, 950, 1005, 1013]
+GroupSmooth = mesh.CreateGroup(SMESH.FACE,"Group of faces (smooth)")
+GroupSmooth.Add(FacesSmooth)
+MeshEditor.SmoothObject(GroupSmooth, [], 20, 2, SMESH.SMESH_MeshEditor.CENTROIDAL_SMOOTH)
+
+#8 rotation sweep object
+FacesRotate = [492, 493, 502, 503]
+GroupRotate = mesh.CreateGroup(SMESH.FACE,"Group of faces (rotate)")
+GroupRotate.Add(FacesRotate)
+angle45 =  45*3.141/180
+axisXYZ = SMESH.AxisStruct(-38.3128, -73.3658, -133.321, -13.3402, -13.3265, 6.66632)
+MeshEditor.RotationSweepObject(GroupRotate, axisXYZ, angle45, 4, 1e-5)
+
+#9 reorientation of the whole mesh
+submesh = mesh.GetSubMesh(sub_face1, "SubMeshFace1")
+MeshEditor.ReorientObject(submesh)
+
+salome.sg.updateObjBrowser(1)
index 3e0232e715b685697c0024349735450e9bb2469e..eee3f87d8ab128ec8e619804077b38ac2b86e628 100644 (file)
@@ -1,21 +1,21 @@
 #  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+#  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
 #
 #
 #
@@ -42,7 +42,7 @@ import NETGENPlugin
 # ---- define contigous arcs and segment to define a closed wire
 p1   = geompy.MakeVertex( 100.0,   0.0,  0.0 )
 p2   = geompy.MakeVertex(  50.0,  50.0,  0.0 )
-p3   = geompy.MakeVertex( 100.0, 100.0,  0.0 ) 
+p3   = geompy.MakeVertex( 100.0, 100.0,  0.0 )
 arc1 = geompy.MakeArc( p1, p2, p3 )
 
 p4   = geompy.MakeVertex( 170.0, 100.0, 0.0 )
@@ -75,7 +75,7 @@ pO = geompy.MakeVertex( 0.0, 0.0,   0.0 )
 pz = geompy.MakeVertex( 0.0, 0.0, 100.0 )
 vz = geompy.MakeVector( pO, pz )
 
-prism1 = geompy.MakePrism( face1, vz, 100.0 )
+prism1 = geompy.MakePrismVecH( face1, vz, 100.0 )
 Id_prism1 = geompy.addToStudy( prism1, "prism1")
 
 # ---- create two cylinders
@@ -90,7 +90,7 @@ cyl2  = geompy.MakeCylinder( pc2, vz, radius, height )
 Id_Cyl1 = geompy.addToStudy( cyl1, "cyl1" )
 Id_Cyl2 = geompy.addToStudy( cyl2, "cyl2" )
 
-# ---- cut with cyl1 
+# ---- cut with cyl1
 shape  = geompy.MakeBoolean( prism1, cyl1, 2 )
 
 # ---- fuse with cyl2 to obtain the final mechanic piece :)
@@ -186,7 +186,7 @@ shape_mesh = salome.IDToObject( Id_mechanic  )
 
 mesh = smesh.CreateMesh(shape_mesh)
 
-idmesh = salome.ObjectToID(mesh) 
+idmesh = salome.ObjectToID(mesh)
 smeshgui.SetName( idmesh, "Mesh_mechanic_tetra" )
 
 mesh.AddHypothesis( shape_mesh, hypNbSeg )   # nb segments
diff --git a/src/SMESH_SWIG/cube2geometry.py b/src/SMESH_SWIG/cube2geometry.py
new file mode 100644 (file)
index 0000000..3d503dc
--- /dev/null
@@ -0,0 +1,92 @@
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Geometry
+# ========
+
+# Piece
+# -----
+
+# A small cube centered and put on a great cube
+
+ox = 0
+oy = 0
+oz = 0
+
+arete = 10
+
+# Points
+# ------
+
+blockPoint111 = MakeVertex(ox      , oy, oz)
+blockPoint211 = MakeVertex(ox+arete, oy, oz)
+blockPoint112 = MakeVertex(ox      , oy, oz+arete)
+blockPoint212 = MakeVertex(ox+arete, oy, oz+arete)
+
+# Faces
+# -----
+
+blockFace1 = MakeQuad4Vertices(blockPoint111, blockPoint211, blockPoint212, blockPoint112)
+
+# Solids
+# ------
+
+blockSolid11  = MakePrismVecH(blockFace1, MakeVectorDXDYDZ(0, 1, 0), arete)
+
+# Translations
+# ------------
+
+blockSolid21  = MakeTranslation(blockSolid11, arete, 0, 0)
+blockSolid31  = MakeTranslation(blockSolid21, arete, 0, 0)
+
+blockSolid12  = MakeTranslation(blockSolid11, 0, 0, arete)
+blockSolid22  = MakeTranslation(blockSolid12, arete, 0, 0)
+blockSolid32  = MakeTranslation(blockSolid22, arete, 0, 0)
+
+blockSolid13  = MakeTranslation(blockSolid12, 0, 0, arete)
+blockSolid23  = MakeTranslation(blockSolid13, arete, 0, 0)
+blockSolid33  = MakeTranslation(blockSolid23, arete, 0, 0)
+
+blockSolid111 = MakeTranslation(blockSolid22, 0, arete, 0)
+
+# Compound
+# --------
+
+c_l = []
+c_l.append(blockSolid11)
+c_l.append(blockSolid21)
+c_l.append(blockSolid31)
+c_l.append(blockSolid12)
+c_l.append(blockSolid22)
+c_l.append(blockSolid32)
+c_l.append(blockSolid13)
+c_l.append(blockSolid23)
+c_l.append(blockSolid33)
+c_l.append(blockSolid111)
+
+c_cpd = MakeCompound(c_l)
+piece = MakeGlueFaces(c_cpd, 1.e-5)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Cubes2geometry")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Cubes2geometryHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
diff --git a/src/SMESH_SWIG/cube2partition.py b/src/SMESH_SWIG/cube2partition.py
new file mode 100644 (file)
index 0000000..4d69f55
--- /dev/null
@@ -0,0 +1,83 @@
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# A small cube centered and put on a great cube
+
+# Geometry
+# --------
+
+g_ox = 0
+g_oy = 0
+g_oz = 0
+
+g_arete = 10
+
+g_trim = 1000
+
+# Points
+# ------
+
+v_arete2 = g_arete*2
+v_arete3 = g_arete*3
+
+v_1 = MakeVertex(g_ox         , g_oy         , g_oz         )
+v_2 = MakeVertex(g_ox+v_arete3, g_oy+g_arete , g_oz+v_arete3)
+
+v_3 = MakeVertex(g_ox+g_arete , g_oy+g_arete , g_oz+g_arete )
+v_4 = MakeVertex(g_ox+v_arete2, g_oy+v_arete2, g_oz+v_arete2)
+
+# Solids
+# ------
+
+s_base = MakeBoxTwoPnt(v_1, v_2)
+s_haut = MakeBoxTwoPnt(v_3, v_4)
+
+# Partition
+# ---------
+
+p_dir1 = MakeVectorDXDYDZ(1, 0, 0)
+p_dir2 = MakeVectorDXDYDZ(0, 0, 1)
+
+p_tools = []
+p_tools.append(MakePlane(v_3, p_dir1, g_trim))
+p_tools.append(MakePlane(v_4, p_dir1, g_trim))
+p_tools.append(MakePlane(v_3, p_dir2, g_trim))
+p_tools.append(MakePlane(v_4, p_dir2, g_trim))
+
+p_element = MakePartition([s_base], p_tools, [], [], ShapeType["SOLID"])
+
+# Compound
+# --------
+
+c_element = SubShapeAll(p_element, ShapeType["SOLID"])
+c_element.append(s_haut)
+
+c_cpd = MakeCompound(c_element)
+piece = MakeGlueFaces(c_cpd, 1.e-5)
+
+# Study
+# -----
+
+piece_id = addToStudy(piece, "Cubes2partition")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Cubes2partitionHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
diff --git a/src/SMESH_SWIG/cube2pyGibi.py b/src/SMESH_SWIG/cube2pyGibi.py
new file mode 100644 (file)
index 0000000..9de2b23
--- /dev/null
@@ -0,0 +1,295 @@
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Geometry
+# ========
+
+# A small cube centered and put on a great cube
+
+# Points
+# ------
+
+greatPoint111 = MakeVertex( 0,  0,  0)
+greatPoint211 = MakeVertex(10,  0,  0)
+greatPoint311 = MakeVertex(20,  0,  0)
+greatPoint411 = MakeVertex(30,  0,  0)
+
+greatPoint121 = MakeVertex( 0, 10,  0)
+greatPoint221 = MakeVertex(10, 10,  0)
+greatPoint321 = MakeVertex(20, 10,  0)
+greatPoint421 = MakeVertex(30, 10,  0)
+
+greatPoint112 = MakeVertex( 0,  0, 10)
+greatPoint212 = MakeVertex(10,  0, 10)
+greatPoint312 = MakeVertex(20,  0, 10)
+greatPoint412 = MakeVertex(30,  0, 10)
+
+greatPoint122 = MakeVertex( 0, 10, 10)
+greatPoint222 = MakeVertex(10, 10, 10)
+greatPoint322 = MakeVertex(20, 10, 10)
+greatPoint422 = MakeVertex(30, 10, 10)
+
+greatPoint113 = MakeVertex( 0,  0, 20)
+greatPoint213 = MakeVertex(10,  0, 20)
+greatPoint313 = MakeVertex(20,  0, 20)
+greatPoint413 = MakeVertex(30,  0, 20)
+
+greatPoint123 = MakeVertex( 0, 10, 20)
+greatPoint223 = MakeVertex(10, 10, 20)
+greatPoint323 = MakeVertex(20, 10, 20)
+greatPoint423 = MakeVertex(30, 10, 20)
+
+greatPoint114 = MakeVertex( 0,  0, 30)
+greatPoint214 = MakeVertex(10,  0, 30)
+greatPoint314 = MakeVertex(20,  0, 30)
+greatPoint414 = MakeVertex(30,  0, 30)
+
+greatPoint124 = MakeVertex( 0, 10, 30)
+greatPoint224 = MakeVertex(10, 10, 30)
+greatPoint324 = MakeVertex(20, 10, 30)
+greatPoint424 = MakeVertex(30, 10, 30)
+
+
+smallPoint111 = greatPoint222
+smallPoint211 = greatPoint322
+smallPoint121 = MakeVertex(10, 20, 10)
+smallPoint221 = MakeVertex(20, 20, 10)
+
+smallPoint112 = greatPoint223
+smallPoint212 = greatPoint323
+smallPoint122 = MakeVertex(10, 20, 20)
+smallPoint222 = MakeVertex(20, 20, 20)
+
+# Edges
+# -----
+
+smallEdgeX11 = MakeEdge(smallPoint111, smallPoint211)
+smallEdgeX21 = MakeEdge(smallPoint121, smallPoint221)
+smallEdgeX12 = MakeEdge(smallPoint112, smallPoint212)
+smallEdgeX22 = MakeEdge(smallPoint122, smallPoint222)
+
+smallEdgeY11 = MakeEdge(smallPoint111, smallPoint121)
+smallEdgeY21 = MakeEdge(smallPoint211, smallPoint221)
+smallEdgeY12 = MakeEdge(smallPoint112, smallPoint122)
+smallEdgeY22 = MakeEdge(smallPoint212, smallPoint222)
+
+smallEdgeZ11 = MakeEdge(smallPoint111, smallPoint112)
+smallEdgeZ21 = MakeEdge(smallPoint211, smallPoint212)
+smallEdgeZ12 = MakeEdge(smallPoint121, smallPoint122)
+smallEdgeZ22 = MakeEdge(smallPoint221, smallPoint222)
+
+
+greatEdgeX111 = MakeEdge(greatPoint111, greatPoint211)
+greatEdgeX211 = MakeEdge(greatPoint211, greatPoint311)
+greatEdgeX311 = MakeEdge(greatPoint311, greatPoint411)
+greatEdgeX121 = MakeEdge(greatPoint121, greatPoint221)
+greatEdgeX221 = MakeEdge(greatPoint221, greatPoint321)
+greatEdgeX321 = MakeEdge(greatPoint321, greatPoint421)
+
+greatEdgeX112 = MakeEdge(greatPoint112, greatPoint212)
+greatEdgeX212 = MakeEdge(greatPoint212, greatPoint312)
+greatEdgeX312 = MakeEdge(greatPoint312, greatPoint412)
+greatEdgeX122 = MakeEdge(greatPoint122, greatPoint222)
+greatEdgeX222 = smallEdgeX11
+greatEdgeX322 = MakeEdge(greatPoint322, greatPoint422)
+
+greatEdgeX113 = MakeEdge(greatPoint113, greatPoint213)
+greatEdgeX213 = MakeEdge(greatPoint213, greatPoint313)
+greatEdgeX313 = MakeEdge(greatPoint313, greatPoint413)
+greatEdgeX123 = MakeEdge(greatPoint123, greatPoint223)
+greatEdgeX223 = smallEdgeX12
+greatEdgeX323 = MakeEdge(greatPoint323, greatPoint423)
+
+greatEdgeX114 = MakeEdge(greatPoint114, greatPoint214)
+greatEdgeX214 = MakeEdge(greatPoint214, greatPoint314)
+greatEdgeX314 = MakeEdge(greatPoint314, greatPoint414)
+greatEdgeX124 = MakeEdge(greatPoint124, greatPoint224)
+greatEdgeX224 = MakeEdge(greatPoint224, greatPoint324)
+greatEdgeX324 = MakeEdge(greatPoint324, greatPoint424)
+
+greatEdgeY11 = MakeEdge(greatPoint111, greatPoint121)
+greatEdgeY21 = MakeEdge(greatPoint211, greatPoint221)
+greatEdgeY31 = MakeEdge(greatPoint311, greatPoint321)
+greatEdgeY41 = MakeEdge(greatPoint411, greatPoint421)
+
+greatEdgeY12 = MakeEdge(greatPoint112, greatPoint122)
+greatEdgeY22 = MakeEdge(greatPoint212, greatPoint222)
+greatEdgeY32 = MakeEdge(greatPoint312, greatPoint322)
+greatEdgeY42 = MakeEdge(greatPoint412, greatPoint422)
+
+greatEdgeY13 = MakeEdge(greatPoint113, greatPoint123)
+greatEdgeY23 = MakeEdge(greatPoint213, greatPoint223)
+greatEdgeY33 = MakeEdge(greatPoint313, greatPoint323)
+greatEdgeY43 = MakeEdge(greatPoint413, greatPoint423)
+
+greatEdgeY14 = MakeEdge(greatPoint114, greatPoint124)
+greatEdgeY24 = MakeEdge(greatPoint214, greatPoint224)
+greatEdgeY34 = MakeEdge(greatPoint314, greatPoint324)
+greatEdgeY44 = MakeEdge(greatPoint414, greatPoint424)
+
+greatEdgeZ111 = MakeEdge(greatPoint111, greatPoint112)
+greatEdgeZ211 = MakeEdge(greatPoint211, greatPoint212)
+greatEdgeZ311 = MakeEdge(greatPoint311, greatPoint312)
+greatEdgeZ411 = MakeEdge(greatPoint411, greatPoint412)
+
+greatEdgeZ121 = MakeEdge(greatPoint121, greatPoint122)
+greatEdgeZ221 = MakeEdge(greatPoint221, greatPoint222)
+greatEdgeZ321 = MakeEdge(greatPoint321, greatPoint322)
+greatEdgeZ421 = MakeEdge(greatPoint421, greatPoint422)
+
+greatEdgeZ112 = MakeEdge(greatPoint112, greatPoint113)
+greatEdgeZ212 = MakeEdge(greatPoint212, greatPoint213)
+greatEdgeZ312 = MakeEdge(greatPoint312, greatPoint313)
+greatEdgeZ412 = MakeEdge(greatPoint412, greatPoint413)
+
+greatEdgeZ122 = MakeEdge(greatPoint122, greatPoint123)
+greatEdgeZ222 = smallEdgeZ11
+greatEdgeZ322 = smallEdgeZ21
+greatEdgeZ422 = MakeEdge(greatPoint422, greatPoint423)
+
+greatEdgeZ113 = MakeEdge(greatPoint113, greatPoint114)
+greatEdgeZ213 = MakeEdge(greatPoint213, greatPoint214)
+greatEdgeZ313 = MakeEdge(greatPoint313, greatPoint314)
+greatEdgeZ413 = MakeEdge(greatPoint413, greatPoint414)
+
+greatEdgeZ123 = MakeEdge(greatPoint123, greatPoint124)
+greatEdgeZ223 = MakeEdge(greatPoint223, greatPoint224)
+greatEdgeZ323 = MakeEdge(greatPoint323, greatPoint324)
+greatEdgeZ423 = MakeEdge(greatPoint423, greatPoint424)
+
+# Faces
+# -----
+
+smallFaceX1 = MakeQuad(smallEdgeY11, smallEdgeZ11, smallEdgeY12, smallEdgeZ12)
+smallFaceX2 = MakeQuad(smallEdgeY21, smallEdgeZ21, smallEdgeY22, smallEdgeZ22)
+smallFaceY1 = MakeQuad(smallEdgeX11, smallEdgeZ11, smallEdgeX12, smallEdgeZ21)
+smallFaceY2 = MakeQuad(smallEdgeX21, smallEdgeZ12, smallEdgeX22, smallEdgeZ22)
+smallFaceZ1 = MakeQuad(smallEdgeX11, smallEdgeY11, smallEdgeX21, smallEdgeY21)
+smallFaceZ2 = MakeQuad(smallEdgeX12, smallEdgeY12, smallEdgeX22, smallEdgeY22)
+
+
+greatFaceX11 = MakeQuad(greatEdgeY11, greatEdgeZ111, greatEdgeY12, greatEdgeZ121)
+greatFaceX21 = MakeQuad(greatEdgeY21, greatEdgeZ211, greatEdgeY22, greatEdgeZ221)
+greatFaceX31 = MakeQuad(greatEdgeY31, greatEdgeZ311, greatEdgeY32, greatEdgeZ321)
+greatFaceX41 = MakeQuad(greatEdgeY41, greatEdgeZ411, greatEdgeY42, greatEdgeZ421)
+
+greatFaceX12 = MakeQuad(greatEdgeY12, greatEdgeZ112, greatEdgeY13, greatEdgeZ122)
+greatFaceX22 = MakeQuad(greatEdgeY22, greatEdgeZ212, greatEdgeY23, greatEdgeZ222)
+greatFaceX32 = MakeQuad(greatEdgeY32, greatEdgeZ312, greatEdgeY33, greatEdgeZ322)
+greatFaceX42 = MakeQuad(greatEdgeY42, greatEdgeZ412, greatEdgeY43, greatEdgeZ422)
+
+greatFaceX13 = MakeQuad(greatEdgeY13, greatEdgeZ113, greatEdgeY14, greatEdgeZ123)
+greatFaceX23 = MakeQuad(greatEdgeY23, greatEdgeZ213, greatEdgeY24, greatEdgeZ223)
+greatFaceX33 = MakeQuad(greatEdgeY33, greatEdgeZ313, greatEdgeY34, greatEdgeZ323)
+greatFaceX43 = MakeQuad(greatEdgeY43, greatEdgeZ413, greatEdgeY44, greatEdgeZ423)
+
+greatFaceY111 = MakeQuad(greatEdgeX111, greatEdgeZ111, greatEdgeX112, greatEdgeZ211)
+greatFaceY211 = MakeQuad(greatEdgeX211, greatEdgeZ211, greatEdgeX212, greatEdgeZ311)
+greatFaceY311 = MakeQuad(greatEdgeX311, greatEdgeZ311, greatEdgeX312, greatEdgeZ411)
+greatFaceY121 = MakeQuad(greatEdgeX121, greatEdgeZ121, greatEdgeX122, greatEdgeZ221)
+greatFaceY221 = MakeQuad(greatEdgeX221, greatEdgeZ221, greatEdgeX222, greatEdgeZ321)
+greatFaceY321 = MakeQuad(greatEdgeX321, greatEdgeZ321, greatEdgeX322, greatEdgeZ421)
+
+greatFaceY112 = MakeQuad(greatEdgeX112, greatEdgeZ112, greatEdgeX113, greatEdgeZ212)
+greatFaceY212 = MakeQuad(greatEdgeX212, greatEdgeZ212, greatEdgeX213, greatEdgeZ312)
+greatFaceY312 = MakeQuad(greatEdgeX312, greatEdgeZ312, greatEdgeX313, greatEdgeZ412)
+greatFaceY122 = MakeQuad(greatEdgeX122, greatEdgeZ122, greatEdgeX123, greatEdgeZ222)
+greatFaceY222 = smallFaceY1
+greatFaceY322 = MakeQuad(greatEdgeX322, greatEdgeZ322, greatEdgeX323, greatEdgeZ422)
+
+greatFaceY113 = MakeQuad(greatEdgeX113, greatEdgeZ113, greatEdgeX114, greatEdgeZ213)
+greatFaceY213 = MakeQuad(greatEdgeX213, greatEdgeZ213, greatEdgeX214, greatEdgeZ313)
+greatFaceY313 = MakeQuad(greatEdgeX313, greatEdgeZ313, greatEdgeX314, greatEdgeZ413)
+greatFaceY123 = MakeQuad(greatEdgeX123, greatEdgeZ123, greatEdgeX124, greatEdgeZ223)
+greatFaceY223 = MakeQuad(greatEdgeX223, greatEdgeZ223, greatEdgeX224, greatEdgeZ323)
+greatFaceY323 = MakeQuad(greatEdgeX323, greatEdgeZ323, greatEdgeX324, greatEdgeZ423)
+
+greatFaceZ11 = MakeQuad(greatEdgeX111, greatEdgeY11, greatEdgeX121, greatEdgeY21)
+greatFaceZ21 = MakeQuad(greatEdgeX211, greatEdgeY21, greatEdgeX221, greatEdgeY31)
+greatFaceZ31 = MakeQuad(greatEdgeX311, greatEdgeY31, greatEdgeX321, greatEdgeY41)
+
+greatFaceZ12 = MakeQuad(greatEdgeX112, greatEdgeY12, greatEdgeX122, greatEdgeY22)
+greatFaceZ22 = MakeQuad(greatEdgeX212, greatEdgeY22, greatEdgeX222, greatEdgeY32)
+greatFaceZ32 = MakeQuad(greatEdgeX312, greatEdgeY32, greatEdgeX322, greatEdgeY42)
+
+greatFaceZ13 = MakeQuad(greatEdgeX113, greatEdgeY13, greatEdgeX123, greatEdgeY23)
+greatFaceZ23 = MakeQuad(greatEdgeX213, greatEdgeY23, greatEdgeX223, greatEdgeY33)
+greatFaceZ33 = MakeQuad(greatEdgeX313, greatEdgeY33, greatEdgeX323, greatEdgeY43)
+
+greatFaceZ14 = MakeQuad(greatEdgeX114, greatEdgeY14, greatEdgeX124, greatEdgeY24)
+greatFaceZ24 = MakeQuad(greatEdgeX214, greatEdgeY24, greatEdgeX224, greatEdgeY34)
+greatFaceZ34 = MakeQuad(greatEdgeX314, greatEdgeY34, greatEdgeX324, greatEdgeY44)
+
+# Solids
+# ------
+
+smallBlock   = MakeHexa(smallFaceX1, smallFaceX2, smallFaceY1, smallFaceY2, smallFaceZ1, smallFaceZ2)
+
+greatBlock11 = MakeHexa(greatFaceX11, greatFaceX21, greatFaceY111, greatFaceY121, greatFaceZ11, greatFaceZ12)
+greatBlock21 = MakeHexa(greatFaceX21, greatFaceX31, greatFaceY211, greatFaceY221, greatFaceZ21, greatFaceZ22)
+greatBlock31 = MakeHexa(greatFaceX31, greatFaceX41, greatFaceY311, greatFaceY321, greatFaceZ31, greatFaceZ32)
+
+greatBlock12 = MakeHexa(greatFaceX12, greatFaceX22, greatFaceY112, greatFaceY122, greatFaceZ12, greatFaceZ13)
+greatBlock22 = MakeHexa(greatFaceX22, greatFaceX32, greatFaceY212, greatFaceY222, greatFaceZ22, greatFaceZ23)
+greatBlock32 = MakeHexa(greatFaceX32, greatFaceX42, greatFaceY312, greatFaceY322, greatFaceZ32, greatFaceZ33)
+
+greatBlock13 = MakeHexa(greatFaceX13, greatFaceX23, greatFaceY113, greatFaceY123, greatFaceZ13, greatFaceZ14)
+greatBlock23 = MakeHexa(greatFaceX23, greatFaceX33, greatFaceY213, greatFaceY223, greatFaceZ23, greatFaceZ24)
+greatBlock33 = MakeHexa(greatFaceX33, greatFaceX43, greatFaceY313, greatFaceY323, greatFaceZ33, greatFaceZ34)
+
+# Compound
+# --------
+
+c_l = []
+c_l.append(smallBlock)
+c_l.append(greatBlock11)
+c_l.append(greatBlock21)
+c_l.append(greatBlock31)
+c_l.append(greatBlock12)
+c_l.append(greatBlock22)
+c_l.append(greatBlock32)
+c_l.append(greatBlock13)
+c_l.append(greatBlock23)
+c_l.append(greatBlock33)
+
+c_cpd = MakeCompound(c_l)
+piece = MakeGlueFaces(c_cpd, 1.e-5)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Cubes2pyGibi")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Cubes2pyGibiHexa")
+
+# Get edges
+# ---------
+
+e_edges = SubShapeAllSorted(piece, ShapeType["EDGE"])
+
+# Create local hypothesis
+# -----------------------
+
+m_local=3
+
+m_i=10
+while m_i<18:
+    m_hexa.local(e_edges[m_i], m_local)
+    m_i=m_i+1
+
+# Compute
+# -------
+
+m_hexa.Compute()
diff --git a/src/SMESH_SWIG/cyl2complementary.py b/src/SMESH_SWIG/cyl2complementary.py
new file mode 100644 (file)
index 0000000..c5a7f9a
--- /dev/null
@@ -0,0 +1,100 @@
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# Create the hexahedrical block geometry of a holed parallelepipede.
+# The hole has a T form composed by 2 cylinders with different radius, and their axis are normal.
+# This piece is meshed in hexahedrical.
+
+gx = 0
+gy = 0
+gz = 0
+
+g_dx = 250
+g_dy = 200
+g_dz = 150
+
+g_rayonGrand = 70
+g_rayonPetit = 50
+
+g_trim = 1000
+
+# Geometry
+# ========
+
+# The parallelepipede
+# -------------------
+
+p_boite = MakeBox(gx-g_dx, gy-g_dy, gz-g_dz,  gx+g_dx, gy+g_dy, gz+g_dz)
+
+# The great cylinder
+# ------------------
+
+g_base = MakeVertex(gx-g_dx, gy, gz)
+g_dir  = MakeVectorDXDYDZ(1, 0, 0)
+g_cyl  = MakeCylinder(g_base, g_dir, g_rayonGrand, g_dx*2)
+
+# The first hole
+# --------------
+
+b_boite = MakeCut(p_boite , g_cyl)
+
+# Partitioning
+# ------------
+
+p_base = MakeVertex(gx, gy, gz)
+
+p_tools = []
+
+p_tools.append(MakePlane(p_base, MakeVectorDXDYDZ(0,  1   , 0   ), g_trim))
+p_tools.append(MakePlane(p_base, MakeVectorDXDYDZ(0,  g_dz, g_dy), g_trim))
+p_tools.append(MakePlane(p_base, MakeVectorDXDYDZ(0, -g_dz, g_dy), g_trim))
+
+p_tools.append(MakePlane(MakeVertex(gx-g_rayonPetit, gy, gz), g_dir, g_trim))
+p_tools.append(MakePlane(MakeVertex(gx+g_rayonPetit, gy, gz), g_dir, g_trim))
+
+p_piece = MakePartition([b_boite], p_tools, [], [], ShapeType["SOLID"])
+
+# The small cylinder
+# ------------------
+
+c_cyl = MakeCylinder(p_base, MakeVectorDXDYDZ(0, 0, 1), g_rayonPetit, g_dz)
+
+# The second hole
+# ---------------
+
+d_element = SubShapeAllSorted(p_piece, ShapeType["SOLID"])
+
+d_element[ 8] = MakeCut(d_element[ 8], c_cyl)
+d_element[10] = MakeCut(d_element[10], c_cyl)
+
+# Compound
+# --------
+
+piece = MakeCompound(d_element)
+
+# Add piece in study
+# ------------------
+
+piece_id = addToStudy(piece, "BoxHoled2Cylinders")
+
+# Meshing
+# =======
+
+# Mesh with hexahedrons
+# ---------------------
+
+m_hexa=MeshHexa(piece, 4, "BoxHoled2CylindersHexa")
+
+# Compute mesh
+# ------------
+
+m_hexa.Compute()
diff --git a/src/SMESH_SWIG/cyl2geometry.py b/src/SMESH_SWIG/cyl2geometry.py
new file mode 100644 (file)
index 0000000..9e27f79
--- /dev/null
@@ -0,0 +1,170 @@
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# Creer la geometrie en bloc hexahedrique d'une piece en forme de T composee de 2 cylindres de diametre different dont les axes se coupent orthogonalement,
+# puis mailler en hexahedrique.
+
+cx = 0
+cy = 0
+cz = 0
+
+g_rayon   = 100.0
+g_hauteur = 500
+
+p_rayon   =  50.0
+p_hauteur = 500
+
+g_trim = 1000
+
+# Geometrie
+# =========
+
+cpd = []
+
+# Gros cylindre
+# -------------
+
+g_base = MakeVertex(cx, cy, cz)
+g_dir  = MakeVectorDXDYDZ(0, 0, 1)
+t_hauteur = p_rayon+10.0
+
+g_cyl = MakeCylinder(g_base, g_dir, g_rayon, g_hauteur)
+
+g_coupe = MakeVectorDXDYDZ(1, 0, 0)
+
+g_tools = []
+g_tools.append(MakePlane(MakeVertex(cx+t_hauteur, cy, cz), g_coupe, g_trim))
+g_tools.append(MakePlane(MakeVertex(cx-t_hauteur, cy, cz), g_coupe, g_trim))
+
+g_partie = MakePartition([g_cyl], g_tools, [], [], ShapeType["SOLID"])
+g_bas, g_centre, g_haut = SubShapeAllSorted(g_partie, ShapeType["SOLID"])
+
+# Partie basse du gros cylindre
+# -----------------------------
+
+b_hauteur = 10
+b_base    = 20
+
+b_boite = MakeBox(cx-t_hauteur, cy-b_base, cz,  cx-t_hauteur-b_hauteur, cy+b_base, cz+g_hauteur)
+cpd.append(b_boite)
+
+b_cyl = MakeCut(g_bas, b_boite)
+
+b_tools = []
+b_tools.append(MakePlane(MakeVertex(cx-t_hauteur-b_hauteur, cy+b_base, cz), MakeVectorDXDYDZ( 1, 1, 0), g_trim))
+b_tools.append(MakePlane(MakeVertex(cx-t_hauteur-b_hauteur, cy-b_base, cz), MakeVectorDXDYDZ(-1, 1, 0), g_trim))
+
+b_partie = MakePartition([b_cyl], b_tools, [], [], ShapeType["SOLID"])
+b_element = SubShapeAll(b_partie, ShapeType["SOLID"])
+cpd = cpd + b_element
+
+# Partie haute du gros cylindre
+# -----------------------------
+
+h_plan = MakePlane(g_base, g_coupe, g_trim)
+
+cpd.append(MakeMirrorByPlane(b_boite, h_plan))
+
+for h in b_element:
+    h_symetrie = MakeMirrorByPlane(h, h_plan)
+    cpd.append(h_symetrie)
+
+# Petit cylindre
+# --------------
+
+z_arete = p_rayon/2
+x_arete = z_arete*t_hauteur*2/g_hauteur
+
+px = cx-x_arete
+py = cy-1.5*g_rayon
+pz = cz+g_hauteur/2
+
+p_base = MakeVertex(cx, py, pz)
+p_dir  = MakeVectorDXDYDZ(0, 1, 0)
+p_cyl  = MakeCylinder(p_base, p_dir, p_rayon, p_hauteur)
+
+p_boite = MakeBox(px, py, pz-z_arete,  cx+x_arete, py+p_hauteur, pz+z_arete)
+
+# Partie interieure du petit cylindre
+# -----------------------------------
+
+i_cyl   = MakeCommon(p_cyl, g_cyl)
+i_tuyau = MakeCut(i_cyl, p_boite)
+i_boite = MakeCommon(p_boite, g_cyl)
+
+# Partie exterieure du petit cylindre
+# -----------------------------------
+
+e_cyl0 = MakeCut(p_cyl, g_cyl)
+e_cyl  = SubShapeAllSorted(e_cyl0, ShapeType["SOLID"])
+
+e_tuyau = MakeCut(e_cyl[1], p_boite)
+
+e_boite0 = MakeCut(p_boite, g_cyl)
+e_boite  = SubShapeAllSorted(e_boite0, ShapeType["SOLID"])
+
+cpd.append(e_boite[1])
+
+# Partie centrale du gros cylindre
+# --------------------------------
+
+c_cyl = MakeCut(g_centre, p_cyl)
+
+# Partitionner
+# ------------
+
+p_tools = []
+p_tools.append(MakePlane(MakeVertex(px, py, pz-z_arete), MakeVectorDXDYDZ(-z_arete, 0, x_arete), g_trim))
+p_tools.append(MakePlane(MakeVertex(px, py, pz+z_arete), MakeVectorDXDYDZ( z_arete, 0, x_arete), g_trim))
+
+p_partie = MakePartition([e_tuyau], p_tools, [], [], ShapeType["SOLID"])
+p_element = SubShapeAll(p_partie, ShapeType["SOLID"])
+cpd = cpd + p_element
+
+q_partie = MakePartition([i_tuyau, c_cyl], p_tools, [], [], ShapeType["SOLID"])
+q_element = SubShapeAll(q_partie, ShapeType["SOLID"])
+
+q_element = q_element + [i_boite]
+
+q_tools = []
+q_tools.append(MakePlane(MakeVertex(cx, cy-b_base, cz), MakeVectorDXDYDZ(0, 1, 0), g_trim))
+q_tools.append(MakePlane(MakeVertex(cx, cy+b_base, cz), MakeVectorDXDYDZ(0, 1, 0), g_trim))
+
+r_element = []
+for e in q_element:
+    r_partie = MakePartition([e], q_tools, [], [], ShapeType["SOLID"])
+    r_element = r_element + SubShapeAll(r_partie, ShapeType["SOLID"])
+
+cpd = cpd + r_element
+
+# Compound
+# --------
+
+piece = MakeCompound(cpd)
+
+# Ajouter la piece dans l'etude
+# -----------------------------
+
+piece_id = addToStudy(piece, "T2Cylindres")
+
+# Maillage
+# ========
+
+# Mailler des hexahedres
+# ----------------------
+
+m_hexa=MeshHexa(piece, 4, "T2CylindresHexa")
+
+# Calculer le maillage
+# --------------------
+
+m_hexa.Compute()
diff --git a/src/SMESH_SWIG/grid17partition.py b/src/SMESH_SWIG/grid17partition.py
new file mode 100644 (file)
index 0000000..ad7e4b2
--- /dev/null
@@ -0,0 +1,108 @@
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# grid compound of 17 x 17 elements
+# an element is compound of 3 cylinders concentriques
+# an element is centered in a square of the grid
+# prisme the grid
+
+# Geometry
+# --------
+
+g_x = 0
+g_y = 0
+g_z = 0
+
+g_arete   = 50
+g_hauteur = 30
+
+g_rayon1 = 20
+g_rayon2 = 30
+g_rayon3 = 40
+
+# The real value for CEA, but need 3 days for computing
+#g_grid = 17
+g_grid = 3
+
+g_trim = 1000
+
+# Solids
+# ------
+
+s_boite = MakeBox(g_x-g_arete, g_y-g_hauteur, g_z-g_arete,  g_x+g_arete, g_y+g_hauteur, g_z+g_arete)
+
+s_pi4     = 3.141592653/4
+s_hauteur = 2*g_hauteur
+s_centre  = MakeVertex(g_x, g_y-g_hauteur, g_z)
+s_dir     = MakeVectorDXDYDZ(0, 1, 0)
+
+s_cyl0 = MakeCylinder(s_centre, s_dir, g_rayon3, s_hauteur)
+s_cyl1 = MakeRotation(s_cyl0, s_dir, s_pi4)
+
+s_blo1 = MakeCut(s_boite, s_cyl1)
+
+s_cyl0 = MakeCylinder(s_centre, s_dir, g_rayon2, s_hauteur)
+s_cyl2 = MakeRotation(s_cyl0, s_dir, s_pi4)
+
+s_blo2 = MakeCut(s_cyl1, s_cyl2)
+
+s_cyl0 = MakeCylinder(s_centre, s_dir, g_rayon1, s_hauteur)
+s_cyl3 = MakeRotation(s_cyl0, s_dir, s_pi4)
+
+s_blo3 = MakeCut(s_cyl2, s_cyl3)
+
+s_arete = g_rayon1/2
+
+s_blo4 = MakeBox(g_x-s_arete, g_y-g_hauteur, g_z-s_arete,  g_x+s_arete, g_y+g_hauteur, g_z+s_arete)
+
+s_blo5 = MakeCut(s_cyl3, s_blo4)
+
+# Partition
+# ---------
+
+p_tools = []
+p_tools.append(MakePlane(s_centre, MakeVectorDXDYDZ( 1, 0, 1), g_trim))
+p_tools.append(MakePlane(s_centre, MakeVectorDXDYDZ(-1, 0, 1), g_trim))
+
+p_partie = MakePartition([s_blo1, s_blo2, s_blo3, s_blo5], p_tools, [], [], ShapeType["SOLID"])
+
+# Compound
+# --------
+
+c_cpd = SubShapeAll(p_partie, ShapeType["SOLID"])
+c_cpd.append(s_blo4)
+
+c_element = MakeCompound(c_cpd)
+
+# Grid
+# ----
+
+piece = MakeMultiTranslation2D(c_element, MakeVectorDXDYDZ(1, 0, 0), 2*g_arete, g_grid,
+                                          MakeVectorDXDYDZ(0, 0, 1), 2*g_arete, g_grid)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Grid17partition")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Grid17partitionHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
diff --git a/src/SMESH_SWIG/grid3partition.py b/src/SMESH_SWIG/grid3partition.py
new file mode 100644 (file)
index 0000000..63e498d
--- /dev/null
@@ -0,0 +1,94 @@
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# grid compound of 3 x 3 elements
+# an element is compound of 3 cylinders concentriques
+# an element is centered in a square of the grid
+# the smaller cylinder is a hole
+
+# prisme the grid
+
+# Geometry
+# --------
+
+g_x = 0
+g_y = 0
+g_z = 0
+
+g_arete   = 50
+g_hauteur = 30
+
+g_rayon1 = 20
+g_rayon2 = 30
+g_rayon3 = 40
+
+g_grid = 3
+
+g_trim = 1000
+
+# Element
+# -------
+
+e_boite = MakeBox(g_x-g_arete, g_y-g_hauteur, g_z-g_arete,  g_x+g_arete, g_y+g_hauteur, g_z+g_arete)
+
+e_pi4     = 3.141592653/4
+e_hauteur = 2*g_hauteur
+e_centre  = MakeVertex(g_x, g_y-g_hauteur, g_z)
+e_dir     = MakeVectorDXDYDZ(0, 1, 0)
+
+e_cyl0 = MakeCylinder(e_centre, e_dir, g_rayon3, e_hauteur)
+e_cyl1 = MakeRotation(e_cyl0, e_dir, e_pi4)
+
+e_blo1 = MakeCut(e_boite, e_cyl1)
+
+e_cyl0 = MakeCylinder(e_centre, e_dir, g_rayon2, e_hauteur)
+e_cyl2 = MakeRotation(e_cyl0, e_dir, e_pi4)
+
+e_blo2 = MakeCut(e_cyl1, e_cyl2)
+
+e_cyl0 = MakeCylinder(e_centre, e_dir, g_rayon1, e_hauteur)
+e_cyl3 = MakeRotation(e_cyl0, e_dir, e_pi4)
+
+e_blo3 = MakeCut(e_cyl2, e_cyl3)
+
+# Partition
+# ---------
+
+p_tools = []
+p_tools.append(MakePlane(e_centre, MakeVectorDXDYDZ( 1, 0, 1), g_trim))
+p_tools.append(MakePlane(e_centre, MakeVectorDXDYDZ(-1, 0, 1), g_trim))
+
+p_element = MakePartition([e_blo1, e_blo2, e_blo3], p_tools, [], [], ShapeType["SOLID"])
+
+# Grid
+# ----
+
+piece = MakeMultiTranslation2D(p_element, MakeVectorDXDYDZ(1, 0, 0), 2*g_arete, g_grid,
+                                          MakeVectorDXDYDZ(0, 0, 1), 2*g_arete, g_grid)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Grid3partition")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Grid3partitionHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
diff --git a/src/SMESH_SWIG/grid4partition.py b/src/SMESH_SWIG/grid4partition.py
new file mode 100644 (file)
index 0000000..4019d4b
--- /dev/null
@@ -0,0 +1,72 @@
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# grid compound by a square with a cylinder on each vertex
+
+# Geometry
+# --------
+
+ox = 0
+oy = 0
+oz = 0
+
+arete   =  50
+hauteur = 100
+rayon   =  10
+
+g_trim = 1000
+
+# Box
+# ---
+
+piecePoint = MakeVertex(ox, oy, oz)
+
+pieceBox = MakeBoxTwoPnt(piecePoint, MakeVertex(ox+arete, oy+hauteur, oz+arete))
+
+# Cut by cylinders
+# ----------------
+
+dirUp = MakeVectorDXDYDZ(0, 1, 0)
+
+pieceCut1 = MakeCut(pieceBox , MakeCylinder(piecePoint                        , dirUp, rayon, hauteur))
+pieceCut2 = MakeCut(pieceCut1, MakeCylinder(MakeVertex(ox+arete, oy, oz      ), dirUp, rayon, hauteur))
+pieceCut3 = MakeCut(pieceCut2, MakeCylinder(MakeVertex(ox      , oy, oz+arete), dirUp, rayon, hauteur))
+pieceCut4 = MakeCut(pieceCut3, MakeCylinder(MakeVertex(ox+arete, oy, oz+arete), dirUp, rayon, hauteur))
+
+# Compound by make a partition of a solid
+# ---------------------------------------
+
+dir = MakeVectorDXDYDZ(-1, 0, 1)
+
+tools = []
+tools.append(MakePlane(MakeVertex(ox+rayon, oy, oz      ), dir, g_trim))
+tools.append(MakePlane(MakeVertex(ox      , oy, oz+rayon), dir, g_trim))
+
+piece = MakePartition([pieceCut4], tools, [], [], ShapeType["SOLID"])
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Grid4partition")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Grid4partitionHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
diff --git a/src/SMESH_SWIG/grid4pyGibi.py b/src/SMESH_SWIG/grid4pyGibi.py
new file mode 100644 (file)
index 0000000..d77f3b5
--- /dev/null
@@ -0,0 +1,114 @@
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+import math
+
+# Piece
+# -----
+
+# grid compound by a square with a cylinder on each vertex
+
+# Geometry
+# --------
+
+ox = 0
+oy = 0
+oz = 0
+
+arete   =  50
+hauteur = 100
+
+rayon = 10
+
+demi = rayon/2
+r3   = demi*math.sqrt(3)
+
+# Points
+# ------
+
+piecePoint111 = MakeVertex(ox+rayon      , oy, oz)
+piecePoint211 = MakeVertex(ox+arete-rayon, oy, oz)
+piecePoint112 = MakeVertex(ox            , oy, oz+rayon)
+piecePoint212 = MakeVertex(ox+arete      , oy, oz+rayon)
+piecePoint113 = MakeVertex(ox            , oy, oz+arete-rayon)
+piecePoint213 = MakeVertex(ox+arete      , oy, oz+arete-rayon)
+piecePoint114 = MakeVertex(ox+rayon      , oy, oz+arete)
+piecePoint214 = MakeVertex(ox+arete-rayon, oy, oz+arete)
+
+pieceCenter1  = MakeVertex(ox            , oy, oz)
+pieceCenter2  = MakeVertex(ox+arete      , oy, oz)
+pieceCenter3  = MakeVertex(ox            , oy, oz+arete)
+pieceCenter4  = MakeVertex(ox+arete      , oy, oz+arete)
+
+piecePass1    = MakeVertex(ox+demi       , oy, oz+r3)
+piecePass2    = MakeVertex(ox+arete-demi , oy, oz+r3)
+piecePass3    = MakeVertex(ox+arete-demi , oy, oz+arete-r3)
+piecePass4    = MakeVertex(ox+demi       , oy, oz+arete-r3)
+
+# Edges
+# -----
+
+pieceEdgeSquare1   = MakeEdge(piecePoint111, piecePoint211)
+pieceEdgeSquare2   = MakeEdge(piecePoint114, piecePoint214)
+pieceEdgeSquare3   = MakeEdge(piecePoint112, piecePoint113)
+pieceEdgeSquare4   = MakeEdge(piecePoint212, piecePoint213)
+
+pieceEdgeDiagonal1 = MakeEdge(piecePoint111, piecePoint213)
+pieceEdgeDiagonal2 = MakeEdge(piecePoint112, piecePoint214)
+
+pieceEdgeArc1 = MakeArc(piecePoint111, piecePass1, piecePoint112)
+pieceEdgeArc2 = MakeArc(piecePoint211, piecePass2, piecePoint212)
+pieceEdgeArc3 = MakeArc(piecePoint213, piecePass3, piecePoint214)
+pieceEdgeArc4 = MakeArc(piecePoint113, piecePass4, piecePoint114)
+
+# Faces
+# -----
+
+pieceFace1 = MakeQuad(pieceEdgeSquare1, pieceEdgeArc2, pieceEdgeSquare4, pieceEdgeDiagonal1)
+pieceFace2 = MakeQuad(pieceEdgeSquare2, pieceEdgeArc4, pieceEdgeSquare3, pieceEdgeDiagonal2)
+
+pieceFace3 = MakeQuad(pieceEdgeArc1, pieceEdgeDiagonal1, pieceEdgeArc3, pieceEdgeDiagonal2)
+
+# Solids
+# ------
+
+pieceVector = MakeVectorDXDYDZ(0, 1, 0)
+
+pieceSolid1 = MakePrismVecH(pieceFace1, pieceVector, hauteur)
+pieceSolid2 = MakePrismVecH(pieceFace2, pieceVector, hauteur)
+pieceSolid3 = MakePrismVecH(pieceFace3, pieceVector, hauteur)
+
+# Compound
+# --------
+
+c_l = []
+c_l.append(pieceSolid1)
+c_l.append(pieceSolid2)
+c_l.append(pieceSolid3)
+
+c_cpd = MakeCompound(c_l)
+piece = MakeGlueFaces(c_cpd, 1.e-5)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Grid4pyGibi")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Grid4pyGibiHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
diff --git a/src/SMESH_SWIG/hole1geometry.py b/src/SMESH_SWIG/hole1geometry.py
new file mode 100644 (file)
index 0000000..9622dc7
--- /dev/null
@@ -0,0 +1,109 @@
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# A holed cube
+
+# Geometry
+# --------
+
+ox = 0
+oy = 0
+oz = 0
+
+longueur1 = 30
+longueur2 = 70
+
+largeur1  = 30
+largeur2  = 50
+
+hauteur   = 50
+
+rayon = 10
+
+# Triangular face
+# ---------------
+
+def triangle(p1, p2, p3):
+    l = []
+    l.append(MakeEdge(p1, p2))
+    l.append(MakeEdge(p2, p3))
+    l.append(MakeEdge(p3, p1))
+    w = MakeWire(l)
+    return MakeFace(w, 1)
+
+# Points
+# ------
+
+basePoint111 = MakeVertex(ox-longueur1,  oy, oz-largeur1)
+basePoint211 = MakeVertex(ox+longueur2,  oy, oz-largeur1)
+basePoint112 = MakeVertex(ox-longueur1,  oy, oz+largeur2)
+basePoint212 = MakeVertex(ox+longueur2,  oy, oz+largeur2)
+
+holePoint    = MakeVertex(ox, oy, oz)
+
+# Faces
+# -----
+
+baseFace1 = triangle(basePoint111, basePoint211, holePoint)
+baseFace2 = triangle(basePoint211, basePoint212, holePoint)
+baseFace3 = triangle(basePoint212, basePoint112, holePoint)
+baseFace4 = triangle(basePoint112, basePoint111, holePoint)
+
+# Solids
+# ------
+
+baseVector = MakeVectorDXDYDZ(0, 1, 0)
+
+baseSolid1 = MakePrismVecH(baseFace1, baseVector, hauteur)
+baseSolid2 = MakePrismVecH(baseFace2, baseVector, hauteur)
+baseSolid3 = MakePrismVecH(baseFace3, baseVector, hauteur)
+baseSolid4 = MakePrismVecH(baseFace4, baseVector, hauteur)
+
+holeSolid = MakeCylinder(holePoint, baseVector, rayon, hauteur)
+
+# Boolean operations
+# ------------------
+
+baseHexa1 = MakeCut(baseSolid1, holeSolid)
+baseHexa2 = MakeCut(baseSolid2, holeSolid)
+baseHexa3 = MakeCut(baseSolid3, MakeRotation(holeSolid, baseVector, 3.141592653))
+baseHexa4 = MakeCut(baseSolid4, holeSolid)
+
+# Compound
+# --------
+
+c_l = []
+c_l.append(baseHexa1)
+c_l.append(baseHexa2)
+c_l.append(baseHexa3)
+c_l.append(baseHexa4)
+
+c_cpd = MakeCompound(c_l)
+piece = MakeGlueFaces(c_cpd, 1.e-5)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Hole1geometry")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Hole1geometryHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
diff --git a/src/SMESH_SWIG/hole1partition.py b/src/SMESH_SWIG/hole1partition.py
new file mode 100644 (file)
index 0000000..415046d
--- /dev/null
@@ -0,0 +1,75 @@
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+import math
+
+# Piece
+# -----
+
+# A holed cube at center for partitioning
+
+# Geometry
+# --------
+
+g_x = 0
+g_y = 0
+g_z = 0
+
+g_longueur = 50.0
+g_largeur  = 40.0
+g_hauteur  = 25.0
+
+g_rayon = 10
+
+g_trim = 1000
+
+# Box
+# ---
+
+b_boite = MakeBox(g_x-g_longueur, g_y-g_hauteur, g_z-g_largeur,
+                  g_x+g_longueur, g_y+g_hauteur, g_z+g_largeur)
+
+# Cylinder
+# --------
+
+c_axe = MakeVectorDXDYDZ(0, 1, 0)
+
+c_cyl0 = MakeCylinder(MakeVertex(g_x, g_y-g_hauteur, g_z), c_axe, g_rayon, g_hauteur*2)
+c_cyl  = MakeRotation(c_cyl0, c_axe, math.atan(g_longueur/g_largeur))
+
+c_piece = MakeCut(b_boite, c_cyl)
+
+# Partition
+# ---------
+
+p_centre = MakeVertex(g_x, g_y, g_z)
+
+p_tools = []
+p_tools.append(MakePlane(p_centre, MakeVectorDXDYDZ( g_largeur, 0, g_longueur), g_trim))
+p_tools.append(MakePlane(p_centre, MakeVectorDXDYDZ(-g_largeur, 0, g_longueur), g_trim))
+
+piece = MakePartition([c_piece], p_tools, [], [], ShapeType["SOLID"])
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Hole1partition")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Hole1partitionHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
diff --git a/src/SMESH_SWIG/hole1pyGibi.py b/src/SMESH_SWIG/hole1pyGibi.py
new file mode 100644 (file)
index 0000000..7c2fb60
--- /dev/null
@@ -0,0 +1,116 @@
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+import math
+
+# Piece
+# -----
+
+# A centered holed cube
+
+# Geometry
+# --------
+
+ox = 0
+oy = 0
+oz = 0
+
+longueur = 100
+largeur  =  80
+hauteur  =  50
+
+rayon = 10
+
+# Points
+# ------
+
+basePoint111 = MakeVertex(ox         ,  oy, oz)
+basePoint211 = MakeVertex(ox+longueur,  oy, oz)
+basePoint112 = MakeVertex(ox         ,  oy, oz+largeur)
+basePoint212 = MakeVertex(ox+longueur,  oy, oz+largeur)
+
+cx = ox+longueur/2
+cy = oy
+cz = oz+largeur/2
+
+ll = longueur/largeur
+ll = ll*ll
+dx = rayon/math.sqrt(1+ll)
+dz = rayon/math.sqrt(1+1/ll)
+
+circlePoint1 = MakeVertex(cx-dx, cy, cz-dz)
+circlePoint2 = MakeVertex(cx+dx, cy, cz-dz)
+circlePoint3 = MakeVertex(cx+dx, cy, cz+dz)
+circlePoint4 = MakeVertex(cx-dx, cy, cz+dz)
+
+# Edges
+# -----
+
+squareEdge1 = MakeEdge(basePoint111, basePoint211)
+squareEdge2 = MakeEdge(basePoint211, basePoint212)
+squareEdge3 = MakeEdge(basePoint212, basePoint112)
+squareEdge4 = MakeEdge(basePoint112, basePoint111)
+
+diagEdge1   = MakeEdge(basePoint111, circlePoint1)
+diagEdge2   = MakeEdge(basePoint211, circlePoint2)
+diagEdge3   = MakeEdge(basePoint212, circlePoint3)
+diagEdge4   = MakeEdge(basePoint112, circlePoint4)
+
+arcEdge1    = MakeArc(circlePoint1, MakeVertex(cx      , cy, cz-rayon), circlePoint2)
+arcEdge2    = MakeArc(circlePoint2, MakeVertex(cx+rayon, cy, cz      ), circlePoint3)
+arcEdge3    = MakeArc(circlePoint3, MakeVertex(cx      , cy, cz+rayon), circlePoint4)
+arcEdge4    = MakeArc(circlePoint4, MakeVertex(cx-rayon, cy, cz      ), circlePoint1)
+
+# Faces
+# -----
+
+baseFace1 = MakeQuad(squareEdge1, diagEdge2, arcEdge1, diagEdge1)
+baseFace2 = MakeQuad(squareEdge2, diagEdge3, arcEdge2, diagEdge2)
+baseFace3 = MakeQuad(squareEdge3, diagEdge4, arcEdge3, diagEdge3)
+baseFace4 = MakeQuad(squareEdge4, diagEdge1, arcEdge4, diagEdge4)
+
+# Solids
+# ------
+
+baseVector = MakeVectorDXDYDZ(0, 1, 0)
+
+baseSolid1 = MakePrismVecH(baseFace1, baseVector, hauteur)
+baseSolid2 = MakePrismVecH(baseFace2, baseVector, hauteur)
+baseSolid3 = MakePrismVecH(baseFace3, baseVector, hauteur)
+baseSolid4 = MakePrismVecH(baseFace4, baseVector, hauteur)
+
+# Compound
+# --------
+
+c_l = []
+c_l.append(baseSolid1)
+c_l.append(baseSolid2)
+c_l.append(baseSolid3)
+c_l.append(baseSolid4)
+
+c_cpd = MakeCompound(c_l)
+piece = MakeGlueFaces(c_cpd, 1.e-5)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Hole1pyGibi")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Hole1pyGibiHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
diff --git a/src/SMESH_SWIG/hole2pyGibi.py b/src/SMESH_SWIG/hole2pyGibi.py
new file mode 100644 (file)
index 0000000..3db513c
--- /dev/null
@@ -0,0 +1,113 @@
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+from geompy import *
+from meshpy import *
+
+# Piece
+# -----
+
+# A twice holed cube
+
+# Geometry
+# --------
+
+ox = 0
+oy = 0
+oz = 0
+
+longueur = 200
+largeur  = 100
+hauteur  =  80
+
+cylindre = 50
+
+rayon = 20
+
+# Points
+# ------
+
+piecePoint1 = MakeVertex(ox         , oy, oz)
+piecePoint2 = MakeVertex(ox+longueur, oy, oz)
+piecePoint3 = MakeVertex(ox+longueur, oy, oz+largeur)
+piecePoint4 = MakeVertex(ox         , oy, oz+largeur)
+
+cz = oz+largeur/2
+
+cylPoint1 = MakeVertex(ox+cylindre         , oy, cz-rayon)
+cylPoint2 = MakeVertex(ox+longueur-cylindre, oy, cz-rayon)
+cylPoint3 = MakeVertex(ox+longueur-cylindre, oy, cz+rayon)
+cylPoint4 = MakeVertex(ox+cylindre         , oy, cz+rayon)
+
+# Edges
+# -----
+
+pieceEdge1 = MakeEdge(piecePoint1, piecePoint4)
+pieceEdge2 = MakeEdge(piecePoint1, cylPoint1)
+pieceEdge3 = MakeEdge(piecePoint4, cylPoint4)
+
+pieceEdge4 = MakeEdge(piecePoint2, piecePoint3)
+pieceEdge5 = MakeEdge(piecePoint2, cylPoint2)
+pieceEdge6 = MakeEdge(piecePoint3, cylPoint3)
+
+pieceEdge7 = MakeEdge(cylPoint1, cylPoint2)
+pieceEdge8 = MakeEdge(cylPoint3, cylPoint4)
+
+cylEdge1 = MakeArc(cylPoint1, MakeVertex(ox+cylindre-rayon         , oy, cz), cylPoint4)
+cylEdge2 = MakeArc(cylPoint1, MakeVertex(ox+cylindre+rayon         , oy, cz), cylPoint4)
+cylEdge3 = MakeArc(cylPoint2, MakeVertex(ox+longueur-cylindre-rayon, oy, cz), cylPoint3)
+cylEdge4 = MakeArc(cylPoint2, MakeVertex(ox+longueur-cylindre+rayon, oy, cz), cylPoint3)
+
+# Faces
+# -----
+
+pieceFace1 = MakeQuad4Vertices(piecePoint1, piecePoint2, cylPoint2 , cylPoint1 )
+pieceFace2 = MakeQuad         (pieceEdge1 , pieceEdge2 , cylEdge1  , pieceEdge3)
+pieceFace3 = MakeQuad4Vertices(piecePoint3, piecePoint4, cylPoint4 , cylPoint3 )
+pieceFace4 = MakeQuad         (pieceEdge4 , pieceEdge5 , cylEdge4  , pieceEdge6)
+pieceFace5 = MakeQuad         (pieceEdge7 , cylEdge3   , pieceEdge8, cylEdge2  )
+
+# Solids
+# ------
+
+pieceVector = MakeVectorDXDYDZ(0, 1, 0)
+
+pieceSolid1 = MakePrismVecH(pieceFace1, pieceVector, hauteur)
+pieceSolid2 = MakePrismVecH(pieceFace2, pieceVector, hauteur)
+pieceSolid3 = MakePrismVecH(pieceFace3, pieceVector, hauteur)
+pieceSolid4 = MakePrismVecH(pieceFace4, pieceVector, hauteur)
+pieceSolid5 = MakePrismVecH(pieceFace5, pieceVector, hauteur)
+
+# Compound
+# --------
+
+c_l = []
+c_l.append(pieceSolid1)
+c_l.append(pieceSolid2)
+c_l.append(pieceSolid3)
+c_l.append(pieceSolid4)
+c_l.append(pieceSolid5)
+
+c_cpd = MakeCompound(c_l)
+piece = MakeGlueFaces(c_cpd, 1.e-5)
+
+# Add in study
+# ------------
+
+piece_id = addToStudy(piece, "Hole2pyGibi")
+
+# Meshing
+# =======
+
+# Create hexahedrical mesh on piece
+# ---------------------------------
+
+m_hexa=MeshHexa(piece, 4, "Hole2pyGibiHexa")
+
+# Compute
+# -------
+
+m_hexa.Compute()
diff --git a/src/SMESH_SWIG/meshpy.py b/src/SMESH_SWIG/meshpy.py
new file mode 100644 (file)
index 0000000..757a6fe
--- /dev/null
@@ -0,0 +1,101 @@
+# CEA/LGLS 2004, Francis KLOSS (OCC)
+# ==================================
+
+# Import
+# ------
+
+import geompy
+
+import salome
+
+import StdMeshers
+
+# Variables
+# ---------
+
+smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
+smesh.SetCurrentStudy(salome.myStudy)
+smeshgui = salome.ImportComponentGUI("SMESH")
+smeshgui.Init(salome.myStudyId)
+
+# Hexahedrical meshing
+#
+# Examples: cube2pyGibi.py, lines 270-295
+#           cube2partition.py, lines 72-83
+# --------------------
+
+class MeshHexaImpl:
+    piece = 0
+    name  = 0
+    mesh  = 0
+    cpt   = 0
+
+    # Sets algorithm and hypothesis for 1D discretization of the <shape>:
+    #   - algorithm  "Regular_1D"
+    #   - hypothesis "NumberOfSegments" with number of segments <n>
+    # --------------------
+
+    def Mesh1D(self, shape, n):
+        hyp1D=smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
+        smeshgui.SetName(salome.ObjectToID(hyp1D), self.name+"/WireDiscretisation/"+str(self.cpt))
+        self.mesh.AddHypothesis(shape, hyp1D)
+
+        hyp=smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
+        hyp.SetNumberOfSegments(n)
+        smeshgui.SetName(salome.ObjectToID(hyp), self.name+"/Segments_"+str(n)+"/"+str(self.cpt))
+        self.mesh.AddHypothesis(shape, hyp)
+
+        self.cpt=self.cpt+1
+
+    # Constructor
+    #
+    # Creates mesh on the shape <piece>,
+    # sets GUI name of this mesh to <name>.
+    # Sets the following global algorithms and hypotheses:
+    #   - for 1D discretization:
+    #       - algorithm  "Regular_1D"
+    #       - hypothesis "NumberOfSegments" with number of segments <n>,
+    #   - for 2D discretization:
+    #       - algorithm  "Quadrangle_2D"
+    #   - for 3D discretization:
+    #       - algorithm  "Hexa_3D"
+    # --------------------
+
+    def __init__(self, piece, n, name):
+        self.piece = piece
+        self.name  = name
+
+        self.mesh  = smesh.CreateMesh(piece)
+        smeshgui.SetName(salome.ObjectToID(self.mesh), name)
+
+        self.Mesh1D(piece, n)
+
+        hyp2D=smesh.CreateHypothesis("Quadrangle_2D", "libStdMeshersEngine.so")
+        smeshgui.SetName(salome.ObjectToID(hyp2D), name+"/Quadrangle")
+        self.mesh.AddHypothesis(piece, hyp2D)
+
+        hyp3D=smesh.CreateHypothesis("Hexa_3D", "libStdMeshersEngine.so")
+        smeshgui.SetName(salome.ObjectToID(hyp3D), name+"/ijk")
+        self.mesh.AddHypothesis(piece, hyp3D)
+
+    # Creates sub-mesh of the mesh, created by constructor.
+    # This sub-mesh will be created on edge <edge>.
+    # Set algorithm and hypothesis for 1D discretization of the <edge>:
+    #   - algorithm  "Regular_1D"
+    #   - hypothesis "NumberOfSegments" with number of segments <n>
+    # Note: the <edge> will be automatically published in study under the shape, given in constructor.
+    # --------------------
+
+    def local(self, edge, n):
+        geompy.addToStudyInFather(self.piece, edge, geompy.SubShapeName(edge, self.piece))
+        submesh = self.mesh.GetSubMesh(edge, self.name+"/SubMeshEdge/"+str(self.cpt))
+        self.Mesh1D(edge, n)
+
+    # Computes mesh, created by constructor.
+    # --------------------
+
+    def Compute(self):
+        smesh.Compute(self.mesh, self.piece)
+        salome.sg.updateObjBrowser(1)
+
+MeshHexa = MeshHexaImpl
index b153d5c71d978d22cdd1337dc86f4ac2798a3d63..580c48ee870b569b48079618d960b3f442152b90 100644 (file)
@@ -32,6 +32,7 @@ using namespace std;
 #include "StdMeshers_Quadrangle_2D.hxx"
 #include "SMESH_Gen.hxx"
 #include "SMESH_Mesh.hxx"
+#include "SMESH_subMesh.hxx"
 
 #include "SMDS_MeshElement.hxx"
 #include "SMDS_MeshNode.hxx"
index 0775a9220933dbe2d3ca405dd36f75e87041ad9c..b7da7cbe615ec8ffe2c8069932703e36e0cc6a67 100644 (file)
@@ -31,6 +31,7 @@ using namespace std;
 #include "StdMeshers_MEFISTO_2D.hxx"
 #include "SMESH_Gen.hxx"
 #include "SMESH_Mesh.hxx"
+#include "SMESH_subMesh.hxx"
 
 #include "StdMeshers_MaxElementArea.hxx"
 #include "StdMeshers_LengthFromEdges.hxx"
index 6386121e32762ab176fcbeaf43b9f76981e6c900..da6b6a2e4ebff1db3d8a6f701705963ff33e7329 100644 (file)
@@ -31,6 +31,7 @@ using namespace std;
 #include "StdMeshers_Quadrangle_2D.hxx"
 #include "SMESH_Gen.hxx"
 #include "SMESH_Mesh.hxx"
+#include "SMESH_subMesh.hxx"
 
 #include "SMDS_MeshElement.hxx"
 #include "SMDS_MeshNode.hxx"
@@ -114,7 +115,7 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
   Unexpect aCatch(SalomeException);
   //MESSAGE("StdMeshers_Quadrangle_2D::Compute");
   SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-  SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape);
+  aMesh.GetSubMesh(aShape);
 
   FaceQuadStruct *quad = CheckAnd2Dcompute(aMesh, aShape);
   if (!quad)
index ffeced09493ffb4c86e2a5f9163db88b80c68dc9..1ecad92d5116b8af821aa2a430439a672b3b90fc 100644 (file)
@@ -34,6 +34,8 @@
 #include "SMESH_Mesh.hxx"
 #include "Utils_SALOME_Exception.hxx"
 
+class SMDS_MeshNode;
+
 typedef struct uvPtStruct
 {
   double param;
@@ -42,7 +44,7 @@ typedef struct uvPtStruct
   double v;
   double x; // 2d parameter, normalized [0,1]
   double y; 
-       const SMDS_MeshNode * node;
+  const SMDS_MeshNode * node;
 } UVPtStruct;
 
 typedef struct faceQuadStruct
index 306227f9571e557d880328b3127b57dfe37ec88a..6a6f92a79c66db8d0123d394cd21e2e0ac8a5071 100644 (file)
@@ -43,6 +43,7 @@ using namespace std;
 #include "SMDS_MeshElement.hxx"
 #include "SMDS_MeshNode.hxx"
 #include "SMDS_EdgePosition.hxx"
+#include "SMESH_subMesh.hxx"
 
 #include "utilities.h"
 
@@ -224,7 +225,7 @@ bool StdMeshers_Regular_1D::computeInternalParameters(const TopoDS_Edge& theEdge
           length / (1 - pow( alpha,_value[ NB_SEGMENTS_IND ]));
 
         int i, NbPoints = (int) _value[ NB_SEGMENTS_IND ];
-        for ( int i = 2; i < NbPoints; i++ )
+        for ( i = 2; i < NbPoints; i++ )
         {
           double param = factor * (1 - pow(alpha, i - 1));
           theParams.push_back( param );
@@ -374,7 +375,7 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
     return false;
 
   SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-  SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape);
+  aMesh.GetSubMesh(aShape);
 
   const TopoDS_Edge & EE = TopoDS::Edge(aShape);
   TopoDS_Edge E = TopoDS::Edge(EE.Oriented(TopAbs_FORWARD));
index a5d5f740002ab4669c7b4a9b802a4146c64300fd..12f1c6431df80f74b4f50251ede033c2424af0db 100644 (file)
@@ -61,7 +61,8 @@ LIB_SERVER_IDL = SMESH_BasicHypothesis.idl
 LIB_CLIENT_IDL = \
        SALOMEDS.idl SALOME_Exception.idl \
        GEOM_Gen.idl MED.idl SALOMEDS_Attributes.idl \
-       SMESH_Gen.idl SMESH_Hypothesis.idl SMESH_Group.idl
+       SMESH_Gen.idl SMESH_Hypothesis.idl SMESH_Group.idl \
+       SALOME_Comm.idl
 
 # Executables targets
 BIN =